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.

[参考译文] RTOS/CC2640R2F:RAM短-优化建议

Guru**** 2589265 points
Other Parts Discussed in Thread: CC2640R2F, SYSBIOS

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/579270/rtos-cc2640r2f-ram-shortish---optimization-advise

部件号:CC2640R2F
“Thread: CC2650SysBIOS”中讨论的其它部件

工具/软件:TI-RTOS

你(们)好

我们的软件缺少RAM。


我们的设置:

- CC2640R2F
-ROM中的堆栈。
-刷新中的BIOS
-当前应用程序和堆栈为2二进制文件(堆栈尚未在库中-但这确实有助于节省RAM吗?)


您能否确认我们的这一假设? "从20K芯片RAM中,BLE堆栈和ROM使用3936字节(-D ICALL_ram0_start=0x20.004万a0)"
我们是否可以针对此值采取任何措施?

如果这一问题得到解决,我们将为我们的"应用程序"保留大约16 KB RAM。


以下是地图文件的一部分,它指出了应用程序的RAM消耗(我们已经隐藏了对象的名称,这些当然是我们的责任),我们想知道是否有任何东西可以优化? 我们认为,从16 KB RAM左侧(请参阅上面的ICALL_RAM0_START) TI代码(STACK,BIOS,GAA/GATT)中,我们确实留下了小部分。

我们想知道的是:

app_ble prm3:       约3 KB
设备信息服务:     500字节(此管理标准是否符合BT规范?)
iCall:              280字节
外设:         800字节(源代码取自示例代码,GAP需要,但我们没有尝试修改它-也许我们可以优化它?)
RFCC26XX_singlemode:550字节

我们的空闲任务堆栈大小为512字节,但我们认为这可以减半吗? 当我们运行代码时,此堆栈使用量上的高水位标记大约为170字节。 也许我们根本不需要执行偶像任务?

我们还注意到,如果配对工作,我们需要至少为堆分配2800字节(HEAPMGR_size=2800)

问题(再次);

? 1? 我们是否为应用程序提供了appr 16 KB (在ROM堆栈获取其份额之后)? 我们是否可以采取任何措施来增加这一数字?
? 2? 从上面的地图中取出的5个SW对象,RAM消耗是否合理? 我们是否可以采取任何措施来减少这些数字?
? 3? 我们真的需要空闲的任务吗? 如果是这样,我们认为至少可以从堆栈中删除256个字节。
? 4? 2800堆大小是否合理? 我们需要配对才能工作。


映射文件...

*****************
***模块摘要
***

   模块                          ro代码 ro数据 rw数据
   --------                           ---------  ---------  ---------
C:\Data\GIT\LowerBLE \SW\Bluetooth\Peripheral\App\Config\configPkg\package\cfg:[1]
   app_ble _prm3.orm3                 1100   1416   3158
   ----------------------------------
   共计:                            1100   1416   3158

C:\Data\GIT\LowerBLE \SW\Bluetooth\Peripheral\App\HVHMIBoard\Obj:[2]
   XXXXXXXXXXXXXX0.o                   1.4856万.                
   o                 24.96360677亿           
   XXXXXXXXXXXXXXXX2.o                   592      96       4.
   XXXXXXXXXXXXXXXXX3.o                 18.44591964亿           
   XXXXXXXXXXXXXX4o                   388               92.
   XXXXXXXXXXXXXXXX5.o                   136               12.
   ECCROMCC26XX.o                    1184                5.
   XXXXXXXXXXX10.o                 250.0716万           29.
   XXXXXXXXXXXXXXX11.o                   87.2108万           24
   XXXXXXXXXXX12.o                    80                4.
   XXXXXXXXXXX13.o                 6720      32   1181
   XXXXXXXXXXX14.o                   328      2.8264万      
   XXXXXXXXXXX15.o                   24.0288万               

   XXXXXXXXXXX17.o                 13.1027242亿           
   XXXXXXXXXXX18.o                   13.6664万               
   XXXXXXXXXXX19.o                   388      5.1248万      
   XXXXXXXXXXX20.o                   37.6281万              .
   XXXXXXXXXXX21.o                   156                8.
   TRNGCC26XX.o                        352                1.
   XXXXXXXXXXX22.o                   184               16.
   XXXXXXXXXXX23.o                 1888      2.8656万      
   看门狗.o                           44                4.
   BLE用户配置o                    3.4226万           16
   o                                       64129.      
   ccfg_appable.o                                 88
   devinfoservice.o                    4.04232494亿           
   GATT_uuid.o                                    8.
   gattservapp_util.o                  788
   iCall.o                           3484      3.028万      
   iCall_API_lite.o                     88                8.
   iCall_cc260.o                      316       2       5
   iCall_user_config.o                           94      16.
   主要o                               76       7      16.
   Peripheral, o                      4312      2.0801万      
   XXXXXXXXXXX25.o                   224            1113
   ----------------------------------
   共计:                           3.6552万   3513   8776

C:\Data\GIT\LowerBLE \SW\Bluetooth\simplelink_SDK\sources\ti\blestack\ROM\ble_ROM_releases\cc26xx_R2\Final_Release:[3]
   ----------------------------------
   总计:

命令行:[4]
   ----------------------------------
   总计:

boot.arm3:[5]
   boot.orm3                            22.
   cmain.orm3                           26.
   cstartup _M.orm3                      22.
   IAR_XDC_init.orm3                    32.
   ----------------------------------
   共计:                              102

