STM32F103ZET XXX.map的可执行映像分析

2019-07-23来源: eefocus关键字:STM32F103ZET  XXX  map  可执行映像

可执行映像文件的逻辑结构,总共分7大部分:

一、Section Cross References 交叉引用部分

二、Removing Unused input sections from the image.从映像文件中删除输入段中未使用段的统计信息,对应参数-remove

三、Image Symbol Table 映像符号表:域符号映射和全局、局部符号及生成符号映射统计信息,对应参数-symbol

四、Memory Map of the image 印象文件的信息图,对应参数-map,该信息中包含映像文件中的每个加载域、运行域和输入段的大小和地址(工程每个文件的对象obj在存储器中的映射)


PS:要生成此文件,需要设置一下,如下图



五、Image component sizes 映像文件的每个输入文件或库的RO、RW、ZI等统计信息,对应参数-info sizes(工程每个文件按的对象obj的大小)


六、Code (inc. data)   RO Data    RW Data    ZI Data      Debug  XXX工程编译链接后Debug版本的各部分的Program Size


七、//XXX工程最终的Program Size

    Total RO  Size (Code + RO Data)                19124 (  18.68kB)

    Total RW  Size (RW Data + ZI Data)             17264 (  16.86kB)

    Total ROM Size (Code + RO Data + RW Data)      21492 (  20.99kB)



附XXX对应的工程全部映像如下:


Component: ARM Compiler 5.05 update 2 (build 169) Tool: armlink [4d0f33]



==============================================================================



