嵌入式linux开发实战——项目1认识嵌入式系统

1嵌入式系统学习路线

  1. 主要招聘的行业企业:智能家居、消费电子、医疗、工业自动化、通信设备、汽车电子
  2. 学习路线:Linux入门、C语言、linux应用开发、linux系统开发、linux驱动
  3. 误区:今天学这、明天学那,资料太多,只看资料不动手

2什么是嵌入式系统

别动,你已经被嵌入式设备包围了
我们生活已经处处可见嵌入式系统,医疗电子、智能家居、物流管理、电力控制、所有带数字接口和程序控制的设备,如电子手表、数码相机、汽车、飞机、卫星都离不开嵌入式系统
(小米手机芯片是:骁龙TM四核2.5GHz处理器)

嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。(还要背诵呜呜呜)

嵌入式系统应用

家用电器

是嵌入式系统最大的应用领域,如手机、数码相机、电视、冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。

工业控制

如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为 工业控制设备的核心,在未来几年内必将获得长足的发展

POS网络

公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。

3嵌入式处理器

嵌入式微控制器(EMCU)

嵌入式微处理器又称单片机,也就是在一块芯片中集成了整个计算机系统。
代表性的通用系列有8051、P51XA、MCS-251、MCS-96/196/296、MC68HC05和C166/167等。

嵌入式微处理器(EMPU)

嵌入式微处理器是由通用计算机中的CPU“演变而来的。它的特征是具有32位以上的处理器。具有较高的性能,当然其价格也相应比较高。主要的嵌入式处理器类型有Am186/88/386EX、SC-400、Power PC、68000、MIPS、ARM/StrongARM系列等。

嵌入式数字信号处理器(EDSP)

数字信号处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也快。
最为广泛应用的是TI的TMS320C2000/C5000系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的应用范围。

嵌入式片上系统(ESOC)

片上系统SOC则是在一个硅片上实现一个更为复杂的系统。各种处理器内核将作为SOC设计公司的标准库,成为VLSI设计中的一种标准器件,用标准的VHDL语言描述,存储在器件库中。
比较典型的SOC产品是Philips的Smart XA。少数通用系列如Siemens的TriCore,Motorola的M-Core。

ARM

ARM芯片是嵌入式微处理器中的佼佼者,是很多数字电子产品的核心。如今95%的手机里面的核心处理器使用的都是ARM芯片,而ARM在整个手持市场上占有90%以上的份额。
ARM公司的成功除了其卓越的芯片设计技术以外,还源于其创新的商业模式:提供技术许可的知识产权,而不是制造和销售实际的半导体芯片。

MIPS

MIPS CPU是一种RISC结构的CPU,从生产专用集成电路的核心(ASIC Cores)的厂家到生产低成本CPU的厂家,从低端64位处理器生产厂家到高端63位处理器生产厂家。

Power PC

POWER是1991年,Apple、IBM、Motorla组成的AIM联盟所发展处的微处理器架构。PowerPC是整个AIM平台的一部分,并且是到目前为止唯一的一部分。PowerPC的历史可以追溯到早在1990年随RISC System/6000一起被介绍的IBM POWER架构。该设计是从早期的RISC机构(比如IBM 801)与MIPS架构的处理器得到灵感的。

Motorola 68000

Motorola 68000(68K)是出现得比较早的一款嵌入式处理器,68K采用的是CISC结构。68K最初用在苹果二代上,比Intel的8088还要早。

ARM9处理器

ARM9被广泛用于智能手机、PDA、机顶盒、PMP、电子玩具、数码相机、数码摄像机等产品解决方案,可为要求苛刻、成本敏感的嵌入式应用提供可靠的高性能和灵活性。丰富的DSP拓展使SoC设计不再需要单独的DSP。

ARM11处理器

ARM11处理器系列可用于当前生产领域中的大多数智能手机,还广泛用于消费、家庭和嵌入式应用领域。改处理器的功耗非常低,软件可以与以前所有ARM处理器兼容。

Cortex A8处理器

从高端特色的手机到上网本、DTV、打印机和汽车信息娱乐,Cortex-A8处理器都提供了可靠的高性能解决方案。NEON技术主要应用于某些音频、视频和图形工作负荷可以减轻跨SoC支持多个专用加速器的负担,并且使系统可以支持将来的标准。

Cortex A15处理器

Cortex A15和Cortex A9/A8同样采用了ARMv-A Cortex架构,处理器内核数量最多为4个,处理核心之间通过AMBA 4技术互联支持一系列ISA,能够在不断下降的功耗、散热和成本预算基础上提供高度可拓展性解决方案,广泛适用于下一代智能手机、平板机、大屏幕移动计算设备、高端数字家庭娱乐终端、无线基站、企业基础架构产品等。

