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

正文內容

arm嵌入式軟件開發(fā)-預覽頁

2025-06-12 16:09 上一頁面

下一頁面
 

【正文】 以不考慮標準的放置規(guī)則 ? 使用 +FIRST 和 +LAST , 直接把第一個和最后一個對象放在可執(zhí)行區(qū)。 root (load = exec address) { (+RO) 。 All other RO areas * (+RW,+ZI) 。 Error: L6203E: Entry point (0x08000000) lies within nonroot region EXE_FLASH. 19 TM 19 66v06 Embedded Software Development Runtime 存儲器管理 Semihosting Support ANSI C Stack amp。 編譯開關是: apcs /swst 指定堆棧限制 (為 tworegion 模式 ) heap is checked against stack pointer Heap heap is checked against heap limit (SL) 22 TM 22 66v06 Embedded Software Development __user_initial_stackheap( ) ? 可以用 C或匯編來寫,他要返回: ? Heap 基地址在 R0 ,STACK 的基地址在 R1. ? Heap 的限制地址在 R2,STACK的限制地址在 R3 EXPORT __user_initial_stackheap __user_initial_stackheap LDR r0, =0x80000 。 r3 not used (SL) MOV pc, lr Heap Stack Heap 的限制地址在單一模式是不被使用的。 ? 在 ADS : ? 符號被設置為 0X0, heap被定位在這 ! ? Heap的并發(fā)使用,無論是直接 (. with malloc())或間接 (by use of argc/argv)的都可能破壞向量表或其他代碼,典型的結果是不可預知的程序在運行時出錯了。 Reserved vector B IRQ_Handler 。 ROM 0x10000 0x18000 0x4000 0x0000 Aliased ROM Reset Handler ROM/RAM Remapping RAM 0x10000 0x18000 0x4000 0x0000 ROM ROM at 0x0 Reset Handler Vectors Reset Handler RAM Vectors 28 TM 28 66v06 Embedded Software Development ROM/RAM Remapping 下面的例子可像 Reset handler 一樣在源碼中編碼。 Bit 2 is remap bit of CM_ctl ENTRY 。 Remap by setting Remap bit of the CM_ctl register LDR r1, =CM_ctl_reg LDR r0, [r1] ORR r0, r0, Remap_bit STR r0, [r1] 。 Amount of memory (in bytes) allocated for stacks Len_FIQ_Stack EQU 256 Len_IRQ_Stack EQU 256 … Offset_FIQ_Stack EQU 0 Offset_IRQ_Stack EQU Offset_FIQ_Stack + Len_FIQ_Stack … Reset_Handler LDR r0, stack_base 。 No interrupts SUB sp, r0, Offset_IRQ_Stack … 。 located by scatter file 30 TM 30 66v06 Embedded Software Development 局部存儲器設置 ? runtime的存儲器必須在 C庫初始化前定義 ? 如果你使用的 ARM7芯片還有 MMU/MPU,它必須設置; ? ROM/RAM 的重新映射必須完成。 ? 在 reset handler最后應該放一個 C運行庫初始化代碼 ? EG。 // enables interrupts sys_to_usr_mode()。 ? 用戶模式( User mode) 是非特權模式( unprivileged mode) 保護你的系統(tǒng) ? 系統(tǒng)初始化代碼只能運行在特權模式 (privileged mode)。 ? 解決辦法是在系統(tǒng)模式里退出 reset handler ? 所有 C庫初始化代碼有權使用用戶寄存器,但是仍然可以執(zhí)行特權操作。 0x00000000 bl Ven$AA$L$$farfunc : : Ven$AA$L$$farfunc ldr pc,[pc,4] dcd 0x80000000 : : 0x80000000 : mov pc,lr 35 TM 35 66v06 Embedded Software Development 存儲器映射寄存器 ? 你可以使用 scatterloading來放置外設寄存器的存儲器映射 ? 在文件中定義它 . struct { volatile unsigned reg1。 36 TM 36 66v06 Embedded Software Development Stack 和 Heap 區(qū) (1) ? 你也可以在 SCATTER文件中放置 stack和 heap ? 在匯編原文件里定義 stack 和 heap 區(qū) 比如 . ? 這個空間直接保留一個為 0的存儲器塊 AREA stack, DATA, NOINIT SPACE 0x3000 。 stack = 0x4000 to 0x1000 } HEAP 0x15000 UNINIT 。 SL value setup in reset handler MOV pc, lr Stack Heap 這個 __user_initial_stackheap( )例子實現(xiàn)了兩個存儲器區(qū)域模式。 ? 要查看哪些段被刪除了,在鏈接時用: ‘info unused’. ? 為了確保不刪除重要的段 (比如:中斷向量表 ) : ? 使用匯編指令 entry標示所有的入口點( c庫有一個入口點: __main()), ? 使用 ‘entry’選擇其中一個入口點作為 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 輸出選項 ? 鏈接器產生 ELF/DWARF2 格式的映像文件 , 選擇適當?shù)恼{試器下載調試 ? 為把 elf映像文件轉為 ‘ROMmable’格式 使用 fromelf, 例如 .: fromelf bin o ? 產生 binary格式的文件可燒入到適當?shù)? ROM, Flash或 EPROMEmulator, 等 . ? 其他 ‘ROMmable’ 格式的文件也可由 fromelf產生 , 例如 .: ? Motorola 32 bit Hex (m32) ? Intel 32 bit Hex (i32) ? Intellec Hex (ihf). 45 TM 45 66v06 Embedded Software Development 調試 ROM映像文件 ? 編譯時加調試表( G) 來進行源碼級調試
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1