计算机三级嵌入式开发技术总结

 

嵌入式系统

人们日常使用的通用计算机(如个人计算机)不是一种典型的嵌入式系统;

嵌入式系统中的软件不存放在硬盘中,软件一般固化在只读存储器(ROM)中, 用户通常不能随意变更其中的程序功能;

典型嵌入式系统硬件由嵌入式最小硬件系统、前向通道、人机交互通道、相互互连通道、后向通道组成。

嵌入式软件与硬件一体化,软件固化存储,对代码时空效率和实时性要求高,软件可裁剪,要尽可能去除冗余,大多数低端嵌入式系统不用操作系统,所以软件的生命周期相对较长

选择嵌入式系统软件结构的一个基本原则是:选择可以满足响应时间需求的简单的结构。简单的轮询结构只适用于系统的任务数量较、任务处理简单,且实时性要求不高的场景,带中断的轮询结构也称为中断驱动结构或前后台结构,但并没有因为中断的引入而使软件的复杂度明显降低。

嵌入式系统中复位电路

    复位电路是嵌入式最小硬件系统的一个组成部分,嵌入式处理器系统复位引脚为nRESET时,表示低电平复位(不带n的表示高电平复位),一般情况下,复位信号的时间宽度必须保持若干个处理器时钟周期才能使系统可靠复位,对于经典ARM处理器复位后,PC指针指向唯一的地址0x00000000

图像。

静态图像格式主要有BMP、JPEG、GIF、PNG,PLACAPE是流行的数字音乐无损压缩格式之一;

WAV是未经压缩的数字音频,其音质与CD相当;

数字视频的数据量可压缩几十倍甚至几百倍。

扫描二维码关注公众号,回复: 8788231 查看本文章

用来描述数字图像的参数主要有图像大小(图像分辨率)、位平面数目、像素深度和颜色模型;没有量化位数。

字符

    字符的形状有两种描述方法,点阵法和轮廓法。前者描述字符在离散点阵中笔画的占位信息,后者描述字符的轮廓,即把字符的轮廓用一组直线和曲线来勾画,字型库中记录的是每一直线和曲线的端点及控制点的坐标

UTF-8采用的是单字节可变长编码。

UTF-16采用的是双字节可变长(不是等长)编码

通信

通信系统可分为有线通信和无线通信两大类,模拟信号和数字信号是通信系统中所传输的两种形式的信号。模拟信号容易受噪声信号的干扰,传输质量不够稳定。把模拟信号转换成数字信号再进行传输的通信传输技术称为数字通信。

采用嵌入式处理器自带的UART可以组成RS-232/RS-485通信接口,RS-232采用负逻辑传输,其接口的信号线采用单端输出方式,逻辑0的电压范围为+3V~+15V,逻辑1的电压范围为-15V~-3V,而RS-485标准采用差分信号传输方式。

 

ARM

ARM处理器特点包括单周期操作、只使用加载/存储指令访问内存、三地址指令格式、指令流水线技术、低功耗设计、采用RISC指令集结构;

      支持Thumb-2指令集子集的处理器主要有Cortex-M系列和Cortex-R系列(比如Cortex-M3),Thumb-2内核技术兼有16位及32位指令长度;CPSR是当前程序状态寄存器。当发生异常时,处理器自动改变CPSR的值,进入相应的工作模式;

有些ARM芯片如基于ARM Cortex-M3的嵌入式处理芯片已经嵌入了以太网控制器。

NVIC称之为内嵌向量中断控制器,支持嵌套和向量中断。内部没有NVIC的ARM处理器是ARM9

嵌入式处理器的体系结构按存储机制可以分为冯·诺依曼结构和哈佛结构。Cortex-M0采用了冯·诺依曼结构,其余都是哈佛结构;

基于AMBA总线的处理器使用系统总线和外围总线连接高速系统组件和低速外围组件,速度不高的外部接口连接外围总线(APB),包括定时器、并行接口和串行接口等; USB主机LCD控制器和中断控制器等都连接在系统总线上。

经典ARM处理器将7种类型的异常分成6级,最高级别的是复位,最低的是未定义的指令UND和软件中断SWI

 

ARM处理器共有37个寄存器,包括31个通用寄存器(含PC)和6个状态寄存器,其中R13对应的是堆栈指针(SP);

属于数据处理类的指令助记符有

①ADC  ②ADD   ③AND    ④CMP ⑤EOR ⑥MLA ⑦MUL  ⑧TST

不属于的有:SWI(异常中断类指令)。

在ARM指令的条件码中,用于带符号数比较的助记符后缀是GE、LT、GT、LE。

AND是逻辑与指令,BIC是位清零指令,可以将指定位的值清零且不影响其它位的ARM指令助记符只有这两个。

