最近开始学习嵌入式,好记性不如烂笔头,所以在博客上回顾下最近学的,如果总结的有什么不对的地方,希望大家能帮我在评论下指出来,期待跟大家一起交流学习。
一、了解嵌入式系统首先要对这个名词有自己的概念,网上可以百度到其定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统,这是从技术角度上来讲的。从系统角度上来讲嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统,可能是因为刚开始接触,我比较喜欢从第二种角度理解,嵌入式就是在软件和硬件之间加了一层操作系统从而达到在软件变更或硬件变动后,依然能根据软件需求控制硬的目的。
二、嵌入式系统是以嵌入式应用为目的的计算机系统。可分为:
系统级:各种类型的工控机、PC104模块
板级:各种类型的带CPU的主板及OEM产品
片级:各种以单片机、DSP、微处理器为核心的产品
比较主流的嵌入式系统有:嵌入式Linux、嵌入式DSP、嵌入式FPGA
生活中像手机、电脑、监控器、银行ATM等很多产品都是嵌入式的产品。现下提的最多的物联网就是嵌入式产品--------通信网络----------管理平台的结合。
三、常见操作系统有Android、ios、windows、linux,08年之前美国风河公司vxworks系统很出名是一种嵌入式的强实时操作系统与军工有关,后来被linux取代,现在vxworks被控制,不允许使用,嵌入式实时操作系统还有sylixOS,是国内的自主知识产权。
四、嵌入式系统一般由嵌入式处理器、外围硬件设备(输入接口、输出接口、存储器等)、嵌入式操作系统、应用程序等四个部分组成。
五、嵌入式处理器
微处理器(MPU) 通常指CPU,微处理器由一片或少数几片大规模集成电路组成的*处理器。
微控制器(MCU)微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。
嵌入式DSP (EDSP)是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、频谱分析等)的嵌入式处理器。由于对DSP硬件结构和指令进行了特殊设计,使其能够高速完成各种数字信号处理算法。
片上系统(SoC)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。
六、在嵌入式学习中,总线很重要,总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
常见总线有:iic、spi、uart、usb、 232 、285、 can等
七、产品分类
工业产品一般按工作温度范围被分为四类:
a. 民用级产品,商用级产品: 0℃~+70℃
b. 工业级的产品: -40℃~+85℃
c, 汽车电子级的: -40℃~125℃
d. 军工级的产品: -55℃~+125℃
八、嵌入式硬件最小系统
8位、32位、64位基本组成都是差不多的电源,晶振,复位,存储,CPU等,其实就是嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。
九、嵌入式系统的一些概念
①、实时性
实时性的本质是指在规定的时间内完成规定的动作。
嵌入式系统≠实时系统
有些嵌入式系统没有实时性要求
硬实时:如果没有满足指定的时间约束会导致灾难性的后果。
软实时:如果没有满足指定的时间约束并不会导致灾难性的后果。
②、同步和互斥
举例:A、B、C三个人通过一扇门,A走完B走,B走完C走,依次进行,A、B、C三个人是同步的,但对于们这个资源来说,A走的时候B、C不能进出,因此A走的时候门对B、C是互斥的。
③、死锁
A,B,C三个进程在运行的时候分别占有了资源x,y,z, A-x, B-y, C-z, 但是在运行的时候A需要y.B 需要z,C需要x,这种情况下A,B,C都不能进行下去,这种情况为死锁。
④前后台系统
对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。
很多基于微处理器的产品采用前后台系统设计,例如微波炉、电话机、玩具等。在另外一些基于微处理器应用中,从省电的角度出发,平时微处理器处在停机状态,所有事都靠中断服务来完成。
⑤、实时操作系统(RTOS)
实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中, 每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。
⑥、代码的临界区
代码的临界区也称为临界区,指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打入(这不是绝对的,如果中断不调用任何包含临界区的代码,也不访问任何临界区使用的共享资源,这个中断可能可以执行)。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。
⑦、资源
程序运行时可使用的软、硬件环境统称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器。资源也可以是一个变量、一个结构或一个数组等。