当前位置:网站首页>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 .
边栏推荐
- Milkdown control icon
- How does MySQL control the number of replace?
- Laravel5 call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败
- 3D Detection: 3D Box和点云 快速可视化
- 数据库系统概论-第一章绪论【概念模型、层次模型和三级模式(外模式、模式、内模式)】
- 【堡垒机】云堡垒机和普通堡垒机的区别是什么?
- Vmware共享主机的有线网络IP地址
- Battle Atlas: 12 scenarios detailing the requirements for container safety construction
- Dry goods | summarize the linkage use of those vulnerability tools
- Enregistrement de la navigation et de la mise en service du robot ROS intérieur (expérience de sélection du rayon de dilatation)
猜你喜欢
1、深拷贝 2、call apply bind 3、for of for in 区别
2022-7-7 Leetcode 844. Compare strings with backspace
Evolution of customer service hotline of dewu
[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?
2022-7-7 Leetcode 844.比较含退格的字符串
Help tenants
2022-7-6 Leetcode27.移除元素——太久没有做题了,为双指针如此狼狈的一天
Final review notes of single chip microcomputer principle
Did login metamask
Realize the IP address home display function and number home query
随机推荐
干货|总结那些漏洞工具的联动使用
云计算安全扩展要求关注的安全目标和实现方式区分原则有哪些?
call undefined function openssl_cipher_iv_length
Help tenants
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
Leecode3. Longest substring without repeated characters
Supply chain supply and demand estimation - [time series]
Use of polarscatter function in MATLAB
2022-7-6 Leetcode 977.有序数组的平方
[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?
Cinnamon taskbar speed
Build a secure and trusted computing platform based on Kunpeng's native security
高等数学---第八章多元函数微分学1
2022-7-6 beginner redis (I) download, install and run redis under Linux
JS function returns multiple values
[1] ROS2基础知识-操作命令总结版
mysql 局域网内访问不到的问题
Flink | multi stream conversion
C语言数组相关问题深度理解
The reason why data truncated for column 'xxx' at row 1 appears in the MySQL import file