这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 对twentyone写的bootloade看不懂的地方,想问问!!

共1条 1/1 1 跳转至

对twentyone写的bootloade看不懂的地方,想问问!!

菜鸟
2004-08-10 06:14:58     打赏
感谢twentyone给我们提供了这么好的资料,使我们少走了很多弯路,在此谢谢了。 不过我对你写的程序还是有两点疑问,如果你有空,还望你解答一下: ;Part 5
;***************************************************************
;Self copy from FLASH to SDRAM LDR r0, =|Image$$RO$$Base|
LDR r1, =|Image$$RO$$Limit|
LDR r2, =|Image$$RW$$Base|
LDR r3, =|Image$$RW$$Limit| SUB r1, r1, r0
SUB r3, r3, r2
ADD r1, r1, r3

LDR r2, =0x200000 ;@2M (ADD R2,R2,R0 ;应该加上这一句。 LDR
COPY
LDR r3, [r0], #4
STR r3, [r2], #4
SUBS r1, r1, #4
BNE COPY
第一个问题就是上面这短从FLASH拷贝RO,RW到SDRAM,从你写的程序中可以看到,在FLASH中,你开始搬移的地址是|Image$$RO$$Base| ,结束的地址是 |Image$$RO$$Base| +R1,(这里的R1就是上面算出的RO加RW的容量),但是你搬到SDRAM的起始地址是0x200000 (也就是SDRAM的起始地址0X0),结束地址是0x200000 +R1。很明显|Image$$RO$$Base| 并不总是恒等于OX0的!!!!这跟ARMLINK里的RO设置有关。所以你上面这样写我觉得不是很妥。应该加上如上的一句。 另外一个问题是:我因为没有具体写过BOOTLOADER,不知道中断向量表是怎么处理的。如果我们把RO设为0X0,那岂不是把中断向量表给覆盖了。那又怎么移植?还是OS能自动处理,在BOOTLOAD不用管这一步的?/



关键词: twentyone     写的     bootloade     看不    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]