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

相关推荐
南行*1 天前
C语言Linux环境编程
linux·c语言·开发语言·网络安全
Morwit1 天前
Qt qml创建c++类的单例对象
开发语言·c++·qt
古城小栈1 天前
Rust 已经自举,却仍需GNU与MSVC工具链的缘由
开发语言·rust
jarreyer1 天前
数据项目分析标准化流程
开发语言·python·机器学习
你怎么知道我是队长1 天前
C语言---printf函数使用详细说明
c语言·开发语言
liulilittle1 天前
俄罗斯访问欧洲国际线路优化
开发语言·网络·信息与通信·ip·通信·俄罗斯·莫斯科
陈小桔1 天前
logging模块-python
开发语言·python
消失的旧时光-19431 天前
函数指针 + 结构体 = C 语言的“对象模型”?——从 C 到 C++ / Java 的本质统一
linux·c语言·开发语言·c++·c
!停1 天前
C语言栈和队列的实现
开发语言·数据结构
源代码•宸1 天前
Golang语法进阶(定时器)
开发语言·经验分享·后端·算法·golang·timer·ticker