11.物联网操作系统内存管理

一。STM32编译过程及程序组成

STM32编译过程

程序的组成、存储与运行

MDK生成的主要文件分析

1.STM32编译过程

1.源文件(Source code)--》目标文件(Object code)

.c(C语言)通过armcc生成.o,.s(汇编)通过armasm生成.o

2.Object code(目标文件)--》image(镜像文件)

.o通过armlink生成.rlf,.axf,.map

3.image(镜像文件)--》Flash format(可烧写文件)

通过fromelf生成.bin(二进制文件),.hex(ASCII文件)

(2)实例

随便打开一个工程,点击运行,运行结果的第一行有个地址,进入这个地址 。这个地址中就是用来编译的文件。

补充:armar.exe是可以把C语音改成固件库,就是移植程序时,不想复制C语言文件,直接封装成固件库

2.程序的组成,存储与运行

(1)程序组成

(2)程序运行程序

开始运行程序,就从xx.s中找到,开始运行__main(注意不是main),然后开始运行第一个图片

补充:生成反汇编指令 fromelf --text -c --output LedTask\LedTask.text LedTask\LedTask.axf

这个命令来生成汇编指令,是发现bug之后实在改不了,就看这个汇编

注意:未知原因,没有生成成功,地址不对可能

3.MDK生成的主要文件的分析

(1)map文件分析

1、Section Cross References

2、Removing Unused input sections from the image.

3、Image Symbol Table

4、Memory Map of the image

5、Image component sizes

会生成一个map文件,打开之后,可以看到程序使用了什么头文件,代码量在中断还是串口输出,还是FREERTOS。通过参考map改进代码。

(2)set文件分析

(3)hex文件分析

(4)bin文件分析

生成bin文件 fromelf --bin --output LedTask\LedTask.bin LedTask\LedTask.axf

相关推荐
艾络迅Acceleronix14 小时前
环境监测终端:STM32+EG800Z AT+ 艾络迅平台实战|多传感器采集联动全流程
c语言·stm32·单片机·嵌入式硬件·物联网·1024程序员节
武雄(小星Ai)16 小时前
智能家居云依赖排坑:从 Nest 温控器被远程“变砖“到 Home Assistant 自托管救赎
物联网·智能家居·架构设计·homeassistant
星恒讯工业路由器20 小时前
Modbus透传和Modbus网关有什么区别?从字节转发到协议翻译的选型思路
网络·物联网·modbus·工业物联网·工业网关·rs485·协议转换
李永奉20 小时前
杰理可视化SDK开发-音频录制功能使用教程
笔记·单片机·嵌入式硬件·mcu·物联网·音视频
钱工的门窗技术笔记21 小时前
铝木复合门窗中木材的角色分类与界面可分解性:结构判定、失效路径与维护设计
网络·物联网·数据分析
艾络迅Acceleronix21 小时前
气象监测:STM32+EG800Z AT + 艾络迅平台实战|气压/光照/雨量采集全流程
stm32·单片机·嵌入式硬件·mcu·物联网·1024程序员节
注塑机数据采集联网21 小时前
中科晟达注塑机 MES 系统:从车间到数字化的智能制造实践
大数据·数据仓库·人工智能·物联网·制造·数据库架构
李永奉1 天前
杰理可视化SDK开发-【BUG】AC7006F8芯片开启一拖二和双麦DNS通话算法后,大概率通话时蓝牙自动断连,RAM空间爆了问题处理
单片机·嵌入式硬件·mcu·物联网·电脑·bug
vortex51 天前
IoT 安全剖析:从消费级摄像头到车联网的攻击面全景
物联网·struts·安全
IT规划师1 天前
MQTT实战 - MQTT Broker选型,EMQX vs Mosquitto,我用过的真实对比(八)
物联网·mqtt·.net core·mqttnet