这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教vivi的问题,2410,研究过的请教了

共1条 1/1 1 跳转至

请教vivi的问题,2410,研究过的请教了

菜鸟
2005-04-21 23:54:42     打赏
请教vivi的问题

下面是vivi的head.S一段代码

@ copy vivi to RAM ldr r0, =VIVI_RAM_BASE mov r1, #0x0 mov r2, #0x20000 bl nand_read_ll

VIVI_RAM_BASE=0x33f00000 我在vivi/arch/vivi.lds 连接文件里面看到 连接地址是0x33f00000

因此我估计main函数是以0x33f00000地址编译的(以后main函数代码必须放在这个地址开始的地方才可以正确运行啊),head.S编译后就连接main函数的编译后的目标文件,生产映象。

但是上面的代码是把head.S也拷贝到ram去了,因此在0x33f00000的代码不是main函数的入口

而是head.s的入口,main的代码运行地址相应的往后移了。这样stage2的main函数代码运行地址是不正确的,怎么可以正确运行呢????

如果说head.S文件是以0x33f00000开始编译整个bootloader包括main函数部分,那么一开始自动copy前4k到steppingstone的代码是不能正确运行的吧,因为steppingstone会在0地址开始。

linux下是用arm gcc来编译的,一打的makefile文件,写得好复杂,只看懂一个大概,但是还是无法理解上面提到的问题。

请高手指教。




关键词: 请教     问题     研究     教了    

共1条 1/1 1 跳转至

回复

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