嵌入式系统设计--课堂总结(概述)

一、嵌入式系统设计课程内容
目标:
1、了解嵌入式技术;
2、掌握嵌入式Linux操作的使用;(命令)
(80%以上的开发平台都是Linux)
3、掌握嵌入式Linux开发工具的使用;(gcc、gbd、make、shell)
4、掌握嵌入式Linux应用开发;(文件、多任务、网络)(数据库)
5、了解嵌入式产品开发流程;(硬件–软件–系统)
6、了解嵌入式系统移植;(u-boot、内核、文件系统)
7、了解嵌入式底层软件开发;(驱动开发)
嵌入式系统学习储备知识:C语言(累积代码量:3w)+单片机(硬件的工作原理)

二、嵌入式开发概述
1、嵌入式技术是什么?
在已有的硬件上移植操作系统;在操作系统之上做应用开发;在操作系统之下做底层开发;
(操作系统的作用:管理资源(软件资源和硬件资源)==管家)
嵌入式解决的问题:让软硬件耦合度降低,软硬件不直接发生关系;软硬件独立发展,对于产品的升级与开发带来很大帮助。

*嵌入式软件与非嵌入式软件的区别?
嵌入式软件是结合操作系统做的开发
非嵌入式软件是做的裸机开发(没有跑操作系统)
嵌入式让产品更加智能,可以跑更多的软件,软件可以多任务的执行

*嵌入式开发与单片机开发的区别?
嵌入式开发有操作系统,单片机开发无操作系统。
单片机开发可称为传统开发
(学习单片机的目的:对于学习偏硬件的同学来说,不是为了掌握这个芯片,而是掌握CPU开发的流程和一些外设硬件的工作原理,所以不必死磕)
单片机开发流程:看原理图–写代码–下载到开发板上运行
引申到传统开发:两大元素:软件和硬件(写软件控制硬件工作,硬件给软件反馈)
传统开发的缺点?
※①软件移植性差(适配平台能力差,硬件一变化软件就必须跟着变化)
②开发人员能力要求:软硬通吃(不能分组,开发效率低;公司招人难度大,培养成本高)
③无法考虑用户的使用体验

*嵌入式开发的优缺点?
优点:
功能上:软件适配性强;开发人员能力划分更加清楚;
技术上:多任务机制;提供丰富的网络协议;提供了开源软件和库
缺点:高效的操作系统对于硬件要求很高,成本高

三、嵌入式开发的方向(学习路线):
①嵌入式上层应用软件开发
a.精通一门语言;
b.熟悉一款操作系统;(相当于会看说明书,会使用)
c.数据结构/算法
②嵌入式底层系统软件开发
a.精通C语言(操作系统的核心是内核,所有操作系统内核都是由C+汇编开发的)
*为什么内核开发选择C语言?(C语言的特点?)—>能够直接访问硬件、移植性好、运行效率高
*为什么C语言能够直接访问硬件?—>C语言有指针数据类型,指针可以对地址进行操作
*什么时候选择用汇编?什么时候选择用C语言?—>汇编语言是低级语言,没有高级语法的支撑,访问硬件效率大于C语言,对于硬件进行初始化时用汇编,对于硬件进行复杂操作时用C语言。
b.理解操作系统的实现(会使用,也会添加/修改功能)
c.熟悉硬件的工作原理(CPU:stm32+64位)(外设:SPI,IIC,蓝牙,WiFi,物联网,摄像头)
d.熟悉汇编
③嵌入式系统工程师
BSP(固件工程师) 内核开发

2、嵌入式系统的组成
应用程序(多变)—>操作系统(核心)—>处理器(核心)
嵌入式CPU的选择
*CPU体系结构的种类、特点及应用场景?
CPU的体系架构:
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示,RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。
CISC
CISC要用最少的机器语言指令来完成所需的计算任务。
比如:对于乘法运算,在CISC架构的CPU上需要这样一条指令:MUL ADDRA, ADDRB。将ADDRA, ADDRB中的数据读入寄存器,相乘后将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。
RISC
RISC架构要求软件来指定各个操作步骤。同上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘后将结果写回内存的操作都必须由软件来实现。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。
CISC和RISC的差异:
①指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
②存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。
③程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。
④中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。
⑤CPU:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。
⑥ 设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。
⑦用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
⑧应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。
CPU的体系结构(四大):
ARM/MIPS/PowerPC均是基于精简指令集机器处理器的架构;X86则是基于复杂指令集的架构,Atom是x86或者是x86指令集的精简版。
ARM:
过去称作进阶精简指令集机器,是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
特点:
a.体积小,低功耗,低成本,高性能;
b.支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
c.大量使用寄存器,指令执行速度更快;
d.大多数数据操作都在寄存器中完成;
e.寻址方式灵活简单,执行效率高;
f.指令长度固定
g.流水线处理方式
h.Load_store结构:在RISC中,所有的计算都要求在寄存器中完成,而寄存器和内存的通信则由单独的指令来完成。而在CSIC中,CPU是可以直接对内存进行操作的。
应用场景:非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。
x86系列/Atom(安腾)
x86或80x86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。Intel Atom是Intel的一个超低电压处理器系列。
优点:能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上相容。新的系统可以使用一个包含早期系统的指令超集合,也就可以使用较早电脑上使用的相同软件。另外微程式指令的格式与高阶语言相匹配,因而编译器并不一定要重新编写。
缺点:CISC的CPU执行是大多数时间是在访问存储器中的数据,而不是寄存器中的,这就拖慢了整个系统的速度;解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂;寻址范围小,约束了用户需要。
应用场景:RISC系统针对高端的服务器市场,相比之下x86系列主要针对个人用户和小型的商用系统。
MIPS系列
MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”其机制是尽量利用软件办法避免流水线中的数据相关问题。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。
特点:设计更简单、设计周期更短,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。
应用场景:MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的CPU。
PowerPC系列
PowerPC 是一种RISC架构的中央处理器,其基本的设计源自IBM(国际商用机器公司)的IBM PowerPC 601 微处理器
特点:可伸缩性好、方便灵活。
应用场景:PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

嵌入式不完全等于ARM
单片机是否可以作为嵌入式CPU?
YES 操作系统有类似ucossii小的操作系统,所以单片机可以上小型的操作系统

哪些操作系统可以作为嵌入式操作系统?
嵌入式操作系统是可移植(代码开源。提供可移植接口)的操作系统(例:win10不能作为嵌入式操作系统因为他只适配在PC端,不可移植)
实时性(软件、硬件):规定的时间内完成规定的动作
vxworks:实时性强 Linux:无实时的,运行效率稳定
实时性的还有:RT-Linux openwrt

你可能感兴趣的:(嵌入式系统设计--课堂总结(概述))