程序写超了(内存不够了)

本文分析了在嵌入式程序开发中遇到的SRAM不足的问题,详细探讨了STM32F103RCT6芯片的内存使用情况。通过keil编译器的错误提示,揭示了Code、RO-data、RW-data和ZI-data的占用情况。内容涉及到STM32芯片命名规则,以及不同系列芯片的内存和功能差异。最终,由于全局变量过多导致SRAM超出限制,作者考虑更换板子或调整程序设计来解决内存问题。
摘要由CSDN通过智能技术生成

这里仅将嵌入式写程序中遇到的代码全局变量过多(做的是激光雷达的数据处理,数据量有些大),导致SRAM不够用的情况简单分析如下:

SRAM用超之后(多加了个函数),keil编译器报错如下:

大意就是No space,之前程序可以有效编译的结果如下:

代码占用了多少空间:

Code是代码占用的空间,RO-data是 Read Only 程序中的指令和只读常量的大小,如const型,RW-data是(Read Write) 初始化后为非0的可读写变量的大小,ZI-data是(Zero Initialize) 未被初始化或初始化为0的变量的大小。

一个ARM程序包含3部分:RO,RW和ZI(“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,ARM映像文件就是指烧录到ROM中的bin文件,具体这里的区别我还没有细究,具体可参考http

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值