嵌入式軟件系統(tǒng)設(shè)計(jì)課件_第1頁(yè)
嵌入式軟件系統(tǒng)設(shè)計(jì)課件_第2頁(yè)
嵌入式軟件系統(tǒng)設(shè)計(jì)課件_第3頁(yè)
嵌入式軟件系統(tǒng)設(shè)計(jì)課件_第4頁(yè)
嵌入式軟件系統(tǒng)設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩207頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式系統(tǒng)教案嵌入式軟件系統(tǒng)設(shè)計(jì)1/5/2023嵌入式系統(tǒng)教案嵌入式軟件系統(tǒng)設(shè)計(jì)12/28/2022提綱13245嵌入式軟件開(kāi)發(fā)過(guò)程ARM軟件設(shè)計(jì)與代碼分析ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具67第六章嵌入式軟件系統(tǒng)設(shè)計(jì)2提綱13245嵌入式軟件開(kāi)發(fā)過(guò)程ARM軟件設(shè)計(jì)與代碼分析AR嵌入式系統(tǒng)軟件開(kāi)發(fā)流程軟件需求分析:確定設(shè)計(jì)任務(wù)和目標(biāo),并提煉出設(shè)計(jì)規(guī)格說(shuō)明書(shū),作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。嵌入式軟件開(kāi)發(fā)過(guò)程概要設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的需求,包括軟件模塊的劃分、系統(tǒng)的軟件開(kāi)發(fā)工具選擇以及關(guān)鍵問(wèn)題的論證等。詳細(xì)設(shè)計(jì):詳細(xì)描述各個(gè)模塊的實(shí)現(xiàn)方法與過(guò)程,模塊間接口等問(wèn)題,以作為編碼人員的編碼準(zhǔn)則。編碼3嵌入式系統(tǒng)軟件開(kāi)發(fā)流程軟件需求分析:確定設(shè)計(jì)任務(wù)和目標(biāo),并提嵌入式系統(tǒng)的開(kāi)發(fā)流程單元調(diào)試:編碼完成后,對(duì)各個(gè)模塊進(jìn)行單元調(diào)試,以保證模塊正常工作。嵌入式軟件開(kāi)發(fā)過(guò)程集成調(diào)試4嵌入式系統(tǒng)的開(kāi)發(fā)流程單元調(diào)試:編碼完成后,對(duì)各個(gè)模塊進(jìn)行單元常用調(diào)試方法軟件仿真駐留監(jiān)控程序硬件要求高,一般在硬件穩(wěn)定之后進(jìn)行需要占用目標(biāo)板上的一部分資源不能對(duì)程序的全速運(yùn)行進(jìn)行完全仿真JTAG仿真器完全非插入式調(diào)試,不使用片上資源,無(wú)需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口仿真效果更加接近于目標(biāo)硬件在線(xiàn)仿真器ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具5常用調(diào)試方法軟件仿真ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具5處理器的選擇處理性能

技術(shù)指標(biāo)

功耗

操作系統(tǒng)和軟件支持工具的選擇

是否內(nèi)置調(diào)試工具

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具6處理器的選擇處理性能ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具6操作系統(tǒng)和軟件支持工具的選擇

如果用戶(hù)希望使用WindowsCE、Linux等操作系統(tǒng),就需要選擇ARM720T以上帶有MMU(MemoryManagementUnit)功能的ARM芯片。ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都帶有MMU功能。而ARM7TDMI則沒(méi)有MMU,不支持WindowsCE和Linux,但目前有uCLinux以及uC/OS-II等不需要MMU支持的操作系統(tǒng)可運(yùn)行于ARM7TDMI硬件平臺(tái)之上。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具7操作系統(tǒng)和軟件支持工具的選擇如果用戶(hù)希望使用Windows操作系統(tǒng)和軟件支持工具的選擇

如果決定采用Linux、WindowsCE、vxWorks等操作系統(tǒng)時(shí),在選擇處理器時(shí)應(yīng)該盡量選擇該操作系統(tǒng)已經(jīng)支持的處理器,這樣可以大大加快開(kāi)發(fā)進(jìn)度,降低難度。選擇不同的操作系統(tǒng),其軟件開(kāi)發(fā)過(guò)程和調(diào)試手段各不相同,你的選擇方案是否能夠提供各個(gè)開(kāi)發(fā)階段(包括bootloader開(kāi)發(fā)、操作系統(tǒng)移植、驅(qū)動(dòng)開(kāi)發(fā)和應(yīng)用開(kāi)發(fā))所需的軟件支持工具也是一個(gè)必須考慮的因素。

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具8操作系統(tǒng)和軟件支持工具的選擇如果決定采用Linux、Win硬件驅(qū)動(dòng)程序的調(diào)試如果硬件平臺(tái)是自行設(shè)計(jì)的,必須首先對(duì)硬件進(jìn)行調(diào)試,硬件調(diào)試成功是進(jìn)行操作系統(tǒng)移植和應(yīng)用程序開(kāi)發(fā)的一個(gè)基本前提。這個(gè)過(guò)程通常是通過(guò)編寫(xiě)一些簡(jiǎn)單的測(cè)試程序直接驅(qū)動(dòng)硬件以驗(yàn)證硬件是否正確,這些程序可以基于操作系統(tǒng)進(jìn)行編程,也可以不使用操作系統(tǒng),而且后一種方法來(lái)得更加簡(jiǎn)單,調(diào)試也更方便和快捷。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具9硬件驅(qū)動(dòng)程序的調(diào)試如果硬件平臺(tái)是自行設(shè)計(jì)的,必須首先對(duì)硬件進(jìn)操作系統(tǒng)的選擇和移植μC/OS-IILinux/uClinuxWindowsCEvxWorksARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具10操作系統(tǒng)的選擇和移植μC/OS-IIARM軟件開(kāi)發(fā)流程和開(kāi)μC/OS-II免費(fèi)公開(kāi)源代碼、結(jié)構(gòu)小巧、具有可剝奪實(shí)時(shí)內(nèi)核的實(shí)時(shí)操作系統(tǒng)。其內(nèi)核提供任務(wù)調(diào)度與管理、時(shí)間管理、任務(wù)間同步與通信、內(nèi)存管理和中斷服務(wù)等功能。它可以基于ROM運(yùn)行(ROMable)、可裁減,具有高度移植性。μC/OS-II實(shí)時(shí)嵌入式內(nèi)核在工業(yè)控制、數(shù)據(jù)采集等領(lǐng)域應(yīng)用廣泛。但μC/OS-II內(nèi)核不支持文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等功能,而且沒(méi)有提供統(tǒng)一的硬件驅(qū)動(dòng)程序接口和開(kāi)發(fā)工具鏈,在復(fù)雜應(yīng)用中需要考慮內(nèi)核以外功能的實(shí)現(xiàn)難易程度。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具11μC/OS-II免費(fèi)公開(kāi)源代碼、結(jié)構(gòu)小巧、具有可剝奪實(shí)時(shí)內(nèi)μC/OS-II在μC/OS-II開(kāi)發(fā)中,內(nèi)核、驅(qū)動(dòng)程序和應(yīng)用程序都是集中編譯,μC/OS-II編譯以后的二進(jìn)制代碼中既包含內(nèi)核代碼,也包含驅(qū)動(dòng)程序和應(yīng)用程序的代碼。μC/OS-II沒(méi)有提供統(tǒng)一的開(kāi)發(fā)工具鏈,μC/OS-II程序的編譯應(yīng)該采用支持所選處理器的編譯器。對(duì)于ARM處理器,可以在Windows環(huán)境中使用ADS1.2、ADTIDE中編譯μC/OS-II,也可以在Linux環(huán)境中使用GNUGCC編譯μC/OS-II。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具12μC/OS-II在μC/OS-II開(kāi)發(fā)中,內(nèi)核、驅(qū)動(dòng)程序和Linux/uClinuxLinux/uClinux是對(duì)于有MMU和沒(méi)有MMU的處理器的Linux解決方案。Linux/uClinux提供強(qiáng)大的文件系統(tǒng)、網(wǎng)絡(luò)功能、GUI等軟件模組支持,而且這些功能都是可以裁減的,同時(shí)它還提供了標(biāo)準(zhǔn)的驅(qū)動(dòng)程序接口和軟件開(kāi)發(fā)接口,便于用戶(hù)編程和程序維護(hù)。Linux/uClinux自身具備一整套工具鏈(GNUGCC),包括編譯和調(diào)試工具,用戶(hù)可以自行建立嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境和交叉運(yùn)行環(huán)境。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具13Linux/uClinuxLinux/uClinux是對(duì)于Linux/uClinux對(duì)于ARM處理器,Linux/uClinux內(nèi)核、驅(qū)動(dòng)程序以及應(yīng)用程序的編譯都在Linux環(huán)境中使用GNUGCC完成。對(duì)于內(nèi)核和驅(qū)動(dòng)程序的調(diào)試通常借助于運(yùn)行于Linux/uClinux之前的bootloader來(lái)完成,只有在很少的情況下需要借助在線(xiàn)仿真器完成。對(duì)于應(yīng)用程序的調(diào)試則可以完全拋棄在線(xiàn)仿真器,使用GDB完成。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具14Linux/uClinux對(duì)于ARM處理器,Linux/uWindowsCEWindowsCE是Windows界面在嵌入式處理器中的實(shí)現(xiàn),它提供了友好的人機(jī)交互界面和強(qiáng)大的二次開(kāi)發(fā)功能。WindowsCE包括四大基本模塊,它們提供了操作系統(tǒng)的關(guān)鍵特性,分別是:內(nèi)核(Kernel)模塊、對(duì)象存儲(chǔ)(ObjectStore)模塊、GWES(用戶(hù)、應(yīng)用程序和操作系統(tǒng)之間的圖形用戶(hù)界面)模塊和通信(Communication)模塊。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具15WindowsCEWindowsCE是Windows界面WindowsCEWindowsCE擁有完善的軟件支持開(kāi)發(fā)工具,WindowsCE的核心移植和驅(qū)動(dòng)開(kāi)發(fā)使用專(zhuān)門(mén)的操作系統(tǒng)定制工具:WindowsCEPlatformBuilder(簡(jiǎn)稱(chēng)PB)。而應(yīng)用程序的開(kāi)發(fā)則有嵌入式開(kāi)發(fā)工具包EmbeddedVisualTools,包括EmbeddedVisualC++(簡(jiǎn)稱(chēng)EVC)和EmbeddedVisualBasic(簡(jiǎn)稱(chēng)EVB)等。同時(shí)EmbeddedVisualTools下還可以進(jìn)行部分驅(qū)動(dòng)程序的開(kāi)發(fā)。同時(shí)在WindowsCE中還提供了用于WindowsCE開(kāi)發(fā)的bootloader:EBOOT。

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具16WindowsCEWindowsCE擁有完善的軟件支持開(kāi)vxWorksVxWorks是專(zhuān)門(mén)為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的操作系統(tǒng)內(nèi)核,為程序員提供了高效的實(shí)時(shí)多任務(wù)調(diào)度、中斷管理,實(shí)時(shí)的系統(tǒng)資源以及實(shí)時(shí)的任務(wù)間通信。在各種CPU平臺(tái)上提供了統(tǒng)一的編程接口和一致的運(yùn)行特性,盡可能的屏蔽了不同CPU之間的底層差異。應(yīng)用程序員可以將盡可能多的精力放在應(yīng)用程序本身,而不必再去關(guān)心系統(tǒng)資源的管理?;赩xWorks操作系統(tǒng)的應(yīng)用程序可以在不同CPU平臺(tái)上輕松移植。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具17vxWorksVxWorks是專(zhuān)門(mén)為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)vxWorksVxWorks包括了進(jìn)程管理、存儲(chǔ)管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個(gè)部分。VxWorks只占用了很小的存儲(chǔ)空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運(yùn)行。TornadoII是為開(kāi)發(fā)VxWorks應(yīng)用系統(tǒng)提供的集成開(kāi)發(fā)環(huán)境,TornadoII中包含的工程管理軟件,可以將用戶(hù)自己的代碼與VxWorks的核心有效的組合起來(lái),可以按用戶(hù)的需要裁剪配置VxWorks內(nèi)核。

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具18vxWorksVxWorks包括了進(jìn)程管理、存儲(chǔ)管理、設(shè)備ARM主流開(kāi)發(fā)工具Windows操作系統(tǒng)ARMADS/SDT+調(diào)試器GNU+Cygwin+調(diào)試器ARMSDT+簡(jiǎn)易電纜Linux操作系統(tǒng)GNU+GDBARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具19ARM主流開(kāi)發(fā)工具Windows操作系統(tǒng)ARM軟件開(kāi)發(fā)流程和ARM嵌入式開(kāi)發(fā)模式(ARMADS/SDT+調(diào)試器)ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具20ARM嵌入式開(kāi)發(fā)模式(ARMADS/SDT+調(diào)試器)ADS與Multi-ICE

