折腾了两天,总算把NAND的启动搞定了.
说白了,道理很简单,NAND的启动凡是做过2410建议bios的人都知道原理,也知道代码该如何写.
不过u-boot的代码链接方式让初入GCC的新手确实感到迷惘. 在我的bios里面的代码放到u-boot里面就是不好使!
后来调试发现,我的存储器初始化是放在了lowlevel_init.S文件中的, 查看map文件后发现默认的链接方式把它放到了4K的后面,这导致在拷贝代码之前调用的失败.
在网上找了一下,就发现很多高手都已经给出了解决办法(顶层Makefile文件中):
#__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
__LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst $(obj),,$(LIBS))
这样修改之后查看map文件可以发现,lowlevel_init函数链接到了前面.
稍写试试,OK!
NAND可以启动了!
代码附后,https://static.assets-stash.eet-china.com/album/old-resources/2009/7/17/617ad6c6-caf8-4480-95ee-145e5b66ef21.rar欢迎大家下载.
喜欢的话顶一下啊!
用户1156376 2009-7-19 13:28
tengjingshu_112148725 2009-7-18 13:13