当前位置:网站首页>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 .
边栏推荐
- 为租客提供帮助
- How far can it go to adopt a cow by selling the concept to the market?
- 交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)
- Deep understanding of array related problems in C language
- Esp32 construction engineering add components
- move base参数解析及经验总结
- MySQL error 28 and solution
- 干货|总结那些漏洞工具的联动使用
- Xshell connection server changes key login to password login
- requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
猜你喜欢
Redis只能做缓存?太out了!
10 pictures open the door of CPU cache consistency
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
2022-7-6 sigurg is used to receive external data. I don't know why it can't be printed out
Error lnk2019: unresolved external symbol
118. 杨辉三角
Vmware 与主机之间传输文件
作战图鉴:12大场景详述容器安全建设要求
交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)
Getting started with cinnamon applet
随机推荐
Help tenants
MySQL error 28 and solution
[daily training -- Tencent select 50] 231 Power of 2
Flask session forged hctf admin
2022-7-7 Leetcode 844.比较含退格的字符串
toRaw和markRaw
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
Help tenants
【堡垒机】云堡垒机和普通堡垒机的区别是什么?
Best practice | using Tencent cloud AI willingness to audit as the escort of telephone compliance
Oracle advanced (V) schema solution
requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
【日常训练】648. 单词替换
mysql 局域网内访问不到的问题
【日常训练--腾讯精选50】231. 2 的幂
社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟先生
The reason why data truncated for column 'xxx' at row 1 appears in the MySQL import file
Mysql怎样控制replace替换的次数?
DID登陆-MetaMask
Problems that cannot be accessed in MySQL LAN