TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC26X2R1: 如何设置Dome下的simple_peripheral/simple_central/multi_role等工程生成HEX在Flash中起始地址?

Part Number:LAUNCHXL-CC26X2R1Other Parts Discussed in Thread:UNIFLASH

修改生成HEX文件起始和结束位置从而控制烧录位置

Nick Sun:

您好,

由于工程大小的不同,您无法控制结束位置地址。

起始地址的修改,您可以进您的工程文件找到.cmd文件并打开(CCS中),找到其中这一部分

按住Ctrl+鼠标右键点击FLASH_START,会跳转到

再按住Ctrl+鼠标右键点击FLASH_BASE,会跳转到

您可以修改这个位置的地址值。

具体FLASH的地址范围您可以查看CC13x2, CC26x2 SimpleLinkTm Wireless MCU Technical Reference Manual (Rev. F)其中的Memory Map查看具体参数,如图:

希望可以帮助到您。

,

疾风亦有归途:

经对比发现OAD文件的CMD文件没有在CCS中,是直接在Demo OAD目录下修改CMD吗?

2、我试了一下出现很多错误,怎样修改最简单呢?还是仿照OAD工程CMD修改?

,

Nick Sun:

您好,

OAD的话您可以查看:Loading a Production Image,在Uniflash中烧录.bin文件后选择修改Load Addr。

,

疾风亦有归途:

您好!我希望是指定simple_peripheral/simple_central/multi_role等工程HEX在指定FLASH位置,但是CMD文件修改起来比较麻烦,单纯的修改FLASH_BASE/END都会报错,有什么参考或者快捷办法?

,

Nick Sun:

您好,

这样的话比较简单的方法就是结合OAD项目的经验。

将输出的文件转换成.bin文件,再将其通过UNIFLASH烧录到板子,.bin文件在UNIFLASH中需要指定地址。

您可以参考:https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/963977/launchxl-cc26x2r1-bluetooth-forum 这个帖子,在CCS中添加一个后处理的脚本将输出文件转换为.bin文件。

,

疾风亦有归途:

您好!

增加脚本这个办法我试过了,之前还问过您

e2echina.ti.com/…/launchxl-cc26x2r1-demo-simple_central-bin

,

Nick Sun:

您好,

这个和OAD的bin文件生成不是一个脚本,查看脚本位置能发现这个是在CCS文件夹中并不是SDK中(和OAD的bin生成文件不同),调用了一个tiobj2bin的脚本。

,

疾风亦有归途:

在CCS step中添加了这个命令 :

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

报错如下:

也修改tiobj2bin.bat中ofd470 以及470相关改为2642/26×2均失败

,

Nick Sun:

您好,

我这边测试后(CCS12.3)发现也有问题,需要修改相关路径程序名,我在后处理step里修改后添加如下:"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/tiarmofd" "${CG_TOOL_ROOT}/bin/tiarmhex" "${CCS_INSTALL_ROOT }/utils/tiobj2bin/mkhex4bin"

,

疾风亦有归途:

经验证没有报错,但是做出来的BIN比HEX还大,这个应该是有问题的吧?

,

Nick Sun:

您好,

这个是有可能的。

您可以查看这个帖子:https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183567/tms320f28035-the-size-of-out-file-bin-is-bigger-than-hex?tisearch=e2e-sitesearch&keymatch=bin%25252525252520hex#

大概意思是memory map里面有空洞,唯一的解决办法就是去填充它,所以会导致这种情况。具体你可以查看这篇文档:An Introduction to Binary Files.

,

疾风亦有归途:

按照提示生成了BIN但是大小没变。。。。

我更改了刷写Bin的位置,结果导致如图,然后也按照提示Forced mass erase恢复,结果重新上电后依旧被锁。

,

Nick Sun:

您好,

疾风亦有归途 说:按照提示生成了BIN但是大小没变

根据什么提示做了什么修改吗?

疾风亦有归途 说:更改了刷写Bin的位置,

是更改了烧录起始地址吗?您是在哪里(软件)设置的相关配置?被锁又是什么情况?

,

疾风亦有归途:

Nick Sun 说:根据什么提示做了什么修改吗?

用链接中的objcopy工具做的如下图,但是Bin的尺寸没变。

Nick Sun 说:是更改了烧录起始地址吗?您是在哪里(软件)设置的相关配置?被锁又是什么情况?

更改了烧录的起始地址,就变成这样了

,

Nick Sun:

您好,

您的地址烧录地址是多少,位置是在给定的范围之内吗?如果烧到类似于CCFG区域的话可能导致文件损坏。

,

疾风亦有归途:

起始:0x00028000

bin Size:352KB

应该是烧写到CCFG了,还有办法恢复吗?

,

Nick Sun:

您好,

您使用的是什么烧录软件?有尝试过Uniflash下的erase entire flash吗?

,

疾风亦有归途:

我使用上图办法,没有恢复,我试下您提供的方法,但现在没办法验证

,

Nick Sun:

您好,

您尝试使用以下Uniflash是否能擦除成功,期待您的跟进。

本问题和该帖子主题无关,也希望您可以重新开一个帖子论述相关问题。

,

疾风亦有归途:

疾风亦有归途 说:用链接中的objcopy工具做的如下图,但是Bin的尺寸没变。

我就执行了上图命令,生成的BIn还是352kb,我该怎样去除空洞?我看连接里面也是上图命令。

Nick Sun 说:

您好,

您尝试使用以下Uniflash是否能擦除成功,期待您的跟进。

本问题和该帖子主题无关,也希望您可以重新开一个帖子论述相关问题。

新帖路径:e2echina.ti.com/…/launchxl-cc26x2r1-flash

,

Nick Sun:

您好,

我这边又研究了一下那一份文件,最后的example只是介绍如何生成二进制文件(.bin),并没有说可以去除空洞。所以您生成的.bin文件和通过后步骤生成的大小是一样的(这是肯定的,因为他们都是调用了同一个路径下的同一个工具去生成的)。

关于hole的问题只有在文档中的 有介绍,也只有从理论上讲述了如何避免空洞。

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC26X2R1: 如何设置Dome下的simple_peripheral/simple_central/multi_role等工程生成HEX在Flash中起始地址?
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1