目录
第1章: 嵌入式系统概论
1.嵌入式系统发展史
嵌入式计算机的真正发展是微处理器问世之后: Intel4004、Intel8080、6800、68000、Z80 、Z8000;
为灵活兼容出现了系统化、模块化的单板机:Intel iSBC、Zilog MCB、Intel Multibus 、MultibusII;
80年代出现各种总线,微电子工艺的发展,出现了单片机:微处理器+I/O接口+A/D+D/A+UART+RAM+ROM。
90年代在分布控制、柔性控制、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步加速发展:
2.嵌入式系统定义*
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序四个部分组成,用于实现对其他设备的控制、监视或管理等目标。
3.嵌入式系统特点*
1.面向用户、面向产品、面向特定应用,大多工作在为特定用户群设计的系统中;
2.功耗低、体积小、集成度高,嵌入式系统设计趋于小型化;
3.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统;
4.高效率地设计,量体裁衣,去除冗余;
5.具有较长的生命周期;
6.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存储于磁盘等载体中。由于嵌入式系统的运算速度和存储容量仍然存在一定程度的限制,同时由于大部分嵌入式系统必须具有较高的实时性,因此对程序的质量,特别是可靠性,有着较高的要求;
7.嵌入式系统本身不具备自举开发能力。
4.嵌入式处理器的特点
(1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
(2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
(3)可扩展的处理器结构能最迅速地开发出满足应用的最高性能的嵌入式微处理器。
(4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,有的需要功耗只有mw。
5.嵌入式处理分类
5.1嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都有了增强。
5.2嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。
微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。
5.3嵌入式DSP处理器 (EDSP-Embedded Digital Signal Processor) DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。
推动嵌入式DSP处理器发展的另一个因素是嵌入式系统的智能化:
各种带有智能逻辑的消费类产品
生物信息识别终端
带有加解密算法的键盘
ADSL接入
实时语音压解系统
实时图像压解系统
虚拟现实显示
这类智能化算法一般运算量都较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处。
5.4嵌入式片上系统(SoC-System on Chip)整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。
SoC可以分为通用和专用两类:
通用系列包括Infineon的TriCore、FreescaIe的M-core、某些ARM系列器件、EchelcIn和Freescale联合研制的Neuron芯片等。
专用SoC一般专用于某个或某类系统中,不为一般用户所知。具有代表性的产品是Philips的SmartxA,它将xA单片机内核和支持超过2 048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载Java或C语言的专用的SoC可用于公众互联网如Internet安全方面。
6.嵌入式系统的应用领域及嵌入式系统的发展趋势
计算机应用的普及、互联网技术的实用以及纳米微电子技术的突破,正有力地推动着21世纪工业生产、商业活动、 科学实验和家庭生活等领域自动化和信息化进程。全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居,为嵌入式产品造就了崭新而巨大的商机。除了沟通信息高速公路的交换机、路由器和 Modem,嵌入式系统还可以构建CIMS(Computer Integrated Manufacturing Systems)所需的DCS(Distributed Control System)和机器人以及规模较大的家用汽车电子系统。最有产量效益和时代特征的嵌入式产品应数因特网上的信息家电,如Web可视电话、Web游戏机、Web PDA(俗称电子商务、商务通)、WAP电话手机以及多媒体产 品,如STB(电视机顶盒)、DVD播放机、硬盘播放器、电子阅读机等。 以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景、注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战。这主要包括:支持日趋增长的功能密度、灵活的网络连接、轻便的移动应用和多媒体的信息处理。此外,当然还须对付更加激烈的市场竞争。
第8章:Linux内核配置
1.内核概述
操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分,包括内核、设备驱动程序、启动引导程序、命令shell或者其他用户界面、基本的文件管理工具和系统工具。
系统其实包含了操作系统和所有运行在它之上的应用程序。
内核是操作系统的内在核心。系统其他部分必须依靠内核这部分软件提供的服务,像管理硬件设备,分配系统资源等等。
内核也被称作是超级管理者或者是操作系统核心。通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。对于提供保护机制的现代系统来说,内核独立于普通应用程序,它一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,统称为内核空间。相对的,应用程序在用户空间执行。它们只能看到允许它们使用的部分系统资源,并且不能使用某些特定的系统功能,不能直接访问硬件,还有其他一些使用限制。
当内核运行的时候,系统以内核态进入内核空间;相反,普通用户程序以用户态进入用户空间。
应用程序通过系统调用和内核通信来运行,如下图所示:
应用程序通常调用库函数(如C库函数),再通过系统调用界面让内核代其完成各种不同任务。
许多库函数提供的功能并没有单独的系统调用可以替代,在那些较为复杂的函数中,调用内核的操作通常只是整个工作的一个步骤。
Eg: prinf()函数提供了数据的缓存和格式化等操作,也只是在执行的末期通过write()系统调用把处理后的最终数据写在终端上。
有一些库函数和系统调用函数是一一对应的关系。
Eg: open()库函数,除了调用open()系统调用,其他什么也不做。 一些C库函数,像strcpy(),根本就不需要调用系统级的操作。
当一个应用程序请求执行一条系统调用,我们在说内核正在代其执行。如果进一步解释,在这种情况下,应用程序被称为通过系统调用在内核空间运行,而内核被称为运行于进程上下文中。这种交互关系——应用程序通过系统调用用陷入内核——是应用程序完成其工作的基本行为方式。
上下文代表着内核活动的范围。
可将处理器在任何指定时间点的活动范围概括为下列三者之一:
1.运行于内核空间,处于进程上下文,代表某个特定的进程执行。
2.运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。
3.运行于用户空间,执行用户进程。
例如,当CPU空闲时,内核就运行一个空闲进程,处于进程上下文,但运行于内核空间。
2.内核代码结构
大概了解:
(2023年 2月18日 17:07首次发布)