• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1239 简谈BlueNRG-LP和-LPS的代码空间优化

2025/03/25
471
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1239 简谈BlueNRG-LP和-LPS的代码空间优化

1.71 MB

引言

客户在使用 BlueNRG-LP/LPS 芯片时,增加 OTA 服务后常常反馈说,编译代码区域超空间了,需要帮忙优化一下。后文主要通过下列步骤进行分析和优化 BlueNRG-LP/LPS 的代码空间:

  1. 通过分析 BlueNRG-LP/LPS 的 OTA 方式,让客户可以选择合适的方式;
  2. 通过整体分析 BlueNRG-LP/LPS 的链接文件(*.icf/*.sct/*.ld)了解默认工程的存储分布;
  3. 通过裁剪协议栈,选择合适的协议栈功能,优化 BlueNRG-LP/LPS 的代码空间;
  4. 通过使用静态协议栈,进一步优化 BlueNRG-LP/LPS 的代码空间;
  5. 其他方案;

总的来说通过两个维度来节省空间:一个是协议栈的裁剪维度:主要是通过修改宏配置实现编译对应应用需要的协议栈。

BlueNRG-LP/BlueNRG-LPS 的 OTA

BlueNRG-LP/LPS 的存储分析

Linker 中可定义一些宏、用于指定链接脚本文件所需的配置。这些宏定义不作用于.c文件或者.h文件,只作用于链接文件(.icf 或者.sct 或者 *.ld)。

通过协议栈的初步裁剪与自定义优化空间

SDK 中默认提供了 4 种默认配置的协议栈加一种自定义的协议栈配置(BLE_STACK_CUSTOM_CONF)。

协议栈的进一步裁剪:使用静态协议栈

ST 官方 SDK 中已经提供了静态协议栈的 Demo,分为协议栈工程和应用工程两部分,路径为:

C:Usersuser nameSTBlueNRG-LP DK 1.x.xProjectsBLE_ExamplesBLE_StaticStack

静态协议栈工程默认提供了 4 种配置:

  • Release
  • Basic
  • OTA_BTL_ResetManager
  • OTA_BTL_ResetManager_Basic

C:Usersuser nameSTBlueNRG-LP DK 1.x.0ProjectsBLE_ExamplesBLE_SensorDemo_StaticStack

  • Release
  • LowerApp_OTA
  • HigherApp_OTA

优化后空间仍不足的其他方法

如果使用静态协议栈和空间仍然不足,可以考虑将一些常用而不需修改的通用模块编译进协议栈的工程。如果空间仍然差距比较远则考虑用片外 Falsh 或者选用 STM32WB 系列,再或者使用 STM32+协处理器模式。

在线预览

相关推荐

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一 家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和 解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需 求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广 泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排 放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏 览意法半导体公司网站:www.st.com.cn