当前位置: 首页 > news >正文

网站定制设计制作公司聊城网络科技有限公司

网站定制设计制作公司,聊城网络科技有限公司,易居房产网下载,网站的基本元素1 现象 程序完全正确,但是由于程序链接的位置不对,导致程序没有正常运行。 2 寻找原因 对生成的bin文件进行反汇编: arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis查看生成的反汇编文件 发现在在链接的开始地址处&…

1 现象

  • 程序完全正确,但是由于程序链接的位置不对,导致程序没有正常运行。

2 寻找原因

  • 对生成的bin文件进行反汇编:
arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis
  • 查看生成的反汇编文件
    在这里插入图片描述
    发现在在链接的开始地址处(0x87800000),定义了一个名为"clk_enable"的函数或代码段的起始位置,而不是_start程序(_start 是一个特殊的符号或标识符,它在编译和链接过程中用于表示程序的起始点。)。

  • 在我们的start代码中,我们初始化了堆栈指针,这个程序必须放在链接的起始地址处(0x87800000)
    在这里插入图片描述

3 原因

  • 为什么编译后的bin文件没有正确的链接顺序呢?经过我的尝试,发现是和Makefile中程序的链接顺序有关,先写的文件会较早被链接(而先写的文件的依赖会更早被链接)
  • 在这里,如果代码顺序如下(main.ostart.o先写)
# 定义目标文件列表
objs := main.o start.o# 生成目标文件 ledc.bin
ledc.bin : $(objs)arm-linux-gnueabihf-ld -Ttext 0x87800000 -o ledc.elf $^arm-linux-gnueabihf-objcopy -O binary -S ledc.elf $@arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis

那么 main.o及其依赖会比start.o先被链接。

4 解决方法

确保每次书写 Makefile 时,start.o都写在最前面:

# 定义目标文件列表
objs := start.o main.o# 生成目标文件 ledc.bin
ledc.bin : $(objs)arm-linux-gnueabihf-ld -Ttext 0x87800000 -o ledc.elf $^arm-linux-gnueabihf-objcopy -O binary -S ledc.elf $@arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis
http://www.yayakq.cn/news/868867/

相关文章:

  • 惠州市企业网站seo点击软件旅游网站怎么做才能被关注
  • 网站页面大小优化怎么做深圳网站建设 迈
  • 新建网站后域名跳转到别的网站了网站首页的重要性
  • 甪直做网站 上软件免费下载
  • 网站开发人员工具下载视频温州如何进行网站推广
  • 太仓高端网站制作模仿wordpress主题
  • 湖州企业网站制作多个网站对比表格怎么做
  • 深圳电信网站备案推广链接赚钱
  • 聊城网站建设动态做哪些网站好
  • 深圳住房和建设局新网站网页字体导入wordpress
  • 顺的网站建设效果个人网站icp
  • word可以做招聘网站吗主页推广项目计划书
  • 建网站的地址做ppt好的模板下载网站有哪些
  • 网站建设网站制作提供服务可以做公众号的网站吗
  • 陕西住房建设厅考试官方网站做网站都需要学什么语言
  • 郑州网站建设兼职做网站的报价方案
  • 天津网络推广网站建设公司哈尔滨网络建设网络优化
  • 哈尔滨网站建设技术托管WordPress如何设置邮箱验证
  • 医院网站建设 费用前端开发培训机构有哪些
  • 青岛建设网站公司简单的网站有哪些
  • 图片设计网站免费手机免费制作ppt
  • 时尚网站的建设策划杭州公司注册地址
  • 贵德县wap网站建设公司wordpress+短视频主题
  • 四川省建设网站评标专家考试wordpress app上传图片
  • 嘉兴做网站优化多少钱鞍山做网站排名
  • 网站域名背景pantone色卡官网入口
  • 湖北钟祥建设局网站宜春市建设局网站
  • 响应式 网站 开发网络编程怎么学
  • 个人备案网站能做商城吗网站制作公司多少人
  • 网站开发流行湖北省平安建设网站