【经验】修改无线蓝牙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

暂无评论

相关推荐

【经验】芯科科技EFR32BG22系列蓝牙SOC修改自定义广播包的思路与具体实例

在蓝牙的实际应用中,往往需要自定义的蓝牙广播包来适应不同的应用环境,本文主要介绍基于SILICON LABS的EFR32BG22蓝牙SOC实现自定义广播数据包的方法。

2023-03-16 -  设计经验 代理服务 技术支持 现货查询 批量订货

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

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

2023-03-08 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】STUDIO V5中蓝牙SoC EFR32BG22添加串口LOG打印的方法

在调试Silicon Labs蓝牙SoC EFR32BG22时,一般需要添加LOG打印信息,通过串口的方式来判断代码运行是否正常。由于使用RTT功能在打印信息时无法再次在线调试和代码下载,所以直接采用串口的方式更加便捷。

2021-06-30 -  设计经验 代理服务 技术支持 现货查询 批量订货

BLE Connection Roles Central/Master vs. Peripheral/Slave

Title: BLE Connection Roles: Central / Master vs. Peripheral / SlaveKeywords: BLE connection, Central vs Peripheral, bluetooth master module, bluetooth master slave,bluetooth master vs slaveDescription: Learn the nuances between Central and Peripheral roles in BLE devices to optimize energy efficiency and functionality for your projects. Unlock how to select the most suitable BLE modules based on your specific needs. In the world of Bluetooth Low Energy (BLE), BLE devices are designed to play specific roles that dictate how they interact within the BLE ecosystem.

2024-05-15 -  技术探讨

【应用】EFR32BG22蓝牙SoC用做CGM连续血糖仪主控,单芯片集成MCU和蓝牙5.2

CGM连续血糖仪为了用户体验更好,要做到小而轻,续航时间长,可以通过手机蓝牙连接获取血糖测量数据。Silicon Labs的蓝牙SoC EFR32BG22在单芯片中集成了MCU和蓝牙5.2,可以作为CGM的主控芯片并实现蓝牙数据收发,有丰富的外设。

2021-07-20 -  应用方案 代理服务 技术支持 现货查询 批量订货

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

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

2023-11-08 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】Simplicity Studio v5如何创建和配置EFR32BG22 LED Server

本文以Silicon Labs的蓝牙SoC EFR32BG22 Thunderboard模块为例,介绍Simplicity Studio v5软件如何创建和配置EFR32BG22 LED Server,并使用手机APP控制EFR32BG22蓝牙模块上LED的方法。

2021-02-23 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】Silicon Labs蓝牙Soc芯片EFR32BG22的蓝牙广播功率设置及注意事项

用户在使用Silicon Labs的蓝牙Soc芯片EFR32BG22实现蓝牙广播功能时,在不同的应用场景中要设置广播的发射功率,有的是为了降低产品的功耗,有的是为了增加或缩短通信的距离。那要如何设置广播时的功耗以及在设置时有哪些需要注意的事项?

2021-12-24 -  设计经验 代理服务 技术支持 现货查询 批量订货
2023/9/30  - SILICON LABS  - 成功案例 代理服务 技术支持 现货查询 批量订货 查看更多版本

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

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

2021-03-16 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】EFR32BG22系列蓝牙SOC电池电压与VDD供电电压检测ADC的方法

EFR32BG22作为低功耗蓝牙SOC方案,经常应用于电池供电的方案中,一般采用内部的ADC作为采集通道,内部的输入源作为输入接口,来测试VDD供电电压。本文将讲解电池电压与VDD供电电压检测ADC的方法。

2020-11-28 -  设计经验 代理服务 技术支持 现货查询 批量订货

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

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

2023-06-29 -  设计经验 代理服务 技术支持 现货查询 批量订货

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

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

2022-02-23 -  设计经验 代理服务 技术支持 现货查询 批量订货

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

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

2021-09-27 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】如何解决Silicon Labs EFR32B22在开启一次ADC转换后,功耗变高的问题?

在使用芯科科技EFR32BG22蓝牙SoC开发低功耗应用时,可能会使用到ADC这个外设,但在ADC转换后,会出现芯片在休眠时功耗比较高的情况。本文将介绍如何解决EFR32B22在开启一次ADC转换后,功耗变高的问题?

2023-06-28 -  设计经验 代理服务 技术支持 现货查询 批量订货
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 103,878

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.9026

现货: 97,605

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.9143

现货: 95,458

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥27.0929

现货: 90,767

品牌:SILICON LABS

品类:Wireless SoC

价格:¥31.7756

现货: 88,300

品牌:SILICON LABS

品类:Wireless SoC

价格:¥35.3989

现货: 87,882

品牌:SILICON LABS

品类:Wireless SoC

价格:¥19.9760

现货: 84,918

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.5305

现货: 84,861

品牌:SILICON LABS

品类:8位MCU

价格:¥5.8534

现货: 72,219

品牌:SILICON LABS

品类:Transceiver

价格:¥15.8878

现货: 63,258

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌: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

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

WIFI射频及通信协议测试

可根据用户的wifi模块,使用无线连接测试仪MT8862A,测试IEEE802.11a/b/g/n/ac (2.4Ghz和5Ghz)设备的TX、RX射频特征,输出测试报告。支持到场/视频直播测试,资深专家全程指导。

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

蓝牙认证BQB测试

支持Bluetooth SIG最新的测试规范,支持2.0(EDR), 2.1(EDR), 3.0(HS), 4.0(LE)规范, 并且能完整覆盖BR/EDR/HS/BLE的所有射频测试项目。测试标准:RF.TS/4.03 ;RF-PHYTS/40.3。

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

查看更多

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

查看更多

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

查看更多

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

查看更多

授权代理品牌:电子材料

查看更多

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

查看更多

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

查看更多

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

查看更多

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

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

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

收藏
收藏当前页面