版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于ARM的嵌入式軟件開發(fā)1.基于ARM的嵌入式系統(tǒng)軟件開發(fā)流程2.ADS1.2開發(fā)工具介紹3.ARM系統(tǒng)編程庫基于ARM的嵌入式軟件開發(fā)1.基于ARM的嵌入式系統(tǒng)軟件12.1基于ARM的嵌入式系統(tǒng)軟件開發(fā)流程2.1基于ARM的嵌入式系統(tǒng)軟件開發(fā)流程2
嵌入式軟件開發(fā)流程工程建立源文件編譯調(diào)試固化匯編代碼*.sC程序*.c鏈接腳本文件*.ld存儲映像文件*.map命令腳本文件*.cs嵌入式軟件開發(fā)流程工程建立源文件編譯調(diào)試固化匯編代碼3軟件開發(fā)的主要流程操作的兩個環(huán)節(jié):編輯與編譯鏈接代碼排錯環(huán)節(jié)軟件代碼Debug和固化環(huán)節(jié)ADSCodeWarriorIDE環(huán)境下進行編輯、編譯與排錯;在AXD環(huán)境下進行代碼的固化與Debug。
軟件開發(fā)的主要流程操作的兩個環(huán)節(jié):42.2ADS1.2開發(fā)工具介紹CodeWarriorIDEAXDDebuger2.2ADS1.2開發(fā)工具介紹CodeWarrio5基于ARM的嵌入式軟件開發(fā)課件6基于ARM的嵌入式軟件開發(fā)課件7CodeWarriorIDE使用1建立新項目(Project)2添加源文件到項目中3設(shè)置項目的編譯目標4編譯該項目5Debug編譯連接通過的項目CodeWarriorIDE使用1建立新項目(Proj81.建立新項目(Project)1.建立新項目(Project)91.2添加源文件到項目中1.2添加源文件到項目中103設(shè)置項目的編譯目標3設(shè)置項目的編譯目標11選擇Project->Make菜單選項,完成下述功能:編譯新添加或修改過和touch過的源文件,產(chǎn)生ELF對象文件;連接對象文件和庫,產(chǎn)生一個ELFimage文件;執(zhí)行postlink操作,如將ELF映像文件用fromELF工具轉(zhuǎn)換成另外一種格式;4編譯該項目選擇Project->Make菜單選項,完成下述功能:4125Debug編譯鏈接通過的項目
缺省情況下,IDE會調(diào)用AXD調(diào)試器對Make通過的ELFimage文件進行debug。選擇Project->Debug5Debug編譯鏈接通過的項目
缺省情況下,IDE會調(diào)用136從命令行Building項目1.從命令行來使用編譯器CompilernameCompilervariantSourcelanguageCompileroutputarmccCC32-bitARMcodetccCC16-bitThumbcodearmcppC++CorC++32-bitARMcodetcppC++CorC++16-bitThumbcode6從命令行Building項目1.從命令行來使用編141).編譯C文件main.c:armcc-g-O1-cmain.c(forARM)tcc-g-O1-cmain.c(forThumb)其中:-gcompiler添加debugtables.-O1compiler在維護足夠的調(diào)試信息的同時采用最佳優(yōu)化算法-ccompiler只進行編譯2).鏈接映像文件armlinkmain.o-oembed.axf其中:-o指定鏈接輸出文件名embed.axf.3).用armsdorAXD載入映像進行調(diào)試運行1).編譯C文件main.c:156從命令行Building項目2.在命令行使用匯編器armasm-listaddreg.lstaddreg.sarmlinkaddreg.o-oaddreg在Debugger中運行程序:armsdaddregstep6從命令行Building項目2.在命令行使用匯編器162.AXDDebuger的使用運行程序添加斷點添加觀察點測試變量內(nèi)容測試寄存器測試內(nèi)存內(nèi)容2.AXDDebuger的使用運行程序17DEMO程序功能介紹是一個Benchmark程序,用來測試系統(tǒng)的整形運算處理性能的高低。用Dhrystone性能進行描述,計算方法如下:Dhrystones/秒=處理器時鐘*執(zhí)行次數(shù))/運行時間在Demo中,最小運行時間不能小于2秒鐘。MIPS△:業(yè)界用來衡量計算機系統(tǒng)性能的相對比較量。將VAX11/780作為一個參考機,其性能為1MIP.VAX11/780每秒鐘能夠完成1757Dhrystones.DEMO程序功能介紹是一個Benchmark程序,用來181運行程序步驟1.創(chuàng)建一個可執(zhí)行的映像文件2.運行AXD,選擇File→LoadImage3.選擇Execute→Go(或者按F5),相關(guān)文件的處理器視圖被打開,并在缺省斷點處停止4.若要重復執(zhí)行程序,選擇File→ReloadCurrentImage,然后重復執(zhí)行thenrepeatSteps2,3步驟1運行程序步驟1.創(chuàng)建一個可執(zhí)行的映像文件19基于ARM的嵌入式軟件開發(fā)課件20基于ARM的嵌入式軟件開發(fā)課件21基于ARM的嵌入式軟件開發(fā)課件222添加斷點1.選擇File→ReloadCurrentImage,2.選擇Execute→Go(或者按F5),3.添加斷點的三種方法:右鍵點擊行,從彈出Menu中選ToggleBreakpoint左鍵點擊行,按F9,雙擊行的Margin部分4.選擇SystemViews→Breakpoints
編輯斷點5.按F5恢復執(zhí)行加斷點后的程序2添加斷點1.選擇File→ReloadCurr23基于ARM的嵌入式軟件開發(fā)課件242添加斷點4.選擇SystemViews→Breakpoints
編輯斷點設(shè)置循環(huán)運行斷點750次后觸發(fā)斷點,程序停止。ProcessorViews→Variables,檢查run_Index值。5.按F5恢復執(zhí)行加斷點后的程序2添加斷點4.選擇SystemViews→Brea25基于ARM的嵌入式軟件開發(fā)課件263.添加觀察點1.選擇File→ReloadCurrentImage
2.選擇Execute→Go(或者按F5)到main()3.按F5執(zhí)行到添加的斷點4.SystemViews→Watchpoints,在WatchpointssystemView中點右鍵,選Add,對Watchpoints屬性進行編輯。3.添加觀察點1.選擇File→ReloadCurr27基于ARM的嵌入式軟件開發(fā)課件284.測試變量內(nèi)容1.使用Variablesprocessorview察看變量信息1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.按F5執(zhí)行到斷點4.ProcessorViews→Variables打開變量窗口。窗口中可以察看Local和Global等變量。5.右擊窗口,選Properties…→Dec,顯示變量十進制。6.按F10,相當于選擇Execute→Step單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在variables窗口中4.測試變量內(nèi)容1.使用Variablesproces29基于ARM的嵌入式軟件開發(fā)課件305測試變量內(nèi)容(2)2.察看變量的地址和內(nèi)容1~3.同前4.ProcessorViews→Watch打開Watch窗口。窗口可在多個Tab頁中察看變量內(nèi)容5.點右鍵,選AddWatch,打開AddWatch窗口,可以添加需要觀察變量6.按F10,相當于選擇Execute→Step單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在variables窗口中5測試變量內(nèi)容(2)2.察看變量的地址和內(nèi)容31基于ARM的嵌入式軟件開發(fā)課件326.測試寄存器1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.ProcessorViews→Registers打開寄存器窗口4.按F10單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在registers窗口中。6.測試寄存器1.選擇File→ReloadCur33基于ARM的嵌入式軟件開發(fā)課件347.測試內(nèi)存內(nèi)容1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.按F5執(zhí)行到斷點4.ProcessorViews→Memory5.按F10單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在registers窗口中。7.測試內(nèi)存內(nèi)容1.選擇File→ReloadC35基于ARM的嵌入式軟件開發(fā)課件368.修改內(nèi)存內(nèi)容1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.從Search→Memory顯示查找內(nèi)存對話框4.雙擊內(nèi)存窗口中的內(nèi)容可以對其進行修改。5.按F5可按修改后的內(nèi)容繼續(xù)運行程序。8.修改內(nèi)存內(nèi)容1.選擇File→ReloadC37基于ARM的嵌入式軟件開發(fā)課件38基于ARM的嵌入式軟件開發(fā)課件392.3ARM系統(tǒng)編程庫環(huán)境1.標準ARMC/C++運行庫2.Semihosting機制3.建立一個基于ARMC庫的應用4.ARM的混合編程2.3ARM系統(tǒng)編程庫環(huán)境1.標準ARMC/C401.C/C++編程環(huán)境如何能夠在嵌入式系統(tǒng)開發(fā)中熟練正確的運用C語言開發(fā)高質(zhì)量的應用程序是關(guān)鍵嵌入式應用開發(fā)經(jīng)常會用到: 標準ARM庫;用戶自定義庫;C與匯編的混合編程(ATPCS)1.C/C++編程環(huán)境如何能夠在嵌入式系統(tǒng)開發(fā)中熟練正確412.標準ARMC/C++運行庫ARM開發(fā)工具提供兩個運行庫:ANSICC:提供ISO的C庫函數(shù)。庫文件所在路徑: 安裝目錄\lib\armlibC++:提供ISOC++標準庫。庫文件所在路徑 安裝目錄\lib\cpplib兩個標準ARM庫使用ARM的semihosted環(huán)境運行,如文件的I/O操作。semihosted環(huán)境對ARMulator和Multi-ICE等都提供支持2.標準ARMC/C++運行庫ARM開發(fā)工具提供兩個運422.標準ARMC/C++運行庫ANSICC庫包含:由ISOClibrarystandard定義的函數(shù).在semihosted執(zhí)行環(huán)境下用來實現(xiàn)C庫函數(shù)的目標依賴的函數(shù),可以根據(jù)應用的需要重新定義這些函數(shù)被C/C++compilers使用的help函數(shù).C++庫包含:
RogueWaveStandardC++Libraryversion2.01.01C++compiler使用的help函數(shù)其它未被RogueWavelibrary支持的C++函數(shù)2.標準ARMC/C++運行庫ANSICC庫包含:433.Semihosting機制ARM目標的一個機制,聯(lián)系應用代碼到debuger所在宿主機的I/O請求。它允許C庫函數(shù)使用主機上的顯示和鍵盤功能。3.Semihosting機制ARM目標的一個機制,444.建立一個使用ARMC庫的應用使用main()函數(shù)創(chuàng)建嵌入式應用程序.自動創(chuàng)建一CorC++能執(zhí)行的環(huán)境,包括了以下操作:創(chuàng)建一個stack如果需要,創(chuàng)建一個heap初始化一部分標準ARMC庫中的函數(shù)程序自動支持ISO-definedfunctions的使用能夠捕獲runtimeerrors和signals,還能夠終止出錯程序的執(zhí)行或使程序正常退出。4.建立一個使用ARMC庫的應用使用main()函數(shù)創(chuàng)454.1建立一個使用semihosted環(huán)境應用需要提供下面兩者之一的執(zhí)行環(huán)境:使用缺省提供的標準semihosting函數(shù),如ARMulator,Angel,andMulti-ICE實現(xiàn)你自己的semihostingSWI軟中斷處理4.1建立一個使用semihosted環(huán)境應用需要提供下464.2建立一個non-semihosted環(huán)境應用1創(chuàng)建源代碼實現(xiàn)目標相關(guān)的應用2.在源代碼中添加__use_no_semihosting_swi保護:匯編中:添加__use_no_semihosting_swiC中添加#pragmaimport(__use_no_semihosting_swi).3.把新對象鏈接到應用中。4.2建立一個non-semihosted環(huán)境應用1創(chuàng)475.ARMC/C++庫注意事項ARMC/C++運行庫是以二進制形式提供的用戶不能修改ARMC/C++運行庫一般情況下,在建立基于特定目標的應用程序時,只需要重新實現(xiàn)ARMC運行庫中很少一部分函數(shù)5.ARMC/C++庫注意事項ARMC/C++運行庫486.用戶自定義庫ARM的庫管理工具armar可以把一系列ELF對象文件收集到一起,并在庫中進行維護。對于特定目標的嵌入式應用系統(tǒng),用戶自定義庫是不可缺少的,一般針對特定硬件的底層應用的開發(fā)來編制驅(qū)動庫函數(shù)。6.用戶自定義庫ARM的庫管理工具armar可以把一系列497.C與匯編混合編程及ATPCS混合編程的兩種方式:內(nèi)嵌匯編適用于匯編代碼簡單的情況,可直接嵌入到C語言程序中將C和匯編分別加到項目中,通過ATPCS來完成相互調(diào)用。匯編代碼復雜。7.C與匯編混合編程及ATPCS混合編程的兩種方式:508.1內(nèi)嵌匯編語法格式: __asm(“匯編指令”)或者:__asm{指令1…… 指令n }特點內(nèi)嵌匯編的操作數(shù)可以是C語言的表達式,可以是char、short、int等類型的無符號數(shù)。C程序中的標號可被內(nèi)嵌的匯編指令使用內(nèi)嵌匯編不支持用于內(nèi)存分配的偽操作8.1內(nèi)嵌匯編語法格式:特點518.2ATPCS—ARM-ThumbProcedureCallStantard目的:是單獨編譯的C語言程序和匯編語言程序之間能夠互相調(diào)用。ATPCS規(guī)定了子程序調(diào)用過程中:寄存器使用規(guī)則數(shù)據(jù)棧使用規(guī)則參數(shù)的傳遞規(guī)則8.2ATPCS—ARM-ThumbProcedure52總結(jié)總結(jié)53基于ARM的嵌入式軟件開發(fā)1.基于ARM的嵌入式系統(tǒng)軟件開發(fā)流程2.ADS1.2開發(fā)工具介紹3.ARM系統(tǒng)編程庫基于ARM的嵌入式軟件開發(fā)1.基于ARM的嵌入式系統(tǒng)軟件542.1基于ARM的嵌入式系統(tǒng)軟件開發(fā)流程2.1基于ARM的嵌入式系統(tǒng)軟件開發(fā)流程55
嵌入式軟件開發(fā)流程工程建立源文件編譯調(diào)試固化匯編代碼*.sC程序*.c鏈接腳本文件*.ld存儲映像文件*.map命令腳本文件*.cs嵌入式軟件開發(fā)流程工程建立源文件編譯調(diào)試固化匯編代碼56軟件開發(fā)的主要流程操作的兩個環(huán)節(jié):編輯與編譯鏈接代碼排錯環(huán)節(jié)軟件代碼Debug和固化環(huán)節(jié)ADSCodeWarriorIDE環(huán)境下進行編輯、編譯與排錯;在AXD環(huán)境下進行代碼的固化與Debug。
軟件開發(fā)的主要流程操作的兩個環(huán)節(jié):572.2ADS1.2開發(fā)工具介紹CodeWarriorIDEAXDDebuger2.2ADS1.2開發(fā)工具介紹CodeWarrio58基于ARM的嵌入式軟件開發(fā)課件59基于ARM的嵌入式軟件開發(fā)課件60CodeWarriorIDE使用1建立新項目(Project)2添加源文件到項目中3設(shè)置項目的編譯目標4編譯該項目5Debug編譯連接通過的項目CodeWarriorIDE使用1建立新項目(Proj611.建立新項目(Project)1.建立新項目(Project)621.2添加源文件到項目中1.2添加源文件到項目中633設(shè)置項目的編譯目標3設(shè)置項目的編譯目標64選擇Project->Make菜單選項,完成下述功能:編譯新添加或修改過和touch過的源文件,產(chǎn)生ELF對象文件;連接對象文件和庫,產(chǎn)生一個ELFimage文件;執(zhí)行postlink操作,如將ELF映像文件用fromELF工具轉(zhuǎn)換成另外一種格式;4編譯該項目選擇Project->Make菜單選項,完成下述功能:4655Debug編譯鏈接通過的項目
缺省情況下,IDE會調(diào)用AXD調(diào)試器對Make通過的ELFimage文件進行debug。選擇Project->Debug5Debug編譯鏈接通過的項目
缺省情況下,IDE會調(diào)用666從命令行Building項目1.從命令行來使用編譯器CompilernameCompilervariantSourcelanguageCompileroutputarmccCC32-bitARMcodetccCC16-bitThumbcodearmcppC++CorC++32-bitARMcodetcppC++CorC++16-bitThumbcode6從命令行Building項目1.從命令行來使用編671).編譯C文件main.c:armcc-g-O1-cmain.c(forARM)tcc-g-O1-cmain.c(forThumb)其中:-gcompiler添加debugtables.-O1compiler在維護足夠的調(diào)試信息的同時采用最佳優(yōu)化算法-ccompiler只進行編譯2).鏈接映像文件armlinkmain.o-oembed.axf其中:-o指定鏈接輸出文件名embed.axf.3).用armsdorAXD載入映像進行調(diào)試運行1).編譯C文件main.c:686從命令行Building項目2.在命令行使用匯編器armasm-listaddreg.lstaddreg.sarmlinkaddreg.o-oaddreg在Debugger中運行程序:armsdaddregstep6從命令行Building項目2.在命令行使用匯編器692.AXDDebuger的使用運行程序添加斷點添加觀察點測試變量內(nèi)容測試寄存器測試內(nèi)存內(nèi)容2.AXDDebuger的使用運行程序70DEMO程序功能介紹是一個Benchmark程序,用來測試系統(tǒng)的整形運算處理性能的高低。用Dhrystone性能進行描述,計算方法如下:Dhrystones/秒=處理器時鐘*執(zhí)行次數(shù))/運行時間在Demo中,最小運行時間不能小于2秒鐘。MIPS△:業(yè)界用來衡量計算機系統(tǒng)性能的相對比較量。將VAX11/780作為一個參考機,其性能為1MIP.VAX11/780每秒鐘能夠完成1757Dhrystones.DEMO程序功能介紹是一個Benchmark程序,用來711運行程序步驟1.創(chuàng)建一個可執(zhí)行的映像文件2.運行AXD,選擇File→LoadImage3.選擇Execute→Go(或者按F5),相關(guān)文件的處理器視圖被打開,并在缺省斷點處停止4.若要重復執(zhí)行程序,選擇File→ReloadCurrentImage,然后重復執(zhí)行thenrepeatSteps2,3步驟1運行程序步驟1.創(chuàng)建一個可執(zhí)行的映像文件72基于ARM的嵌入式軟件開發(fā)課件73基于ARM的嵌入式軟件開發(fā)課件74基于ARM的嵌入式軟件開發(fā)課件752添加斷點1.選擇File→ReloadCurrentImage,2.選擇Execute→Go(或者按F5),3.添加斷點的三種方法:右鍵點擊行,從彈出Menu中選ToggleBreakpoint左鍵點擊行,按F9,雙擊行的Margin部分4.選擇SystemViews→Breakpoints
編輯斷點5.按F5恢復執(zhí)行加斷點后的程序2添加斷點1.選擇File→ReloadCurr76基于ARM的嵌入式軟件開發(fā)課件772添加斷點4.選擇SystemViews→Breakpoints
編輯斷點設(shè)置循環(huán)運行斷點750次后觸發(fā)斷點,程序停止。ProcessorViews→Variables,檢查run_Index值。5.按F5恢復執(zhí)行加斷點后的程序2添加斷點4.選擇SystemViews→Brea78基于ARM的嵌入式軟件開發(fā)課件793.添加觀察點1.選擇File→ReloadCurrentImage
2.選擇Execute→Go(或者按F5)到main()3.按F5執(zhí)行到添加的斷點4.SystemViews→Watchpoints,在WatchpointssystemView中點右鍵,選Add,對Watchpoints屬性進行編輯。3.添加觀察點1.選擇File→ReloadCurr80基于ARM的嵌入式軟件開發(fā)課件814.測試變量內(nèi)容1.使用Variablesprocessorview察看變量信息1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.按F5執(zhí)行到斷點4.ProcessorViews→Variables打開變量窗口。窗口中可以察看Local和Global等變量。5.右擊窗口,選Properties…→Dec,顯示變量十進制。6.按F10,相當于選擇Execute→Step單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在variables窗口中4.測試變量內(nèi)容1.使用Variablesproces82基于ARM的嵌入式軟件開發(fā)課件835測試變量內(nèi)容(2)2.察看變量的地址和內(nèi)容1~3.同前4.ProcessorViews→Watch打開Watch窗口。窗口可在多個Tab頁中察看變量內(nèi)容5.點右鍵,選AddWatch,打開AddWatch窗口,可以添加需要觀察變量6.按F10,相當于選擇Execute→Step單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在variables窗口中5測試變量內(nèi)容(2)2.察看變量的地址和內(nèi)容84基于ARM的嵌入式軟件開發(fā)課件856.測試寄存器1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.ProcessorViews→Registers打開寄存器窗口4.按F10單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在registers窗口中。6.測試寄存器1.選擇File→ReloadCur86基于ARM的嵌入式軟件開發(fā)課件877.測試內(nèi)存內(nèi)容1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.按F5執(zhí)行到斷點4.ProcessorViews→Memory5.按F10單步執(zhí)行,這時每一步產(chǎn)生的變量變化將反映在registers窗口中。7.測試內(nèi)存內(nèi)容1.選擇File→ReloadC88基于ARM的嵌入式軟件開發(fā)課件898.修改內(nèi)存內(nèi)容1.選擇File→ReloadCurrentImage2.選擇Execute→Go(或者按F5),允許到缺省斷點Main3.從Search→Memory顯示查找內(nèi)存對話框4.雙擊內(nèi)存窗口中的內(nèi)容可以對其進行修改。5.按F5可按修改后的內(nèi)容繼續(xù)運行程序。8.修改內(nèi)存內(nèi)容1.選擇File→ReloadC90基于ARM的嵌入式軟件開發(fā)課件91基于ARM的嵌入式軟件開發(fā)課件922.3ARM系統(tǒng)編程庫環(huán)境1.標準ARMC/C++運行庫2.Semihosting機制3.建立一個基于ARMC庫的應用4.ARM的混合編程2.3ARM系統(tǒng)編程庫環(huán)境1.標準ARMC/C931.C/C++編程環(huán)境如何能夠在嵌入式系統(tǒng)開發(fā)中熟練正確的運用C語言開發(fā)高質(zhì)量的應用程序是關(guān)鍵嵌入式應用開發(fā)經(jīng)常會用到: 標準ARM庫;用戶自定義庫;C與匯編的混合編程(ATPCS)1.C/C++編程環(huán)境如何能夠在嵌入式系統(tǒng)開發(fā)中熟練正確942.標準ARMC/C++運行庫ARM開發(fā)工具提供兩個運行庫:ANSICC:提供ISO的C庫函數(shù)。庫文件所在路徑: 安裝目錄\lib\armlibC++:提供ISOC++標準庫。庫文件所在路徑 安裝目錄\lib\cpplib兩個標準ARM庫使用ARM的semihosted環(huán)境運行,如文件的I/O操作。semihosted環(huán)境對ARMulator和Multi-ICE等都提供支持2.標準ARMC/C++運行庫ARM開發(fā)工具提供兩個運952.標準ARMC/C++運行庫ANSICC庫包含:由ISOClibrarystandard定義的函數(shù).在semihosted執(zhí)行環(huán)境下用來實現(xiàn)C庫函數(shù)的目標依賴的函數(shù),可以根據(jù)應用的需要重新定義這些函數(shù)被C/C++compilers使用的help函數(shù).C++庫包含:
RogueWaveStandardC++Libraryversion2.01.01C++compiler使用的help函數(shù)其它未被RogueWavelibrary支持的C++函數(shù)2.標準ARMC/C++運行庫ANSICC庫包含:963.Semihosting機制ARM目標的一個機制,聯(lián)系應用代碼到debuger所在宿主機的I/O請求。它允許C庫函數(shù)使用主機上的顯示和鍵盤功能。3.Semihosting機制ARM目標的一個機制,974.建立一個使用ARMC庫的應用使用main()函數(shù)創(chuàng)建嵌入式應用程序.自動創(chuàng)建一CorC++能執(zhí)行的環(huán)境,包括了以下操作:創(chuàng)建一個stack
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 壽險公司財務制度
- 如何學財務制度管理知識
- 科技研究型財務制度
- 現(xiàn)代公司財務制度
- 分子公司財務制度
- 農(nóng)村公路安全隱患治理制度
- 蘭州市第六十六中學分層作業(yè)冊編審制度
- 公司基本制度包括哪些制度
- 養(yǎng)老院老人家庭關(guān)懷制度
- 施工現(xiàn)場施工防生物入侵制度
- 【高中數(shù)學競賽真題?強基計劃真題考前適應性訓練】 專題03三角函數(shù) 真題專項訓練(全國競賽+強基計劃專用)原卷版
- DB33∕T 1152-2018 建筑工程建筑面積計算和竣工綜合測量技術(shù)規(guī)程
- 2025年湖南省郴州市中考模擬英語試題(含答案含聽力原文無音頻)
- SL631水利水電工程單元工程施工質(zhì)量驗收標準第1部分:土石方工程
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 英語試卷(含標準答案)+聽力音頻
- 福建省龍巖市2024-2025學年高一上學期期末考試物理試卷(含答案)
- 汽車修理廠輪胎采購 投標方案(技術(shù)標 )
- 2023年7月浙江省普通高中學業(yè)水平考試(學考)化學試題
- DB3301-T 0461-2024 電動自行車停放充電場所消防安全管理規(guī)
- 小兒支氣管炎護理課件
- NB-T 47013.15-2021 承壓設(shè)備無損檢測 第15部分:相控陣超聲檢測
評論
0/150
提交評論