九鼎创展论坛

标题: 设置栈指针后sp = 0x60000000后无法运行C代码(已解决) [打印本页]

作者: laotang365    时间: 2014-10-22 21:47
标题: 设置栈指针后sp = 0x60000000后无法运行C代码(已解决)
本帖最后由 laotang365 于 2014-10-30 10:42 编辑

在start.s中用汇编初始化DDR,再用ldr, sp = 0x60000000,
bl main
跳转到C代码中,但是无法运行?
注释掉ldr, sp = 0x60000000,就能运行,不知为何,求大神解惑

搞定了,因为九鼎的裸机例程DDR初始化代码分配地址没有分配到0x6000_0000范围内,看来抄代码确实不是个好习惯啊。。。
另外,设置SP的时候注意地址必须是4字节对齐(因为DDR硬件位宽为32bit),例如SP可以设置为0x40000000或0x40000004,但如果设置为0x40000001或0x40000002都不能运行C代码。




欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2