dl7M_TLN.A:[6]
   abort.o                               6.
   分段                                14.
   low_lever_init.o                      4.
   Rand o                                        5.514万      
   snprintf.o                           68
   Sprintf.o                            52.
   srand.o                              32.
   strrchr.o                            24.
   vsnprint.o                           60.
   xprintffull_nomb.o                3538
   xsnprop.o                           26.
   xsprout o                            10.
   xtls.o                                2.
   ----------------------------------
   共计:                            3836      5.514万      

DPL_cc26x0r2.arm3:[7]
   hwip_tirtos.orm3                      8.
   PowerCC26XX_tirtos.orm3220              
   ----------------------------------
   共计:                              228

driverlib.lib:[8]
   Adi.o                                48.
   Chipinfo.o                           54.
   CPU.o                                24.
   driverlib_release.o                                     1.
   interrup.o                          4.82万               
   IOC.o                               104.
   OSC.o                               252               20.
   RFC.o                               162.
   Setup.o                             292.
   SYS_Ctrl.o                          676                8.
   UART.o                              152
   ----------------------------------
   共计:                            181.2229万               

drivers_cc26x0r2.arm3:[9]
   CryptoCC26XX.orm3                 1086               29.
   list.orm3                            60.
   PowerCC26XX.orm3                  19.28107272亿           
   PowerCC26XX_calibrateRCOSC.orm3   1184
   ----------------------------------
   共计:                            42.58107301亿           

m7m_tl.a:[10]
   DblAdd.o                            212
   DblCmpGe.o                           46.
   DblCmpLE.o                           46.
   DblDiv.o                            598
   DblMul.o                            418
   DblSub.o                            384
   DblToI32.o                           88
   I32ToDbl.o                           48
   xdnorm.o                             68
   xdscale.o                           268
   ----------------------------------
   共计:                            2176

rf_singlemode_cc26x0r2.arm3:[11]
   RFCC26XX_singlemode.orm3          426.4551万               
   ----------------------------------
   共计:                            426.4551万               

rt7m_tl.a:[12]
   ABImemclr.o                           6.
   ABImemclr4.o                          6.
   ABImemcpy_unaligned.o               118
   ABImemset.o                         102.
   ABImemset48.o                        50.
   I64DivMod.o                         238
   I64DivZer.o                           2.
   DATA_INIT.o                          40
   LZ77_init_singan.o                  120
   Memchr. o                             88
   strchr.o                             22.
   strcmp_unaligned.o                   66
   strcpy_unaligned.o                   68
   strlen.o                             54.
   zero_init3.o                         64
   ----------------------------------
   共计:                            1044

SHB_L.A:[13]
   Exit.o                               20.(退出.o.
   ----------------------------------
   共计:                               20

SysBIOS.arm3:[14]
   BIOS.o                            6640
   M3_Hwi_ASM_IAR.OBJ                  268
   M3_Hwi_ASM_SWITCH_IAR.OBJ           104
   M3_TaskSupport_ASM_IAR.OBJ          108
   ----------------------------------
   共计:                            7120

   差距                                  9       8        
   链接器已创建                       16      40   1024
----------------------------------
   总计:                     6.2537万   5139  1.418万



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

    您可以将设备信息配置文件或不需要经常从cm3访问的内容放入AUX RAM (如果您不使用传感器控制器引擎)。

    另一种替代方法是将GPRAM用作RAM (禁用缓存),这样您的睡眠电流就会更高。 既然您已经在考虑禁用空闲功能,那么我想这对您也是合适的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Christin。

    感谢您的反馈,但我们仍需要回答我们所写的问题。

    关于辅助RAM,我们尝试通过查看"技术参考手册"来了解它。 但我们仍然不能真正理解它是什么。
    请您回答上述问题并说明:
    ? 5? 什么是辅助RAM? (它是传感器控制器中的2KB SRAM吗?)
    ? 6? 辅助RAM有多大?
    ? 7? 如果禁用空闲任务,我们会错过什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好,

    (我是“哈斯马尔”的同事,他写了原来的问题。)

    我们看到了关于AUX-RAM的论坛帖子;

    https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/p/56.7048万/2084842#2084842</s>208.4842万 208.4842万

    似乎通过少量采用(我们使用IAR嵌入式工作平台,因此链接器文件看起来略有不同,并且在源代码中,某些变量在"暂存器RAM部分"中的位置对我们来说有点不同),我们使其运行得相当顺利。 这 为我们提供了2 KB ,我们可以将它用于缓存访问速度较慢不会影响我们的缓冲区。

    但最初关于RAM的问题对我们来说仍然很有趣...

    BR, Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Christian:
    辅助RAM是传感器控制器RAM的另一个名称,即2 KB。 如果您不需要任何节能功能,则可以禁用空闲任务。 有关空闲任务的更多详细信息,您可以在TI-RTOS论坛中发布问题。 那里的专家对TI-RTOS内核和空闲任务实施有更详细的了解。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好,

    我有一个疑问,就是RAM的使用情况,

    正如我在drivers_cc26x0r2.arm3的MAP文件中看到的,CC26xx的文件加密占用了1078字节,我想排除这些字节。 有人能建议我如何构建我自己的drivers_cc26x0r2.arm3文件,其中我可以排除密码CC26xx,以便我可以节省1078字节的内存。

    是否有任何文档可以找到有关如何重建驱动程序的清晰说明?

    谢谢!

    Siva。

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

    您好Siva:

    请参阅 SDG中的优化蓝牙低能耗堆栈内存使用一章。

    您可以通过 在 堆栈项目的build_config.opt中注释掉-DGAP_Bond_Mgr来禁用GAPBondMgr (如果不需要)。