4嵌入式操作系统

从20世纪80年年代开始,出现了各种各样的商业用嵌入式操作系统。这些操作系统大部分都是为专有系统而开发,从而形成了目前多种形式的商用嵌入式擦偶做系统百家争鸣的局面。
如Linux、VxWorks、pSOS、PalmOS和Windows CE等。

Linux
嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux等)和一般的嵌入式Linux版本(如uCLinux和PocketLinux等。

RTlinux
RTLinux(AReal-Time Linux,亦称作实时Linux)是Linux中的一种实时操作系统。它由新墨西哥矿业及科技学院的V. Yodaiken开发。目前,RTLinux有一个由社区支持的免费版本,称为RTLinux Free,以及一个来自FSMLabs的商业版本,称作RTLinux Pro。

VxWorks
1984年WRS公司推出它的第一个版本VxWorks1.0.1,在1997年推出了VxWorks 5.3.1。VXWorks是一个运行在目标机的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。

WInCE
Windows CE的多线程、多任务、全优先的操作系统环境是专门针对资源有限而设计的。这种模块化设计使嵌入式系统开发者和应用开发者能够定做各种产品,例如家用电器、专门的工业控制器和嵌入式通信设备。

Palm
3COM公司的Palm操作系统在掌上电脑和PDA市场上占有很大的市场份额。它有开发的操作系统应用接口,开发商可以根据需要自行开发所需的应用程序。

μC/OS-II
由于μC/OS-II 仅是一个实时内核,这就意味着它不像其他实时操作系统那样,它提供给用户的只是一些API函数接口,有很多工作往往需要用户自己去完成。把μC/OS-II 移植到目标硬件平台上也只是系统设计工作的开始,后面还需要针对实际的应用需求对μC/OS-II 进行功能拓展,包括底层的硬件驱动、文件系统和用户图形接口(GUI)等,从而建立一个实用的RTOS。

eCOs
eCos(embedded Configurable operating system),中文翻译为嵌入式可配置操作系统或嵌入式可配置实时操作系统。适合于深度 嵌入式应用,主要应用对象包括电子消费、电信、车载设备、手持设备以及其他一些低成本和便携式应用。

5嵌入式系统结构

嵌入式系统与传统的计算机一样是一种由硬件软件组成的计算机系统。硬件包括了嵌入式微控制器和微处理器,以及一些外围元器件和外部设备,软件包括嵌入式操作系统和应用软件。

中间层
中间层为硬件层与系统软件层之间的部分,有时也成为硬件抽象层(Hard Abstract Layer,HAL)或者板级支持包(Board Supper Package, BSP)。

系统软件层
系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户界面接口(Graphic User Interface, GUI)、网络系统及通用组件模块组成。

应用软件层
应用软件层则是开发设计人员在系统软件层的基础之上,根据需要实现的功能,综合系统的硬件环境所开发的应用软件。

常用开发工机具
GNU Tools
Linux环境下流行的开发工具是GNU Tools,利用GNU Tools完全可以控制编译行为,在嵌入式Linux环境中同样具有广发的应用。

GNU Tools包括vi/vim GCC GDB make CVS SVN diff patch binutils

Qt
Qt是一个跨平台的C++应用开发开发框架

Eclipse
Eclipse可以说是发展极为迅速,它不仅是一个以java为主的开发平台,其功能强大的插件体系结构使得它可以被当做各种应用程序来使用。

交叉开发环境
嵌入式系统通常是一个资源受限的系统,因此不可能直接在嵌入式系统的硬件平台上编写软件。
目前一般采用的解决方法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行。

交叉调试
交叉调试(Cross Debug)又常常被称为远程调试(Remote Debug),是一种允许调试器以某种方式控制目标机上呗调试金蝉的运行方式,并具有查看和修改目标机上内存单元、存储器以及被调试进程中变量值等各种调试功能的调试方式。

系统测试
内存分析工具
Valgrind /proc/meminfo atop free GNOME System Monitor
性能分析工具
Intel VTuneOprofileGprof Google Perf Tools

覆盖分析工具
c/c++:gcc+gcov+lcov:(单元测试:CUnit、CPPUnit、Google GTest等)
java:Maven cobertura插件、Clover、 EMMA、Jtest;
Python:PyUnit+coverage.py;
PHP:phpunit±coverage-html+Xdebug;
Perl:Test::Class 和 Devel::Cover;
Shell:shUnit2+shcov;

你可能感兴趣的:(嵌入式linux开发实战——项目1认识嵌入式系统)