单片机存储器和C程序编译过程

1、 单片机存储器

只读存储器不是并列关系,是从ROM发展到FLASH的过程

|---------------------|----------------------|
| RAM | ROM |
| 随机存储器 | 只读存储器 |
| CPU直接存储和访问 | 只读可访问不可写 |
| 临时存数据,存的是CPU正在使用的数据 | 永久存数据,存的是操作系统启动程序或指令 |
| 断电易失 | 断电不易失 |
| 由CPU直接访问 | 数据需要传到RAM才访问 |
| RAM容量大,以KM为单位,价格比较贵 | 容量低,以MB为单位,价格低 |

2、编译过程

①预处理(宏替换、头文件展开、删除注释、条件编译)xx.i文件

②编译阶段(语法检测,将预处理后文件编译生成汇编文件)xx.s文件

③汇编(将汇编文件生成目标文件(二进制文件))xx.o文件

④链接(将目标文件(二进制可执行指令文件)链接为可执行程序)xx.out文件

CPU把xx.out复制到RAM,然后执行可执行文件

CPU:①直接存在RAM②ROM->RAM->执行③磁盘->RAM->执行

相关推荐
Yuki’8 分钟前
网络编程---UDP
c语言·网络·网络协议·udp
鲸屿19512 分钟前
python之socket网络编程
开发语言·网络·python
没有梦想的咸鱼185-1037-166338 分钟前
基于R语言机器学习方法在生态经济学领域中的实践技术应用
开发语言·机器学习·数据分析·r语言
.YM.Z44 分钟前
C语言——文件操作
c语言·文件操作
向上的车轮1 小时前
基于go语言的云原生TodoList Demo 项目,验证云原生核心特性
开发语言·云原生·golang
The Chosen One9851 小时前
C++ : AVL树-详解
开发语言·c++
PH_modest1 小时前
【Qt跬步积累】—— 初识Qt
开发语言·qt
GanGuaGua2 小时前
Linux系统:线程的互斥和安全
linux·运维·服务器·c语言·c++·安全
怀旧,2 小时前
【C++】18. 红⿊树实现
开发语言·c++
xiaopengbc2 小时前
在 Python 中实现观察者模式的具体步骤是什么?
开发语言·python·观察者模式