完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.stm32f103rct6的RAM:48k,ROM:256k
2.如果使用了原子的内存管理,在malloc.h中可以设置一片内存为动态内存,程序中用到的数组或为指针开辟内存就可以使用mymalloc,myfree来管理了 //内存参数设定 #define MEM_BLOCK_SIZE 32 //内存块大小为32字节 #define MEM_MAX_SIZE 25*1024 //最大管理内存,一般设置小于48k的90%,如果跑系统还要减去系统占用 #define MEM_ALLOC_TABLE_SIZE MEM_MAX_SIZE/MEM_BLOCK_SIZE //内存表大小 3.如果用了freertos,在FreeRTOSConfig.h中可以设置系统的内存,一般由小往大设置,够用就行,此处设置15k /***************************************************************************************************************/ /* FreeRTOS与内存申请有关配置选项 */ /***************************************************************************************************************/ #define configSUPPORT_DYNAMIC_ALLOCATION 1 //支持动态内存申请 #define configTOTAL_HEAP_SIZE ((size_t)(15*1024)) //系统所有总的堆大小 4.目前已使用的内存为25+15=40k, 如果程序中不用原子的内存管理,那么定义的数组或使用自带的malloc()函数来分配内存就会消耗剩余的8k内存 5.可以用keil编译程序来查看已使用的RAM及ROM 编译提示:Program Size: Code=26976 RO-data=176724 RW-data=296 ZI-data=60712 RO-data为ROM:172.58k RW-data+ZI-data为RAM:59.57k 这儿显示的并不一定准确,明显超了48k,主要keil将程序所有的定义都算了进去 当然在工程的.map文件中的最后也有相关定义和keil编译提示的一样。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2956 浏览 16 评论
3458 浏览 1 评论
9002 浏览 16 评论
4051 浏览 18 评论
1113浏览 3评论
573浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
571浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2303浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1859浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 05:05 , Processed in 0.995975 second(s), Total 49, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号