mdk fromelf.exe 将axf 文件转换hex时,生成目录

一、背景

最近利用mdk 提供的命令行工具编译构建 nordic bootloader 工程,编译、连接都正常执行,连接后输出boot.axf 文件。最后要将boot.axf 文件转换成 hex 文件时,发现生成的是包括三个hex文件的目录。
在这里插入图片描述

二、环境

  • mcu :nrf52833
  • 协议栈:S140
  • sdk:sdk17.02
  • 命令行工具:fromelf.exe make

三、问题分析

分散加载文件排查

在网上查了一轮,比较多的说法是分散加载文件(.sct 文件)配置出错,我仔细检测了一下,sct文件定义的起始地址,地址范围都正常的。

fromelf.exe 命令行参数 --i32combined

顺着网上文章的思路,查看了fromelf.exe 的命令行参数用法,似乎找到了问题所在,这里提到当有多个load regions 的 时候,会输出一个目录:
在这里插入图片描述

回归工程文件,查看产生 multi load regions 的原因

回头认真查看了一下目录里面的三个文件,发现三个都是hex 文件,但是地址是独立分离的。在工程内搜索了一下0x100010140x10001018 , 发现一个共同的特性:代码里使用编译指令__attribute__ 将特定参数保存到这两个地址里。这里跟上面的提到的multi load regions 对应上了。

四、问题解决

fromelf.exe 基于axf 文件生成hex文件

fromelf.exe --i32combined -o target.hex target.axf

fromelf.exe 基于axf 文件生成bin文件

fromelf.exe --bincombined -o target.bin target.axf

五、参考链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gdut_llkkyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值