1.综合计算系统总内存使用量
动态内存 + 静态内存 + 线程栈 + 内核对象
- 动态内存:
rt_memory_info()的used值。 - 静态内存:通过
.map文件计算.data+.bss大小。 - 线程栈:遍历所有线程,累加
stack_used。 - 内核对象:手动估算(如每个信号量约 32 字节)。
1.动态内存大小可通过多种方式获取,如果是RTthread系统,有对应的rt_memory_info()接口可以直接获取,freeRTOS也有对应接口实现,网上可搜索大量方法。
2.静态内存获取,若是用keil软件编译的工程,生产的map文件底部会自动计算大小。
用作者这种ubuntu系统编译工程,则可以通过命令arm-none-eabi-size计算。步骤如下:
(1)安装工具
sudo apt install gcc-arm-none-eabi
(2)通过命令arm-none-eabi-size计算
arm-none-eabi-size -A rtthread.elf

3.线程大小,通过申请的任务空间分配,累加即可。
4.与获取线程大小同理。
486

被折叠的 条评论
为什么被折叠?



