客户需要把 hex 文件烧写到 S32K144 芯片里,经过查询相关资料,以及与同事沟通交流,找到两个方法可以进行 hex 文件的编译,并且可以通过 NXP 提供的 S32DS 进行烧写。
一、问题概述
1.1 客户问题描述
客户需要把 hex 文件烧写到 S32K144 上。
1.2 软件版本
S32 Design Studio for ARM 2.2 中的 Demo Project:hello_world_s32k144。
1.3 芯片
S32K144。
1.4 问题详情
(1)hex 文件一般是指 Intel 标准的 hex 文件,可以用记事本打开,是十六进制数据,包含及地址、偏移量、校验和、文件开始和结束标志等信息。
(2)elf 文件包含很多调试信息,可以直接转换为 hex 文件,相对来说,hex 文件要比 elf 文件要小很多。
(3)为了节约片上资源,客户需要把容量更小的 hex 文件烧写到 S32K144 上。我们的 S32DS 工具默认是把程序编译成 elf 文件的,但其实也可以编译为 hex 文件且进行下载的。
二、解决方案
2.1 打开 S32DS 的 hex 编译配置
下面以 “hello_world_s32k144”这个 LED 灯闪烁的例程来给大家演示一下。
(1)首先鼠标右键项目在菜单中选择“Properties”打开属性菜单栏。
(2)在属性中进入 C/C++ Build à Settings à Cross Settings 勾选“Creat Flash Image”,点击 OK 确认设置。
(3)再次进入属性 C/C++ Build à Settings 会发现增加了一项 “Standard S32DS Create Flash Image”,点开进入其中的“General”选项,在输出格式一栏选择 Intel HEX。
2.2 添加预编译命令
如果不想进行繁琐的设置,还可以使用一条命令解决问题,同样是进入属性 C/C++ Build à Settings,进入 Build Steps 页面,填入如下预编译命令:arm-none-eabi-objcopy -O ihex ${ProjName}.elf ${ProjName}.hex。
2.3 编译并下载 hex 文件
(1)重新进行编译就可以在编译目录得到 hex 文件,并且可以看到文件大小差别很大。
(2)点击 debug 小虫子按钮边上的三角形,进入 debug 配置。
(3)选中要下载的项目,点击 “Browse”找到自己编译得到的 hex 文件,点击 Debug 即可完成下载并进入 debug 模式。
(4)如下图所示,可以看到红色和绿色 LED 交替闪烁,说明 hello_world_s32k144 例程可以正常运行,hex 文件烧写成功。
|
三、总结
本文讲了两种编译得到 hex 的方法,并烧写到我们的 Echoes 开发板上验证可行,第一种方法是修改 S32DS 设置,只需要打开 hex 编译配置,即可自动生成 hex 文件,第二种方法是在 S32DS 添加相关的编译命令即可。
欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.cn@wpi-group.com。
参考资料
[1] 起个名字辣么麻烦——《S32DS之如何生成hex和bin文件》
https://blog.csdn.net/weixin_41935674/article/details/105061510
下一篇:Silver 开发板基于 S32K144 的 NCF3340 I2C 调试
我是好景虚设,欢迎在大大通上关注我!
S32K144 相关文档:
评论