标题:
ARM bootloader程序的理解(2)
[打印本页]
作者:
yuyang911220
时间:
2015-3-29 15:10
标题:
ARM bootloader程序的理解(2)
三、TCM的配置
TCM和cache是有区别的,虽然都是为了加快速度,但是TCM必须给它指定地址,TCM和cache的用途也不样,TCM保存常用到的数据如中断向量表和realtime数据,而cache只是为了加快处理器和外设之间的数据处理。
ldr r0, =0x0;
mrc p15, 0, r1, c9, c1, 1;读coprocessor instruction tcm region register.
orr r0, r0, r1;
mov r1, #1
orr r1, r1, r0;instruction tcm bit_o 置1,enable insturction tcm.
mcr p15,0,r1,c9,c1,1;写入
其它的cache配置也类似,主要读懂ARM document.
四、建立一个程序运行文境:
image(bin文件)包括俩部分:RO and RW,RO部分一般我们在加载前后的位置都不用变化,但是RW必须在加载后把他放到RAM中执行,所以RW部分我们把它映射到RAM地址中。
IMPORT |Image$$RO$$Base| ;image RO 开始地址
IMPORT |Image$$RO$$Limit|
IMPORT |Image$$RO$$Length|
IMPORT |Image$$RW$$Base|
IMPORT |Image$$RW$$Limit|
IMPORT |Image$$RW$$Length|
IMPORT |Image$$ZI$$Base|
IMPORT |Image$$ZI$$Limit|
IMPORT |Image$$ZI$$Length|
ldr r0,=|Image$$RO$$Limit|
ldr r1,=|Image$$RW$$Base|
ldr r2,=|Image$$RW$$Limit|
3
cmp r1,r2
bge %B3
ldrcc r3,[r0],#4;从RO段的结束地址+1load rw段数据
strcc r3,[r1],#4;重新写入到rw段
b %B4
4
ldr r0,=|Image$$ZI$$Base|;处理ZI段数据
ldr r1,=|Image$$ZI$$Length|
add r1, r1, r0
ldr r1, =0X2000
ldr r2,=0
5
cmp r0, r1
bge %B6
strcc r2,[r0],#4;初始化ZI段数据为0
b %B5
6
五、对内存进行测试:
由于系统中有各种各样的内存,可以对内存进行简单测试。
六、UART的配置:
UART在嵌入式系统中很重要,虽然它很简单,但是在早期开发中,UART是必须的设备之一。UART作为下一篇中将进一步详细讨论。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0