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

相关推荐
水利行业RTU手艺人3 小时前
RTU固件中的“数据保险箱”——离线数据补发系统设计
c++·stm32·单片机·物联网
KaMeidebaby4 小时前
卡梅德生物技术快报|蛋白的叠氮基修饰:实操解析:核酸模板耦合蛋白的叠氮基修饰实现靶蛋白定点共价标记
前端·人工智能·物联网·算法·百度
漫途科技4 小时前
智慧水务、智慧工厂场景加速落地 物联网终端成数字化转型核心支撑
物联网
csg11076 小时前
PIC单片机防破解:从硬件到软件的全面防护
单片机·嵌入式硬件·物联网·自动化
华普微HOPERF6 小时前
容耦数字隔离器,如何调节OOK调制所产生的谐波分量?
物联网·数字隔离器
无人装备硬件开发爱好者7 小时前
光伏技术全维度深度解析:电池分类、性能原理、MPPT机制及物联网全场景工程选型实战指南
物联网·mppt·太阳能电池
小小的代码里面挖呀挖呀挖7 小时前
杰理蓝牙耳机开发--LE Audio与游戏耳机应用
笔记·单片机·物联网·学习
搞物联网的木子7 小时前
工厂车间设备远程监控详细方案(LoRa无线改造)
物联网·信息与通信·射频工程
图扑软件8 小时前
WebGIS 零碳智能港口态势感知与 VR 远控系统
物联网·自动化·vr·webgl·数字孪生·3d 渲染
会周易的程序员9 小时前
使用 LuaBridge 封装 C++ 日志库 microLog 为 Lua 模块
c++·物联网·junit·lua·日志·iot·aiot