当前位置:网站首页>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 .
边栏推荐
- 作战图鉴:12大场景详述容器安全建设要求
- 现在网上开户安全么?那么网上开户选哪个证券公司?
- Final review notes of single chip microcomputer principle
- Excerpt from "misogyny: female disgust in Japan"
- Enregistrement de la navigation et de la mise en service du robot ROS intérieur (expérience de sélection du rayon de dilatation)
- 手里的闲钱是炒股票还是买理财产品好?
- 社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟先生
- AI人才培育新思路,这场直播有你关心的
- 2022-7-6 使用SIGURG来接受外带数据,不知道为什么打印不出来
- Data refresh of recyclerview
猜你喜欢

Esp32 construction engineering add components

室内ROS机器人导航调试记录(膨胀半径的选取经验)

Flink | 多流转换

Redis只能做缓存?太out了!

"New red flag Cup" desktop application creativity competition 2022

Final review notes of single chip microcomputer principle

交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)

2022-7-6 使用SIGURG来接受外带数据,不知道为什么打印不出来

Ways to improve the performance of raspberry pie

Ogre introduction
随机推荐
Best practice | using Tencent cloud AI willingness to audit as the escort of telephone compliance
Split screen bug notes
Talk about pseudo sharing
Learning breakout 2 - about effective learning methods
THINKPHP框架的优秀开源系统推荐
JS slow motion animation principle teaching (super detail)
requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
2022-7-7 Leetcode 844.比较含退格的字符串
Data refresh of recyclerview
Fast development board pinctrl and GPIO subsystem experiment for itop-imx6ull - modify the device tree file
数据库系统概论-第一章绪论【概念模型、层次模型和三级模式(外模式、模式、内模式)】
Esp32 ① compilation environment
LeetCode_ Binary search_ Medium_ 153. Find the minimum value in the rotation sort array
PHP中用下划线开头的变量含义
得物客服热线的演进之路
Laravel5 call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败
Did login metamask
Leecode3. Longest substring without repeated characters
Solve the cache breakdown problem
供应链供需预估-[时间序列]