【经验】修改无线蓝牙SoC EFR32BG22蓝牙程序的堆栈大小的方法

2022-03-10 世强
无线蓝牙SoC,EFR32BG22,SILICON LABS 无线蓝牙SoC,EFR32BG22,SILICON LABS 无线蓝牙SoC,EFR32BG22,SILICON LABS 无线蓝牙SoC,EFR32BG22,SILICON LABS

我们在使用SILICON LABS无线蓝牙SoC EFR32BG22写程序时,多数时候会使用默认堆栈的设置,程序运行起来也是正常的,但偶尔会出现设置变量过多时会引起程序运行异常的现象,那我们要如何解决这个问题呢?本文将为你解答。


首先,我们要先明确堆栈的概念是什么,程序在运行中是如何使用堆栈空间的。在EFR32BG22的程序中堆和栈是分开的两个概念,栈(Stack)的空间是划分给程序指针、局部变量使用的,如果我们在程序中分配的局部变量(数组)较多时要考虑修改栈的大小。堆(heap)是分配给程序中使用malloc动态分配内存空间使用的。除了这两部分之外就是全局变量占用的空间,全局变量占用的是堆、栈之外的空间,在编译器编译时一同划分RAM的空间。


通常堆、栈的空间的划分是由系统启动文件中的代码分配的,而在EFR32BG22的蓝牙程序中设置了sl_memory_config.h这个头文件(默认路径在项目的config目录)专用于堆、栈的分配,所以我们设置堆栈就更方便了,在这个头文件中默认分配的代码如下:

#ifndef SL_STACK_SIZE

  #define SL_STACK_SIZE  2752

#endif

ifndef SL_HEAP_SIZE

  #define SL_HEAP_SIZE   9200

#endif栈


其中栈分配的是2752字节,这个是实际分配给程序使用的栈大小。而堆分配的9200字节是堆占用的最小空间,编译器在编译时分本的堆的大小不能小于这个设置。蓝牙协议栈中要使用堆分配的空间,按默认分配编译出来的结果如下:

.stack               2752   536870912

.data                1040   536873664

.bss                 6768   536874704

.heap               22208   536881472


其中栈是2752,就是头文件中分配的数量,而堆是22208字节,也就是编译器将全局变量、栈所占用的以外空间都分配给了堆,如果我们在程序中没有使用malloc分配空间而是使用局部变量,那最好是将栈的空间加大一些,只要保证堆的最小空间不小于9200就可以了,这样就不会出现程序在运行的过程中由于栈溢出而导致的程序异常了。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由John提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】SiliconLabs EFR32BG22芯片如何实现BLE连接并进行数据收发

不少首次接触BLE的开发者不太清楚如何实现BLE数据的交互,本文以Silicon Labs的EFR32BG22芯片平台为例,指导如何通过建立BLE连接并进行数据交互。硬件:SLTB010A开发板软件。

设计经验    发布时间 : 2023-03-08

【经验】低功耗蓝牙SoC EFR32BG22系列如何从软硬件两方面实现低功耗设计?

EFR32BG22是Silicon Labs公司主打的低功耗蓝牙SoC系列,对于新手工程师来说,如何控制好功耗,以延长电池类产品的寿命,有很多需要关注的地方。本文将从硬件和代码底层两方面分析SoC低功耗实现的关键点。

设计经验    发布时间 : 2021-03-16

【经验】支持3线PTA的Bluetooth SDK,解决蓝牙与WIFI共存难题

在设计蓝牙产品时不可避免的要与WIFI一同使用,由于蓝牙与WIFI都是2.4GHz的频段,如何解决同频干扰是我们不得不面对的一个难题。Silicon Labs提供的Bluetooth SDK从V2.6.0版本开始引入了3线的PTA,可以解决蓝牙与WIFI共存的难题。Bluetooth SDK适用于Silicon Labs EFR32BG与EFR32MG系列的无线蓝牙SOC产品。

设计经验    发布时间 : 2018-06-12

EFR32BG22E Wireless Gecko SoC Family Data Sheet

型号- EFR32BG22E,EFR32BG22E224F512IM40-C,EFR32BG22,EFR32BG22E224F512IM32-C,EFR32BG22E224F512IM32-CR

数据手册  -  SILICON LABS  - Rev. 1.0  - May, 2024 PDF 英文 下载

【经验】芯科科技EFR32BG22系列蓝牙SOC低功耗优化的相关配置

本文主要介绍Silicon Labs(芯科科技)EFR32BG22系列蓝牙SOC目前所有的低功耗优化的相关配置,实现目标: VDD=3V,VSCALE0=0.9V,温度25℃,EM2模式下深度休眠为1.4μA。

设计经验    发布时间 : 2021-09-27

silicon labs EFR32BG22蓝牙固件OTA升级流程解析

介绍EFR32BG22蓝牙程序在非备份方式OTA时的详细操作流程,应用代码会跳转到AppLoader 中运行蓝牙功能,实现新固件的传输和写入。

设计经验    发布时间 : 2023-11-08

