打印

关于ARM程序入口ENTRY的问题

[复制链接]
2760|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanaegao|  楼主 | 2013-4-17 14:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ARM, IO, RAM, se, sd
“Error   : L6291E: Base address 0x00000000 lies in the previous exec region or before the start of the load region

我的环境是这样:上电时:rom放在0x00000000;sdram放在0x20000000;用户程序放在一个0x40000000;首先执行rom程序,配置AHB,APB总线,关闭MMU,中断,cache;copy 1K用户程序到sram(0x7000000);执行remap,将sdram放置在0地址;再将PC跳到用户程序;因此我写用户程序,加载地址都是在0x40000000开始的,而运行地址都是在其他位置;这样我指定入口地址时,无论指向哪里都会出现以上错误;

相关帖子

沙发
阿南| | 2013-4-17 16:23 | 只看该作者
指向SDRAM处也会出错?
芯片和开发环境用的是哪家的?

使用特权

评论回复
板凳
shanaegao|  楼主 | 2013-4-17 16:45 | 只看该作者
阿南 发表于 2013-4-17 16:23
指向SDRAM处也会出错?
芯片和开发环境用的是哪家的?

开发环境是ADS,芯片是正在开发的,我是跑裸测;指向sdram中会错的

使用特权

评论回复
地板
阿南| | 2013-4-17 16:55 | 只看该作者
Error   : L6291E: Base address 0x00000000 lies in the previous exec region or before the start of the load region
该错误是编译出错,还是装载调试出错?

使用特权

评论回复
5
shanaegao|  楼主 | 2013-4-17 17:57 | 只看该作者
阿南 发表于 2013-4-17 16:55
Error   : L6291E: Base address 0x00000000 lies in the previous exec region or before the start of th ...

是编译成bin文件的时候就出现的

使用特权

评论回复
6
xinzha| | 2013-4-17 22:22 | 只看该作者
本帖最后由 xinzha 于 2013-4-17 22:24 编辑

在scatter中你的load region必须和你的root execute region地址一样。而且bootloader的代码要做成地址无关代码,这样才能保证做完remap还能继续跑下去。网上有很多remap的bootloader,找几个参考下就差不多明白了。
你把scatter和armlink的命令行贴出来,这样才能快速找到问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