嵌入式软件开发
1.哪些是嵌入式系统?
嵌入式系统的定义
(1)定义:以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。
(3)知识产权核(IP核):具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本预制构件。
(4)IP核模块有行为、结构和化学3级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。
2.嵌入式开发究竟是做哪些的?3.嵌入式系统的组成
理解:硬件设备---->bootloader---->kernel---->文件系统
包含:硬件层、中间层、系统软件层和应用软件层
(1)硬件层:嵌入式微处理器、存储器、通用设备插口和I/O插口。
嵌入式核心模块=微处理器+电源电路+时钟电路+储存器
Cache:坐落寻址和嵌入式微处理器内核之间,储存的是近来一段时间微处理器使用最多的程序代码和数据。它的主要目标是降低储存器给微处理器内核引起的储存器访问困局linux手机软件,使处理速率更快。
(2)中间层(亦称为硬件具象层HAL或则板级支持包BSP).
它将系统下层软件和底层硬件分离开来,使系统下层软件开发人员无需关系底层硬件的具体情况,按照BSP层提供的插口开发即可。
BSP有两个特征:硬件相关性和操作系统相关性。
设计一个完整的BSP须要完成两部份工作:
A、嵌入式系统的硬件初始化和BSP功能。
片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐渐设置成系统所要求的工作状态。
板级初始化:包含软硬件两部份在内的初始化过程,嵌入式物联网智能硬件等系统学习企鹅意义气呜呜吧久零就易,为此后的系统初始化和应用程序构建硬件和软件的运行环境。
系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。
B、设计硬件相关的设备驱动。
(3)系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。
RTOS是嵌入式应用软件的基础和开发平台。
(4)应用软件:由基于实时系统开发的应用程序组成。
4、实时系统
(1)定义:能在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间作出响应的系统。
(2)区别:通用系统通常追求的是系统的平均响应时间和用户的使用便捷;而实时系统主要考虑的是在最坏情况下的系统行为。
(3)特性:时间约束性、可预测性、可靠性、与外部环境的交互性。
(4)硬实时(强实时):指应用的时间需求应就能得到完全满足,否则就引起重大安全车祸,甚至引起重大的生命财产损失和生态破坏,如:航天、军事。
(5)软实时(弱实时):指个别应用其实提出了时间的要求,但实时任务时不时违背这些需求对系统运行及环境不会导致严重影响,如:监控系统、实时信息采集系统。
(6)任务的约束包括:时间约束、资源约束、执行次序约束和性能约束。
5、实时系统的调度
(1)调度:给定一组实时任务和系统资源,确定每位任务何时何地执行的整个过程。
(2)占领式调度:一般是优先级驱动的调度,如uCOS。优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务的时间约束;缺点是上下文切换多。
(3)非占据式调度:一般是按时间片分配的调度,不容许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿舍弃,如WinCE。优点是上下文切换少;缺点是处理器有效资源借助率低,可调度性不好。
(4)静态表驱动策略:系统在运行前按照各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表嵌入式linux系统基本组成和开发流程图红旗linux5.0,指明各任务的起始运行时刻及运行时间。
(5)优先级驱动策略:根据任务优先级的高低确定任务的执行次序。
(6)实时任务分类:周期任务、偶发任务、非周期任务。
(7)实时系统的通用结构模型:数据采集任务实现传感数据的采集,数据处理任务处理采集的数据、并将加工后的数据送到执行机构管理任务控制机构执行。
6.、嵌入式微处理器体系结构
(1)冯诺依曼结构:程序和数据共用一个储存空间,程序指令储存地址和数据储存地址指向同一个储存器的不同化学位置,采用单一的地址及数据总线,程序和数据的长度相同。诸如:8086、ARM7、MIPS…
(2)耶鲁结构:程序和数据是两个互相独立的储存器,每位储存器独立编址、独立访问,是一种将程序储存和数据储存分开的储存器结构。诸如:AVR、ARM9、ARM10…
(3)CISC与RISC的特性比较。
计算机执行程序所须要的时间P可以用下边公式估算:
P=I×CPI×T
I:中级语言程序编译后在机器上运行的指令数。
CPI:为执行每条指令所须要的平均周期数。
T:每位机器周期的时间。
(4)流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。
(5)流水线的指标:
吞吐率:单位时间里流水线处理机流出的结果数。假如流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。
构建时间:流水线开始工作抵达最大吞吐率的时间。若m个子过程所用时间一样,均为t,则构建时间T=mt。
(6)信息储存的字节次序
A、存储器单位:字节(8位)
B、字长决定了微处理器的轮询能力嵌入式linux系统基本组成和开发流程图,即虚拟地址空间的大小。
C、32位微处理器的虚拟地址空间位232,即4GB。
D、小端字节次序:低字节在显存低地址处,高字节在显存高地址处。
E、大端字节次序:高字节在显存低地址处,低字节在显存高地址处。
F、网络设备的储存次序问题取决于OSI模型底层中的数据链路层。
7、逻辑电路基础
(1)依照电路是否具有储存功能,将逻辑电路界定为:组合逻辑电路和时序逻辑电路。
(2)组合逻辑电路:电路在任一时刻的输出,仅取决于该时刻的输入讯号,而与输入讯号作用前电路的状态无关。常用的逻辑电路有解调器和多路选择器等。
(3)时序逻辑电路:电路任一时刻的输出除了与该时刻的输入有关,并且还与该时刻电路的状态有关。为此,时序电路中必须包含记忆器件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器等。
(4)真值表、布尔代数、摩根定理、门电路的概念。
(5)NOR(或非)和NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。
(6)混频器:多输入多输出的组合逻辑网路。
每输入一个n位的二补码代码,在m个输出端中最多有一个有效。
当m=2n是,为全解调;当m
(7)因为集成电路的高电平输出电压小,而低电平输出电压相对比较大,采用集成门电路直接驱动LED时,较多采用低电平驱动形式。液晶七段字符显示器LCD借助液晶有外加电场和无外加电场时不同的光学特点来显示字符。
(8)时钟讯号是时序逻辑的基础,它用于决定逻辑单元中的状态合适更新。同步是时钟控制系统中的主要阻碍条件。
(9)在选用触发器的时侯,触发方法是必须考虑的诱因。触发方法有两种:
电平触发形式:具有结构简单的有点,常拿来组成暂存器。
边缘触发形式:具有很强的抗数据端干扰能力,常拿来组成寄存器、计数器等。
8、总线电路及讯号驱动
(1)总线是各类讯号线的集合,是嵌入式系统中各部件之间传送数据、地址和控制信息的公共通路。在同一时刻,每条通路线路上才能传输一位二补码讯号。根据总线所传送的信息类型,可以分为:数据总线(DB)、地址总线(AB)和控制总线(CB)。
(2)总线的主要参数:
总线带宽:一定时间内总线上可以传送的数据量,通常用MByte/s表示。
总线长度:总线能同时传送的数据位数(bit),即人们常说的32位、64位等总线长度的概念,也叫总线显存。总线的显存越宽,总线每秒数据传输率越大,也就是总线带宽越宽。
总线频度:工作时钟频度以MHz为单位,工作频度越高,则总线工作速率越快,也即总线带宽越宽。
总线带宽=总线主频×总线频度/8,单位是MBps。
常用总线:ISA总线、PCI总线、IIC总线、SPI总线、PC104总线和CAN总线等。
(3)只有具有三态输出的设备才才能联接到数据总线上,常用的三态门为输出缓冲器。
(4)当总线上所接的负载超过总线的负载能力时,必须在总线和负载之间加接缓冲器或驱动器,最常用的是三态缓冲器,其作用是驱动和隔离。
(5)采用总线复用技术可以实现数据总线和地址总线的共用。但会带来两个问题:
A、需要降低外部电路对总线讯号进行复用前馈,比如:地址锁存器。
B、总线速率相对非复用总线系统低。
(6)两类总线通讯合同:同步方法、异步方法。
(7)对总线仲裁问题的解决是以优先级(优先权)的概念为基础。
,最常用的是三态缓冲器,其作用是驱动和隔离。
(5)采用总线复用技术可以实现数据总线和地址总线的共用。但会带来两个问题:
A、需要降低外部电路对总线讯号进行复用前馈,比如:地址锁存器。
B、总线速率相对非复用总线系统低。
(6)两类总线通讯合同:同步方法、异步方法。
(7)对总线仲裁问题的解决是以优先级(优先权)的概念为基础。