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

正文內(nèi)容

arm嵌入式軟件開(kāi)發(fā)-資料下載頁(yè)

2025-05-11 16:09本頁(yè)面
  

【正文】 令為這些段命名 39 TM 39 66v06 Embedded Software Development __user_initial_stackheap( ) ? 在 reset handler, 這個(gè) stack指針 (r13)和 stack 限制值 (r10) 通常設(shè)置了,他們分別通過(guò) R1和 R3作為參數(shù)傳遞給 __user_initial_stackheap IMPORT __use_two_region_memory EXPORT __user_initial_stackheap __user_initial_stackheap LDR r0, heap_base 。 SB value setup in reset handler LDR r2, heap_limit 。 SL value setup in reset handler MOV pc, lr Stack Heap 這個(gè) __user_initial_stackheap( )例子實(shí)現(xiàn)了兩個(gè)存儲(chǔ)器區(qū)域模式。 必須引用 __use_two_region_memory, 在這 HEAP被檢查,它是 HEAP的限制值,而不是 STACK指針 40 TM 40 66v06 Embedded Software Development 存儲(chǔ)器映射例子 16 bit RAM 0x10000 0x18000 0x4000 0x0000 Fast 32 bit RAM Vector Table Stack Exception Handlers RW amp。 ZI Heap Flash 0x24000000 0x28000000 Reset Handler RO Peripherals 0x40000000 外設(shè)控制寄存器的地址映射 直接在 FLASH運(yùn)行的代碼大小 16位 RAM 被用來(lái)保存數(shù)據(jù)和 HEAP區(qū) 一些緊急的代碼和數(shù)據(jù)可放在快速的RAM區(qū) 41 TM 41 66v06 Embedded Software Development SCATTER文件例子 : : 16bitRAM 0x10000 { * (+RW,+ZI) } HEAP 0x15000 UNINIT { (heap) } TIMER 0x40000000 UNINIT { (+ZI) } } FLASH 0x24000000 0x04000000 { FLASH 0x24000000 0x04000000 { (Init, +First) * (+RO) } 32bitRAM 0x0000 { (Vect, +First) (+RO) } STACK 0x1000 UNINIT { (stack) } : 這個(gè) scatter文件執(zhí)行上頁(yè)所顯示的存儲(chǔ)器映射。 42 TM 42 66v06 Embedded Software Development Agenda 一個(gè) PC軟件的構(gòu)造 裁減標(biāo)準(zhǔn) C庫(kù)函數(shù)到目標(biāo)板 定制 IMAGE的存儲(chǔ)器映射到目標(biāo)板 復(fù)位和初始化 深層次的存儲(chǔ)器器映象考慮 編譯和調(diào)試 IMAGE 43 TM 43 66v06 Embedded Software Development 不使用段的消除和程序的入口點(diǎn) ? 在默認(rèn)的情況下,鏈接器將從最終的 image文件中刪除一些從不使用的代碼段,或從未使用的數(shù)據(jù)段。 ? 要查看哪些段被刪除了,在鏈接時(shí)用: ‘info unused’. ? 為了確保不刪除重要的段 (比如:中斷向量表 ) : ? 使用匯編指令 entry標(biāo)示所有的入口點(diǎn)( c庫(kù)有一個(gè)入口點(diǎn): __main()), ? 使用 ‘entry’選擇其中一個(gè)入口點(diǎn)作為 image的入口,否則,鏈接器將給警 告: Image does not have an entry point. (Not specified or not set due to multiple choices) ? 在生成 ROMmable image 使推薦使用下面的鏈接命令: armlink scatter info unused entry 0x0 o 44 TM 44 66v06 Embedded Software Development 輸出選項(xiàng) ? 鏈接器產(chǎn)生 ELF/DWARF2 格式的映像文件 , 選擇適當(dāng)?shù)恼{(diào)試器下載調(diào)試 ? 為把 elf映像文件轉(zhuǎn)為 ‘ROMmable’格式 使用 fromelf, 例如 .: fromelf bin o ? 產(chǎn)生 binary格式的文件可燒入到適當(dāng)?shù)? ROM, Flash或 EPROMEmulator, 等 . ? 其他 ‘ROMmable’ 格式的文件也可由 fromelf產(chǎn)生 , 例如 .: ? Motorola 32 bit Hex (m32) ? Intel 32 bit Hex (i32) ? Intellec Hex (ihf). 45 TM 45 66v06 Embedded Software Development 調(diào)試 ROM映像文件 ? 編譯時(shí)加調(diào)試表( G) 來(lái)進(jìn)行源碼級(jí)調(diào)試。 ? 在 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)試信息的符號(hà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 測(cè)驗(yàn) 1. 默認(rèn)情況下,應(yīng)用程序的 STACK和 HEAP如何放置的? 2. 如何確認(rèn)在 C庫(kù)里沒(méi)有鏈接進(jìn) semihosting SWI功能? 3. 在 scatter描述文件里,如何確定中斷向量表放在 0x0? 4. 哪個(gè)函數(shù)被用來(lái)放置應(yīng)用 stack和 heap? 5. 在 c庫(kù)初始化( — main) 前,使能 cache, 可以避免 cache相關(guān)的問(wèn)題? 6. 在兩個(gè)區(qū)域的 stack 和 heap模式,什么符號(hào)必須引入執(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ù)位時(shí), ROM通常定位到 0x0。 2. 跳轉(zhuǎn)到實(shí)際的 ROM地址: 0x10000 3. 這時(shí),把 0x0的 ROM替換為 RAM, 把中斷向量表拷貝到 0。 Reset Handler Reset Handler Reset Handler Reset Handler ROM 0x10000 0x18000 Branch to real ROM Remove alias 1 2 3
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1