(这些是几年前写给大一大二同学的培训资料。挺无聊的,非常无聊!!~~~~)
嵌入式linux简介
1:嵌入式系统定义以及简单的嵌入式系统概述,以及arm芯片概述
嵌入式定义:“用于控制、监视或者辅助操作机器和设备的装置”。原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants)。
前后台系统:早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台管理程序和后台任务程序。
ARM公司有着处理器内核和系统功能块的开发历史。随着时间的发展,ARM公司早已经不生产处理器了而是在授权处理器构架。ARM有着很多优秀的32位处理器,其中包括流行的ARM7TDMI处理器、高档产品ARM1176TZ(F)-S处理器等。要说明的是,架构版本号和名字中的数字并不是一码事。比如,ARM7TDMI是基于ARMv4T架构的(T表示支持“Thumb指令”);ARMv5TE架构则是伴随着ARM9E处理器家族亮相的。ARM9E家族成员包括ARM926E-S和ARM946E-S等。ARMv5TE架构添加了“服务于多媒体应用增强的DSP指令”(我们使用的S3C2410就是一款ARM920T处理器核的arm9处理器)。
之后的ARM11,ARM11是基于ARMv6架构建成的。ARMv6是ARM进化史上的一个重要里程碑,在08年以前几乎所有高端手机、移动设备等大多都是用了v6构架的ARM11系列的相关芯片。而Thumb-2指令集也在ARM11构架的芯片中首次使用。
也就是那几年,基于从ARMv6开始的新设计理念,ARM构架进一步发展为ARMv7架构芯片。在这个版本中,内核架构首次从单一款式变成3种款式(A系列/R系列/M系列)。
2:arm9(2440)与cm3(stm32)的对比以及简单的带操作系统的嵌入式系统简介
(那个时候老师都不知道什么是cm3,说它是arm7.因此才写的这一段)
嵌入式操作系统:嵌入式操作系统(Embedded Operation System,EOS)是一种用途广泛的系统软件,过去它主要应用与工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。
由于现代嵌入式系统的任务的实时性、数量、处理内容目在不断增多,前后台式的嵌入式系统开发难度变得非常大,嵌入操作系统显得越来越重要。而基于ARM构架的嵌入式系统占有者世界上大半的嵌入式市场,所以学习基于ARM构架的嵌入式操作系统显得相当的重要。
前市场上较多的ARM构架芯片主要有:ARM7系列、ARM9系列、ARM11系列、ARM-Cortex-A5/A8/A9系列、ARM-Cortex-M3/M4系列等(A15系列的芯片将在12年末上市)。
随着ARM构架的发展,在芯片性能方面也有了极大的提升。一些老芯片渐渐淡出了我们的视线,而一些新的芯片业开始被大家所接受。
由于芯片速度等问题,老式的ARM7系列的芯片的市场从以前的高端pda使用的芯片早已转变到了各种控制领域。由于ARM7系列芯片价格较高,ARM公司推出了Cortex-M3(简称CM3 )系列芯片用于取代ARM7(用于深度嵌入的,单片机风格).以stm32工业控制芯片为列,从08左右上市以来短短的几年时间,stm32凭借着简单的开发模式以及高效的性能撼动了众多16位机以及低端32位机的市场.由于stm32成本低价格便宜,甚至有些高端8位市场也受到了影响。
ARM9性能优于ARM7数倍,有着强大的处理能力,并支持一定的“数字信号处理”能力与3D处理能力。上市十多年来依然随处可见。现在常用于工控终端、移动设备、网络控制设备和多媒体设备等,甚至还可以做微型服务器。
作为初学者,我们往往都会选取较为较为简单、价格便宜、性能全面的芯片作为我们学习的平台。由于CM3的出现使得ARM7系列芯片的市场受到了一定的影响,在之后可能会取代ARM7,成为主流ARM处理器的低端主打产品。但是CM3毕竟是对于低端所设计的产物而且上市时间较短,很少有高主频高性能版的,很难以如此低的性能挂载大型操作系统(如linux、winCE)。而ARM9设计之初就是为多种大型操作系统而设计的,且性能适中、价格相对便宜(相对于ARM-Cortex-A系列)、学习简单(相对于ARM11系列)。因此ARM9些列芯片成为了初学者学习嵌入式操作系统的最简单、高效的平台。
3:嵌入式linux简介
嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。
Linux是一个成熟而稳定的网络操作系统。将Linux植入嵌入式设备具有众多的优点。首先,Linux是可以定制的,其系统内核最小只有约134kB。一个带有中文系统和图形用户界面的核心程序也可以做到不足1MB,并且同样稳定。其次,它和多数Unix系统兼容,应用程序的开发和移植相当容易。同时,由于具有良好的可移植性,人们已成功使Linux运行于数百种硬件平台之上。另外,嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能稳定性好安全性好。
嵌入式linux的开发模式与我们经常接触的单片机前后台开发有着相当多的不同。一般单片机的开发主要通过集成IDE进行编写、通过RS232串口、仿真器等进行下载仿真。但是嵌入式linux的开发往往依赖交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个显著特点,交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,如图所示。(尼玛,这图,传上来片怎么成这样了)
宿主机(Host)是一台通用计算机(如PC机或者工作站),它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如Windows和Linux),而且还有各种各样优秀的开发工具(codeblocks、Embedded Visual C++、eclipse、Dev-C++等),能够大大提高嵌入式应用软件的开发速度和效率。
目标机(Target)一般在嵌入式应用软件开发期间使用,用来区别与嵌入式系统通信的宿主机,它可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。
(之后什么按虚拟机呀、交叉编译呀、makefile什么的就不传了。没有实际意义。)