嵌入式深度学习 嵌入式知识
转载
嵌入式系统的应用范围:军事国防、消费电子、信息家电、网络通信、工业控制。嵌入式系统定义:嵌入式系统是以应用为中心,以计算机技术为基础,软件与硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(嵌入式的三要素:嵌入型、专用性与计算机系统) 嵌入式系统的特点: 1)专用性强; 2)实时约束; 3)RTOS;4)高可靠性; 5)低功耗; 6)专用的开发工具和开发环境; 7)系统精简;嵌入式系统的组成:处理器: MCU、MPU、DSP、SOC;外围接口及设备:存储器、通信接口、 I/O 接口、输入输出设备、电源等;嵌入式操作系统: windows CE、UCLinux、Vxworks、UC/OS; 应用软件: Bootloader 。嵌入式系统的硬件:嵌入式微处理器( MCU、MPU、DSP、SOC),外围电路,外部设备;嵌入式系统的软件:无操作系统( NOSES),小型操作系统软件( SOSES),大型操作系统软件( LOSES)注: ARM处理器三大部件: ALU、控制器、寄存器。嵌入式处理器特点:(1)实时多任务;(2)结构可扩展;(3)很强的存储区保护功能;(4)低功耗。DSP处理器两种工作方式:(1)经过单片机的 DSP可单独构成处理器;(2)作为协处理器,具有单片机功能和数字处理功能;IP核分类:软核、固核、硬核;ARM处理器系列:(1)ARM7系列(三级流水, thumb 指令集,ARM7TDMI); (2)ARM9系列(DSP处理能力,ARM920T)(3)ARM/OE(增强 DSP)(4)SecurCone系列(提供解密安全方案);(5)StrongARM系列(Zntle 产权);(6)XScale系列(Intel 产权);(7)Cortex 系列(A:性能密集型; R:要求实时性; M:要求低成本)ARM系列的变量后缀:(1)T:thumb 指令集;(2)D:JTAG调试器;(3)快速乘法器;(4)E:增强 DSP指令;(5)J:Jave加速器ARM{X}{Y}{Z}{T}{D}{M}{I}{E}{J}{F}{S} :x—系列号, y—内部存储管理和保护单元,Z—含有高速缓存。CISC(x86):(1)具有大量的指令和寻址方式( 300~500条);(2)8/2 原则:80%的程序只用 20%的指令;(3)大多说程序只使用少量指令就能运行;处理器核的性能指标:(1)冯诺依曼 vs哈佛;(2)CISCv s RISC(3)流水线结构;(4)超标量执行;(5)高速缓存;流水线(所有的 ARM处理器):每个时钟脉冲都接收下一条处理数据的指令,只是不同部分做不同的事情,提高系统处理速度和效率; ARM7—3 级流水线,PC=LR-4;ARM9—5 级流水线 PC=LR-4*3;ARM10—6 级;ARM—8 级;Cortex—8 级;4 种异常:中断、陷阱、故障、终止;ARM处理器的 7 种工作模式:(1)用户态 USR;(2)快中断 FIQ;(3)中断IRQ;(4)管理态 SVC;(5)终止态 ABT;(6)未定义 UND;(7)系统 SYS;ARM的两种工作状态:(1)ARM 状态---32 位 ARM指令集,字对齐取指( 2)Thumb 状态---16 位 Thumb 指令集,半字对齐取指。ARM寄存器:37 个寄存器,其中 31 个通用寄存器, 6 个状态寄存器,寄存器位 32 位寄存器。影子寄存器:是为处理器的不同工作模式配备的专用物理寄存器, SP—堆栈指针 R13(2)LR—链接寄存器 R14(3)R1状态寄存器:(1)保存 ALU 当前操作信息( 2)控制允许和禁指中止( 3)设置处理器操作模式。标志位:(1)N—结果为负数, N=1(2)Z—结果为 0,Z=1(3)C—加法进位 C=1,减法置错位 C=0(4)V—带符号溢出, V=1(5)I—I=1禁止 IRQ中断(6)F—F=1 禁止 FIQ中断( 7)T=0—ARM 执行;T=1,Thumb 执行。ARM存储器数据类型: 8 位字节(Java加速器);16 位字节(Thumb 处理器);32 位字节( ARM 处理器);大端序:高字节—低地址;小端序:高字节—高地址。.ARM的存储体系(1)片内存储器:寄存器,片上 cache,FIFO,TCM(可控),片内 SRAM (2)片外存储器:主存储器(片外 DRAM、SDRAM),外部存储器,后备存储器。存储管理单元 MMU 的作用:(1)虚拟存储空间到物理存储空间的映射( 2)存储器保护功能( 3)设置虚拟存储空间的缓冲特性。Cache:cache是位于主存储器和 cpu 之间的一块高速存储器(高速可控)统一 cache:冯诺伊曼结构中指令和数据存放在一起,统一编址。分离 cache:哈佛结构中,指令和数据存放各存储体,分开编址。逻辑 cache:cache放在处理器内核与 MMU 之间。逻辑 cache在序列地址空间存储数据,处理器可以直接通过逻辑 cache访问数据,而无需通过 MMU。物理 cache:cache放在 MMU 和物理存储器之间。物理 cache使用物理地址存储数据,当处理器访问存储器时, MMU 必须先把虚拟地址转换为物理地址, cache 才能向内核提供数据。Cache地址映射方法:直接映射(电路简单效率低),全相联映射(适合小 cache),组想联映射。.FCSE快速上下文切换扩展:是硬件电路,加快进程切换速度,减小切换开销-2 写缓存区改善了 cache的性能FIFO写缓存区(容量很小):位于处理核与主存之间- 1 当 Cpu输出数据时,若总线恰好被占用而无法输出时, 那么 Cpu可以把数据写入写缓存区。当总线上没有比写缓存区优先级更高的掌控者时,写缓存区可以通过总线将数据写入内存。哈佛结构在 ARM中的具体实现方式:1.程序指令和数据分别存储,分开编址;.哈佛结构的数据 Cache和指令 Cache是分开的,各有一套地址和数据总线,使取指和取数据同时进行。.筒形移位寄存器; ARM 处理器内部有筒形移位寄存器,可以进行移位操作。.看门狗定时器 WDG:引导嵌入式微处理器脱离死锁工作状态。边界对准:指处理器一次性的或者周期性的读写内存的起始地址。提高数据传输速度,加快访问速度,简化了编译器设计,优化了程序代码。 AMBA总线: AHB-高性能片上总线; APB-先进外围片上总线。.I/O 地址空间编址方法: 1)独立编址法( 8086),需要设置 I/O 指令;2)统一编址法( ARM)(3)混合编址。ARM的指令集包括六类指令:分支指令,数据处理指令,状态寄存器存取指令,数据存取指令,协处理器指令,异常处理指令。ARM 指令集和 Thumb 指令集具有两个共同点,一是他们都有较多的寄存器,可以用于多种用途;而是对存储的访问只能通过 Load/store 指令进行。正交指令集具有如下特征:指令集中的绝大多数指令长度相同,指令的操作码和操作数寻址字段的长度相对稳定,在寻址字段中,所有寄存器的寻址都可以替换。ARM 处理器有三个指令集: 32 位的 ARM 指令集, 16 位的 Thumb 指令集和 8 位的 Jazelle指令集。多寄存器传送指令的优点:在数据块操作,上下文切换,栈操作方面比单寄存器传送指令效率更高,但缺点是增加了中断延迟。简述 ARM进入异常时处理器的响应,退出异常时需要执行哪些操作,处理器响应 (1)将 CPSR的内容保存到将要执行的异常中断模式的 SPSR中(2)设置当前程序状态寄存器 CPSR中的模式字段位(3)将异常发生时程序的下一条指令地址保存到新的异常模式的 R14寄存器中( 4)强制对程序计数器赋值,使程序从异常所对应的向量地址开始执行中断服务子程序。退出异常时操作如下:(1)所有修改过的用户寄存器必须从处理程序的保护栈中恢复 (2)恢复被中断程序在被中断时刻的 CPSR寄存器(3)返回到发生异常中断的指令位置或者异常中断的下一条指令处执行。(4)清除 CPSR中的中断禁止标志位。 ARM指令集有何特点:(1)ARM 指令集都是 32 位的( 2)ARM 指令集都采用 Load-store 架构(3)所有指令都可以条件执行:简述 ARM指令有几种寻址方式寄存器寻址,立即数寻址,寄存器移位寻址,寄存器间接寻址,基址寻址,多寄存器寻址,栈寻址,块拷贝寻址,相对寻址。.处理器进入管理模式(1)保存指令地址(2)SPSR_mode=CPSR(2)设置 CPSR(模式,中断,状态)(3)R14=PC(保存返回地址)(4)PC=异常入口地址.ARM 从异常中断返回过程:(1)从 SPSR恢复 CPSR(2)从 LR恢复 PC(3)出栈。汇编方法:(1)内嵌汇编( 2)汇编和 C变量回访( 3)汇编和 C相互调用。嵌入式系统常用的半导体存储器:ROM:容量小,只读,非易失——用作 BootLoader 载体,SRAM:容量较大,储存密度低,读写快;DRAM:密度高,读写快,成本低, 2ms 刷新一次;SDRAM:密度高,容量 8~512MB,R/M 与 CPU一致,成本低,——用作外部存储器。Flash:大容量,中低密度,集成度高,成本低,速度快——用作外部存储器。存储器的性能指标:易失性、只读性、位容量、速度、功耗、可靠性、价格。Nor Flash和 Nand Flash的技术特点:共同特点——先擦除。Nor Flash :1)32M 以下,可擦写 10 万次; 2)以“字节”为单位; 3)可以做到芯片内执行; 4)读取速度快; 5)与处理器总线连接Nand Flash:1)32M 以下,可擦写 100 万次;2)以“页”为单位; 3)不能芯片内执行; 4)写速度快; 5)I/O 连接方式;I^2 总线: 1)同步串行总线; 2)连接 MCU和外设 ADC,LED等;3)双向两线结构; 4)适合近距离非常性数据通信; 5)主从、多主分布通信网络。SPI总线: 1)同步串行接口; 2)连接 MCU 和外设; 3)4线;4)主从分布式通信网络;CAN总线:1)串行现场总线; 2)应用与汽车电子; 3)CAN控制器集成在 SOC 内部;UART的主要功能有:(1)可进行传输波特率设定( 2)将接收到的串行数据变换为主机内部的并行数据( 3)把机内并行数据转换为输出串行数据( 4)设定数据传输的帧格式( 5)对输入输出的串行数据流进行奇偶校验处理,以及进行数据收发,缓冲处理等。C语言程序对 GPIO的读写规范:(1)在头文件中对控制 GPIO的寄存器进行宏定义( 2)使用限定符 Valatile .USB 接口的主要特点( 1)串行外设连接( 2)支持即插即用( 3)连接容易,使用方便( 4)独立供电,降低外设成本( 5)速度快。为嵌入式系统配备以太网接口有以下两种方法:嵌入式处理器 +以太网芯片对处理器没有特殊要求, 只要求正确把以太网接口芯片接到嵌入式总线上, 编写该接口芯片的驱动程序。 优点是通用性强,适合各种处理器,缺点是速度慢,可靠性不高。内部集成了以太网控制器的嵌入式控制器特点:要求嵌入式处理器有通用的网络接口,处理器是面向网络应用设计的, 处理器和网络通过内部总线交换数据,速度快且可靠性高。以太网数据采用曼彻斯特编码方案, TEEE 802.3标准。非编码式键盘识别按键的方法有两种:行扫描法让一个行线引脚发出低电平信号,使该引脚对应的键盘上某一行线为低电平,而其余行线为高电平,然后读行线值,如果行值中有某位为低电平,则表明行列交点处的键被按下; 否则扫描下一行,直到扫描完全部行线为止。 换言之,如果该航线所连接的键没有按下,则列线所接的端口得到的是全“ 1”信号;如果有键按下,则得到非全“ 1”信号。线反转法先将行线作为输出线,列线作为输入线,行线输出全“ 0”信号,读出列线的值,然后将行线列线输入输出关系互换, 并且将刚才独到的列线所接的端口输出,再读出行线的输入值,那么在闭合键所在的行线上的值必为 0。这样,当一个键被按下时,必定可读到一对唯一的行列值。液晶显示器( LCD)采用一种数字显示技术,通过液晶和彩色过滤器过滤光源,在平面面板上产生图像。LCD有两种类型,一种是带有驱动电路的 LCD显示模块,这种 LCD可以与各种低档单片机进行接口,如 8051 系列单片机;另种是 LCD显示屏,它需要配接驱动电路才能使用。连接方式:第一种嵌入式处理器可通过数据总线,寄存器选择,使能信号与 LCD 模块连接;第二种有 LCD控制器的潜入式处理器可通过 LCD控制信号线与 LCD 显示屏连接。触摸屏方式:电阻式,电容式,表面声波式,红外线扫描,近场成像。触摸屏组成部分:(1)触摸检测装置 :安装在显示屏幕前面,检测触摸位置,接收后送到触摸屏控制器( 2)触摸屏控制器:接收触摸信息,转换为触点坐标送给处理器。调试方法:(1)直接测试法( 2)BDM/JTAG调试(3)软件调试( 4)模拟调试(5)全仿真调试。.直接测试法:(1)在主机上编写源程序 .C(2)编译.O文件(3)下载/挂载(4)在目标机上运行程序( 5)重复( 2)测试时间长,效率低。BDM/JTAG调试:特点:JTAG是一种在线调试接口,需要一个 JTAG接口与 ARM 通信,完全非插入式调试,该方式有一个硬件调试体( ICD 调试器)。该硬件调试体与目标板通过 JTAG调试接口相连,与主机通过串口 /网口/USB口/并口相连。待调试软件通过 JTAG调试器下载到目标板上运行。 功能:(1)读出/写入 CPU的寄存器,访问控制 ARM处理器内核,(2)读出/写入内存,访问系统中的存储器。(3)访问 ASIC系统;(4)访问 I/O 系统;(5)控制程序单步执行和实时执行。.软件调试:特点:宿主机上有调试器,目标机上有监控器, monito 预先被固化到目标机 ROM中,目标机复位后被首先执行,等待宿主机命令,主机和目标板通过串口、网口、并口连接,主机上提供调试界面,待调试软件下载到目标板上运行。功能:实现嵌入式软件调试,单步执行目标程序。.模拟调试:特点:模拟器是运行在宿主机上的一个纯软件系统工具,它通过模拟目标机的指令系统或目标机操作系统的系统调用达到在宿主机上运行和调试嵌入式程序的目的。调试工具和待调试的嵌入式软件都在宿主机上运行, 由主机提供一个模板的目标运行环境。功能:主要是用作用户程序的模拟运行,用来检查语法和程序的结构等简单错误。.全仿真调试:特点:ICE是一种用于替代目标板上的 CPU的设备,ICE仿真器通过仿真头连接到目标板,通过串口、网口或USB口。简述嵌入式开发环境:确定产品需求,选择开发方案(选择主要芯片,确定编程语言,选择开发环境,rtos的使用,检测工具及其他辅助设备),设计与调试,测试产品。8.ADS集成开发环境特点: (1) 可在Windows以及Solarts, RedHatinus 上运行;2) 支持所有的ARM系列处理器。组成部分: (1) 代码生成工具; (2) IDE集成开发环境; (3) 调试器; (4)指令集模拟器; (5) ARM开发包; (6) ARM应用库。嵌入式操作系统的特点:①非通用性;②实时性;③功耗、成本、可靠性严格要求;④有限存储空间实行;⑤可裁剪。抢占性内核:优先级最高的任务能够立即执行,从而能够保证系统具有高度实时性能。含义:当任务位于内核空间时, 有更高优先级的任务出现时, 如果当前内核允许抢占,则可以将当前任务挂起,执行优先级更高的任务。不可抢占式内核:要求每个任务在程序代码执行完毕后自行放弃 CPU的所有又。含义:高优先级的进程不能终止正在内核中运行的低优先级的任务而抢占 CPU运行,除非任务自愿放弃CPU否则该任务将一直运行下去,直至完成或退出内亥4、嵌入式操作系统按内核结构分为:单内核型和微内核型。单内核型:①整个系统只有一个可执行文件包含所有的操作系统组件;②系统的结构就是无结构,由一组函数组相互之间可以随意的调用; ③剪裁, 修改后重新编译;④通信开销小。典型代表-嵌入式Linux 微内核型:①操作系统内核只包含最小的功能,②其他的操作系统组件以中间件的形式存在于内核之外;③设备驱动程序完全从内核中剥离,独立成为-一层;④方便增加新功能组件;易于扩展和调试,运行速度慢。典型代表: Vxworks,QNX等许多嵌入式操作系统。5、实时系统的定义:对外来事件能在限定的响应时间内做出预定质量处理的计算机系统。(及时、准确)基本属性:可预测性、可靠性6、实时操作系统的响应时间:计算机从识别一个外部事件到做出反应的时间。7、实时系统根据响应时间分为:强实时系统、普通实时系统、弱实时系统根据时限响应性能分为:硬实时系统、软实时系统。8、强实时操作系统常用的调度算法:①基于优先级的调度算法:②基于 CPU使用比例的共享式调度算法;③基于时间的进程调度算法。9、优先级反转:由于多进程共享资源,具有最高优先级的进程被低优先级进程阻塞,反而使具有中优先级的进程先于高优先级的进程执行, 从而导致系统崩溃。解决之道:优先级继承,优先级封顶协10、Linux 调度机制的特点:①多任务用户操作系统;②优先级动态变化;③分为实时和普通两种;④核心是非抢占式的;⑤调度算法软实时。11、Boolooder 的主要作用:①初始化硬件设备;②加载操作系统内核12、Bootlooder 两种操作模式:启动加载模式、下载模式。13、Bootlooder 的基本功能:①初始化微处理器;②初始化内存;③初始化中断控制器; @初始化串行端口;⑤初始化 GPIO;⑥设置堆栈指针;⑦内存空间的映射;⑧传输操作系统内核镜文件到目标机。14、嵌入式linux 操作系统: UCLinux (软实时)、RTlinux (硬实时)、Mouta VistaLinux (软实时、抢占式内核)
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。