▼点击下方名片,关注公众号,获取更多精彩内容▼
欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费视频和资料
回复【加群】,【单片机】、【STM32】、【硬件知识】、【硬件设计】、【经典电路】、【论文】、【毕业设计】、【3D封装库】、【PCB】、【电容】、【TVS】、【阻抗匹配】、【资料】、【终端电阻】、【Keil】、【485】、【CAN】、【振荡器】、[USBCAN]、【PCB】、【智能手环】、【智能家居】、【智能小车】、【555】、【I2C】、【华为】、【中兴】,等……
内存优化的重要性
STM32单片机的内存优化策略
uint8_t smallCounter = 0; // 范围在0-255之间
int16_t fixedPointValue = 1234; // 代表12.34
堆栈管理在内存优化中至关重要。避免在堆上分配大块内存,因为这可能导致堆栈溢出。如果需要在函数之间传递数据,可以使用指针传递而不是复制整个数据。
void processData(int* data) {
// 处理数据
}
int main() {
int myData = 42;
processData(&myData); // 传递指针而不是复制数据
return 0;
}
int globalVariable; // 全局变量
void someFunction() {
int localVar; // 在函数栈上分配局部变量
// 执行代码
}
inline int add(int a, int b) {
return a + b;
}
删除未使用的代码:移除不再使用的代码和函数,以减少二进制文件的大小
5、使用编译器优化
不同的编译器提供不同级别的优化,可以通过编译器标志来控制。使用适当的编译器选项可以显著减小代码和数据的大小。例如,在GCC中,可以使用-Os标志启用优化,它会尽量减小代码的大小。在keil中修改编译器优化等级的方式是:点击【Options for Target】
6、移植外部库
外部库通常包含大量不必要的功能和数据结构。在集成外部库时,仔细检查其代码和数据,只包含项目所需的部分。一些库允许选择性地启用或禁用特定功能,以减小内存占用。
7、优化算法和数据结构
// 使用快速排序而不是冒泡排序
void quickSort(int arr[], int low, int high) {
// ...
}
结论
在本公众号内回复【STM32】可以获取更多关于STM32的视频教程和学习资料。
END
扫描上方二维码加群,回复【加群】或扫码加我好友,限时免费进入技术交流群。
推荐阅读
【专辑】器件选型
【专辑】单片机
【专辑】经验分享
【专辑】STM32
【专辑】硬件设计
【专辑】软件设计
【专辑】开源项目
【专辑】职业发展
感谢大家阅读,如果喜欢
请点赞和“在看”吧,或者分享到朋友圈。
点击跳转到原文,限时优惠加入我们的知识星球(加好友获取免费券)