ZHCAFV0 June   2026 CC2340R5 , CC2744R7-Q1 , CC2745P10-Q1 , CC2745R10-Q1 , CC2745R7-Q1

 

  1.   1
  2.   摘要
  3. 1 软硬件设计参考链接
    1. 1.1 数据手册和用户手册
    2. 1.2 环境搭建必要软件以及推荐软件
    3. 1.3 SDK 示例
    4. 1.4 硬件设计参考文档
    5. 1.5 功耗计算表
    6. 1.6 产品 QDID认证链接
    7. 1.7 HSM (CC2745) 认证信息
  4. 2基于 CCS 20.0 的Debug 方法
    1. 2.1 如何将工程文件映射为客户自己的板子
    2. 2.2 结合 map 文件和ROV 评估RAM 消耗和检查 Stack Overflow
    3. 2.3 如何将你在 CCS 12.x 的工程移植到 CCS 20.x 中调试
    4. 2.4 对 CC2745 进行chip erase
    5. 2.5 如何在不导入工程代码的情况下在CCS 20.x 直接 debug 一个 项目工程(.out)
    6. 2.6 如何观察芯片的射频是否正常工作
  5. 3CC2340 & CC2745 开发过程中的常见问题
    1. 3.1  UniFlash 或 CCS 都烧写程序成功,但无法正常运行
    2. 3.2  蓝牙设备的 Tx Power 更改
    3. 3.3  为什么我的程序会进入 iCall_abort
    4. 3.4  如何 Debug 带有 MCUBoot 的工程
    5. 3.5  在 OAD 应用中调整 APP 所在 flash 位置和尺寸
    6. 3.6  在 .cmd 中自定义 SECTION 并在代码中使用
    7. 3.7  如何使用非初始化变量区
    8. 3.8  如何同时发出 Public 地址和 RPA 地址的两路ADV
    9. 3.9  CC2745R10 芯片 E0 和 E1 的区别
    10. 3.10 如何使更多的 DMA channel 来支持我的驱动需求

结合 map 文件和ROV 评估RAM 消耗和检查 Stack Overflow

在 BLE 的使用中,经常有如何确定我需要多少 Heap 分配给协议栈的问题,对于这种问题我们可以结合 .map 文件和 ROV 观测 Heap 用量来实现。

导入工程编译之后,你会看到在工程目录下的 Release/Debug 文件夹中找到对应工程名称的 .map 文件,此文件你可以看到芯片中 SRAM 和 Flash 以及 CCFG/SCFG 在芯片中的详细使用情况。

此处你看到的是该工程在当前配置下的全部用量和剩余量,此文件的生成对应工程目录下的 .cmd 文件。在 SimpleLink F3 SDK 中全面使用 Free-RTOS,在 Sysconfig 中有对 Free-RTOS 的 Heap 空间做分配,用户可以根据自身情况增大或者减小 Heap 的分配。如果您在 .map 文件中搜索 .bss 会发现 Free-RTOS 管理下的 Heap 是被分配在了.bss 段。

.bss 段在 .cmd 文件中指向了 RAM 空间。

我们在看过 .map 文件之后,想要知道在我们的应用要求下给协议栈分配多少 Heap 空间,我们以 BLE 作为 peripheral role 为例使用 ROV 监控可以同时维持 4路连接的 Heap 的峰值消耗。打开 CCS 20.x,选中您想要测试的工程,右键该工程,并点击 Debug Project。

在正确连接并开始 Debug,点击工具栏中的 View -> Run Time Object,启动 ROV 功能,在 Module Name 中选中 Heap,右边使用 Basic 或者 Detailed 都可以,点击运行让代码正常运行,用4个对端设备依次连接仿真设备。在我的代码环境下,可以看到维持4路连接下,Heap 的峰值使用量为 13440 Bytes (13kB),那么我们就知道在这种情况下,给 Heap 分配不少于 13440 的大小,程序就可以正常运行。

对于代码中可能出现的问题,我也同时建议使用 ROV 先检查 Stack 是否出现溢出现象,先检查这个对解决问题很有帮助。同样的使用方式,只是在 ROV 的 Module Name 需要选择 System Stack, 并同时检查 Tasks 的执行情况。如果 System Stack 显示Stack Overflow 出现,那么久应该从 Tasks 中来观察了。