ARM处理器可以访问外部设备的指令助记符是??

①B    ②BIC   ③LDR    ④MOV  ⑤MSR  ⑥SWP  ⑦TEQ  ⑧STR

将地址0x40007000装入寄存器R0,正确的ARM指令或伪指令是

(LDR R0,=0x40007000 )。从存储器到寄存器的数据传送指令的LDR,是将地址装入寄存器;

ARM处理器片内数据存储器通常使用的是SRAM,片内程序存储器通常使用的是Flash ROM,从结构上看“高带宽外部存储器控制接口”与AMBA的系统总线相连,通过AMBA的“高带宽外部存储器控制接口”可以对外部扩展的存储器进行管理与控制。

MMU

    MMU(存储器管理单元)的功能包括虚拟地址到物理地址的转换和存储器访问权限控制。MMU能把系统中不同类型的存储器(如Flash、SRAM、SDRAM、ROM)进行统一管理;

CPU

      CPU使用最频繁的少量的程序代码和数据存放在高速缓冲存储器(Cache)中,为了提高处理速度;正在运行中程序的数据和代码存放在主存储器(内存)中,尚未启动运行的其余程序或数据存放在容量很大的外部存储器(外存)中。

视频

HDMI即高清晰度多媒体接口,适合影像传输,是一种数字化音频/视频接口,最高数据传输速率为10.2Gbps,目前已有多个ARM芯片内置了HDMI控制器接口,但是S3C2410内部没有集成了HDMI。

 

硬件抽象层

硬件抽象层是在操作系统层与硬件之间设置的独立的接口软件层,是所有直接依赖于硬件的软件

 

板级支持包

板级支持包中包含硬件相关的设备驱动程序,其特点是与硬件和操作系统都关系紧密,既有硬件相关性,又有操作系统相关性。BSP含有电路板的全套初始化程序,包括操作系统初始化。不包括引导加载程序的功能。

Bootload

嵌入式系统加电后执行的第一批最初操作,称为引导或者自举(Boot),对应的程序称为引导程序或者引导加载程序(Bootload)。Bootloader又称为bootROM是错的。

一般而言,设备驱动程序的功能包括设备打开和关闭、设备初始化、设备读取和写入,不包括设备文件管理。

实时系统

实时系统是必须在有限和确定的时间内对外部事件做出响应的信息系统,一旦任务执行时间超过截止时间系统的总损益就为,这种实时系统称为硬实时系统,否则为软实时系统。对于硬实时系统,一旦超过时限将导致严重的负效益后果,如飞机控制器、核反应堆处理装置;而软实时系统中如果输出响应超过时限,一般不会造成严重后果;程控电话交换机送拨号音任务属于软实时系统。

S3C2410(32位)

实时时钟(RTC)组件采用单独的供电引脚和时钟源,通过编程可以对RTC内部的年、月、日、星期、时、分、秒寄存器的值进行设置,但分频系数由时钟源决定,无法通过编程改变

S3C2410属于中高档32位嵌入式处理器,其存储器控制组件中包括存储器控制器、外部主控器、NAND Flash控制器等,其中存储器控制器提供访问片外存储器芯片所需的控制信号,支持大/小端模式,地址空间共1GB;S3C2410片内具有分离的指令Cache和数据Cache。

键盘

http://115.28.168.160/CourseFile/QRSJS/16-2.png 图中的键盘接口采用的是非编码键盘的结构形式,GPF6~GPF1是ARM处理器的GPIO接口的一部分,VDD3.3表示该端点的电压为3.3V,当KEY1键按下时,流过该按键的电流可简单估算为0.33mA,GPF6~GPF1引脚的逻辑值为111110。

图像

图像的数据量=图像水平分辨率×图像垂直分辨率×像素深度/8

操作系统

    大多数嵌入式系统都是实时系统,而且多是强实时、多任务系统。Windows CE和Android操作系统属于单内核结构。μC/OS是μC/OS-II的早起版本,属于源码公开的嵌入式操作系统,但并非是完全免费的操作系统。

FreeRTOS是一个迷你的实时操作系统内核。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费(不是类Unix操作系统)的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。

类Unix操作系统

    Linux、iOS、VxWorks。

VxWorks既按开发版本的授权数量收取授权费,也按最终产品售出的实际数量收取每份运行软件的版权费。

μC/OS-II操作系统

      μC/OS-II的绝大部分代码是用ANSI C语言编写的,μC/OS-II的任务由三部分构成:程序代码、任务堆栈和任务控制块;