ARMADS全稱(chēng)為ARMDeveloperSuite,是ARM公司推出的用于ARM程序設(shè)計(jì)、開(kāi)發(fā)和調(diào)試的集成開(kāi)發(fā)工具?,F(xiàn)在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。ADS由命令行開(kāi)發(fā)工具,ARM運(yùn)行時(shí)庫(kù),圖形化集成開(kāi)發(fā)環(huán)境(CodeWarrior和AXD),實(shí)用程序和支持軟件組成。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具21ADS與Multi-ICEARMADS全稱(chēng)為ARMDeADS命令行開(kāi)發(fā)工具

ARMC(C++)編譯器ARM匯編器(armasm)ARM鏈接器(armlink)符號(hào)調(diào)試器(armsd)ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具22ADS命令行開(kāi)發(fā)工具ARMC(C++)編譯器ARM軟件ARM運(yùn)行時(shí)庫(kù)ANSIC函數(shù)庫(kù):(armlib)C++函數(shù)庫(kù):ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具23ARM運(yùn)行時(shí)庫(kù)ANSIC函數(shù)庫(kù):(armlib)ARM軟圖形化集成開(kāi)發(fā)環(huán)境(CodeWarrior和AXD)

CodeWarriorforARM

ADS調(diào)試器實(shí)用程序fromELF

armar

Flashdownloader

支持的軟件ARMulatorARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具24圖形化集成開(kāi)發(fā)環(huán)境(CodeWarrior和AXD)CoADTforARM集成開(kāi)發(fā)系統(tǒng)ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介25ADTforARM集成開(kāi)發(fā)系統(tǒng)ARM軟件開(kāi)發(fā)工具-ADTADT1000EmulatorforARMARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

26ADT1000EmulatorforARMARM軟件ADT1000EmulatorforARMARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

ADTEmulatorforARM是連接主機(jī)核目標(biāo)機(jī)之間的硬件設(shè)備,它實(shí)現(xiàn)ADTIDEforARM與目標(biāo)機(jī)之間的連接。它具有如下特征:支持ARM核CPU非插入式調(diào)試,無(wú)需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口2.5V/3.3V/5V兼容電平接口支持標(biāo)準(zhǔn)的14/20針JTAG接口運(yùn)行狀態(tài)指示與主機(jī)之間通過(guò)并口連接下載速度達(dá)到25Kbytes/S27ADT1000EmulatorforARMARM軟件ADTIDEforARMARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

28ADTIDEforARMARM軟件開(kāi)發(fā)工具-ADTIADTIDEforARM主要特征-可視化編程環(huán)境ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

支持ARM7、ARM9、SecurCore等。運(yùn)行于Windows98、NT、2000、XP等平臺(tái)。中文、英文版本支持可視化的源碼編輯和工程管理功能界面友好,使用方便:類(lèi)似MSVisualStudio的用戶(hù)界面,支持打印功能,支持文件內(nèi)查找功能和FindinFiles功能29ADTIDEforARM主要特征-可視化編程環(huán)境AADTIDEforARM主要特征-可視化編程環(huán)境ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

工程管理器:ADTIDE提供圖形化的工程管理工具,實(shí)現(xiàn)文件級(jí)、文件目錄級(jí)、工程級(jí)的多級(jí)編譯連接選項(xiàng)管理以及工程級(jí)的調(diào)試參數(shù)管理源碼編輯器:支持標(biāo)準(zhǔn)的文本編輯功能,支持C語(yǔ)言、匯編語(yǔ)言語(yǔ)法高亮顯示輔助編輯工具:提供一系列輔助編輯工具,方便開(kāi)發(fā)人員。包括:多剪貼板工具、代碼模板工具、頭文件和源文件切換工具、注釋工具、符號(hào)配對(duì)書(shū)寫(xiě)工具等多種輔助編輯工具。30ADTIDEforARM主要特征-可視化編程環(huán)境AADTIDEforARM主要特征-交叉編譯功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