【经验】无线蓝牙SoC EFR32BG22用户自定义数据存取接口NVM使用指导

在使用EFR32BG22开发应用时,大部分应用需要保存一些参数,很多开发者不清楚BG22对数据进行存取的接口是哪个,本文将介绍Silicon Labs无线蓝牙SoC EFR32BG22上对数据进行存取的接口——NVM的使用。

设计经验    发布时间 : 2022-02-23

【应用】Silicon Labs车规级蓝牙SOC EFR32BG22用于汽车数字钥匙,工作频率高达76.8MHz

某客户的数字钥匙上需要用到两款LDO,目前有蓝牙SOC的需求,要求满足车规级,能够兼容手机蓝牙,给客户推荐了芯科的蓝牙SOC EFR32BG22,最高工作频率达到76.8MHz,非常符合客户的实际应该需求。

应用方案    发布时间 : 2022-11-10

成功案例  -  SILICON LABS  - 2023/9/30 PDF 英文 下载 查看更多版本

【经验】无线SoC EFR32BG22 EM4模式的进入与唤醒实现注意事项

Silicon Labs的无线SoC EFR32BG22的EM4模式支持nA级别的待机电流,对于功耗要求极为苛刻的应用非常合适,在这个模式下,只支持特定的GPIO以及reset唤醒。本文主要讲解EM4模式的进入与唤醒实现注意事项。

设计经验    发布时间 : 2021-06-02

Silicon Labs(芯科科技)无线蓝牙SoC EFR32BG22C222/EFR32BG22C224(发射功率+6dBm)数据手册

描述- EFR32BG22 Wireless Gecko SoC Family Data Sheet

型号- EFR32BG22C222F352GM32-C,EFR32BG22C224F512GM40-C,EFR32BG22C222F352GN32-C,EFR32BG22C222F352GM40-C,EFR32BG22C224F512IM40-C,EFR32BG22C224F512GM32-C,EFR32BG22C224F512IM32-C,EFR32BG22C224F512GN32-C,EFR32BG22,EFR32XG21,EFR32

数据手册  -  SILICON LABS  - Rev. 0.4  - 2019年12月 PDF 英文 下载

【经验】无线SOC EFR32BG22带安全功能的OTA怎么实现?

本文介绍实现SECURE OTA DFU的操作步骤,实现蓝牙SoC OTA的安全功能

设计经验    发布时间 : 2023-06-29

【经验】在silicon labs的simplicity studio v5中使用BG22创建AOA tag工程

本文以EFR32BG22C224F512IM40芯片为例为新手准备了从零开始的AOA tag工程创建教程。当我们拿到一个Silicon Labs EFR32BG22蓝牙SoC芯片,想要做AOA tag,首先需要创建一个AOA tag的工程。

设计经验    发布时间 : 2023-02-17

【经验】基于无线蓝牙SoC EFR32BG22/EFR32MG22中低功耗串口功能唤醒相关操作步骤

对于Silicon Labs无线蓝牙SoC EFR32BG22/EFR32MG22的低功耗设计,通过需要通过在进入低功耗之后,需要进行唤醒,尤其在进行NCP设计时,可以通过串口指令来实现唤醒。EFR32BG22/EFR32MG22提供低功耗串口设计–EUASRT,支持在EM2模式下进行唤醒并接收数据。

设计经验    发布时间 : 2021-11-21

【应用】芯科EFR32BG24蓝牙SoC及蓝牙模块实现远程传输数据,助力优化蜜蜂蜂箱监测

BeeHero公司近期采用了Silicon Labs的EFR32BG24(BG24)蓝牙SoC以及BGM210P和BGM240P蓝牙模块,来优化其物联网传感器技术并用于智能农业中的蜜蜂蜂箱监测,进而帮助孕育更强壮、更健康的蜂群并改善授粉结果。

应用方案    发布时间 : 2023-05-15

展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 104,128

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.9143

现货: 95,058

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥27.0929

现货: 90,767

品牌:SILICON LABS

品类:Wireless SoC

价格:¥31.7756

现货: 88,300

品牌:SILICON LABS

品类:Wireless SoC

价格:¥19.9760

现货: 85,618

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.9026

现货: 83,055

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.5305

现货: 80,817

品牌:SILICON LABS

品类:Wireless SoC

价格:¥35.3989

现货: 80,632

品牌:SILICON LABS

品类:8位MCU

价格:¥5.8534

现货: 73,120

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥10.4994

现货: 61,779

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:Switch Hall Effect Magnetic Position Sensor

价格:¥2.2924

现货:126,000

品牌:SILICON LABS

品类:Light Sensor

价格:¥20.3400

现货:28,003

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥16.8500

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥56.0000

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥5.1900

现货:396

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

蓝牙射频及通信协议测试

根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

高频/平板/电流互感变压器定制

可定制变压器的常规尺寸从EE4.4到ETD49不等,温度范围:-40℃~150℃。自动化产品的起订数量:20KPCS,其它定制产品无起订量要求。

提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面