当前位置:网站首页>How to check the ram and ROM usage of MCU through Keil
How to check the ram and ROM usage of MCU through Keil
2022-07-07 13:57:00 【Ch_ champion】
summary
In many side doors MCU, Or use keil Development , It can be avoided in the development process ram,rom Not enough problem , How to check ? Here's the answer ^_^.
One 、 View by
1)、 After compiling

2)、 adopt map see
It's easy , Aim the mouse at the red circle , Double click .
Sometimes , Double click No , Just configure according to the above figure , this .map The document must be in this project , As shown below :
find .map, Drag and drop to keil Open in , that will do . Through this file, you can analyze , Corresponding to the use and rationality of each part , So as to do the corresponding optimization .
Keil Generated Map The contents of documents are roughly divided into five categories ( according to .map Order of document classification ) As shown below :
1.Section Cross References
It refers to the modules generated by each source file 、 paragraph ( Defined entry ) The relationship of mutual reference , Check... In the configuration :Cross Reference, for example :
startup_stm32f401xe.o(RESET) refers to stm32f4xx_it.o(i.NMI_Handler) for NMI_Handler
It says startup_stm32f401xe.o In the document main The function is called stm32f4xx_it In the document NMI_Handler function
2.Removing Unused input sections from the image
Remove unused modules , Check... In the configuration :Unused Sections Info, Is to delete the project code , There are no called modules . There is also a statistical information at the end , for example
Indicates that there are 294 Segment useless , Total share 17904 byte
3.Image Symbol Table
Mapping symbol table , Check... In the configuration :Symbols, You can see the symbol name , Storage address , Storage size , The target file
4.Memory Map of the image
Memory mapping distribution , Check... In the configuration :Memory Map
Image Entry point : 0x08000195: Refers to the program entry address .
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000021f8, Max: 0x00080000, ABSOLUTE):
Refers to the loading area LR_IROM1 The starting address is 0x08000000, The size is 0x000021f8, The largest area is 0x00080000.
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000021d0, Max: 0x00080000, ABSOLUTE):
Refers to the executable area ROM_VECTOR The starting address is 0x08000000, The size is 0x000021d0, The largest area is 0x00080000.
5.Image component sizes
Storage composition size , Check... In the configuration :Size Info, In fact, it is mainly used to summarize and store size information of modules
Code: Refers to the size of the code ;
RO-data: In addition to inline data (inline data) Constant data other than ;
RW-data: Refers to reading and writing (RW)、 Initialized variable data ;
ZI-data: Means uninitialized (ZI) Variable data ;
Code、RO-data: be located FLASH in ;
RW-data、ZI-data: be located RAM in ;
remind :RW-data The initialized data is stored in the Flash in , Power on will start from FLASH Move to RAM in .
Relations are as follows :
RO Size = Code + RO Data
RW Size = RW Data + ZI Data
ROM Size = Code + RO Data + RW Data
Now I have figured it out Map The content of the document , The following analysis can be done .
(1) Address of functions and variables , This is very useful in deriving the function call stack
(2) according to Code RO data RW data Component part , Targeted optimization ROM Space and RAM Space
Two 、 summary
Learn more about , You can also read the article I wrote before , link , I've forgotten it for a long time , Fortunately, I took notes , Easy to read later .
边栏推荐
- Move base parameter analysis and experience summary
- PHP中用下划线开头的变量含义
- Attribute keywords aliases, calculated, cardinality, ClientName
- Flink | multi stream conversion
- MySQL "invalid use of null value" solution
- Deep understanding of array related problems in C language
- 提升树莓派性能的方法
- 室内ROS机器人导航调试记录(膨胀半径的选取经验)
- move base参数解析及经验总结
- Best practice | using Tencent cloud AI willingness to audit as the escort of telephone compliance
猜你喜欢
Social responsibility · value co creation, Zhongguancun network security and Information Industry Alliance dialogue, wechat entrepreneur Haitai Fangyuan, chairman Mr. Jiang Haizhou
JS slow motion animation principle teaching (super detail)
1、深拷贝 2、call apply bind 3、for of for in 区别
SSRF漏洞file伪协议之[网鼎杯 2018]Fakebook1
Final review notes of single chip microcomputer principle
118. Yanghui triangle
Advanced Mathematics - Chapter 8 differential calculus of multivariate functions 1
Ways to improve the performance of raspberry pie
得物客服热线的演进之路
Redis can only cache? Too out!
随机推荐
Vmware 与主机之间传输文件
华为镜像地址
Attribute keywords aliases, calculated, cardinality, ClientName
Final review notes of single chip microcomputer principle
Cinnamon taskbar speed
Leetcode simple question sharing (20)
Thread pool reject policy best practices
云计算安全扩展要求关注的安全目标和实现方式区分原则有哪些?
Dry goods | summarize the linkage use of those vulnerability tools
Navicat运行sql文件导入数据不全或导入失败
Huawei image address
Advanced Mathematics - Chapter 8 differential calculus of multivariate functions 1
Server to server (S2S) event (adjust)
Distributed transaction solution
室内ROS机器人导航调试记录(膨胀半径的选取经验)
ROS机器人更换新雷达需要重新配置哪些参数
3D Detection: 3D Box和点云 快速可视化
SSRF漏洞file伪协议之[网鼎杯 2018]Fakebook1
118. 杨辉三角
requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement