九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 3157|回复: 0

设置栈指针后sp = 0x60000000后无法运行C代码(已解决)

[复制链接]
发表于 2014-10-22 21:47:33 | 显示全部楼层 |阅读模式
本帖最后由 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代码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-3-28 23:03 , Processed in 0.018530 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表