支持開(kāi)發(fā)語(yǔ)言:ANSIC;EmbeddedC++;匯編語(yǔ)言編譯工具:使用著名優(yōu)秀自由軟件GNU的GCC交叉編譯工具,并經(jīng)過(guò)優(yōu)化和嚴(yán)格測(cè)試,支持C語(yǔ)言、匯編語(yǔ)言等編譯參數(shù)設(shè)置:完全圖形界面方式的編譯參數(shù)設(shè)置,提供可視化的設(shè)置功能。支持工程級(jí)、文件目錄級(jí)、文件級(jí)編譯參數(shù)設(shè)置31ADTIDEforARM主要特征-交叉編譯功能ARADTIDEforARM主要特征-調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

同時(shí)提供了圖形和命令行兩種調(diào)試方式程序的單步執(zhí)行程序下載存儲(chǔ)區(qū)下載和上載功能。工程級(jí)調(diào)試參數(shù)管理支持源程序、反匯編程序和混合窗口顯示,支持ARM/THUMB方式顯示具有與MSVisualStudio類(lèi)似的調(diào)試菜單功能:Go,Stop,Reset,Restart,Stepinto,Stepover,Stepout,RuntoCursor等豐富的示例程序32ADTIDEforARM主要特征-調(diào)試功能ARM軟ADTIDEforARM主要特征-調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

斷點(diǎn)功能:支持軟件斷點(diǎn)和硬件斷點(diǎn),實(shí)現(xiàn)斷點(diǎn)設(shè)置、斷點(diǎn)屏蔽、斷點(diǎn)取消、斷點(diǎn)列表等功能變量監(jiān)視功能:隨程序運(yùn)行同步更新變量,即時(shí)修改變量值,可設(shè)置自動(dòng)/手動(dòng)刷新方式、十進(jìn)制/十六進(jìn)制顯示ARM各種模式的寄存器即時(shí)查看與修改,當(dāng)前模式指示,寄存器值修改時(shí)紅色突顯存儲(chǔ)器查看與修改,可設(shè)置自動(dòng)/手動(dòng)刷新方式、字節(jié)/雙字節(jié)/四字節(jié)顯示、大/小端方式顯示,存儲(chǔ)器值修改時(shí)紅色突顯33ADTIDEforARM主要特征-調(diào)試功能ARM軟ADTIDEforARM主要特征-調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

函數(shù)堆棧顯示,可設(shè)置自動(dòng)/手動(dòng)刷新方式、十進(jìn)制/十六進(jìn)制顯示、參數(shù)值顯示,參數(shù)類(lèi)型顯示板上寄存器(OnBoardRegister)的查看和修改,可以查看支持CPU的所有板上寄存器的具體意義、當(dāng)前值、各個(gè)位的意義,可設(shè)置自動(dòng)/手動(dòng)刷新方式、二進(jìn)制/十進(jìn)制/十六進(jìn)制顯示、大/小端方式顯示,支持十進(jìn)制/十六進(jìn)制方式修改寄存器值,寄存器值修改時(shí)紅色突顯。flash在線(xiàn)編程器,支持對(duì)多種flash芯片的空白檢查、擦除、編程、校驗(yàn)等操作,支持單一操作和自動(dòng)操作兩種操作方式,支持8/16/32位flash訪(fǎng)問(wèn)寬度,支持多片flash同時(shí)編程,編程速度達(dá)15Kbytes/s。提供統(tǒng)一的flash編程接口,可以方便地添加flash編程方案。34ADTIDEforARM主要特征-調(diào)試功能ARM軟ADTIDEforARMARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

ADTIDE(Arm7Lpt、Arm9Lpt、SoftSim、Arm7Simple)用戶(hù)手冊(cè)、編程指南豐富例程35ADTIDEforARMARM軟件開(kāi)發(fā)工具-ADTI多版本支持ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

軟件仿真版本ARM7版本ARM9版本簡(jiǎn)易仿真版本36多版本支持ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

多工程管理ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

工程當(dāng)前活動(dòng)工程37多工程管理ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

可視化編輯器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

編輯菜單語(yǔ)法高亮編輯器輔助編輯工具條書(shū)簽38可視化編輯器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

GCC交叉編譯ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介編譯菜單編譯工具條編譯結(jié)果輸出錯(cuò)誤定位39GCC交叉編譯ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介編譯菜單編譯器設(shè)置ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介多配置管理多工程設(shè)管理多參數(shù)配置40編譯器設(shè)置ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介多配置管理多匯編器設(shè)置ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介多配置管理多工程設(shè)管理多參數(shù)配置41匯編器設(shè)置ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介多配置管理多連接器設(shè)置ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介多配置管理多工程設(shè)管理多參數(shù)配置42連接器設(shè)置ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介多配置管理多調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

調(diào)試菜單調(diào)試工具條命令行調(diào)試窗口43調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

多種調(diào)試模式ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

源碼模式混合模式匯編模式44多種調(diào)試模式ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

斷點(diǎn)ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

斷點(diǎn)列表斷點(diǎn)45斷點(diǎn)ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

存儲(chǔ)器窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介字模式半字模式字節(jié)模式修改凸顯標(biāo)記46存儲(chǔ)器窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介字模式半字模存儲(chǔ)區(qū)上載下載功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

存儲(chǔ)區(qū)上載存儲(chǔ)區(qū)下載47存儲(chǔ)區(qū)上載下載功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介寄存器觀察窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

多模式寄存器顯示修改凸顯標(biāo)記48寄存器觀察窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

函數(shù)調(diào)用棧窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

函數(shù)調(diào)用棧49函數(shù)調(diào)用棧窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

變量觀察窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

局部變量全局變量多個(gè)觀察窗口50變量觀察窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

命令窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

51命令窗口ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

單步調(diào)試-STEPINTOARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介52單步調(diào)試-STEPINTOARM軟件開(kāi)發(fā)工具-ADT單步調(diào)試-STEPOVERARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

53單步調(diào)試-STEPOVERARM軟件開(kāi)發(fā)工具-ADT單步調(diào)試-STEPOUTARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

54單步調(diào)試-STEPOUTARM軟件開(kāi)發(fā)工具-ADTI單步調(diào)試-RUNTOCURSORARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

55單步調(diào)試-RUNTOCURSORARM軟件開(kāi)發(fā)工具-板上寄存器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介寄存器組寄存器寄存器位域熱點(diǎn)描述信息修改凸顯標(biāo)記56板上寄存器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介寄存器組寄存板上寄存器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介57板上寄存器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介57FLASH在線(xiàn)編程器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

58FLASH在線(xiàn)編程器ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介工具菜單ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

可自定制59工具菜單ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

在線(xiàn)幫助ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

60在線(xiàn)幫助ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

嵌入式軟件開(kāi)發(fā)無(wú)操作系統(tǒng)的軟件開(kāi)發(fā)啟動(dòng)代碼應(yīng)用程序基于操作系統(tǒng)的軟件開(kāi)發(fā)bootloader操作系統(tǒng)移植BSP板級(jí)支持包應(yīng)用程序開(kāi)發(fā)ARM軟件設(shè)計(jì)與代碼分析61嵌入式軟件開(kāi)發(fā)無(wú)操作系統(tǒng)的軟件開(kāi)發(fā)ARM軟件設(shè)計(jì)與代碼分析6啟動(dòng)代碼功能硬件初始化引導(dǎo)C代碼特征通常用匯編語(yǔ)言編寫(xiě)程序復(fù)位運(yùn)行入口點(diǎn)代碼量非常小程序流程設(shè)置中斷、異常入口關(guān)中斷硬件寄存器初始化(GPIO配置、總線(xiàn)配置、PLL時(shí)鐘)初始化棧指針數(shù)據(jù)區(qū)初始化C入口函數(shù)調(diào)用BLMainARM軟件設(shè)計(jì)與代碼分析62啟動(dòng)代碼功能程序流程ARM軟件設(shè)計(jì)與代碼分析62應(yīng)用程序(無(wú)操作系統(tǒng))功能硬件驅(qū)動(dòng)應(yīng)用特征通常用C語(yǔ)言或者嵌入式匯編語(yǔ)言編寫(xiě)程序較復(fù)雜,代碼量較大ARM軟件設(shè)計(jì)與代碼分析63應(yīng)用程序(無(wú)操作系統(tǒng))功能ARM軟件設(shè)計(jì)與代碼分析63bootloader功能硬件初始化引導(dǎo)操作系統(tǒng)下載程序(串口、網(wǎng)口、USB)燒寫(xiě)flash特征程序復(fù)位運(yùn)行入口點(diǎn)通常用匯編語(yǔ)言+C語(yǔ)言編寫(xiě)代碼量較小ARM軟件設(shè)計(jì)與代碼分析64bootloader功能ARM軟件設(shè)計(jì)與代碼分析64嵌入式操作系統(tǒng)移植LinuxWindowsCEuC/OSIIuClinuxNucleusARM軟件設(shè)計(jì)與代碼分析65嵌入式操作系統(tǒng)移植LinuxARM軟件設(shè)計(jì)與代碼分析65BSP板級(jí)支持包功能為應(yīng)用程序提供統(tǒng)一的硬件操作接口特征高度硬件相關(guān)高度依賴(lài)于具體硬件平臺(tái)各種操作系統(tǒng)各異ARM軟件設(shè)計(jì)與代碼分析66BSP板級(jí)支持包功能ARM軟件設(shè)計(jì)與代碼分析66應(yīng)用程序開(kāi)發(fā)(操作系統(tǒng))功能GUI圖形、人機(jī)交互控制算法特征硬件依賴(lài)程度小部分可仿真調(diào)試各種操作系統(tǒng)各異ARM軟件設(shè)計(jì)與代碼分析67應(yīng)用程序開(kāi)發(fā)(操作系統(tǒng))功能ARM軟件設(shè)計(jì)與代碼分析67嵌入式軟件設(shè)計(jì)和調(diào)試流程編輯創(chuàng)建工程添加文件、編寫(xiě)程序匯編語(yǔ)言加C語(yǔ)言編譯配置編譯、匯編和連接參數(shù)編寫(xiě)連接腳本文件編譯調(diào)試連接調(diào)試器下載程序運(yùn)行、調(diào)試固化通過(guò)仿真器燒寫(xiě)flash專(zhuān)用或通用的編程器通過(guò)bootloader燒寫(xiě)flashARM軟件設(shè)計(jì)與代碼分析68嵌入式軟件設(shè)計(jì)和調(diào)試流程編輯調(diào)試ARM軟件設(shè)計(jì)與代碼分析68交叉編譯GNU交叉編譯編譯.carm-elf-gcc匯編.Sarm-elf-gas連接.oarm-elf-ld操作文件匯編文件.SC文件.c鏈接腳本文件ldscript庫(kù)文件.o.lib.a生成調(diào)試格式文件.elfDWARF-1DWARF-2生成bin文件elf2binarm-elf-objcopyARM軟件設(shè)計(jì)與代碼分析69交叉編譯GNU交叉編譯生成調(diào)試格式文件.elfARM軟件設(shè)計(jì)鏈接腳本段Text段rodata段data段bss段符號(hào)Image_RO_Limit