Section Cross References



    stm32f10x_adc.o(i.ADC_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd

    stm32f10x_tim.o(i.TIM_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd

    stm32f10x_tim.o(i.TIM_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) for RCC_APB1PeriphResetCmd

    stm32f10x_tim.o(i.TIM_ETRClockMode1Config) refers to stm32f10x_tim.o(i.TIM_ETRConfig) for TIM_ETRConfig

    stm32f10x_tim.o(i.TIM_ETRClockMode2Config) refers to stm32f10x_tim.o(i.TIM_ETRConfig) for TIM_ETRConfig

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TI1_Config) for TI1_Config

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TIM_SetIC1Prescaler) for TIM_SetIC1Prescaler

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TI2_Config) for TI2_Config

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TIM_SetIC2Prescaler) for TIM_SetIC2Prescaler

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TI3_Config) for TI3_Config

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TIM_SetIC3Prescaler) for TIM_SetIC3Prescaler

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TI4_Config) for TI4_Config

    stm32f10x_tim.o(i.TIM_ICInit) refers to stm32f10x_tim.o(i.TIM_SetIC4Prescaler) for TIM_SetIC4Prescaler

    stm32f10x_tim.o(i.TIM_ITRxExternalClockConfig) refers to stm32f10x_tim.o(i.TIM_SelectInputTrigger) for TIM_SelectInputTrigger

    stm32f10x_tim.o(i.TIM_PWMIConfig) refers to stm32f10x_tim.o(i.TI1_Config) for TI1_Config

    stm32f10x_tim.o(i.TIM_PWMIConfig) refers to stm32f10x_tim.o(i.TIM_SetIC1Prescaler) for TIM_SetIC1Prescaler

    stm32f10x_tim.o(i.TIM_PWMIConfig) refers to stm32f10x_tim.o(i.TI2_Config) for TI2_Config

    stm32f10x_tim.o(i.TIM_PWMIConfig) refers to stm32f10x_tim.o(i.TIM_SetIC2Prescaler) for TIM_SetIC2Prescaler

    stm32f10x_tim.o(i.TIM_TIxExternalClockConfig) refers to stm32f10x_tim.o(i.TI2_Config) for TI2_Config

    stm32f10x_tim.o(i.TIM_TIxExternalClockConfig) refers to stm32f10x_tim.o(i.TI1_Config) for TI1_Config

    stm32f10x_tim.o(i.TIM_TIxExternalClockConfig) refers to stm32f10x_tim.o(i.TIM_SelectInputTrigger) for TIM_SelectInputTrigger

    stm32f10x_usart.o(i.USART_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd

    stm32f10x_usart.o(i.USART_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) for RCC_APB1PeriphResetCmd

    stm32f10x_usart.o(i.USART_Init) refers to stm32f10x_rcc.o(i.RCC_GetClocksFreq) for RCC_GetClocksFreq

    stm32f10x_gpio.o(i.GPIO_AFIODeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd

    stm32f10x_gpio.o(i.GPIO_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd

    stm32f10x_rcc.o(i.RCC_GetClocksFreq) refers to stm32f10x_rcc.o(.data) for APBAHBPrescTable

    stm32f10x_rcc.o(i.RCC_WaitForHSEStartUp) refers to stm32f10x_rcc.o(i.RCC_GetFlagStatus) for RCC_GetFlagStatus

    stm32f10x_spi.o(i.I2S_Init) refers to stm32f10x_rcc.o(i.RCC_GetClocksFreq) for RCC_GetClocksFreq

    stm32f10x_spi.o(i.SPI_I2S_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd

    stm32f10x_spi.o(i.SPI_I2S_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) for RCC_APB1PeriphResetCmd

    stm32f10x_flash.o(i.FLASH_EnableWriteProtection) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_EraseAllBank1Pages) refers to stm32f10x_flash.o(i.FLASH_WaitForLastBank1Operation) for FLASH_WaitForLastBank1Operation

    stm32f10x_flash.o(i.FLASH_EraseAllPages) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_EraseOptionBytes) refers to stm32f10x_flash.o(i.FLASH_GetReadOutProtectionStatus) for FLASH_GetReadOutProtectionStatus

    stm32f10x_flash.o(i.FLASH_EraseOptionBytes) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_ErasePage) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_ProgramHalfWord) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_ProgramOptionByteData) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_ProgramWord) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_ReadOutProtection) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_UserOptionByteConfig) refers to stm32f10x_flash.o(i.FLASH_WaitForLastOperation) for FLASH_WaitForLastOperation

    stm32f10x_flash.o(i.FLASH_WaitForLastBank1Operation) refers to stm32f10x_flash.o(i.FLASH_GetBank1Status) for FLASH_GetBank1Status

    stm32f10x_flash.o(i.FLASH_WaitForLastOperation) refers to stm32f10x_flash.o(i.FLASH_GetBank1Status) for FLASH_GetBank1Status

    stm32f10x_pwr.o(i.PWR_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) for RCC_APB1PeriphResetCmd

    startup_stm32f10x_hd.o(RESET) refers to startup_stm32f10x_hd.o(STACK) for __initial_sp

    startup_stm32f10x_hd.o(RESET) refers to startup_stm32f10x_hd.o(.text) for Reset_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.NMI_Handler) for NMI_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.HardFault_Handler) for HardFault_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.MemManage_Handler) for MemManage_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.BusFault_Handler) for BusFault_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.UsageFault_Handler) for UsageFault_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.SVC_Handler) for SVC_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.DebugMon_Handler) for DebugMon_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.PendSV_Handler) for PendSV_Handler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.SysTick_Handler) for SysTick_Handler

    startup_stm32f10x_hd.o(RESET) refers to hardware.o(i.EXTI1_IRQHandler) for EXTI1_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.DMA1_Channel6_IRQHandler) for DMA1_Channel6_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.DMA1_Channel7_IRQHandler) for DMA1_Channel7_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.USB_LP_CAN1_RX0_IRQHandler) for USB_LP_CAN1_RX0_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to hardware.o(i.EXTI9_5_IRQHandler) for EXTI9_5_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to driver.o(i.TIM2_IRQHandler) for TIM2_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to driver.o(i.TIM3_IRQHandler) for TIM3_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to driver.o(i.TIM4_IRQHandler) for TIM4_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to serial.o(i.USART1_IRQHandler) for USART1_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to stm32f10x_it.o(i.USBWakeUp_IRQHandler) for USBWakeUp_IRQHandler

    startup_stm32f10x_hd.o(RESET) refers to driver.o(i.TIM5_IRQHandler) for TIM5_IRQHandler

    startup_stm32f10x_hd.o(.text) refers to system_stm32f10x.o(i.SystemInit) for SystemInit

    startup_stm32f10x_hd.o(.text) refers to entry.o(.ARM.Collect

00000000) for __main

    communicate.o(i.comm_cmd_check_valid) refers to communicate.o(.bss) for comm_recv_buf

