freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm嵌入式軟件開發(fā)(參考版)

2025-05-15 16:09本頁面
  

【正文】 Reset Handler Reset Handler Reset Handler Reset Handler ROM 0x10000 0x18000 Branch to real ROM Remove alias 1 2 3 。 ? 在 ROM( EPROM 、 Flash 、 EPROMEmulator ) 設(shè)備里燒入 IMAGE文件,然后,把 IMAGE文件加載到 RAM里 : ? For AXD, select ‘FileLoad Memory From File’ with load address 0x0 ? On mand line, use: loadbinary 0x0 ? 從 ELF格式的 IMAGE文件里裝載含調(diào)試信息的符號表 ? For AXD, select ‘FileLoad Debug Symbols’ ? On mand line, use: loadsymbols 46 TM 46 66v06 Embedded Software Development 附加信息 ? 附加信息: ? 例子代碼在 ADS\Examples\embedded目錄 ? ADS Developer Guide ? 第 6章 : Writing Code for ROM ? ADS Compilers and Libraries Guide ? 第 4章 : The C and C++ Libraries ? ADS Linker and Utilities Guide 47 TM 47 66v06 Embedded Software Development 測驗(yàn) 1. 默認(rèn)情況下,應(yīng)用程序的 STACK和 HEAP如何放置的? 2. 如何確認(rèn)在 C庫里沒有鏈接進(jìn) semihosting SWI功能? 3. 在 scatter描述文件里,如何確定中斷向量表放在 0x0? 4. 哪個函數(shù)被用來放置應(yīng)用 stack和 heap? 5. 在 c庫初始化( — main) 前,使能 cache, 可以避免 cache相關(guān)的問題? 6. 在兩個區(qū)域的 stack 和 heap模式,什么符號必須引入執(zhí)行? 48 TM 48 66v06 Embedded Software Development ROM/RAM 重定向( remmap) ROM 0x10000 0x18000 0x4000 0x0000 Aliased ROM Reset Handler 0x4000 0x0000 RAM Vectors 1. 復(fù)位時, ROM通常定位到 0x0。 42 TM 42 66v06 Embedded Software Development Agenda 一個 PC軟件的構(gòu)造 裁減標(biāo)準(zhǔn) C庫函數(shù)到目標(biāo)板 定制 IMAGE的存儲器映射到目標(biāo)板 復(fù)位和初始化 深層次的存儲器器映象考慮 編譯和調(diào)試 IMAGE 43 TM 43 66v06 Embedded Software Development 不使用段的消除和程序的入口點(diǎn) ? 在默認(rèn)的情況下,鏈接器將從最終的 image文件中刪除一些從不使用的代碼段,或從未使用的數(shù)據(jù)段。 必須引用 __use_two_region_memory, 在這 HEAP被檢查,它是 HEAP的限制值,而不是 STACK指針 40 TM 40 66v06 Embedded Software Development 存儲器映射例子 16 bit RAM 0x10000 0x18000 0x4000 0x0000 Fast 32 bit RAM Vector Table Stack Exception Handlers RW amp。 SB value setup in reset handler LDR r2, heap_limit 。 length = 0x3000 { (heap) 。 length = 0x3000 { (stack) 。 Reserve stack space AREA heap, DATA, NOINIT SPACE 0x3000 。 在存儲器映射的請求地址上增加另外的可執(zhí)行區(qū)來放置他們 : LOAD_FLASH 0x24000000 0x04000000 { : TIMER 0x40000000 UNINIT { (+ZI) } : } UNINIT 顯示在 ZI 段沒有被初始化為 0。 /* timer control */ volatile unsigned reg2。 { : } 代碼段可被遠(yuǎn)距離分開放置 (比 BL的跳轉(zhuǎn)范圍還遠(yuǎn) ) 鏈接器可自動增加長跳轉(zhuǎn) Veneers,遠(yuǎn)距離的函數(shù)可被成功調(diào)用。 33 TM 33 66v06 Embedded Software Development Agenda 一個 PC軟件的構(gòu)造 裁減標(biāo)準(zhǔn) C庫函數(shù)到目標(biāo)板 定制 IMAGE的存儲器映射到目標(biāo)板 復(fù)位和初始化 深層次的存儲器器映象考慮 編譯和調(diào)試 IMAGE 34 TM 34 66v06 Embedded Software Development 長跳轉(zhuǎn) Veneers ROM_LOAD 0x0000 { ROM_EXEC 0x0000 { * (+RO) } RAM 0x80000000 { (+RO) * (+RW,+ZI) } } /* */ int main(void) { farfunc()。 ? 如果你想在用戶模式下運(yùn)行你的應(yīng)用,你需在 $Sub$$main( )改變?yōu)橛脩裟J? ? 當(dāng)然 , __user_initial_stackheap( ) 必須有權(quán)使用你的應(yīng)用模式寄存器。 ? 需要執(zhí)行特權(quán)操作 比如 :使能中斷。 32 TM 32 66v06 Embedded Software Development 運(yùn)行模式考慮 ? 主應(yīng)用程序運(yùn)行在何種模式是要考慮的重要問題。 // change mode see next slide $Super$$main()。 // enables caches int_enable()。 IMPORT __main B __main ? 我們可使用 $Sub和 $Super功能來包裝符號 extern void $Super$$main(void)。 ? 在 c庫初始化代碼運(yùn)行之后,如果 cache被使能,可以避免與 cache相關(guān)的問題; 31 TM 31 66v06 Embedded Software Development 擴(kuò)展功能 ? 系統(tǒng)初始化代碼通常在進(jìn)入主應(yīng)用之前運(yùn)行 ? 當(dāng)然, reset handler 不是一個適合使能中斷和使能 caches地方。 ? TCM’s( Tightly coupled memory) 如果有 TCM,典型的必須使能它。 Set up stack limit if needed LDR r10, stack_limit 。 System mode stack is set up last MSR CPSR_c, Mode_SYS:OR:I_Bit:OR:F_Bit 。 No interrupts SUB sp, r0, Offset_FIQ_Stack MSR CPSR_c, Mode_IRQ:OR:I_Bit:OR:F_Bit 。 located by scatter file 。 Reset_Handler follows on from here 這個功能也可在有 mmu時使用 ROM/RAM的重定向29 TM 29 66v06 Embedded Software Development 初始化棧的指針 。 RAM is now at 0x0. 。 ROM. LDR
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1