当前位置:网站首页>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 .
边栏推荐
- Excerpt from "misogyny: female disgust in Japan"
- 内存溢出和内存泄漏的区别
- 2022-7-6 sigurg is used to receive external data. I don't know why it can't be printed out
- PC端页面如何调用QQ进行在线聊天?
- requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
- Move base parameter analysis and experience summary
- Advanced Mathematics - Chapter 8 differential calculus of multivariate functions 1
- Battle Atlas: 12 scenarios detailing the requirements for container safety construction
- 搜索框效果的实现【每日一题】
- 【面试高频题】难度 2.5/5,简单结合 DFS 的 Trie 模板级运用题
猜你喜欢
随机推荐
requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航
请问指南针股票软件可靠吗?交易股票安全吗?
postgresql array类型,每一项拼接
Solve the cache breakdown problem
toRaw和markRaw
参数关键字Final,Flags,Internal,映射关键字Internal
【堡垒机】云堡垒机和普通堡垒机的区别是什么?
Huawei image address
Introduction to database system - Chapter 1 introduction [conceptual model, hierarchical model and three-level mode (external mode, mode, internal mode)]
Ogre introduction
mysql导入文件出现Data truncated for column ‘xxx’ at row 1的原因
Enregistrement de la navigation et de la mise en service du robot ROS intérieur (expérience de sélection du rayon de dilatation)
【日常训练】648. 单词替换
AI人才培育新思路,这场直播有你关心的
"New red flag Cup" desktop application creativity competition 2022
xshell连接服务器把密钥登陆改为密码登陆
Deep understanding of array related problems in C language
2022-7-6 beginner redis (I) download, install and run redis under Linux
Leetcode simple question sharing (20)