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

正文內容

arm嵌入式軟件開發(fā)(編輯修改稿)

2025-06-16 16:09 本頁面
 

【文章內容簡介】 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 。HB LDR r1, =0x88000 。SB 。 r2 not used (HL) 。 r3 not used (SL) MOV pc, lr Heap Stack Heap 的限制地址在單一模式是不被使用的。 Stack 的限制地址只在軟件堆棧檢查許可的情況下才有效。 HB = 0x80000 SB = 0x88000 23 TM 23 66v06 Embedded Software Development 警告 ! ? 當使用分散加載時你必須執(zhí)行 __user_initial_stackheap() ? 在 C庫初始化代碼內的 __user_initial_stackheap() 的默認執(zhí)行是在映像文件的 RW/ZI數據段后放置 HEAP。 ? 使用 Image$$RW$$Base / Image$$ZI$$Base 連接符號 ? 這些符號對 scatterloading是無效的。 ? 在 ADS : ? 符號被設置為 0X0, heap被定位在這 ! ? Heap的并發(fā)使用,無論是直接 (. with malloc())或間接 (by use of argc/argv)的都可能破壞向量表或其他代碼,典型的結果是不可預知的程序在運行時出錯了。 ? 在 ADS : ? 符號沒有定義,應用程序不會聯(lián)接: Error: L6218E: Undefined symbol Image$$ZI$$Limit (referred from ). 24 TM 24 66v06 Embedded Software Development Agenda 一個 PC軟件的構造 裁減標準 C庫函數到目標板 定制 IMAGE的存儲器映射到目標板 復位和初始化 深層次的存儲器器映象考慮 編譯和調試 IMAGE 25 TM 25 66v06 Embedded Software Development The Vector Table AREA Vectors, CODE, READONLY IMPORT Reset_Handler 。 import other exception handlers 。 … ENTRY B Reset_Handler B Undefined_Handler B SWI_Handler B Prefetch_Handler B Data_Handler NOP 。 Reserved vector B IRQ_Handler 。 FIQ_Handler will follow directly END 在使用 scatterloading+FIRST時直接定位在 0X0( 或 0xFFFF0000) ENTRY 直接告訴鏈接器這是一個入口點,防止某些段被刪除 中斷向量表26 TM 26 66v06 Embedded Software Development 初始化步驟 C Library User Code __main copy code and data zero uninitialized data __rt_entry initialize library functions call toplevel constructors (C++) Exit from application main( ) tells linker to link in library initialization code Image Entry Point __user_initial_stackheap( ) set up stack amp。 heap reset handler initialize stack pointers configure MMU/MPU setup cache/enable TCM $Sub$$main( ) enable caches amp。 interrupts 27 TM 27 66v06 Embedded Software Development ROM or RAM at 0x0? ? 需要一個有效的地址在 0x0 這項功能可被編碼在像 RESET 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 一樣在源碼中編碼。 。 Integrator CM control reg CM_ctl_reg EQU 0x1000000C 。 Address of CM Control Register Remap_bit EQU 0x04 。 Bit 2 is remap bit of CM_ctl ENTRY 。 On reset, an alias of ROM is at 0x0, so jump to 39。real39。 ROM. LDR pc, =Instruct_2 Instruct_2 。 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] 。 RAM is now at 0x0. 。 The exception vectors must be copied from ROM to RAM (in __main) 。 Reset_Handler follows on from here 這個功能也可在有 mmu時使用 ROM/RAM的重定向29 TM 29 66v06 Embedded Software Development 初始化棧的指針 。 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 。 located by scatter file 。 Enter each mode in turn and set up the stack pointer MSR CPSR_c, Mode_FIQ: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 。 No interrupts SUB sp, r0, Offset_IRQ_Stack … 。 System mode stack is set up
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1