单片机存储器和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->执行

相关推荐
wakkkaaa8 分钟前
C++ 面向对象(继承)
开发语言·c++
四念处茫茫19 分钟前
【C语言系列】深入理解指针(1)
c语言·开发语言·visual studio
很楠不爱19 分钟前
Qt——界面优化
开发语言·qt
不爱学英文的码字机器23 分钟前
[JavaScript] 运算符详解
开发语言·javascript·ecmascript
SomeB1oody30 分钟前
【Rust自学】13.6. 迭代器 Pt.2:消耗和产生迭代器的方法
开发语言·后端·rust
oioihoii32 分钟前
C++的auto_ptr智能指针:从诞生到被弃用的历程
开发语言·c++
Hello.Reader32 分钟前
Rust 数据类型详解
开发语言·后端·rust
一只鹿鹿鹿40 分钟前
IT程序设计文档,软件需求设计文档,详细设计模板(Word原件)
开发语言·数据库·安全·需求分析·设计规范
一只鹿鹿鹿41 分钟前
可视化平台建设技术方案,商业BI系统解决方案,大屏建设功能需求分析(word原件)
java·大数据·运维·开发语言·设计规范
Lysun0011 小时前
redux 结合 @reduxjs/toolkit 的使用
开发语言·前端·javascript·react·redux