当前位置: 技术问答>linux和unix
嵌入式开发,编译都没什么问题,但是down到板子上就出现这个错误
来源: 互联网 发布时间:2016-04-14
本文导语: 编译都没什么问题,但是down到板子上就出现这个错误: BINFMT_FLAT: reloc outside program 0x400a0e1 (0 - 0x1627e8/0x12d940), killing Hello! BINFMT_FLAT: reloc outside program 0x400a0e1 (0 - 0x1627e8/0x12d940), killing Hello! 把程序减小或者...
编译都没什么问题,但是down到板子上就出现这个错误:
BINFMT_FLAT: reloc outside program 0x400a0e1 (0 - 0x1627e8/0x12d940), killing Hello!
BINFMT_FLAT: reloc outside program 0x400a0e1 (0 - 0x1627e8/0x12d940), killing Hello!
把程序减小或者增大一些后都正常,感觉就是程序大小为某段区间的时候出这个问题,哪位大虾知道?flash空间足够,下载程序没有问题,文件格式正确,
BINFMT_FLAT: reloc outside program 0x400a0e1 (0 - 0x1627e8/0x12d940), killing Hello!
BINFMT_FLAT: reloc outside program 0x400a0e1 (0 - 0x1627e8/0x12d940), killing Hello!
把程序减小或者增大一些后都正常,感觉就是程序大小为某段区间的时候出这个问题,哪位大虾知道?flash空间足够,下载程序没有问题,文件格式正确,
|
嵌入式系统的MMU都很弱甚至是没有,所以一般是你的代码写的有问题了。
比如逻辑错误引起栈帧崩溃。
比如逻辑错误引起栈帧崩溃。
|
应该是栈,检查是否有溢出
|
我以前也遇到过这个问题,加一条无效语句什么的就没有问题,死活不知道根本原因。期待高手解答
|
把程序减小或者增大一些后都正常
----------------------------
怎么做的?改代码还是改编译器选项?
----------------------------
怎么做的?改代码还是改编译器选项?