官方QQ群收藏本站

百问linux嵌入式论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 32|回复: 4

有关代码重新定位问题

[复制链接]

2

主题

5

帖子

28

积分

验证会员

积分
28
发表于 2019-7-3 21:03:58 | 显示全部楼层 |阅读模式
注意:如果点击空白处无法输入,则点击字会有输入提示符 | 则可以使用键盘进行输入!

此板块为  [ARM裸机加强版]
  • 问题所在章节:arm裸机开发13课第2节
  • 发生问题的运行环境:Ubuntu   arm-linux-gcc  4.4.3版本
  • 问题发生描述:发现编译的时候处理的串口打印信息老是乱码,查了反汇编才发现,当执行ldr  r1,=data_load_addr时候反汇编老是0x30000800地址,而你们提供的源程序是0x800地址然后用你们源程序编译发现你们源程序的反汇编这个地址也变成了0x30000800,参考的源码012_relocate_013->005_013_003,会不会是编译器版本太高的问题,即使是编译器版本高应该也不会出现这种问题吧
  • 我环境编译后的反汇编

    我环境编译后的反汇编

    你们源码反汇编

    你们源码反汇编




  • 输出的错误信息:串口乱码,应该是你程序变量加载是从0x30000800出开始的,所以乱码吧,现象如下:
  • KI7DNQ7A7@V0MG5@$G0R2.png

回复

使用道具 举报

0

主题

987

帖子

3035

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3035
发表于 2019-7-3 21:30:02 | 显示全部楼层
先用 3.4.5 工具链 编译 执行以下 看看情况
我是百问网www.100ask.org答疑助手,有关站务问题请与我联系。
韦东山视频开发板购买店铺https://100ask.taobao.com/
微信公众平台:baiwenkeji
回复 支持 反对

使用道具 举报

2

主题

5

帖子

28

积分

验证会员

积分
28
 楼主| 发表于 2019-7-4 00:13:31 来自手机 | 显示全部楼层
百问网-杨老师 发表于 2019-7-3 21:30
先用 3.4.5 工具链 编译 执行以下 看看情况

嗯,我明天实验一下,但是老师,假如和编译器有关,那这个代码编译软件那不是不稳定么?假如以后换了别的电脑,或者安装不一样的ubuntu,编译那会不会也改变?
回复 支持 反对

使用道具 举报

2

主题

5

帖子

28

积分

验证会员

积分
28
 楼主| 发表于 2019-7-4 18:51:55 | 显示全部楼层
百问网-杨老师 发表于 2019-7-3 21:30
先用 3.4.5 工具链 编译 执行以下 看看情况

老师您好,韦老师已经帮忙解决了,只需把data_load_addr = LOADADDR(.data);放在数据代码段的外部就可以了
回复 支持 反对

使用道具 举报

0

主题

987

帖子

3035

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3035
发表于 2019-7-4 22:53:56 | 显示全部楼层
守望者910 发表于 2019-7-4 18:51
老师您好,韦老师已经帮忙解决了,只需把data_load_addr = LOADADDR(.data);放在数据代码段的外部就可以 ...

好的 欢迎再来提问
我是百问网www.100ask.org答疑助手,有关站务问题请与我联系。
韦东山视频开发板购买店铺https://100ask.taobao.com/
微信公众平台:baiwenkeji
回复 支持 反对

使用道具 举报

技术支持
在线咨询
咨询热线
0755-86200561
微信扫一扫
获取更多资讯!

Archiver|小黑屋|百问linux嵌入式论坛     

GMT+8, 2019-7-16 23:08 , Processed in 0.319593 second(s), 11 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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