Image_RW_BaseImage_ZI_BaseImage_ZI_LimitGCC庫(kù)專(zhuān)用調(diào)試信息ARM軟件設(shè)計(jì)與代碼分析70鏈接腳本段GCC庫(kù)專(zhuān)用ARM軟件設(shè)計(jì)與代碼分析70鏈接腳本示例程序在SDRAM中運(yùn)行程序在FLASH中運(yùn)行ARM軟件設(shè)計(jì)與代碼分析71鏈接腳本示例程序在SDRAM中運(yùn)行程序在FLASH中運(yùn)行ARGCC庫(kù)GCC庫(kù)標(biāo)準(zhǔn)C函數(shù)庫(kù)lib.a-lc標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)庫(kù)libm.a-lm標(biāo)準(zhǔn)函數(shù)庫(kù)的支持庫(kù)libg.a-lgGCC的支持庫(kù)libgcc.a-lgcc鏈接排列順序-lm–lc–lgcc-lgARM軟件設(shè)計(jì)與代碼分析72GCC庫(kù)GCC庫(kù)ARM軟件設(shè)計(jì)與代碼分析72ARM9-2440啟動(dòng)代碼分析ARM軟件設(shè)計(jì)與代碼分析在基于ARM920Tcore的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)都從地址0x00000000開(kāi)始執(zhí)行,因此在這個(gè)地址處安排的通常就是系統(tǒng)的啟動(dòng)代碼。它通常也是BootLoader程序的一部分,可以在啟動(dòng)代碼基礎(chǔ)上編寫(xiě)B(tài)ootLoader。用匯編語(yǔ)言編寫(xiě)。啟動(dòng)代碼是在復(fù)位后運(yùn)行其它程序之前運(yùn)行的一段小程序。通過(guò)它,初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用C函數(shù)準(zhǔn)備好正確的環(huán)境。73ARM9-2440啟動(dòng)代碼分析ARM軟件設(shè)計(jì)與代碼分析在基于啟動(dòng)代碼的移植和修改ARM軟件設(shè)計(jì)與代碼分析啟動(dòng)代碼除了依賴(lài)于CPU的體系結(jié)構(gòu)外,實(shí)際上也依賴(lài)于具體的嵌入式板級(jí)設(shè)備的配置,比如板卡的硬件地址分配,RAM芯片的類(lèi)型,其他外設(shè)的類(lèi)型等。對(duì)于兩塊不同的嵌入式板而言,即使它們是基于同一種CPU而構(gòu)建的,如果他們的硬件資源和配置不一致的話(huà),要想讓運(yùn)行在一塊板子上的啟動(dòng)代碼也能運(yùn)行在另一塊板子上,也還是需要作一些必要的修改。74啟動(dòng)代碼的移植和修改ARM軟件設(shè)計(jì)與代碼分析啟動(dòng)代碼除了依賴(lài)啟動(dòng)代碼流程圖啟動(dòng)代碼的功能:RAM初始化,設(shè)置各個(gè)部件的時(shí)鐘和片選,將BootLoader拷貝到RAM中,設(shè)置堆棧,調(diào)用C函數(shù)。注意:在本階段,特別是在堆棧設(shè)置之前,進(jìn)行函數(shù)調(diào)用(也有些匯編子程序不需要使用堆棧)或者使用堆棧保存數(shù)據(jù)將產(chǎn)生不可預(yù)知的結(jié)果;ARM軟件設(shè)計(jì)與代碼分析75啟動(dòng)代碼流程圖啟動(dòng)代碼的功能:RAM初始化,設(shè)置各個(gè)部件的時(shí)設(shè)置異常跳轉(zhuǎn)表復(fù)位異常直接跳轉(zhuǎn)到ResetHandler處,它是相對(duì)跳轉(zhuǎn),位置無(wú)關(guān)。ARM軟件設(shè)計(jì)與代碼分析76設(shè)置異常跳轉(zhuǎn)表復(fù)位異常直接跳轉(zhuǎn)到ResetHandler處,關(guān)閉看門(mén)狗設(shè)置S3C2440WTCON寄存器必須設(shè)置0x01e000000x01d30000ARM軟件設(shè)計(jì)與代碼分析77關(guān)閉看門(mén)狗設(shè)置S3C2440WTCON寄存器0x01e00設(shè)置中斷模式并禁止中斷設(shè)置S3C2440中斷寄存器設(shè)置所有一級(jí)中斷源與二級(jí)中斷源為不可用狀態(tài)ARM軟件設(shè)計(jì)與代碼分析78設(shè)置中斷模式并禁止中斷設(shè)置S3C2440中斷寄存器ARM軟件配置存儲(chǔ)器控制寄存器寬度ARM軟件設(shè)計(jì)與代碼分析0x01e00000配置值79配置存儲(chǔ)器控制寄存器寬度ARM軟件設(shè)計(jì)與代碼分析0x01e0堆棧初始化ARM軟件設(shè)計(jì)與代碼分析80堆棧初始化ARM軟件設(shè)計(jì)與代碼分析80C代碼初始化ARM軟件設(shè)計(jì)與代碼分析拷貝RW數(shù)據(jù)段ZI段清零跳轉(zhuǎn)到Main函數(shù)處執(zhí)行81C代碼初始化ARM軟件設(shè)計(jì)與代碼分析拷貝RW數(shù)據(jù)段ZI段清零ARM9-2440BOOTLOADER分析ARM軟件設(shè)計(jì)與代碼分析BootLoader是在啟動(dòng)代碼的基礎(chǔ)之上,通常啟動(dòng)代碼包含于BootLoader之中BootLoader常用于引導(dǎo)操作系統(tǒng)或者應(yīng)用程序BootLoader可以包含一些簡(jiǎn)單的調(diào)試手段ARM9-2440使用通用的u-boot82ARM9-2440BOOTLOADER分析ARM軟件設(shè)計(jì)與u-boot簡(jiǎn)介ARM軟件設(shè)計(jì)與代碼分析u-boot是由德國(guó)DENX小組開(kāi)發(fā)的交叉平臺(tái)BootLoader,其全稱(chēng)為“universalBootLoader”。u-boot的開(kāi)發(fā)目標(biāo)是支持盡可能多的嵌入式處理器和嵌入式操作系統(tǒng)。它提供數(shù)百種嵌入式開(kāi)發(fā)板和各種CPU,包括PowerPC、ARM、Xscale、MIPS、Coldfire、NIOS、Microblaze和x86等,同時(shí)它除了支持Linux系統(tǒng)的引導(dǎo)外,還支持NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS等多種嵌入式操作系統(tǒng)的引導(dǎo)。83u-boot簡(jiǎn)介ARM軟件設(shè)計(jì)與代碼分析u-boot是由德國(guó)u-boot簡(jiǎn)介ARM軟件設(shè)計(jì)與代碼分析u-boot的用戶(hù)接口類(lèi)似于Linux的shell界面,通過(guò)串口連接以后,用戶(hù)可以交互式的輸入命令和看到結(jié)果,u-boot的啟動(dòng)界面如下所示:U-Boot1.1.1(Sep62004-12:12:06)U-Bootcode:33F80000->33F9CED0BSS:->33FA116CRAMConfiguration:Bank#0:3000000064MBFlash:32MBIn:serialOut:serialErr:serialHitanykeytostopautoboot:0JX2410#84u-boot簡(jiǎn)介ARM軟件設(shè)計(jì)與代碼分析u-boot的用戶(hù)接BootLoader的基本概念BootLoader是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。嵌入式系統(tǒng)中,整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)完全由BootLoader來(lái)完成。比如在一個(gè)基于ARM920Tcore的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)都從地址0x00000000開(kāi)始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoader程序。簡(jiǎn)單地說(shuō),BootLoader就是在操作系統(tǒng)內(nèi)核或用戶(hù)應(yīng)用程序運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核或用戶(hù)應(yīng)用程序準(zhǔn)備好正確的環(huán)境。通常,BootLoader是依賴(lài)于硬件而實(shí)現(xiàn)的,特別是在嵌入式領(lǐng)域,為嵌入式系統(tǒng)建立一個(gè)通用的BootLoader是很困難的。ARM軟件設(shè)計(jì)與代碼分析85BootLoader的基本概念BootLoader是系統(tǒng)加電BootLoader的移植和修改BootLoader除了依賴(lài)于CPU的體系結(jié)構(gòu)外,BootLoader實(shí)際上也依賴(lài)于具體的嵌入式板級(jí)設(shè)備的配置,比如板卡的硬件地址分配,RAM芯片的類(lèi)型,其他外設(shè)的類(lèi)型等。對(duì)于兩塊不同的嵌入式板而言,即使它們是基于同一種CPU而構(gòu)建的,如果他們的硬件資源和配置不一致的話(huà),要想讓運(yùn)行在一塊板子上的BootLoader程序也能運(yùn)行在另一塊板子上,也還是需要作一些必要的修改。ARM軟件設(shè)計(jì)與代碼分析86BootLoader的移植和修改BootLoader除了依BootLoader的安裝系統(tǒng)加電或復(fù)位后,所有的CPU通常都從CPU制造商預(yù)先安排的地址上取指令。比如,S3C2440在復(fù)位時(shí)都從地址0x00000000取它的第一條指令。嵌入式系統(tǒng)通常都有某種類(lèi)型的固態(tài)存儲(chǔ)設(shè)備(比如:ROM、EEPROM或FLASH等)被安排這個(gè)起始地址上,因此在系統(tǒng)加電后,CPU將首先執(zhí)行BootLoader程序。也就是說(shuō)對(duì)于基于S3C2440的這套系統(tǒng),我們的BootLoader是從0地址開(kāi)始存放的,而這塊起始地址需要采用可引導(dǎo)的固態(tài)存儲(chǔ)設(shè)備如FLASH。ARM軟件設(shè)計(jì)與代碼分析87BootLoader的安裝系統(tǒng)加電或復(fù)位后,所有的CPU通用來(lái)控制BootLoader的設(shè)備或機(jī)制串口通訊是最簡(jiǎn)單也是最廉價(jià)的一種雙機(jī)通訊設(shè)備,所以往往在BootLoader中主機(jī)和目標(biāo)機(jī)之間都通過(guò)串口建立連接,BootLoader程序在執(zhí)行時(shí)通常會(huì)通過(guò)串口來(lái)進(jìn)行I/O,比如:輸出打印信息到串口,從串口讀取用戶(hù)控制字符等。當(dāng)然如果認(rèn)為串口通訊速度不夠,也可以采用網(wǎng)絡(luò)或者USB通訊,那么相應(yīng)的在BootLoader中就需要編寫(xiě)各自的驅(qū)動(dòng)。ARM軟件設(shè)計(jì)與代碼分析88用來(lái)控制BootLoader的設(shè)備或機(jī)制串口通訊是最簡(jiǎn)單BootLoader的操作模式啟動(dòng)加載模式:這種模式也稱(chēng)為"自主"(Autonomous)模式。也即BootLoader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過(guò)程并沒(méi)有用戶(hù)的介入。這種模式是BootLoader的正常工作模式。下載模式:在這種模式下,目標(biāo)機(jī)上的BootLoader將通過(guò)串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件,比如:下載應(yīng)用程序、數(shù)據(jù)文件、內(nèi)核映像等。從主機(jī)下載的文件通常首先被BootLoader保存到目標(biāo)機(jī)的RAM中,然后再被BootLoader寫(xiě)到目標(biāo)機(jī)上的固態(tài)存儲(chǔ)設(shè)備中。BootLoader的這種模式通常在系統(tǒng)更新時(shí)使用。工作于這種模式下的BootLoader通常都會(huì)向它的終端用戶(hù)提供一個(gè)簡(jiǎn)單的命令行接口。在uboot中可以通過(guò)修改環(huán)境變量實(shí)現(xiàn)自主模式。ARM軟件設(shè)計(jì)與代碼分析89BootLoader的操作模式啟動(dòng)加載模式:這種模式也稱(chēng)BootLoader與主機(jī)間文件傳輸?shù)耐ㄐ旁O(shè)備及協(xié)議最常見(jiàn)的情況就是,目標(biāo)機(jī)上的BootLoader通過(guò)串口與主機(jī)之間進(jìn)行文件傳輸,傳輸可以簡(jiǎn)單的采用直接數(shù)據(jù)收發(fā),當(dāng)然在串口上也可以采用xmodem/ymodem/zmodem協(xié)議以及在以太網(wǎng)上采用TFTP協(xié)議。ARM軟件設(shè)計(jì)與代碼分析90BootLoader與主機(jī)間文件傳輸?shù)耐ㄐ旁O(shè)備及協(xié)議最常見(jiàn)的BootLoader的主要任務(wù)與典型結(jié)構(gòu)框架從操作系統(tǒng)的角度看,BootLoader的總目標(biāo)就是正確地調(diào)用內(nèi)核來(lái)執(zhí)行。大多數(shù)BootLoader都分為stage1和stage2兩大部分。依賴(lài)于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在stage1中,而且通常都用匯編語(yǔ)言來(lái)實(shí)現(xiàn),以達(dá)到短小精悍的目的,也就是前面說(shuō)的啟動(dòng)代碼。而stage2則通常用C語(yǔ)言來(lái)實(shí)現(xiàn),這樣可以實(shí)現(xiàn)復(fù)雜的功能,而且代碼會(huì)具有更好的可讀性和可移植性。ARM軟件設(shè)計(jì)與代碼分析91BootLoader的主要任務(wù)與典型結(jié)構(gòu)框架從操作系統(tǒng)的角度BootLoader的主要任務(wù)與典型結(jié)構(gòu)框架BootLoader的stage1通常包括以下步驟 為加載BootLoader的stage2準(zhǔn)備RAM空間拷貝BootLoader的stage2到RAM空間中設(shè)置好堆棧跳轉(zhuǎn)到stage2的C入口點(diǎn)BootLoader的stage2通常包括以下步驟初始化本階段要使用到的硬件設(shè)備調(diào)用應(yīng)用程序或啟動(dòng)內(nèi)核ARM軟件設(shè)計(jì)與代碼分析92BootLoader的主要任務(wù)與典型結(jié)構(gòu)框架BootLoadStage1初始化流程圖stage1的功能:RAM初始化,設(shè)置各個(gè)部件的時(shí)鐘和片選,將BootLoader拷貝到RAM中,設(shè)置堆棧,調(diào)用Stage2。注意:在本階段,特別是在堆棧設(shè)置之前,進(jìn)行函數(shù)調(diào)用(也有些匯編子程序不需要使用堆棧)或者使用堆棧保存數(shù)據(jù)將產(chǎn)生不可預(yù)知的結(jié)果;ARM軟件設(shè)計(jì)與代碼分析93Stage1初始化流程圖stage1的功能:RAM初始Stage2流程圖stage2的功能: 初始化串口,顯示菜單,通過(guò)控制臺(tái)獲取用戶(hù)輸入,并執(zhí)行相應(yīng)的命令操作。ARM軟件設(shè)計(jì)與代碼分析94Stage2流程圖stage2的功能: 初始化串口,顯示板級(jí)支持包ARM軟件設(shè)計(jì)與代碼分析BSP(板級(jí)支持包)是介于底層硬件和操作系統(tǒng)之間的軟件層次,它完成系統(tǒng)上電后最初的硬件和軟件初始化,并對(duì)底層硬件進(jìn)行封裝,使得操作系統(tǒng)不再面對(duì)具體的操作。95板級(jí)支持包ARM軟件設(shè)計(jì)與代碼分析BSP(板級(jí)支持包)是介于板級(jí)支持包的特點(diǎn)ARM軟件設(shè)計(jì)與代碼分析硬件相關(guān)性:因?yàn)榍度胧綄?shí)時(shí)系統(tǒng)的硬件環(huán)境具有應(yīng)用相關(guān)性,所以,作為高層軟件與硬件之間的接口,BSP必須為操作系統(tǒng)提供操作和控制具體硬件的方法。操作系統(tǒng)相關(guān)性:不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式。96板級(jí)支持包的特點(diǎn)ARM軟件設(shè)計(jì)與代碼分析硬件相關(guān)性:因?yàn)榍度氚寮?jí)支持包的功能ARM軟件設(shè)計(jì)與代碼分析97板級(jí)支持包的功能ARM軟件設(shè)計(jì)與代碼分析97板級(jí)支持包的功能ARM軟件設(shè)計(jì)與代碼分析嵌入式系統(tǒng)初始化片級(jí)初始化板級(jí)初始化系統(tǒng)級(jí)初始化硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序和BootLoader存在一定的重疊98板級(jí)支持包的功能ARM軟件設(shè)計(jì)與代碼分析嵌入式系統(tǒng)初始化和B系統(tǒng)級(jí)初始化ARM軟件設(shè)計(jì)與代碼分析這是一個(gè)以軟件初始化為主的過(guò)程,主要進(jìn)行操作系統(tǒng)初始化。BSP將控制轉(zhuǎn)交給操作系統(tǒng),由操作系統(tǒng)進(jìn)行余下的初始化操作。包括加載和初始化與硬件無(wú)關(guān)的設(shè)備驅(qū)動(dòng)程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化其他系統(tǒng)軟件模塊,比如網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等;最后,操作系統(tǒng)創(chuàng)建應(yīng)用程序環(huán)境并將控制轉(zhuǎn)交給應(yīng)用程序的入口。99系統(tǒng)級(jí)初始化ARM軟件設(shè)計(jì)與代碼分析這是一個(gè)以軟件初始化為主硬件相關(guān)的驅(qū)動(dòng)程序ARM軟件設(shè)計(jì)與代碼分析與初始化過(guò)程相反,硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序的初始化和使用通常是一個(gè)從高層到底層的過(guò)程。盡管BSP中包含硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序,但是這些設(shè)備驅(qū)動(dòng)程序通常不直接由BSP使用,而是在系統(tǒng)初始化過(guò)程中由BSP把它們與操作系統(tǒng)中通用的設(shè)備驅(qū)動(dòng)程序關(guān)聯(lián)起來(lái),并在隨后的應(yīng)用中由通用的設(shè)備驅(qū)動(dòng)程序調(diào)用,實(shí)現(xiàn)對(duì)硬件設(shè)備的操作。100硬件相關(guān)的驅(qū)動(dòng)程序ARM軟件設(shè)計(jì)與代碼分析與初始化過(guò)程相反,ARM9-2440應(yīng)用代碼設(shè)計(jì)及中斷處理ARM軟件設(shè)計(jì)與代碼分析連接腳本101ARM9-2440應(yīng)用代碼設(shè)計(jì)及中斷處理ARM軟件設(shè)計(jì)與代碼ARM9-2440應(yīng)用代碼中斷向量ARM軟件設(shè)計(jì)與代碼分析起始地址0x30000000除復(fù)位異常外,其余異常入口地址由FLASH跳轉(zhuǎn)得到102ARM9-2440應(yīng)用代碼中斷向量ARM軟件設(shè)計(jì)與代碼分析起ARM9-2440中斷處理流程執(zhí)行0x18處指令:LDRpc,=0x03000018,由u-boot控制執(zhí)行0x03000018處指令:HandlerIRQ,2410init.s執(zhí)行HandlerIRQ,2410init.s執(zhí)行HandleIRQ處保存的中斷分發(fā)例程,2410init.s中初始化為IsrIRQARM軟件設(shè)計(jì)與代碼分析根據(jù)INTOFFSET的值從中斷向量表中取出中斷服務(wù)函數(shù)地址R8中為產(chǎn)生了中斷的中斷源的中斷服務(wù)函數(shù)地址跳轉(zhuǎn)到中斷服務(wù)函數(shù)地址處運(yùn)行103ARM9-2440中斷處理流程執(zhí)行0x18處指令:LDRp中斷向量表ARM軟件設(shè)計(jì)與代碼分析從_ISR_STARTADDRESS+0x20開(kāi)始每四個(gè)字節(jié)表示一個(gè)中斷源的中斷服務(wù)函數(shù)地址104中斷向量表ARM軟件設(shè)計(jì)與代碼分析從_ISR_STARTAD注冊(cè)中斷服務(wù)函數(shù)并使能中斷函數(shù)實(shí)現(xiàn)

