This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1310:如何缩小固件尺寸以适应32KB 版本的 cc1310

Guru**** 1637200 points
Other Parts Discussed in Thread: CC110L, CC1310
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1061197/cc1310-how-to-reduct-firmware-size-to-fit-in-32kb-variant-of-cc1310

器件型号:CC1310
主题中讨论的其他器件:CC110L

您好!

最近、我们已从 TI 的 CC110L 迁移到 TI CC1310。 但是、我们对固件尺寸的要求非常高。

以下是几个示例程序分析(来自 simplelink SDK):

empty_CC1310_LAUNCHXL_tirtos_ccs
依赖项- tirtos_builds_CC1310_LAUNCHXL_release_ccs_4_20_01_03
        名称           源   长度     使用    未使用  的属性   填充
------------  ----  ------  ----  ----  --------  
 闪存                00000000  00020000 00003f92 0001c06e R X
 SRAM                 20000000  00005000 00001e4f 000031b1 RW X
= 0x3f92
~ 16274字节(~15.92KB)
rfPacketTx_CC1310_LAUNCHXL_tirtos_ccs         名称           源   长度     使用    未使用  的属性   填充
------------  ----  ------  ----  ----  --------  
 闪存                00000000  00020000 00006b32 000194ce R X
 SRAM                 20000000  00005000 000023e2 00002c1e RW X
0x6b32.
~ 27442字节
(~26.69KB)
rfPacketTx_CC1310_LAUNCHXL_nortos_ccs         名称           源   长度     使用    未使用  的属性   填充
------------  ----  ------  ----  ----  --------  
 闪存                00000000  00020000 00005d34 0001a2cc R X
 SRAM                 20000000  00005000 00000fc5 0000403b RW X
0x5d34
~ 23860字节
(~23.30KB)
rfPacketRx_CC1310_LAUNCHXL_nortos_ccs         名称           源   长度     使用    未使用  的属性   填充
------------  ----  ------  ----  ----  --------  
 闪存                00000000  00020000 00005d8c 0001a274 R X
 SRAM                 20000000  00005000 00001031 00003fcf RW X
0x5d8c.
~ 23948字节
(~23.38KB)
rfWakeOnRadioRx_CC1310_LAUNCHXL_tirtos_ccs         名称           源   长度     使用    未使用  的属性   填充
------------  ----  ------  ----  ----  --------  
 闪存                00000000  00020000 0000660a 000199f6 R X
 SRAM                 20000000  00005000 00002896 0000276a RW X
0x5d8c.
~ 26122字节
(~25.50KB)

查询

基本空程序本身占用~16KB 的内存。 这是固件在 CC1310上运行的最小内存占用空间吗?

RX/Tx 程序占用大约~24KB 的内存。 因此、要为32KB 变体编写供应商代码、其中一个版本的最大可用容量为8KB。 看起来基本的 RTOS/nortos 代码占用了大部分代码、留下的用户空间非常小。 我们没有最小的示例集、我们可以在其中写入32KB 的固件(具有基本 TX/Rx 功能)

3.我相信许多其他供应商可能会使用32KB 版本来进行 Tx/Rx 和电源管理。 想知道他们如何在32KB 的空间内适应固件。 任何指针? 我很惊讶、示例集仅用于128KB 版本、 但32KB 版本被团队忽视。  

使用 CC110L (以及外部控制器)、我们可以在17KB 内安装整个固件(以及 CC110L 库)。  恐怕32KB 版本的 CC1310 能提供灵活性。  

TI CC1310上用于 TX/Rx 和电源代码优化的任何指针(32KB)都将受到高度赞赏。 我们在这方面受到阻碍、不知道是要放弃此变体、还是仍然有减少存储器占用的位置

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Satish、

    您是否尝试提高项目构建选项的优化级别? 您还可以针对大小而不是速度进行优化。

    还有一个可能有用的附加功能、那就是在单模式下使用射频驱动器。

    从文档中:


    构建配置

    射频驱动程序有两个版本:单客户端和多客户端。 单客户端版本一次只允许一个驱动程序实例访问射频内核。 多客户端驱动程序版本允许使用不同的射频设置同时访问射频内核。 多客户端驱动程序的占用空间稍大、许多专有应用程序都不需要。 通过与 RFCC26XX_singlemode 或 RFCC26XX_multimode 预构建库进行链接、可以在构建配置中选择驱动程序版本。 使用单客户端驱动程序时、RF_SINGLEMODE必须在构建配置中全局定义。 多客户端驱动程序是 SimpleLink SDK 中的默认配置。


    针对 rfPacketTx_CC1310_LAUNCHXL_nortos_CCS 执行此操作后、我得到了以下结果:

            名称           源   长度     使用    未使用  的属性   填充
    ------------  ----  ------  ----  ----  --------  
     闪存                00000000  00020000 0000558e 0001aa72 R X
     SRAM                 20000000  00005000 00000f8d 00004073 RW X

    不幸的是、它不是很多、但仍然有、希望它能有所帮助。 当然、您可能会发现一些可以在特定应用中删除或调整的内容、以便为您的应用提供额外的空间。

    BR、
    安德烈斯