嵌入式计算机是整个嵌入式系统的核心,主要包括应用软件层、系统软件层、硬件抽象层、硬件层。执行部件是控制对象,接受来自嵌入式计算机系统发出的指令,执行相应的操作。
Figure1 嵌入式系统组成
硬件抽象层:主要包括对底层硬件进行初始化与对硬件设备进行配置等(硬件设备的驱动实现)。
硬件层:微控制器,设备输入输出(I/O)接口,存储器(ROM,EEPROM)等外设。
系统软件层:(RTOS)实时操作系统,图形用户界面接口,系统文件等。
应用软件层:依据需要实现功能开发。
从硬件分类。
a) 可以分为基于嵌入式微控制器(EMCU),俗称单片机,把CPU,存储器,I/O和其他外部设备全部封装在同一片集成电路上。
b) 基于嵌入式微处理器(EMPU),与计算机的处理器CPU相对应的微处理器,通常被装配在电路板上。
c) 基于嵌入式数字信号处理器(EDSP),使其可以执行 DSP 算法以及具有更高的编译效率和更快的指令执行速度。
d) 基于嵌入式片上系统(ESOC),许多功能模块集成在一块芯片上,是一个高度集成的电路系统。
典型的嵌入式操作系统分类:WinCE 操作系统,uc/OS-II 操作系统,VxWorks 操作系统,Linux 操作系统。
Linux内核主要包括:
进程调度、内存管理、虚拟文件系统、网络接口(包括网络设备驱动程序和网络接口)以及进程间通信(管道,有名管道,信号量,信号,套接口,消息接口及共享内存等)等五个子系统。
进程间通信相应概念
a) 管道和有名管道:管道仅允许具有亲缘关系的进程之间进行通信。有名管道不但具有管道的功能,而且还允许无亲缘关系的进程之间进行通信,这主要是因为有名管道对管道进行了命名。
b) 信号量:一种进程之间以及同一进程不同线程之间的同步通信机制。
c) 信号:既可以在进程之间进行通信,又可以在进程本身之中进行通信。
d) 套接口:允许在不同机器的进程之间进行通信。
e) 消息队列:指消息的链接表,它没有信号承载信号量少,管道仅能承载无格式字节流以及缓冲区大小受限等问题。
f) 共享内存:最快的进程间通信机制。为了实现进程间的同步与互斥,它往往与其他的通信机制结合起来使用。
Linux进程调度
一个进程一般经历三个状态:就绪态,阻塞态(CPU资源不足或者等待时间过长),运行态。进程调度分为两个部分:1,如何分配CPU时间,即调度时机。2,选择哪个进程,即调度算法。Linux中调度程序的调度算法包括:优先级(Priority)、先来先服务(FIFO)、轮询(Round Robin),以及它们的各种组合。
Linux时钟源
包括两个时钟源进行计时:1,实时时钟(RealTime Clock,RTC);实时时钟也被称为 CMOS时钟,作为持久存放系统时间设备的实时时钟是靠主板上的时钟电路来保持系统计时。2,操作系统时钟(OperatingSystem Clock,OSC),一般由定时/计数芯片(8253/8254)产生提供了一种周期性的触发中断机制。中断信号是由定时/计数芯片每隔一段时间产生的输出脉冲传到中断控制器上产生的,然后触发时钟中断。