工具/软件:TI-RTOS
你好!
基于 SimpleLink CC2640R2 SDK 版本1.35.0.33的 simple_peripheral 示例、我的 SimpleLink 应用有一些问题。
编译器版本 TI v16.9.1.LTS、优化级别关闭(用于调试)。
固件在具有 CC2640R2的定制硬件上运行、无需32kHz 晶体。
我创建了一个额外的任务(任务 B)、堆栈大小为600字节。
在此任务中、我与 I2C 器件通信、因此我添加了 I2C 驱动程序。 该 I2C 器件的应用框架的尺寸令人印象深刻
(很抱歉、我无法告诉您我在这里使用的 I2C 器件的类型、因为这是机密信息)、如果我查看 Code Composer 的"Memory Allocation"窗口、我会得到以下结果:
simple_peripheral_cc2640r2lp_app:16368字节中的 SRAM 15721字节(96%)
simple_peripheral_cc2640r2lp_stack:SRAM 1040字节(5%)(共17408字节)
问题是、这个完整的大固件映像不能按预期工作、尽管似乎有一些可用的存储器。
如果我在运行代码时没有调用大型 I2C 器件框架(但它的附加任务仍然存在)、则没有任何内容
从其中链接、代码和数据大小会重新计算、剩余功能(蓝牙广播、配对连接等)按预期工作。
如果我取消注释对 SimpleBLEPeripheral_createTask()的调用,但调用较大的 I2C 器件框架,则情况相同。 现在、I2C 器件按预期工作、但当然没有蓝牙功能。
我想这与固件映像使用的数据大小有关。
我对 Code Composer 的"Memory Allocation"窗口的输出感到困惑。 它显示了100% SRAM、其中16368字节分别为17408字节、而在中则为
数据表 CC2640R2的整体物理 SRAM 存储器为20KB。
也许某些数据存储器会被覆盖? 如何解读这些 SRAM 数据读数? 20kBytes 的其余部分在哪里?
可疑堆叠峰值尺寸的 ROV 输出:
感谢您的帮助!
Andreas