在uc/os-ii中,任务的状态有5种:睡眠态、就绪态、运行态、等待态及中断服务态,休眠态是任务代码驻留在内存中、但还没有交给内核调度的状态。μC/OS-II是抢占式实时内核,在任意时刻都可能发生任务调度,在任务调度时总是运行就绪态任务中优先级最高的任务。运行态任务调用函数OSSemPend()后将转入等待态。被中断态的任务是不能直接转入等待态的要先结束被中断态进入运行态。

WEB

嵌入式WEB服务器的应用需求与通用WEB服务器的应用需求是不同的,它不是以提供信息服务为主,而是提供一个基于远程客户端的操控方式,用户在远程客户机上通过浏览器与嵌入式Web服务器交互,从而操控被嵌入的设备。

开发工具套件ADS1.2

在ADS1.2的集成开发环境中,设计者所设计的嵌入式应用程序的源文件、库文件、头文件以及其他的输入文件,均以一个工程项目的形式进行管理,并且在工程项目中,为了方便管理,这些文件还可以不是必须)按照某种逻辑关系进行分组,必须包含一个生成目标,ADS1.2工具可以完成应用程序的编辑、编译、连接工作。

 

 

填空题考点

    WWW网页是典型的【超文本】结构。Adobe公司开发的一种用于电子文档交换的文件格式名为【PDF】。

计算机网络由智能电子设备(网络终端)、数据链路、【通信协议】以及网络软件等组成,每个网卡都有全球唯一的【48】位二进制的MAC地址。

连接在交换机上的所有终端设备都可同时相互【通信】,为交换机从发送设备接收了一帧数据之后,它会直接按照目的地址发送给【接收】设备。

ARM Cortex-A是ARM Cortex应用处理器,此系列中A5、A7、A8、A9、A12、A15和A17字长【32】位,而A50系列中的A53和A57字长为【64】位

已知在小端模式下,内存0x4001000~0x4001003中的数据依次为0x36, 0x31, 0x30, 0x32, R1=0x00001000,R0=0x40000000,指令LDR R2,[R0,R1]!执行后, R0=【0x40001000】,R2=【0x32303136】。

在ARM的指令中,如果无符号数R1>R2,则将R1减去R2,结果放R3中并更新CPSR,用两条指令完成,则分别为【CMP R1,R2 SUBS R3,R1,R2 】和【SUBHIS R3,R1,R2  SUBHI R3,R1,R2】。

分配一个32位字存储单元,名为Mydata并对其初始化为0x33445566的伪指令为【Mydata DCD 0x33445566】,无条件转移到标号为MLOOP且不进行模式切换的伪指令为【B MLOOP】。

通用异步收发器(UART)由【发送】器、接收器、控制单元以及【波特率】发生器等构成。

假设PWM定时器计数频率为4000KHz,为使TOUT0输出200Hz的方波(占空比50%),对应的TCNTB0和TCMPB0分别为【20000】和【10000】。

 

 

http://115.28.168.160/CourseFile/QRSJS/16-3.png 在高端嵌入式系统中,除了操作系统、设备驱动程序和应用软件之外的系统软件称为【中间件】。下图所示的高端嵌入式系统的软件层次结构实例中,模块A应为【操作系统内核】。 

  

 

 

 

在实时系统中,从接收到可屏蔽中断请求信号到操作系统做出响应并转入中断服务程序所需要的最长时间称为【中断延迟】时间;系统将控制权从低优先级的任务转移到高优先级任务所花费的时间称为【任务抢占】时间。

μC/OS-II支持两种方式的任务调度,分别是【任务】级的任务调度和

【中断】级的任务调度,前者一般发生在当前运行态任务因等待某一事件而被阻塞或被挂起时,或是有更高优先级的任务处于就绪状态时。

在μC/OS-II操作系统中,宏【OS_ENTER_CRITICAL】 ()使系统进入临界状态,其主要操作是关闭所有可屏蔽中断,避免其他任务或中断服务程序打断临界区代码的执行。当需要实现对不可分割数据的原子访问时,μC/OS-II也可以调用函数void【OsschedLock】 (void)锁定任务调度器,取代关中断。

在μC/OS-II操作系统中,调用任务管理函数【OSTaskSuspecd】()可以挂起一个任务;函数【OSSemdPend】()用于等待一个信号量。

嵌入式系统的调试相对来说比较复杂,调试的目的是发现错误并【定位错误】。因此,通常需借助多种调试工具来进行。调试工具的作用是控制【程序代码】的执行。

GNU开发工具套件中包括编译器、【连接器】、调试器、文本编辑器、语法除错等工具。利用GNU中的调试器GDB进行程序调试时,可用命令【watch】来观察被调试程序中的变量值。

 

 

 

发布了9 篇原创文章 · 获赞 38 · 访问量 9372

猜你喜欢

转载自blog.csdn.net/weixin_41092597/article/details/88924849
今日推荐