communicate.o(i.comm_cmd_check_v

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ..[31]

关键字:STM32F103ZET  XXX  map  可执行映像

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic468818.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:解决STM32+FreeRTOS的printf重定向打印凌乱的问题
下一篇:解锁STM32 Printf新姿势!,用vsprintf吧!

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F103ZET定时器TIM1输出六路带死区互补PWM波形

; TIM_TimeBaseStructure.TIM_Prescaler = 99;//??????1us     TIM_TimeBaseStructure.TIM_ClockDivision     = TIM_CKD_DIV1;     TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0000;     TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);      
发表于 2019-08-21

STM32F103ZET6的引脚分类和几个需要特殊注意的引脚总结

前言本博文基于STM32F103ZET6编写;如有不足之处,多多指教;多功能引脚图下图为STM32芯片引脚细节图由图片可知,STM32大部分GPIO都有复用功能,所以在配置的时候要格外小心;下图为**《STM32大容量手册》引脚功能分类图**引脚分类(按照我自己理解给分的类)第一类:非GPIO单功能引脚电源引脚Vdd;接地引脚Vss;芯片掉电保持引脚VBAT;外部晶振引脚OSC_IN和OSC_OUT;空引脚NC;复位引脚NRST;参考电压引脚VREF+和VREF-;BOOT0引脚;特点: 这列引脚往往在Pin name这栏中都是以本身的功能名命名;第二类:GPIO单功能引脚例如最后一个表格中的PG15,只有普通输入输出的功能
发表于 2019-08-01
STM32F103ZET6的引脚分类和几个需要特殊注意的引脚总结

IAR环境下STM32F103ZET6+IAP方案的实现

被按下、串口是否接收到特定的数据、U盘是否插入等等),如果有则进行对user application进行擦除和重新写入操作,如果没有则直接跳转到user application执行应用;如果有则进行擦除用户代码并重新写入新的用户代码。 二、STM32F103ZET6硬件条件      STM32F103ZET6的启动方式有三种:内置FLASH启动、内置SRAM启动、系统存储器ROM启动,通过BOOT0和BOOT1引脚的设置可以选择从哪中方式启动,这里选择内置的FLASH启动。其FLASH的地址为0x08000000—0x0807ffff,共512KB,这些都能从芯片
发表于 2019-06-13
IAR环境下STM32F103ZET6+IAP方案的实现

STM32F103ZET6 — WWDG

简介与 STM32 的 IWDG 一样,窗口看门狗的作用也是从不可预知的情况下,进行恢复的一种手段,只不过窗口看门狗的用法和 IWDG 有一定的差异,主要体现在“窗口”二字。那么什么是窗口看门狗呢?顾名思义,窗口看门狗就是在指定的时间窗口进行喂狗,才有效,在窗口外进行喂狗,都视为无效。具体的内容,请看下面分析时钟与独立看门狗 IWDG 不同,WWDG 窗口看门狗由 APB1 提供时钟输入:工作原理WWDG 的基本组成为:可编程的自由运行递减计数器。条件复位        ---- 当递减计数器的值小于0x40,(若看门狗被启动)则产生复位。       
发表于 2019-04-09
STM32F103ZET6 — WWDG

STM32F407ZET6 用串口通过键盘控制LED灯的亮灭

;       GPIO_SetBits(GPIOF, GPIO_Pin_10);                  GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);  代替上面三句void usart_init()   //usart 初始化配置相关内容{    //首先定义几个需要用到的结构体    GPIO_InitTypeDef  GPIO_InitStructure;   
发表于 2019-01-14
STM32F407ZET6 用串口通过键盘控制LED灯的亮灭

ROHM推出安装可靠性更高的车用超小型MOSFET“RV4xxx系列”

全球知名半导体制造商ROHM(总部位于日本京都)开发出1.6mm×1.6mm尺寸超小型MOSFET“RV4xxx系列”,该系列产品可确保部件安装后的可靠性,且符合汽车电子产品可靠性标准AEC-Q101,是确保车规级品质的高可靠性产品。另外,产品采用了ROHM独有的封装加工技术,非常有助于对品质要求高的高级驾驶辅助系统(ADAS)摄像头模块等汽车电子的小型化。 RV4xxx系列已于2019年5月份开始出售样品(样品价格 100日元/个,不含税),预计于2019年9月开始暂以月产10万个规模投入量产。 近年来,ADAS不可或缺的车载摄像头,受安装空间的限制,对所配置部件的小型化要求越来越高。为满足这些市场需求
发表于 2019-07-23
ROHM推出安装可靠性更高的车用超小型MOSFET“RV4xxx系列”

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved