久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > ARM裸機開發bootloader代碼搬移從SRAM到DRAM

ARM裸機開發bootloader代碼搬移從SRAM到DRAM

作者: 時間:2016-11-19 來源:網絡 收藏
本部分分兩部分去闡述:

1、ARM啟動流程

本文引用地址:http://cqxgywz.com/article/201611/318208.htm

2、編寫代碼

一、2440:一上電,就從Nand中取出4KB的代碼到SRAM中stepping stone運行,并對內存進行初始化。而后將Nand中代碼全部到內存中。

6410:一上電,SROM中的BL0會將Nand中8KB的代碼搬移到SRAM中stepping stone運行,并對內存進行初始化。而后將Nand中代碼全部到內存中,剩余代碼會在內存中運行。

210:一上電,SROM中的BL0會將Nand中代碼到IRAM中運行,初始化內存。而后將Nand中全部代碼搬移到內存中。

注:2440中stepping stone有4KB 6410中stepping stone有8KB 210中stepping stone 為96KB

二、編寫代碼

步驟:首先確定搬移的起點和終點,而后使用循環進行搬移。

起點:SRAM

2440:0x0

6410:0x0c000000

210:0x00020000

終點:內存的鏈接地址

鏈接起始地址:起始代碼在內存中出現的地址。

下面很有必要介紹一下相對地址與絕對地址:

絕對地址:C語言中調用函數;對PC賦值

相對地址:匯編中的B指令,就是進行相對地址操作。它移動相對地址標號的位移。

以6410為例:起點:0x0c000000 終點0x50008000


copy_to_ram:ldr r0, =0x0c000000ldr r1, =0x50008000add r3, r0, #1024*4copy_loop:ldr r2, [r0], #4str r2, [r1], #4cmp r0, r3bne copy_loopmov pc, lr




評論


技術專區

關閉