完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
CC2530本身有8kRAM内存,运行Zstack完成一般的采集传输工作会用去大概6.5k左右,若要运行复杂的算法,必须精简协议栈,压缩内存,以下是几种可行的手段:
1.全局常量声明为const类型(IAR中const __code与const作用相同),局部常量声明为const static类型(局部变量不允许为const __code),或者声明为const类型的全局常量,总之将常量存放到flash中,读取速度会降低,但可以节约不少内存 2.全局变量和静态变量占用RAM空间知道程序运行结束才释放,而函数局部变量占用栈空间(Stack),函数调用结束就会释放,以供别的函数使用,所以规划好栈空间,非全局作用变量一律声明为局部变量,利用栈的复用可腾出部分内存空间 |
|
相关推荐
1个回答
|
|
3.变量尽量复用,即变量当前作用结束后可在后续程序段中扮演别的角色,比如充当临时变量,这样减少了变量的数据,也就减少了内存占用。IAR是在程序运行前将一部分内存分配给栈空间,且该部分空间不能作其他用途,视作已使用空间,减少局部变量的使用能够缩减栈空间,从根本上讲也是在减少内存占用
4.IAR堆栈溢出有时并不报错,如果程序编译无误而运行失败,要考虑是否栈空间不足。栈中会存放这些内容:auto局部变量、表达式临时结果、函数返回值、中断时处理器状态,由此可见栈大小取决于函数调用次数。 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
669 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1048 浏览 1 评论
731 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
520 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
157浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
119浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:34 , Processed in 0.752216 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号