/*請(qǐng)求中斷*/ Irq_Request(IRQ_EINT2,eint2_isr); Irq_Request(IRQ_EINT3,eint3_isr); /*使能中斷*/ Irq_Enable(IRQ_EINT2);Irq_Enable(IRQ_EINT3);ARM軟件設(shè)計(jì)與代碼分析注冊(cè)中斷服務(wù)函數(shù),即將eint2_isr中斷服務(wù)函數(shù)的地址賦值到中斷向量表中。開(kāi)啟中斷源,必須在注冊(cè)中斷服務(wù)函數(shù)完成后進(jìn)行。105注冊(cè)中斷服務(wù)函數(shù)并使能中斷函數(shù)實(shí)現(xiàn)ARM軟件設(shè)計(jì)與代碼分析用C代碼編寫(xiě)的中斷服務(wù)函數(shù)函數(shù)實(shí)現(xiàn)

ARM軟件設(shè)計(jì)與代碼分析必須聲明為中斷服務(wù)函數(shù)清除中斷標(biāo)記處理中斷106用C代碼編寫(xiě)的中斷服務(wù)函數(shù)函數(shù)實(shí)現(xiàn)ARM軟件設(shè)計(jì)與代碼分析嵌入式系統(tǒng)教案嵌入式軟件系統(tǒng)設(shè)計(jì)1/5/2023嵌入式系統(tǒng)教案嵌入式軟件系統(tǒng)設(shè)計(jì)12/28/2022提綱13245嵌入式軟件開(kāi)發(fā)過(guò)程ARM軟件設(shè)計(jì)與代碼分析ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具67第六章嵌入式軟件系統(tǒng)設(shè)計(jì)108提綱13245嵌入式軟件開(kāi)發(fā)過(guò)程ARM軟件設(shè)計(jì)與代碼分析AR嵌入式系統(tǒng)軟件開(kāi)發(fā)流程軟件需求分析:確定設(shè)計(jì)任務(wù)和目標(biāo),并提煉出設(shè)計(jì)規(guī)格說(shuō)明書(shū),作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。嵌入式軟件開(kāi)發(fā)過(guò)程概要設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的需求,包括軟件模塊的劃分、系統(tǒng)的軟件開(kāi)發(fā)工具選擇以及關(guān)鍵問(wèn)題的論證等。詳細(xì)設(shè)計(jì):詳細(xì)描述各個(gè)模塊的實(shí)現(xiàn)方法與過(guò)程,模塊間接口等問(wèn)題,以作為編碼人員的編碼準(zhǔn)則。編碼109嵌入式系統(tǒng)軟件開(kāi)發(fā)流程軟件需求分析:確定設(shè)計(jì)任務(wù)和目標(biāo),并提嵌入式系統(tǒng)的開(kāi)發(fā)流程單元調(diào)試:編碼完成后,對(duì)各個(gè)模塊進(jìn)行單元調(diào)試,以保證模塊正常工作。嵌入式軟件開(kāi)發(fā)過(guò)程集成調(diào)試110嵌入式系統(tǒng)的開(kāi)發(fā)流程單元調(diào)試:編碼完成后,對(duì)各個(gè)模塊進(jìn)行單元常用調(diào)試方法軟件仿真駐留監(jiān)控程序硬件要求高,一般在硬件穩(wěn)定之后進(jìn)行需要占用目標(biāo)板上的一部分資源不能對(duì)程序的全速運(yùn)行進(jìn)行完全仿真JTAG仿真器完全非插入式調(diào)試,不使用片上資源,無(wú)需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口仿真效果更加接近于目標(biāo)硬件在線(xiàn)仿真器ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具111常用調(diào)試方法軟件仿真ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具5處理器的選擇處理性能

