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

相关推荐
无相求码29 分钟前
C程序的内存到底怎么分的?栈、堆、全局区一张图讲清楚
c语言
格林威38 分钟前
工业相机Chunk功能全解析:图像嵌入时间戳、编码器元数据(附堡盟C#代码)
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
小大宇1 小时前
Python 集成 Conda
开发语言·python·conda
天空'之城1 小时前
C 语言工业级通用组件手写 08:精准软件消抖
c语言·嵌入式开发·工业级组件·软件消抖·按键防抖
还是奇怪1 小时前
Simon Willison 用 DSPy 优化 Datasette Agent 提示词:提示工程正在变成可测试的软件工程
java·开发语言·软件工程
小大宇2 小时前
python flask框架 SSE流式返回、跨域、报错
开发语言·python·flask
Legendary_0082 小时前
LDR6500 设计指南:Type-C 音频快充二合一配件 PD 取电与插拔时序控制方案
c语言·开发语言·音视频
柒星栈3 小时前
PHP 源码怎么加密防破解?三套方案实战指南
开发语言·php·android studio
勉灬之3 小时前
Next.js + Prisma 跨平台部署踩坑记
开发语言·javascript·ecmascript
这是个栗子3 小时前
前端开发中的常用工具函数(九)
开发语言·javascript·ecmascript·at