初识嵌入式(一)—嵌入式开发概述

姓名:姜新超   学号:19020100261    学院:电子工程学院

转自:https://blog.csdn.net/qq_46413242/article/details/104597045

【嵌牛导读】什么是嵌入式技术

【牵牛鼻子】嵌入式的开发方向

【嵌牛问题】嵌入式软件与非嵌入式软件的区别?

【嵌牛正文】

嵌入式软件是结合操作系统之上做的开发;非嵌入式软件是做的裸机开发。(裸机:没有操作系统)

开发人员能力要求:软硬通吃(开发效率低)。

1)单片机的相关概念:①单片机的特性:单片机是8位的,它的处理速度跟不上。从开发模式上分析,软件和硬件的耦合度非常大(耦合度高导致的问题软件移植性差)。②单片机开发叫做传统开发。③单片机的开发流程/开发步骤:看原理图—看硬件—写程序—下载到开发板上运行。

2)有操作系统的好处:解决了软件的移植性;解决了开发人员的能力的划分问题。操作系统有多任务机制,多任务机制带来的好处:提供了丰富的网络协议;提供了开源软件和库。

嵌入式开发的优缺点?

答:优点:解决了软件的移植性;解决了开发人员的能力的划分问题。提供了丰富的网络协议;提供了开源软件和库。

缺点:需要较为强的硬件支撑。

嵌入式的开发方向

①嵌入式上层应用软件开发

a.精通一门语言

b.熟悉一款操作系统(会看说明书)

c.数据结构/算法

②嵌入式底层系统软件开发

a.精通C语言(所有的操作系统内核都是由C+汇编开发的)

b.理解操作系统的实现(会使用,也会添加/修改功能)

c.熟悉硬件的工作原理(CPU:stm32+64位;SPI,IIC,蓝牙,Wifi,物联网,摄像头)

d.熟悉汇编

拓展:

1)为什么内核开发选择C语言?(即问C语言的特点?)

答:能够直接访问硬件;移植性好;运行效率高。

2)为什么C语言能够直接访问硬件?

答:C语言有指针数据类型,指针可以对地址进行操作。

3)什么时候选择用汇编?什么时候选择用C语言?

答:对硬件初始化的时候采用汇编,对一些硬件的复杂操作(对屏幕的控制,内存的控制,内存分配的策略)的时候用C语言。

a.汇编的特点:低级语言,没有高级语法的支撑;访问硬件的效率大于C语言。

③嵌入式系统工程师

BSP(固件工程师) 内核开发

2、嵌入式系统的组成

(1)软件子系统与硬件子系统的组成?

答:软件子系统由应用程序和操作系统组成;硬件子系统由存储器、处理器、输入接口和输出接口组成。

(2)嵌入式系统CPU的选择?

①CPU体系结构的种类、特点及应用场景?

1)ARM:

特点:体积小、低功耗、低成本、高性能;支持 Thumb ( 16 位) /ARM ( 32 位)双指令集,能很好的兼容 8 位 /16 位器件;采用RISC体系结构,大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。

应用场景:工业控制领域、网络应用、消费类电子产品、成像和安全产品。

2)X86/Atom:

特点:速度快;单条指令功能强大,指令数相对较带宽要求低;还是因为指令数相对少,即使高频率运行也不需要很大的带宽传输指令;控制简单。

应用场景:低端电脑。

3)MIPS:

特点:MIPS支持64bit指令和操作,ARM目前只到32bit;MIPS有专门的除法器,可以执行除法指令;MIPS的内核寄存器比ARM多一倍,所以同样的性能下MIPS的功耗会比ARM更低;MIPS开放。

应用场景:游戏机、路由器、激光打印机、掌上电脑等各个方面。

4)PowerPC:

特点:可伸缩性好、方便灵活。

(3)嵌入式操作系统的选择?实时性的划分?

①哪些操作系统可以作为嵌入式操作系统?

答:可以移植(代码开源、提供可移植接口)的操作系统称之为嵌入式操作系统。

②嵌入式操作系统分类

1)按收费模式划分

a.商用型:Vxworks,Nucleux,PlamOS,Symbian,WinCE,QNX,pSOS,VRTX,Lynx OS,Hopen,Delta OS

b. 免费型:Linux,μCLinux,μC/OS-Ⅱ,eCos,uITRON

2)按实时性划分

a.硬实时:Vxworks

b.软实时:WinCE,RTLinux

c.无实时

拓展:

a.实时性(软件、硬件):在规定的时间内完成规定的动作(软件:通过算法实现的;硬件:通过硬件实现实时性)

b.Vxworks:实时性强 Linux:无实时的 运行效率 稳定 RT-Linux openwrt有实时性

你可能感兴趣的:(初识嵌入式(一)—嵌入式开发概述)