技術(shù)指標(biāo)

功耗

操作系統(tǒng)和軟件支持工具的選擇

是否內(nèi)置調(diào)試工具

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具112處理器的選擇處理性能ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具6操作系統(tǒng)和軟件支持工具的選擇

如果用戶(hù)希望使用WindowsCE、Linux等操作系統(tǒng),就需要選擇ARM720T以上帶有MMU(MemoryManagementUnit)功能的ARM芯片。ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都帶有MMU功能。而ARM7TDMI則沒(méi)有MMU,不支持WindowsCE和Linux,但目前有uCLinux以及uC/OS-II等不需要MMU支持的操作系統(tǒng)可運(yùn)行于ARM7TDMI硬件平臺(tái)之上。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具113操作系統(tǒng)和軟件支持工具的選擇如果用戶(hù)希望使用Windows操作系統(tǒng)和軟件支持工具的選擇

如果決定采用Linux、WindowsCE、vxWorks等操作系統(tǒng)時(shí),在選擇處理器時(shí)應(yīng)該盡量選擇該操作系統(tǒng)已經(jīng)支持的處理器,這樣可以大大加快開(kāi)發(fā)進(jìn)度,降低難度。選擇不同的操作系統(tǒng),其軟件開(kāi)發(fā)過(guò)程和調(diào)試手段各不相同,你的選擇方案是否能夠提供各個(gè)開(kāi)發(fā)階段(包括bootloader開(kāi)發(fā)、操作系統(tǒng)移植、驅(qū)動(dòng)開(kāi)發(fā)和應(yīng)用開(kāi)發(fā))所需的軟件支持工具也是一個(gè)必須考慮的因素。

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具114操作系統(tǒng)和軟件支持工具的選擇如果決定采用Linux、Win硬件驅(qū)動(dòng)程序的調(diào)試如果硬件平臺(tái)是自行設(shè)計(jì)的,必須首先對(duì)硬件進(jìn)行調(diào)試,硬件調(diào)試成功是進(jìn)行操作系統(tǒng)移植和應(yīng)用程序開(kāi)發(fā)的一個(gè)基本前提。這個(gè)過(guò)程通常是通過(guò)編寫(xiě)一些簡(jiǎn)單的測(cè)試程序直接驅(qū)動(dòng)硬件以驗(yàn)證硬件是否正確,這些程序可以基于操作系統(tǒng)進(jìn)行編程,也可以不使用操作系統(tǒng),而且后一種方法來(lái)得更加簡(jiǎn)單,調(diào)試也更方便和快捷。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具115硬件驅(qū)動(dòng)程序的調(diào)試如果硬件平臺(tái)是自行設(shè)計(jì)的,必須首先對(duì)硬件進(jìn)操作系統(tǒng)的選擇和移植μC/OS-IILinux/uClinuxWindowsCEvxWorksARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具116操作系統(tǒng)的選擇和移植μC/OS-IIARM軟件開(kāi)發(fā)流程和開(kāi)μC/OS-II免費(fèi)公開(kāi)源代碼、結(jié)構(gòu)小巧、具有可剝奪實(shí)時(shí)內(nèi)核的實(shí)時(shí)操作系統(tǒng)。其內(nèi)核提供任務(wù)調(diào)度與管理、時(shí)間管理、任務(wù)間同步與通信、內(nèi)存管理和中斷服務(wù)等功能。它可以基于ROM運(yùn)行(ROMable)、可裁減,具有高度移植性。μC/OS-II實(shí)時(shí)嵌入式內(nèi)核在工業(yè)控制、數(shù)據(jù)采集等領(lǐng)域應(yīng)用廣泛。但μC/OS-II內(nèi)核不支持文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等功能,而且沒(méi)有提供統(tǒng)一的硬件驅(qū)動(dòng)程序接口和開(kāi)發(fā)工具鏈,在復(fù)雜應(yīng)用中需要考慮內(nèi)核以外功能的實(shí)現(xiàn)難易程度。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具117μC/OS-II免費(fèi)公開(kāi)源代碼、結(jié)構(gòu)小巧、具有可剝奪實(shí)時(shí)內(nèi)μC/OS-II在μC/OS-II開(kāi)發(fā)中,內(nèi)核、驅(qū)動(dòng)程序和應(yīng)用程序都是集中編譯,μC/OS-II編譯以后的二進(jìn)制代碼中既包含內(nèi)核代碼,也包含驅(qū)動(dòng)程序和應(yīng)用程序的代碼。μC/OS-II沒(méi)有提供統(tǒng)一的開(kāi)發(fā)工具鏈,μC/OS-II程序的編譯應(yīng)該采用支持所選處理器的編譯器。對(duì)于ARM處理器,可以在Windows環(huán)境中使用ADS1.2、ADTIDE中編譯μC/OS-II,也可以在Linux環(huán)境中使用GNUGCC編譯μC/OS-II。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具118μC/OS-II在μC/OS-II開(kāi)發(fā)中,內(nèi)核、驅(qū)動(dòng)程序和Linux/uClinuxLinux/uClinux是對(duì)于有MMU和沒(méi)有MMU的處理器的Linux解決方案。Linux/uClinux提供強(qiáng)大的文件系統(tǒng)、網(wǎng)絡(luò)功能、GUI等軟件模組支持,而且這些功能都是可以裁減的,同時(shí)它還提供了標(biāo)準(zhǔn)的驅(qū)動(dòng)程序接口和軟件開(kāi)發(fā)接口,便于用戶(hù)編程和程序維護(hù)。Linux/uClinux自身具備一整套工具鏈(GNUGCC),包括編譯和調(diào)試工具,用戶(hù)可以自行建立嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境和交叉運(yùn)行環(huán)境。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具119Linux/uClinuxLinux/uClinux是對(duì)于Linux/uClinux對(duì)于ARM處理器,Linux/uClinux內(nèi)核、驅(qū)動(dòng)程序以及應(yīng)用程序的編譯都在Linux環(huán)境中使用GNUGCC完成。對(duì)于內(nèi)核和驅(qū)動(dòng)程序的調(diào)試通常借助于運(yùn)行于Linux/uClinux之前的bootloader來(lái)完成,只有在很少的情況下需要借助在線(xiàn)仿真器完成。對(duì)于應(yīng)用程序的調(diào)試則可以完全拋棄在線(xiàn)仿真器,使用GDB完成。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具120Linux/uClinux對(duì)于ARM處理器,Linux/uWindowsCEWindowsCE是Windows界面在嵌入式處理器中的實(shí)現(xiàn),它提供了友好的人機(jī)交互界面和強(qiáng)大的二次開(kāi)發(fā)功能。WindowsCE包括四大基本模塊,它們提供了操作系統(tǒng)的關(guān)鍵特性,分別是:內(nèi)核(Kernel)模塊、對(duì)象存儲(chǔ)(ObjectStore)模塊、GWES(用戶(hù)、應(yīng)用程序和操作系統(tǒng)之間的圖形用戶(hù)界面)模塊和通信(Communication)模塊。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具121WindowsCEWindowsCE是Windows界面WindowsCEWindowsCE擁有完善的軟件支持開(kāi)發(fā)工具,WindowsCE的核心移植和驅(qū)動(dòng)開(kāi)發(fā)使用專(zhuān)門(mén)的操作系統(tǒng)定制工具:WindowsCEPlatformBuilder(簡(jiǎn)稱(chēng)PB)。而應(yīng)用程序的開(kāi)發(fā)則有嵌入式開(kāi)發(fā)工具包EmbeddedVisualTools,包括EmbeddedVisualC++(簡(jiǎn)稱(chēng)EVC)和EmbeddedVisualBasic(簡(jiǎn)稱(chēng)EVB)等。同時(shí)EmbeddedVisualTools下還可以進(jìn)行部分驅(qū)動(dòng)程序的開(kāi)發(fā)。同時(shí)在WindowsCE中還提供了用于WindowsCE開(kāi)發(fā)的bootloader:EBOOT。

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具122WindowsCEWindowsCE擁有完善的軟件支持開(kāi)vxWorksVxWorks是專(zhuān)門(mén)為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的操作系統(tǒng)內(nèi)核,為程序員提供了高效的實(shí)時(shí)多任務(wù)調(diào)度、中斷管理,實(shí)時(shí)的系統(tǒng)資源以及實(shí)時(shí)的任務(wù)間通信。在各種CPU平臺(tái)上提供了統(tǒng)一的編程接口和一致的運(yùn)行特性,盡可能的屏蔽了不同CPU之間的底層差異。應(yīng)用程序員可以將盡可能多的精力放在應(yīng)用程序本身,而不必再去關(guān)心系統(tǒng)資源的管理?;赩xWorks操作系統(tǒng)的應(yīng)用程序可以在不同CPU平臺(tái)上輕松移植。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具123vxWorksVxWorks是專(zhuān)門(mén)為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)vxWorksVxWorks包括了進(jìn)程管理、存儲(chǔ)管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個(gè)部分。VxWorks只占用了很小的存儲(chǔ)空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運(yùn)行。TornadoII是為開(kāi)發(fā)VxWorks應(yīng)用系統(tǒng)提供的集成開(kāi)發(fā)環(huán)境,TornadoII中包含的工程管理軟件,可以將用戶(hù)自己的代碼與VxWorks的核心有效的組合起來(lái),可以按用戶(hù)的需要裁剪配置VxWorks內(nèi)核。

ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具124vxWorksVxWorks包括了進(jìn)程管理、存儲(chǔ)管理、設(shè)備ARM主流開(kāi)發(fā)工具Windows操作系統(tǒng)ARMADS/SDT+調(diào)試器GNU+Cygwin+調(diào)試器ARMSDT+簡(jiǎn)易電纜Linux操作系統(tǒng)GNU+GDBARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具125ARM主流開(kāi)發(fā)工具Windows操作系統(tǒng)ARM軟件開(kāi)發(fā)流程和ARM嵌入式開(kāi)發(fā)模式(ARMADS/SDT+調(diào)試器)ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具126ARM嵌入式開(kāi)發(fā)模式(ARMADS/SDT+調(diào)試器)ADS與Multi-ICE

