扫码阅读
手机扫码阅读

STM32单片机程序的存储和执行

164 2024-08-31

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:STM32单片机程序的存储和执行
文章来源:
一起学嵌入式
扫码关注公众号

摘要

【一分钟聊嵌入式】系列旨在通过短时间内提供嵌入式相关主题的精炼讨论,覆盖技术、职场、学习方法等方面。读者可通过公众号后台留言参与话题讨论。

本期话题

本文探讨了ARM单片机程序的存储和执行方式,以及与PC及ARM-A + Linux平台的不同。PC程序将可执行文件从磁盘加载到内存执行,而单片机程序则储存在ROM中,可直接执行不需加载到RAM。

存储空间

以stm32单片机为例,其存储空间包括片内Flash和片内RAM。Flash可以在系统掉电后保持数据,而RAM中数据会在掉电后丢失。

程序文件结构

MDK编译后的程序文件由代码段(Code)、只读数据段(RO-data)、读写数据段(RW-data)和0数据段(ZI-data)组成。.map文件提供了这些段的空间大小和地址信息,最终的文件大小由Code、RO Data和RW DATA三部分总和构成,ZI Data不占文件空间。

执行过程

当MCU启动时,stm32的启动文件将RW段变量复制到RAM中,并初始化ZI Data所在的RAM空间。由于XIP技术,Code和RO Data不需加载到RAM即可执行。程序的静态状态存储在非易失存储器中,如内部FLASH,而动态状态时修改的数据存放在RAM中,掉电后会丢失。

程序的存储与运行状态

静态状态下,RO和RW段保存在ROM中。运行状态时,内核从ROM中读取代码,加载代码将RW段数据复制到RAM,并在RAM中初始化ZI段数据,之后正式执行主体程序。

结语

文章总结了STM32单片机程序的存储和执行机制,帮助读者理解其与其他平台的差异,促进更有效的嵌入式开发。

感谢阅读,期待读者的互动和成长。

想要了解更多内容?

查看原文:STM32单片机程序的存储和执行
文章来源:
一起学嵌入式
扫码关注公众号