|
文件: |
bootloader 源码.rar |
大小: |
1KB |
下载: |
下载 | |
|
文件: |
bootloader 源码.rar |
大小: |
1KB |
下载: |
下载 | |
4020_bootloader引导不带操作系统的工程代码,具体过程分为以下两种情况:
1、工程代码生成.bin文件的大小大于64KB,即超过了ESRAM的大小,则工程必须下载到SDRAM运行,具体修改措施如下:
1)、对工程代码的修改:
首先,对工程代码的scat_crremap.scf进行修改如下:
SDram 0x30000400 //bootloader内pc跳转执行的地址
{
SDram 0x30000400
{
boot_gfd.o (BOOT, +First)
* (+RO,+RW,+ZI)
}
PC 0x00000000 //将SDRAM映射到0地址,也可以写成0x30000000
{
int_gfd.o (INT, +First)
}
}
最后,对ARM Linker进行设置:
Output -> Linktype -> Scattered;
Output -> RO Base ->0x8000;
Options ->Image entry point ->0x30000400;
到此,对工程代码的修改已经结束。
2)、对bootloader的修改:
首先,搬运代码:
;拷贝kernel代码到SDram
ldr r3, =0x00000000
ldr r1, =0x30000400 ;;;搬运代码到SDRAM指定位置,与下面pc跳转保持一致
ldr r2, =0x20001000 ;the address of NorFlash
修改工程文件的大小:
LOOP
ldr r4, [r2], #4
str r4, [r1], #4
add r3, r3, #1
cmp r3, #0x80000 ;;;根据工程文件的大小进行相应修改
bne LOOP
其次,地址映射:
;remap操作
ldr pc, =0x200000a0 ;;;如果不添加任何指令,这个值不变;要添加指令,这个值要与下面一致(2-3指令)
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0
最后,PC跳转:
;重新设定PC,开始操作系统启动
ldr pc, =0x30000400 ;;;PC跳转指向要执行的地址,针对不同情况进行修改
nop
nop
nop
注意:还要将工程代码中boot_gfd文件下,对EMI的配置屏蔽掉,因为在SDRAM内不能配置SDRAM
2、工程代码生成.bin文件的大小小于64KB,即没有超过了ESRAM的大小,则工程可以下载到ESRAM中运行,也可以下载到SDRAM运行,具体修改措施如下(实验过程以UART为例):
1)、下载到ESRAM中运行:
a、对scat_crremap.scf进行修改如下:
esram 0x4000000 //ESRAM地址
{
esram 0x4000000
{
boot_gfd.o (BOOT, +First)
* (+RO,+RW,+ZI)
}
SDram 0x00000000 //SDRAM的起始地址,也可以写成0x30000000
{
int_gfd.o (INT, +First)
}
}
b、对ARM Linker进行设置:
Output -> Linktype -> Scattered;
Output -> RO Base ->0x8000;
Options ->Image entry point ->0x4000000;
c、 对bootloader进行修改:
首先,搬运代码:
;拷贝kernel代码到SDram
ldr r3, =0x00000000
ldr r1, =0x4000000 ;;;搬运代码到SDRAM指定位置,与下面pc跳转保持一致
ldr r2, =0x20001000 ;the address of NorFlash
修改工程文件的大小:
LOOP
ldr r4, [r2], #4
str r4, [r1], #4
add r3, r3, #1
cmp r3, #0x80000 ;;;根据工程文件的大小进行相应修改
bne LOOP
其次,地址映射:
;remap操作
ldr pc, =0x200000a0 ;;;如果不添加任何指令,这个值不变;要添加指令,这个值要与下面一致(2-3指令)
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0
最后,PC跳转:
;重新设定PC,开始操作系统启动
ldr pc, =0x4000000 ;;;PC跳转指向要执行的地址,针对不同情况进行修改
nop
nop
nop
2)、下载到SDRAM运行和第一种情况原理是一样的。
阅读(647) | 评论(0) | 转发(0) |