ARMADS全稱(chēng)為ARMDeveloperSuite,是ARM公司推出的用于ARM程序設(shè)計(jì)、開(kāi)發(fā)和調(diào)試的集成開(kāi)發(fā)工具?,F(xiàn)在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。ADS由命令行開(kāi)發(fā)工具,ARM運(yùn)行時(shí)庫(kù),圖形化集成開(kāi)發(fā)環(huán)境(CodeWarrior和AXD),實(shí)用程序和支持軟件組成。ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具127ADS與Multi-ICEARMADS全稱(chēng)為ARMDeADS命令行開(kāi)發(fā)工具

ARMC(C++)編譯器ARM匯編器(armasm)ARM鏈接器(armlink)符號(hào)調(diào)試器(armsd)ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具128ADS命令行開(kāi)發(fā)工具ARMC(C++)編譯器ARM軟件ARM運(yùn)行時(shí)庫(kù)ANSIC函數(shù)庫(kù):(armlib)C++函數(shù)庫(kù):ARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具129ARM運(yùn)行時(shí)庫(kù)ANSIC函數(shù)庫(kù):(armlib)ARM軟圖形化集成開(kāi)發(fā)環(huán)境(CodeWarrior和AXD)

CodeWarriorforARM

ADS調(diào)試器實(shí)用程序fromELF

