




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、提綱13245嵌入式軟件開發(fā)過程ARM軟件設(shè)計與代碼分析ARM軟件開發(fā)工具ADT IDE簡介67第六章 嵌入式軟件系統(tǒng)設(shè)計1嵌入式系統(tǒng)軟件開發(fā)流程軟件需求分析:確定設(shè)計任務和目標,并提煉出設(shè)計規(guī)格說明書,作為正式設(shè)計指導和驗收的標準。嵌入式軟件開發(fā)過程概要設(shè)計:描述系統(tǒng)如何實現(xiàn)所述的需求,包括軟件模塊的劃分、系統(tǒng)的軟件開發(fā)工具選擇以及關(guān)鍵問題的論證等。詳細設(shè)計:詳細描述各個模塊的實現(xiàn)方法與過程,模塊間接口等問題,以作為編碼人員的編碼準則。編碼2嵌入式系統(tǒng)的開發(fā)流程單元調(diào)試:編碼完成后,對各個模塊進行單元調(diào)試,以保證模塊正常工作。嵌入式軟件開發(fā)過程集成調(diào)試3ARM主流開發(fā)工具Windows操作系
2、統(tǒng)ARM ADS/SDT + 調(diào)試器GNU + Cygwin + 調(diào)試器ARM SDT + 簡易電纜Linux操作系統(tǒng)GNU + GDBARM軟件開發(fā)工具ADT IDE簡介4常用調(diào)試方法軟件仿真駐留監(jiān)控程序硬件要求高,一般在硬件穩(wěn)定之后進行需要占用目標板上的一部分資源不能對程序的全速運行進行完全仿真JTAG仿真器完全非插入式調(diào)試,不使用片上資源,無需目標存儲器,不占用目標系統(tǒng)的任何端口仿真效果更加接近于目標硬件在線仿真器ARM軟件開發(fā)工具ADT IDE簡介5ADT for ARM集成開發(fā)系統(tǒng)ARM軟件開發(fā)工具ADT IDE簡介6ADT 1000 Emulator for ARMARM軟件開發(fā)工
3、具ADT IDE簡介 7ADT 1000 Emulator for ARMARM軟件開發(fā)工具ADT IDE簡介 ADT Emulator for ARM是連接主機核目標機之間的硬件設(shè)備,它實現(xiàn)ADT IDE for ARM與目標機之間的連接。它具有如下特征:支持ARM核CPU非插入式調(diào)試,無需目標存儲器,不占用目標系統(tǒng)的任何端口2.5V/3.3V/5V兼容電平接口支持標準的14/20針JTAG接口運行狀態(tài)指示與主機之間通過并口連接下載速度達到25Kbytes/S8ADT IDE for ARMARM軟件開發(fā)工具ADT IDE簡介 9ADT IDE for ARM主要特征 可視化編程環(huán)境ARM軟
4、件開發(fā)工具ADT IDE簡介 支持ARM7、ARM9、SecurCore等。運行于Windows98 、NT、2000、XP等平臺。中文、英文版本支持可視化的源碼編輯和工程管理功能界面友好,使用方便:類似MS Visual Studio的用戶界面,支持打印功能,支持文件內(nèi)查找功能和Find in Files功能10ADT IDE for ARM主要特征 可視化編程環(huán)境ARM軟件開發(fā)工具ADT IDE簡介 工程管理器:ADT IDE提供圖形化的工程管理工具,實現(xiàn)文件級、文件目錄級、工程級的多級編譯連接選項管理以及工程級的調(diào)試參數(shù)管理源碼編輯器:支持標準的文本編輯功能,支持C語言、匯編語言語法高亮
5、顯示輔助編輯工具:提供一系列輔助編輯工具,方便開發(fā)人員。包括:多剪貼板工具、代碼模板工具、頭文件和源文件切換工具、注釋工具、符號配對書寫工具等多種輔助編輯工具。11ADT IDE for ARM主要特征 交叉編譯功能ARM軟件開發(fā)工具ADT IDE簡介 支持開發(fā)語言:ANSI C;Embedded C+;匯編語言編譯工具:使用著名優(yōu)秀自由軟件GNU的GCC交叉編譯工具,并經(jīng)過優(yōu)化和嚴格測試,支持C語言、匯編語言等編譯參數(shù)設(shè)置:完全圖形界面方式的編譯參數(shù)設(shè)置,提供可視化的設(shè)置功能。支持工程級、文件目錄級、文件級編譯參數(shù)設(shè)置12ADT IDE for ARM主要特征 調(diào)試功能ARM軟件開發(fā)工具AD
6、T IDE簡介 同時提供了圖形和命令行兩種調(diào)試方式程序的單步執(zhí)行程序下載存儲區(qū)下載和上載功能。工程級調(diào)試參數(shù)管理支持源程序、反匯編程序和混合窗口顯示,支持ARM/THUMB方式顯示具有與MS Visual Studio類似的調(diào)試菜單功能:Go,Stop,Reset,Restart,Step into,Step over,Step out,Run to Cursor等豐富的示例程序13ADT IDE for ARM主要特征 調(diào)試功能ARM軟件開發(fā)工具ADT IDE簡介 斷點功能:支持軟件斷點和硬件斷點,實現(xiàn)斷點設(shè)置、斷點屏蔽、斷點取消、斷點列表等功能變量監(jiān)視功能:隨程序運行同步更新變量,即時修改
7、變量值,可設(shè)置自動/手動刷新方式、十進制/十六進制顯示ARM各種模式的寄存器即時查看與修改,當前模式指示,寄存器值修改時紅色突顯存儲器查看與修改,可設(shè)置自動/手動刷新方式、字節(jié)/雙字節(jié)/四字節(jié)顯示、大/小端方式顯示,存儲器值修改時紅色突顯14ADT IDE for ARM主要特征 調(diào)試功能ARM軟件開發(fā)工具ADT IDE簡介 函數(shù)堆棧顯示,可設(shè)置自動/手動刷新方式、十進制/十六進制顯示、參數(shù)值顯示,參數(shù)類型顯示板上寄存器(On Board Register)的查看和修改,可以查看支持CPU的所有板上寄存器的具體意義、當前值、各個位的意義,可設(shè)置自動/手動刷新方式、二進制/十進制/十六進制顯示、
8、大/小端方式顯示,支持十進制/十六進制方式修改寄存器值,寄存器值修改時紅色突顯。flash在線編程器,支持對多種flash芯片的空白檢查、擦除、編程、校驗等操作,支持單一操作和自動操作兩種操作方式,支持8/16/32位flash訪問寬度,支持多片flash同時編程,編程速度達15Kbytes/s。提供統(tǒng)一的flash編程接口,可以方便地添加flash編程方案。15ADT IDE for ARMARM軟件開發(fā)工具ADT IDE簡介 ADT IDE(Arm7Lpt、Arm9Lpt、SoftSim、Arm7Simple)用戶手冊、編程指南豐富例程16多版本支持ARM軟件開發(fā)工具ADT IDE簡介 軟
9、件仿真版本ARM7版本ARM9版本簡易仿真版本17多工程管理ARM軟件開發(fā)工具ADT IDE簡介 工程當前活動工程18可視化編輯器ARM軟件開發(fā)工具ADT IDE簡介 編輯菜單語法高亮編輯器輔助編輯工具條書簽19GCC交叉編譯ARM軟件開發(fā)工具ADT IDE簡介編譯菜單編譯工具條編譯結(jié)果輸出錯誤定位20編譯器設(shè)置ARM軟件開發(fā)工具ADT IDE簡介多配置管理多工程設(shè)管理多參數(shù)配置21匯編器設(shè)置ARM軟件開發(fā)工具ADT IDE簡介多配置管理多工程設(shè)管理多參數(shù)配置22連接器設(shè)置ARM軟件開發(fā)工具ADT IDE簡介多配置管理多工程設(shè)管理多參數(shù)配置23調(diào)試功能ARM軟件開發(fā)工具ADT IDE簡介 調(diào)試
10、菜單調(diào)試工具條命令行調(diào)試窗口24多種調(diào)試模式ARM軟件開發(fā)工具ADT IDE簡介 源碼模式混合模式匯編模式25斷點ARM軟件開發(fā)工具ADT IDE簡介 斷點列表斷點26存儲器窗口ARM軟件開發(fā)工具ADT IDE簡介字模式半字模式字節(jié)模式修改凸顯標記27存儲區(qū)上載下載功能ARM軟件開發(fā)工具ADT IDE簡介 存儲區(qū)上載存儲區(qū)下載28寄存器觀察窗口ARM軟件開發(fā)工具ADT IDE簡介 多模式寄存器顯示修改凸顯標記29函數(shù)調(diào)用棧窗口ARM軟件開發(fā)工具ADT IDE簡介 函數(shù)調(diào)用棧30變量觀察窗口ARM軟件開發(fā)工具ADT IDE簡介 局部變量全局變量多個觀察窗口31命令窗口ARM軟件開發(fā)工具ADT I
11、DE簡介 32單步調(diào)試 STEP INTOARM軟件開發(fā)工具ADT IDE簡介33單步調(diào)試 STEP OVERARM軟件開發(fā)工具ADT IDE簡介 34單步調(diào)試 STEP OUTARM軟件開發(fā)工具ADT IDE簡介 35單步調(diào)試 RUN TO CURSORARM軟件開發(fā)工具ADT IDE簡介 36板上寄存器ARM軟件開發(fā)工具ADT IDE簡介寄存器組寄存器寄存器位域熱點描述信息修改凸顯標記37板上寄存器ARM軟件開發(fā)工具ADT IDE簡介38FLASH在線編程器ARM軟件開發(fā)工具ADT IDE簡介 39工具菜單ARM軟件開發(fā)工具ADT IDE簡介 可自定制40在線幫助ARM軟件開發(fā)工具ADT
12、IDE簡介 41嵌入式軟件開發(fā)無操作系統(tǒng)的軟件開發(fā)啟動代碼應用程序基于操作系統(tǒng)的軟件開發(fā)bootloader操作系統(tǒng)移植BSP板級支持包應用程序開發(fā)ARM軟件設(shè)計與代碼分析42啟動代碼功能硬件初始化引導C代碼特征通常用匯編語言編寫程序復位運行入口點代碼量非常小程序流程設(shè)置中斷、異常入口關(guān)中斷硬件寄存器初始化(GPIO配置、總線配置、PLL時鐘)初始化棧指針數(shù)據(jù)區(qū)初始化C入口函數(shù)調(diào)用 BL MainARM軟件設(shè)計與代碼分析43應用程序(無操作系統(tǒng))功能硬件驅(qū)動應用特征通常用C語言或者嵌入式匯編語言編寫程序較復雜,代碼量較大ARM軟件設(shè)計與代碼分析44bootloader功能硬件初始化引導操作系統(tǒng)
13、下載程序(串口、網(wǎng)口、USB)燒寫flash特征程序復位運行入口點通常用匯編語言+C語言編寫代碼量較小ARM軟件設(shè)計與代碼分析45嵌入式操作系統(tǒng)移植LinuxWindows CE uC/OS IIuClinuxNucleusARM軟件設(shè)計與代碼分析46BSP板級支持包功能為應用程序提供統(tǒng)一的硬件操作接口特征高度硬件相關(guān)高度依賴于具體硬件平臺各種操作系統(tǒng)各異ARM軟件設(shè)計與代碼分析47應用程序開發(fā)(操作系統(tǒng))功能GUI圖形、人機交互控制算法特征硬件依賴程度小部分可仿真調(diào)試各種操作系統(tǒng)各異ARM軟件設(shè)計與代碼分析48嵌入式軟件設(shè)計和調(diào)試流程編輯創(chuàng)建工程添加文件、編寫程序匯編語言加C語言編譯配置編譯
14、、匯編和連接參數(shù)編寫連接腳本文件編譯調(diào)試連接調(diào)試器下載程序運行、調(diào)試固化通過仿真器燒寫flash專用或通用的編程器通過bootloader燒寫flashARM軟件設(shè)計與代碼分析49交叉編譯GNU交叉編譯編譯.c arm-elf-gcc匯編.S arm-elf-gas連接.o arm-elf-ld操作文件匯編文件.SC文件.c鏈接腳本文件ldscript庫文件.o .lib .a生成調(diào)試格式文件.elfDWARF-1DWARF-2生成bin文件elf2binarm-elf-objcopyARM軟件設(shè)計與代碼分析50鏈接腳本段Text段rodata段data段bss段符號Image_RO_Limi
15、t Image_RW_BaseImage_ZI_BaseImage_ZI_LimitGCC庫專用調(diào)試信息ARM軟件設(shè)計與代碼分析51鏈接腳本示例程序在SDRAM中運行程序在FLASH中運行ARM軟件設(shè)計與代碼分析52GCC庫GCC庫標準C函數(shù)庫lib.a -lc標準數(shù)學函數(shù)庫libm.a -lm標準函數(shù)庫的支持庫libg.a -lgGCC的支持庫libgcc.a -lgcc鏈接排列順序-lm lc lgcc -lgARM軟件設(shè)計與代碼分析53JX44B0啟動代碼分析ARM軟件設(shè)計與代碼分析在基于ARM7TDMI core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復位時都從地址0 x00000000開始執(zhí)行,
16、因此在這個地址處安排的通常就是系統(tǒng)的啟動代碼。它通常也是BootLoader程序的一部分,可以在啟動代碼基礎(chǔ)上編寫B(tài)ootLoader。用匯編語言編寫。啟動代碼是在復位后運行其它程序之前運行的一段小程序。通過它,初始化硬件設(shè)備、建立內(nèi)存空間的映射圖(JX44B0不需要),從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用C函數(shù)準備好正確的環(huán)境。54啟動代碼的移植和修改ARM軟件設(shè)計與代碼分析啟動代碼除了依賴于 CPU 的體系結(jié)構(gòu)外,實際上也依賴于具體的嵌入式板級設(shè)備的配置,比如板卡的硬件地址分配,RAM芯片的類型,其他外設(shè)的類型等。對于兩塊不同的嵌入式板而言,即使它們是基于同一種 CPU
17、而構(gòu)建的,如果他們的硬件資源和配置不一致的話,要想讓運行在一塊板子上的啟動代碼也能運行在另一塊板子上,也還是需要作一些必要的修改。 55啟動代碼流程圖啟動代碼的功能:RAM初始化,設(shè)置各個部件的時鐘和片選,將BootLoader拷貝到RAM中,設(shè)置堆棧,調(diào)用C函數(shù)。注意:在本階段,特別是在堆棧設(shè)置之前,進行函數(shù)調(diào)用(也有些匯編子程序不需要使用堆棧)或者使用堆棧保存數(shù)據(jù)將產(chǎn)生不可預知的結(jié)果;ARM軟件設(shè)計與代碼分析56設(shè)置中斷向量表該段向量表除了復位異常外,只有位于0地址處有效,也就是必須將該段代碼燒寫到FLASH中。復位異常直接跳轉(zhuǎn)到ResetHandler處,它是相對跳轉(zhuǎn),位置無關(guān)。 其余的
18、異常將跳轉(zhuǎn)到0c000008+向量地址的位置,使用絕對跳轉(zhuǎn)。ARM軟件設(shè)計與代碼分析57復位入口:切換到超級模式系統(tǒng)復位成功后,將自動進入SVC模式在初始化之前必須關(guān)閉中斷,以免引起異常 LOCKOUT:0 xc0Bit6,7 = 1MODE_MASK:0 x1fSUP_MODE:0 x13ARM軟件設(shè)計與代碼分析58設(shè)置中斷模式并禁止中斷設(shè)置S3C44B0 INTCON寄存器缺省值為0 x07,可以 不作該工作0 x01e000000 x01e00000ARM軟件設(shè)計與代碼分析59關(guān)閉看門狗設(shè)置S3C44B0 WTCON寄存器必須設(shè)置0 x01e000000 x01d30000ARM軟件設(shè)計
19、與代碼分析60系統(tǒng)配置寄存器使能回寫buffer打開Cache0 x01e000000 x01c00000ARM軟件設(shè)計與代碼分析61設(shè)置非Cache區(qū)域使能回寫buffer打開Cache00 x0b0000000c70000000 xc7320000ARM軟件設(shè)計與代碼分析62端口設(shè)置ARM軟件設(shè)計與代碼分析63設(shè)置外部中斷的觸發(fā)方式0 x01e000000 x01d20050ARM軟件設(shè)計與代碼分析64配置總線訪問寬度ARM軟件設(shè)計與代碼分析65配置總線訪問時序ARM軟件設(shè)計與代碼分析66C代碼初始化ARM軟件設(shè)計與代碼分析67堆棧初始化ARM軟件設(shè)計與代碼分析68跳轉(zhuǎn)到C入口函數(shù)ARM軟
20、件設(shè)計與代碼分析69JX44B0 BOOTLOADER分析ARM軟件設(shè)計與代碼分析BootLoader是在啟動代碼的基礎(chǔ)之上,通常啟動代碼包含于BootLoader之中BootLoader常用于引導操作系統(tǒng)或者應用程序BootLoader可以包含一些簡單的調(diào)試手段70BootLoader的基本概念BootLoader是系統(tǒng)加電后運行的第一段軟件代碼。嵌入式系統(tǒng)中,整個系統(tǒng)的加載啟動任務完全由 BootLoader來完成。比如在一個基于ARM7TDMI core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復位時都從地址0 x00000000開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的BootLoader程序。簡
21、單地說,BootLoader就是在操作系統(tǒng)內(nèi)核或用戶應用程序運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖(有的CPU沒有內(nèi)存映射功能如S3C44B0),從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核或用戶應用程序準備好正確的環(huán)境。通常,BootLoader 是依賴于硬件而實現(xiàn)的,特別是在嵌入式領(lǐng)域,為嵌入式系統(tǒng)建立一個通用的 BootLoader 是很困難的。ARM軟件設(shè)計與代碼分析71BootLoader 的移植和修改BootLoader除了依賴于 CPU 的體系結(jié)構(gòu)外,BootLoader 實際上也依賴于具體的嵌入式板級設(shè)備的
22、配置,比如板卡的硬件地址分配,RAM芯片的類型,其他外設(shè)的類型等。對于兩塊不同的嵌入式板而言,即使它們是基于同一種 CPU而構(gòu)建的,如果他們的硬件資源和配置不一致的話,要想讓運行在一塊板子上的BootLoader程序也能運行在另一塊板子上,也還是需要作一些必要的修改。 ARM軟件設(shè)計與代碼分析72BootLoader 的安裝系統(tǒng)加電或復位后,所有的CPU通常都從CPU制造商預先安排的地址上取指令。比如,S3C44B0在復位時都從地址 0 x00000000 取它的第一條指令。嵌入式系統(tǒng)通常都有某種類型的固態(tài)存儲設(shè)備(比如:ROM、EEPROM或FLASH等)被安排這個起始地址上,因此在系統(tǒng)加電
23、后,CPU將首先執(zhí)行BootLoader程序。也就是說對于基于S3C44B0的這套系統(tǒng),我們的BootLoader是從0地址開始存放的,而這塊起始地址需要采用可引導的固態(tài)存儲設(shè)備如FLASH。ARM軟件設(shè)計與代碼分析73用來控制 BootLoader 的設(shè)備或機制串口通訊是最簡單也是最廉價的一種雙機通訊設(shè)備,所以往往在BootLoader中主機和目標機之間都通過串口建立連接,BootLoader 程序在執(zhí)行時通常會通過串口來進行 I/O,比如:輸出打印信息到串口,從串口讀取用戶控制字符等。當然如果認為串口通訊速度不夠,也可以采用網(wǎng)絡(luò)或者USB通訊,那么相應的在BootLoader中就需要編寫各
24、自的驅(qū)動。ARM軟件設(shè)計與代碼分析74Boot Loader 的操作模式啟動加載模式:這種模式也稱為自主(Autonomous)模式。也即BootLoader從目標機上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到RAM中運行,整個過程并沒有用戶的介入。這種模式是BootLoader的正常工作模式。 下載模式:在這種模式下,目標機上的BootLoader將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機下載文件,比如:下載應用程序、數(shù)據(jù)文件、內(nèi)核映像等。從主機下載的文件通常首先被BootLoader保存到目標機的RAM中,然后再被 BootLoader寫到目標機上的固態(tài)存儲設(shè)備中。BootLoader 的這種模式
25、通常在系統(tǒng)更新時使用。工作于這種模式下的 BootLoader 通常都會向它的終端用戶提供一個簡單的命令行接口。 在教學系統(tǒng)中提供的BootLoader中沒有實現(xiàn)自主模式,可以通過修改代碼來實現(xiàn)該功能。ARM軟件設(shè)計與代碼分析75BootLoader與主機間文件傳輸?shù)耐ㄐ旁O(shè)備及協(xié)議最常見的情況就是,目標機上的 Boot Loader 通過串口與主機之間進行文件傳輸,傳輸可以簡單的采用直接數(shù)據(jù)收發(fā),當然在串口上也可以采用xmodemymodemzmodem 協(xié)議以及在以太網(wǎng)上采用TFTP協(xié)議。ARM軟件設(shè)計與代碼分析76BootLoader的主要任務與典型結(jié)構(gòu)框架從操作系統(tǒng)的角度看,BootLo
26、ader的總目標就是正確地調(diào)用內(nèi)核來執(zhí)行。 大多數(shù)BootLoader都分為stage1和stage2兩大部分。依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在stage1中,而且通常都用匯編語言來實現(xiàn),以達到短小精悍的目的,也就是前面說的啟動代碼。而stage2 則通常用C語言來實現(xiàn),這樣可以實現(xiàn)復雜的功能,而且代碼會具有更好的可讀性和可移植性。 ARM軟件設(shè)計與代碼分析77BootLoader的主要任務與典型結(jié)構(gòu)框架BootLoader的stage1通常包括以下步驟為加載 BootLoader 的 stage2 準備 RAM 空間拷貝 BootLoader 的 stage2 到
27、 RAM 空間中設(shè)置好堆棧跳轉(zhuǎn)到 stage2 的 C 入口點BootLoader的stage2通常包括以下步驟初始化本階段要使用到的硬件設(shè)備調(diào)用應用程序或啟動內(nèi)核ARM軟件設(shè)計與代碼分析78Stage 1初始化流程圖stage 1的功能: RAM初始化,設(shè)置各個部件的時鐘和片選,將BootLoader拷貝到RAM中,設(shè)置堆棧,調(diào)用Stage 2。注意:在本階段,特別是在堆棧設(shè)置之前,進行函數(shù)調(diào)用(也有些匯編子程序不需要使用堆棧)或者使用堆棧保存數(shù)據(jù)將產(chǎn)生不可預知的結(jié)果;ARM軟件設(shè)計與代碼分析79Stage 2流程圖stage 2的功能:初始化串口,顯示菜單,通過菜單獲取用戶輸入,并執(zhí)行相應
28、的操作。ARM軟件設(shè)計與代碼分析80Bootloader更新程序流程圖通過BootLoader更新程序的流程。注意為了使用Bootloader更新FLASH中的程序,需要首先將Bootloader搬遷到RAM中運行。ARM軟件設(shè)計與代碼分析81嵌入式實時操作系統(tǒng)ARM軟件設(shè)計與代碼分析將在后面介紹82板級支持包ARM軟件設(shè)計與代碼分析BSP(板級支持包)是介于底層硬件和操作系統(tǒng)之間的軟件層次,它完成系統(tǒng)上電后最初的硬件和軟件初始化,并對底層硬件進行封裝,使得操作系統(tǒng)不再面對具體的操作。83板級支持包的特點ARM軟件設(shè)計與代碼分析硬件相關(guān)性:因為嵌入式實時系統(tǒng)的硬件環(huán)境具有應用相關(guān)性,所以,作為
29、高層軟件與硬件之間的接口,BSP必須為操作系統(tǒng)提供操作和控制具體硬件的方法。操作系統(tǒng)相關(guān)性:不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式。84板級支持包的功能ARM軟件設(shè)計與代碼分析85板級支持包的功能ARM軟件設(shè)計與代碼分析嵌入式系統(tǒng)初始化片級初始化板級初始化系統(tǒng)級初始化硬件相關(guān)的設(shè)備驅(qū)動程序 和BootLoader存在一定的重疊86系統(tǒng)級初始化ARM軟件設(shè)計與代碼分析這是一個以軟件初始化為主的過程,主要進行操作系統(tǒng)初始化。BSP將控制轉(zhuǎn)交給操作系統(tǒng),由操作系統(tǒng)進行余下的初始化操作。包括加載和初始化與硬件無關(guān)的設(shè)備驅(qū)動程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化其他
30、系統(tǒng)軟件模塊,比如網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等;最后,操作系統(tǒng)創(chuàng)建應用程序環(huán)境并將控制轉(zhuǎn)交給應用程序的入口。87硬件相關(guān)的驅(qū)動程序ARM軟件設(shè)計與代碼分析與初始化過程相反,硬件相關(guān)的設(shè)備驅(qū)動程序的初始化和使用通常是一個從高層到底層的過程。盡管BSP中包含硬件相關(guān)的設(shè)備驅(qū)動程序,但是這些設(shè)備驅(qū)動程序通常不直接由BSP使用,而是在系統(tǒng)初始化過程中由BSP把它們與操作系統(tǒng)中通用的設(shè)備驅(qū)動程序關(guān)聯(lián)起來,并在隨后的應用中由通用的設(shè)備驅(qū)動程序調(diào)用,實現(xiàn)對硬件設(shè)備的操作。88JX44B0應用代碼設(shè)計及中斷處理ARM軟件設(shè)計與代碼分析連接腳本89JX44B0應用代碼中斷向量ARM軟件設(shè)計與代碼分析起始地址0 x0c000008除復位異常外,其余異常入口地址由FLASH跳轉(zhuǎn)得到90JX44B0中斷處理流程執(zhí)行0 x18處指令:LDR pc, = 0 x0c000020,由Bootloader控制執(zhí)行0 x0c000020處指令:HandlerIRQ,ramstart.s執(zhí)行HandlerIRQ,ramstart.s執(zhí)行HandleIRQ處保存的中斷分發(fā)例程,ramstart.s中初始化為IsrIRQARM軟件設(shè)計與代碼分析91
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit4 Section B 3a~Self Check教學設(shè)計-2024-2025學年人教版英語八年級上冊
- 2025年醫(yī)用植入材料項目合作計劃書
- 2024云南省曲靖市公開選拔市屬國有企業(yè)領(lǐng)導人員及市場化選聘職業(yè)經(jīng)理人(10人)筆試參考題庫附帶答案詳解
- 第6單元第3節(jié)第1課時《兩位數(shù)減一位數(shù)(不退位)、整十數(shù)》導學案設(shè)計
- 全國清華大學版信息技術(shù)九年級上冊第1單元第3課《行走天涯-條件判斷》教學設(shè)計
- Unit 2 Morals and Virtues Reading and Thinking 教學設(shè)計-2023-2024學年高中英語人教版(2019)必修第三冊
- 2025至2030年中國椰殼煙缸數(shù)據(jù)監(jiān)測研究報告
- 機械制造技術(shù)基礎(chǔ) 第二章 外圓磨床液壓傳動系統(tǒng)學習課件
- 第二章第三節(jié)地圖的選擇和應用 教學設(shè)計-2024-2025學年人教版七年級地理上冊
- 2025年三聚氰胺甲醛塑料項目發(fā)展計劃
- 發(fā)展?jié)h語-初級讀寫-I-第八課
- 跨境電商基礎(chǔ)PPT完整全套教學課件
- 初中物理科技小論文【6篇】
- 蕉嶺縣幅地質(zhì)圖說明書
- 學院中層正副職民主測評表
- 不寧腿綜合征
- 檢修期間安全措施
- 2023年湖南中醫(yī)藥高等??茖W校單招考試職業(yè)技能考試模擬試題及答案解析
- 八年級數(shù)學下冊同步練習(全冊)
- 安全生產(chǎn)條件核查表
- 冀教版六年級下冊數(shù)學全冊教案完整版教學設(shè)計(含教材分析、教學計劃及進度表)
評論
0/150
提交評論