backup ram不稳定 stm32_开发项目,分不清STM32栈的使用率?一文解析清楚

本文针对STM32单片机开发中栈使用率的问题进行解析,提出量化栈使用率的方法,并通过实例介绍如何统计历史使用率。文中还讨论了堆栈的区别,提供了一种测试栈使用率的方案,并分享了仿真测试结果。
摘要由CSDN通过智能技术生成

#单片机##嵌入式编程##RTOS##程序员#

1、前言

大部分从事STM32单片机嵌入式开发工作N年的人,项目也做了N个,是否曾经程序无缘无故跑飞了?系统无缘无故地重启?是否无缘无故发生“HardFault”呢?是否试着把栈调大一些,问题就少了,再调大一些,问题就不发生了呢?这些问题都是对栈大小的拿捏问题,即是否配置了合适的栈大小?那么多少算合适呢?有没有量化标准呢?关于RAM分配使用问题可以参考《从事开发多年,分不清STM32的RAM使用情况?一图弄清它 》包含已分配使用部分与剩余多少均有测试方法。

80c1556785024870f9ba9c703b092cad.png

2、量化栈使用率

如何量化栈使用率,我们通常使用百分比来量化某些参数,比如考试100分满分60分及格,这里我们也使用百分比来量化栈使用率。量化公式如下:

栈使用率=100X历史使用栈大小/分配栈大小

注意:下文计算栈使用率时计算单位为字而不是字节(即四字节为一个计量单位)。

特别规定,系统连续运行一定时间(如24小时)后“栈使用率”不超过60%为及格。要注意的是这里我们是以不超60%为及格与考试不一样哟,与考驾照更不一样。要是达到90%及以上就等着系统崩溃吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值