当前位置:网站首页>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 .
边栏推荐
- Final review notes of single chip microcomputer principle
- 3D Detection: 3D Box和点云 快速可视化
- Redis只能做缓存?太out了!
- mysql ”Invalid use of null value“ 解决方法
- Milkdown control icon
- Mathématiques avancées - - chapitre 8 différenciation des fonctions multivariables 1
- "New red flag Cup" desktop application creativity competition 2022
- [daily training -- Tencent select 50] 231 Power of 2
- Toraw and markraw
- Getting started with cinnamon applet
猜你喜欢

Show the mathematical formula in El table

带你掌握三层架构(建议收藏)

. Net core about redis pipeline and transactions
![供应链供需预估-[时间序列]](/img/2c/82d118cfbcef4498998298dd3844b1.png)
供应链供需预估-[时间序列]

Flink | multi stream conversion

xshell连接服务器把密钥登陆改为密码登陆

Milkdown control icon

数据库系统概论-第一章绪论【概念模型、层次模型和三级模式(外模式、模式、内模式)】

【堡垒机】云堡垒机和普通堡垒机的区别是什么?

2022-7-6 Leetcode 977. Square of ordered array
随机推荐
Detr introduction
"Song of ice and fire" in the eleventh issue of "open source Roundtable" -- how to balance the natural contradiction between open source and security?
LeetCode简单题分享(20)
如何让join跑得更快?
为租客提供帮助
社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟先生
Data refresh of recyclerview
[1] ROS2基础知识-操作命令总结版
Build a secure and trusted computing platform based on Kunpeng's native security
Flink | 多流转换
2022-7-6 Leetcode 977.有序数组的平方
作战图鉴:12大场景详述容器安全建设要求
566. 重塑矩阵
Custom thread pool rejection policy
《厌女:日本的女性嫌恶》摘录
Redis can only cache? Too out!
Solve the cache breakdown problem
2022-7-7 Leetcode 844. Compare strings with backspace
Thread pool reject policy best practices
Social responsibility · value co creation, Zhongguancun network security and Information Industry Alliance dialogue, wechat entrepreneur Haitai Fangyuan, chairman Mr. Jiang Haizhou