【嵌入式相关】
嵌入式与电脑相比而言最大的区别在于:软硬件可裁剪
仅保留我们需要的软件和硬件,其他的可以不要。这就成就了嵌入式设备的一大特点:小巧。
嵌入式的构成:嵌入式软件 + 嵌入式硬件
1:嵌入式软件
如何判断你的板子是否能跑操作系统?
对于CPU而言,想要跑操作系统,必须要有MMU(Memory Management Unit),内存管理单元,所以区分开发板是否能跑操作系统的办法就是看CPU是否有mmu内存管理单元。
计算机的硬件组成
计算机系统的硬件组成:
1:输入设备
键盘、鼠标……
2:输出设备
显示器、打印机……
3:存储器 :存储器是用来存放程序和数据的部件。
它是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。
内存
Flash【DDR4】
外存
硬盘、光盘
4:控制器
5:运算器
6:总线 :BUS
2:嵌入式硬件
与计算机硬件组成基本相似,也有必备的输入输出、存储器、控制器、运算器、总线
【程序的编译流程】
1.预处理阶段------>【将.c文件编译为.i文件】
2.编译阶段------>【.i文件编译为.s文件】
经过编译后的已经是汇编代码了
3.汇编阶段------>【.s文件编译为.o文件】
把汇编语言生成计算机能够识别的机器码,也就是0和1
4.链接阶段------>【.o文件链接编译为可执行程序a.out】
若是使用Makefile编译,将会同时编译多个.c文件,这也会产生多个.o文件,
最后的链接就是把多个.o文件合成编译为一个可执行程序,例如:a.out
【三级存储系统】
所谓三级存储系统,就是【Cache】-【内存】-【硬盘】
先说说硬盘和内存还有Cache的区别:
存储介质 | 特点 |
---|---|
硬盘 | 优点:容量大、数据存储安全,掉电不丢失数据; 缺点:读取速度相对较慢 |
内存 | 优点:读取速度比硬盘快;缺点:掉电后数据丢失,价格比硬盘贵 |
Cache | 优点:读取速度最快,快至极; 缺点:成本太高,掉电数据丢失 |
再说说CPU是如何处理数据的:
上面已经说了,硬盘里的数据掉电后不会丢失,所以不难看出:程序都是存放在硬盘里面的。
或者宏观来说:我们的电脑系统都是存放在硬盘里面的(哈哈,这个谁都知道,毕竟都能看到C盘)。
当我们去执行程序时,程序的数据首先会从硬盘拷贝到内存,然后CPU再去内存访问数据。那么就有同学问了,为啥CPU不直接去硬盘里拿数据呢?
因为CPU的主频很高,读取速度太快,而硬盘的速度远远跟不上CPU的读写速度,举个例子:假设我们用蒸馏法萃取咖啡,肯定不会用嘴一滴一滴在下面接着,因为我们的‘一口’很大,所以会等他萃取到半杯或者一杯时,才会端起来给它一个深渊巨口,一饮而尽。
CPU也是如此,他不可能慢慢地去取硬盘中的数据,而是从同运行频率的内存中去拿。
那么,为什么要使用三级存储系统呢,Cache是干嘛用的?
CPU说:为甚么要使用三级存储系统,我之前取数据直接就去内存拿了,现在还给我搞这么多繁琐的步骤,这么麻烦?
内存说:你看看,这部分数据你要频繁使用,我就给你直接存进你体内的Cache里面了,这样你就只取一次,然后存进Cache,下次再使用这写数据时就直接自给自足,别来烦我了
CPU说:奥~,好像是有那么一丝道理啊!
内存说:废话,这样能大大提升你的运行效率。
【Cache、内存和硬盘】