armar

Flashdownloader

支持的軟件ARMulatorARM軟件開(kāi)發(fā)流程和開(kāi)發(fā)工具130圖形化集成開(kāi)發(fā)環(huán)境(CodeWarrior和AXD)CoADTforARM集成開(kāi)發(fā)系統(tǒng)ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介131ADTforARM集成開(kāi)發(fā)系統(tǒng)ARM軟件開(kāi)發(fā)工具-ADTADT1000EmulatorforARMARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

132ADT1000EmulatorforARMARM軟件ADT1000EmulatorforARMARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

ADTEmulatorforARM是連接主機(jī)核目標(biāo)機(jī)之間的硬件設(shè)備,它實(shí)現(xiàn)ADTIDEforARM與目標(biāo)機(jī)之間的連接。它具有如下特征:支持ARM核CPU非插入式調(diào)試,無(wú)需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口2.5V/3.3V/5V兼容電平接口支持標(biāo)準(zhǔn)的14/20針JTAG接口運(yùn)行狀態(tài)指示與主機(jī)之間通過(guò)并口連接下載速度達(dá)到25Kbytes/S133ADT1000EmulatorforARMARM軟件ADTIDEforARMARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

134ADTIDEforARMARM軟件開(kāi)發(fā)工具-ADTIADTIDEforARM主要特征-可視化編程環(huán)境ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

支持ARM7、ARM9、SecurCore等。運(yùn)行于Windows98、NT、2000、XP等平臺(tái)。中文、英文版本支持可視化的源碼編輯和工程管理功能界面友好,使用方便:類(lèi)似MSVisualStudio的用戶(hù)界面,支持打印功能,支持文件內(nèi)查找功能和FindinFiles功能135ADTIDEforARM主要特征-可視化編程環(huán)境AADTIDEforARM主要特征-可視化編程環(huán)境ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

工程管理器:ADTIDE提供圖形化的工程管理工具,實(shí)現(xiàn)文件級(jí)、文件目錄級(jí)、工程級(jí)的多級(jí)編譯連接選項(xiàng)管理以及工程級(jí)的調(diào)試參數(shù)管理源碼編輯器:支持標(biāo)準(zhǔn)的文本編輯功能,支持C語(yǔ)言、匯編語(yǔ)言語(yǔ)法高亮顯示輔助編輯工具:提供一系列輔助編輯工具,方便開(kāi)發(fā)人員。包括:多剪貼板工具、代碼模板工具、頭文件和源文件切換工具、注釋工具、符號(hào)配對(duì)書(shū)寫(xiě)工具等多種輔助編輯工具。136ADTIDEforARM主要特征-可視化編程環(huán)境AADTIDEforARM主要特征-交叉編譯功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

支持開(kāi)發(fā)語(yǔ)言:ANSIC;EmbeddedC++;匯編語(yǔ)言編譯工具:使用著名優(yōu)秀自由軟件GNU的GCC交叉編譯工具,并經(jīng)過(guò)優(yōu)化和嚴(yán)格測(cè)試,支持C語(yǔ)言、匯編語(yǔ)言等編譯參數(shù)設(shè)置:完全圖形界面方式的編譯參數(shù)設(shè)置,提供可視化的設(shè)置功能。支持工程級(jí)、文件目錄級(jí)、文件級(jí)編譯參數(shù)設(shè)置137ADTIDEforARM主要特征-交叉編譯功能ARADTIDEforARM主要特征-調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

同時(shí)提供了圖形和命令行兩種調(diào)試方式程序的單步執(zhí)行程序下載存儲(chǔ)區(qū)下載和上載功能。工程級(jí)調(diào)試參數(shù)管理支持源程序、反匯編程序和混合窗口顯示,支持ARM/THUMB方式顯示具有與MSVisualStudio類(lèi)似的調(diào)試菜單功能:Go,Stop,Reset,Restart,Stepinto,Stepover,Stepout,RuntoCursor等豐富的示例程序138ADTIDEforARM主要特征-調(diào)試功能ARM軟ADTIDEforARM主要特征-調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

斷點(diǎn)功能:支持軟件斷點(diǎn)和硬件斷點(diǎn),實(shí)現(xiàn)斷點(diǎn)設(shè)置、斷點(diǎn)屏蔽、斷點(diǎn)取消、斷點(diǎn)列表等功能變量監(jiān)視功能:隨程序運(yùn)行同步更新變量,即時(shí)修改變量值,可設(shè)置自動(dòng)/手動(dòng)刷新方式、十進(jìn)制/十六進(jìn)制顯示ARM各種模式的寄存器即時(shí)查看與修改,當(dāng)前模式指示,寄存器值修改時(shí)紅色突顯存儲(chǔ)器查看與修改,可設(shè)置自動(dòng)/手動(dòng)刷新方式、字節(jié)/雙字節(jié)/四字節(jié)顯示、大/小端方式顯示,存儲(chǔ)器值修改時(shí)紅色突顯139ADTIDEforARM主要特征-調(diào)試功能ARM軟ADTIDEforARM主要特征-調(diào)試功能ARM軟件開(kāi)發(fā)工具-ADTIDE簡(jiǎn)介

函數(shù)堆棧顯示,可設(shè)置自動(dòng)/手動(dòng)刷新方式、十進(jìn)制/十六進(jìn)制顯示、參數(shù)值顯示,參數(shù)類(lèi)型顯示板上寄存器(OnBoardRegister)的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論