|
亚瑟王 发表于 2012-8-30 11:58
亲,start.S是开机第一个运行的,这点是不容置疑的。
根据你描述的情况,你需要自行确认:在u-boot.lds中 ...
嗯嗯,应该是您说的CPU跳转的问题,因为我在start.S中自定义的宏,比如:# define GPBCON1 0x56000010 # define GPBDAT1 0x56000014;通过观察make生成u-boot.dis文件,会发现。这个宏定义被放在了代码段fiq中而且是undefine,请看他的304和305行。初步认定start.S中是不支持额外添加宏定义之类的,只能在原有的基础上修改,此问题有待验证……
278 33f80380 <fiq>:
279 33f80380: e51fd344 ldr sp, [pc, #-836] ; 33f80044 <_armboot_start>
280 33f80384: e24dd805 sub sp, sp, #327680 ; 0x50000
281 33f80388: e24dd088 sub sp, sp, #136 ; 0x88
………………
301 33f803d8: 4a000008 bmi 33f80400 <_TEXT_BASE>
302 33f803dc: 00007fff streqd r7, [r0], -pc
303 33f803e0: 4a00001c bmi 33f80458 <SMRDATA+0x28>
304 33f803e4: 56000010 undefined
305 33f803e8: 56000014 undefined
306 33f803ec: e1a00000 nop (mov r0,r0)
307 33f803f0: e1a00000 nop (mov r0,r0)
308 33f803f4: e1a00000 nop (mov r0,r0)
309 33f803f8: e1a00000 nop (mov r0,r0)
310 33f803fc: e1a00000 nop (mov r0,r0)
谢谢亚瑟王的指点!希望能够与兄长多多交流。 |
|