CH32V307 RT-thread查看内存问题

我在CH32V307 中运行一个简单的RT-thread demo, 使用Msh> free 查看内存情况,竟然如下:


msh > free
total memory: 4072
used memory : 3148
maximum allocated memory: 3148
msh >

难道CH32V307 内存就这么点点,其它的哪里去?

您好,

total memory :  表示在这个项目分配给堆管理器的总内存
used memory :  表示已经使用了多少内存
maximum allocated memory : 系统上电一来最大一次申请了多少内存

以上数据并不是表示307内存


那如何看307内存情况?



您好,CH32V307的FLASH和RAM大小在配置好之后就是固定的,不清楚你所说的内存情况具体是指什么,若你想查看FLASH、RAM的显示占比,可按照下面操作配置:

添加 -Wl,--print-memory-usage

image.png

配置完成后,编译显示如下:

image.png

关于RAM显示占比百分之百问题:这是由ld文件的书写不同导致的,不影响的,data+bss的大小就是实际使用的RAM的大小。若需要修改显示,可将ld文件修改下,修改内容如下图,修改ld文件的同时需要将debug.c文件中的void *_sbrk(ptrdiff_t incr)函数整体注释掉,此处需要注意,修改过后,动态内存分配超出将不会有提示。

image.png


只有登录才能回复,可以选择微信账号登录