linux嵌入式论文
❶ linux论文
我是一个LINUXD的初学者,在看了N篇LINUX的介绍之后,在本着大胆和心细的原则下,尝试了一回安装LINUX。现把我的一些心得和体会和大家分享,希望对一些入门级的兄弟姐妹有所帮助。
我装的是RED
HAT
LINUX
9.0,我原来的操作系统是WIN2000,本着学习LINUX的和省钱至上的想法,我选择了安装2000和LINUX的双系统,我在我们的校园网上下载了LINUX的3CD印象文件(就是ISO文件),先保存在随意的一个硬盘里,只要不是你要准备装LINUX
的那个硬盘就行。然后开始对你的硬盘分区,关于怎么个分法,这一类的文章相信用GOOGLE一搜,肯定好几十页,我就是这么看了两天的。在这里我讲一下实际操作。
你首先要有一个未使用的分区,就是空的分区,并且保证这个分区是你逻辑分区的最后的分区。当然,其他也不是一定不可以,但是等你装好LINUX后,那么原先的分区文件的注册表将遭到破坏,所以我建议最好还是把最后的那个分区清空,空间吗,根据要安装的类型而定,我建议10G,反正现在的硬盘都挺大的,要是空间有问题,那就请PQMAGIC来帮忙吧,不会破坏原来的文件。
再下来是做一些准备工作,最好准备一些系统设备的信息,比如键盘类型,鼠标型号什么什么的,在系统的设备管理栏都有显示,你要是嫌麻烦,还有更简便的,用系统优化大师,保存所有系统信息,然后打印。一般在安装的时候用不了那么多,但有备无患嘛。呵呵!然后有两种方法可以引导系统的安装程序,看你怎么选择,第一就是从进入DOS,在DOS下启动AUTOBOOT命令(通常在光盘的第一张碟里有个dosutils文件,用虚拟光驱工具把它COPY出来,保存好,在DOS下就从这个路径启动AUTOBOOT命令)。还有一种方法就是做一张引导软盘,做引导软盘的文章很多,我这里就不讲了。从DOS启动特点是方便,用引导软盘呢,做盘麻烦一点,做好盘以后,插入盘就点重启,就可以等着进入安装界面了。选哪一种就看个人爱好了!不妨,两个都准备好。:)
在进入安装界面后,有询问ISO文件位置,键盘类型,语言,安装类型的对话界面,一路选好后就到了选择安装目标位置的地方,这个地方一定要谨慎!首先选中你准备安装LINUX的分区,删除它!再重新分配这个空间,建议分两个区,一个根分区,挂载点为“/”,类型选EXT3。另一个分区为交换分区,类型是SWAP,大小是你内存大小的一到两倍。假如你有很多用户,或是有很多用途,还可以分一些BOOT区、URS区等等,请参照其它一些相关说明文章,我没有用,在这里也就不敢瞎说了,呵呵!
在后来有选择软件包和鼠标类型的对话界面,很轻松就可以搞定了,后来有一个界面是决定LILO的安装位置的,LILO是一个双系统引导程序,假如你已经有了2000或其他的WIN操作系统,我建议你把它装在MBR,也就是整个硬盘的引导区。要是你不怕麻烦也可以把它装在LINUX的根分区,以后可以通过设置LINUX分区为活动分区,达到引导双系统的目的。最后你就等机器慢慢安装吧,时间视机器速度而定,我的128内存,用了40分钟左右,最后安装好了,会提示是否创建启动盘,我和LINUX的建议一样,强烈建议建一个,以后大有用处!!
经过一大段的OK之后,你就正式进入LINUX了。在第一次进入LINUX时候,系统回要求你做一些回答,很简单,几乎一路点下去就可以了。再往后就要看你怎么去跑你的REDHAT了。
❷ 想做嵌入式开发,为什么要学习linux
目前为止,还是有很多人不知道为什么嵌入式要学linux,学linux有什么用,用windows的人那么多,为什么要学linux啊?那么就来好好讲解,学习linux有什么用!
至少在这个世界上,服务器领域是Linux的天下。所以如果你是要进入IT行业工作的话,就必须学习Linux——因为它的稳定性、安全性、内核小以及在低配置电脑可以很流畅的运行。另外使用linux学习c语言能学的更透彻,vs可能会蒙蔽你的双眼。嵌入式分硬件\系统\软件,不往底层去学习很难融会贯通,可以不接触硬件,但系统和应用部门好了解。有许多linux开源软件,学习它,这种工程在代码质量和数量上都会回答你为什么要学习。
学习linux后,如果还想学编程语言的话,有如下选择:可以学C,因为Linux内核就是C编出来的,学好了C能更好的理解Linux;或者python,一种很强大的面向对象编程语言,学好了,进行Linux服务器管理相当的方便;还有就是php,现在很多公司招Linux方向的人员时,都会问你会不会php编程,如果你精通linux,还有php编程,那就很厉害了,至少找工作绝对没问题。编程语言都是相同的,VB是一种很好的编程语言,同时它也给微软造成了很大的安全隐患,但是这几年好像用的少了,java虽然好学,但是人才太多了,顶尖的不多。C++挺不好学的,但是它的用途很广,搞图形开发常用它。至于重新学习,完全不用,如果你VB非常熟练,再学其他的编程语言,会很轻松,刚开始可能有点费劲,一旦你深入进去了,就什么都不怕了。
❸ linux系统与嵌入式linux有什么区别和关系
二者是同根生哦,联系:都属于linux,都必须符合通用的语法和结构;区别:前者属于大的通用的,后者属于适合嵌入式系统应用的,前者包含后者。比喻:前者相当于西瓜,后者相当于无籽西瓜
❹ 硕士论文写 嵌入式linux 怎么样
可以,嵌入式linux可以写的东西很多,硬件设计,Uboot,内核,应用,算法等。如果你能自己做个实物,并且能运行基本的功能,论文基本就过关了,如果有一些创新的算法,创新的设计,那会给你的论文加分,对你自身能力的提高也有帮助。当然,你在校期间要弄的很精通也是不现实的。嵌入式这东西都是一步一个脚印,通过不断做项目来提高的。
❺ 懂计算机的,英语比较好的进来啊
At present, both in daily life, or in instrial control, aerospace, and military, embedded systems have a very wide range of applications. Embedded Linux for its very low price, significantly lower costs, become embedded operating system of choice. However, as a general operating system Linux, because of its real-time applications in the field of technical barriers to embedded applications in the field, the Linux kernel must also make the necessary improvements. Paper outlined the first real-time embedded Linux technology of great significance. Chapter II linux real-time embedded systems research. Chapter III real-time multi-task scheling algorithm, Chapter IV Uc / OS-II real-time kernel scheling algorithm. Chapter V of the papers will be embedded real-time scheling algorithm design and its core summed up. Finally, there is little feelings and prospects.
关键词: Embedded Linux Linux kernel real-time systems embedded systems
❻ 嵌入式操作系统技术研究(论文)
对系统的移植和裁剪,以达到所需的系统要求
以PowerPC8xx系列处理器为例,通过对此类处理器的引导模式。引导代码的编写和调试,以及如何引导操作系统执行等问题的研究,探索嵌入式系统引导过程的一种解决方案。
关键词:MPC860嵌入式操作系统存储映射引导
嵌入式系统应用开发不同于PC机,其开发过程同时涉及软硬件,需要将硬件平台的设计。操作系统以及上层应用开发综合考虑;而PC机应用开发建立在已经定制好的硬件和操作系统平台上,开发者只需调用系统提供的接口和服务完成相应的功能。由于应用和成本约束,嵌入式系统的硬件平台需根据应用量身定制,通常所用的MPU.存储器。外围设备等有多种选择余地,而且软件调试技术特殊,使平台的引导设计变得十分复杂。因此,对于嵌入式系统开发者而言,有必要深入分析系统引导过程,将软硬件开发有效地综合,即针对不同的硬件平台和软件运行模式,正确地进行底层上电初始化,进而引导操作系统执行。这个问题的核心在于对系统的引导模式的研究。
嵌入式系统的启动代码一般由两部分构成:引导代码和操作系统执行环境的初始化代码。其中引导代码一般也由两部分构成:第一部分是板级。片级初始化代码,主要功能是通过设置寄存器初始化硬件的工作方式,如设置时钟。中断控制寄存器等,完成内存映射。初始化MMU等;第二部分是装载程序,其功能是将操作系统和应用程序的映像从只读存储器装载或者拷贝到系统的RAM中,并跳转到相应的代码处继续执行。操作系统执行环境的初始化代码主要由硬件抽象层HAL代码。设备驱动程序初始化代码和操作系统执行体初始代码三部分构成。
本文以摩托罗拉MPC860处理器和具有自主知识产权的操作系统CRTOSII为例,研究嵌入式系统引导程序的设计和实现技术。嵌入式软件的开发涉及调试模式和固化模式两种运行状态。调试模式主要解决如何在目标板上调试正确性未经验证的程序的问题;而固化模式主要解决如何引导已调试成功的程序的问题。相应地,引导代码的设计应针对两种模式分别进行。
1调试模式的系统引导
1.1调试模式引导代码的作用
1调试模式的系统引导
1.1调试模式引导代码的作用
一个完整的嵌入式软件的解决方案大致包括四方面:①硬件平台配置初始化和系统引导代码;②操作系统软件执行环境的初始化代码;③操作系统;④应用程序。
在上述四方面中,引导代码是本研究中力求解决的问题。事实上,板级初始化。操作系统硬件抽象层。设备驱动程序三者整合到一起,就构成了嵌入式系统中BSP(板级支持包)的主体。BSP的代码与具体的目标板硬件设计相关,同时也与应用程序的设计要求相关,针对应用程序提出的不同要求,例如不同设备驱动程序。不同的中断源个数。不同的中断优先级安排。是否启用MMU机制等,BSP部分应作出相应的安排。上述第四部分的应用程序是建立在前三部分正确运行的基础上,并需反复调试。
由上述分析可知,BSP和应用程序代码的正确性通过一次的编写不能得到保证,需要经历“调试——修改——调试”反复的过程,因此需要建立一个可靠的调试环境。该环境建立的基础正是调模式下的引导代码。
1.2引导代码的调试方法
本研究实验采用一种称作BDM(Background Debug Mode)的OCD(On Chip Debuging)调试技术。BMD是由Motorola公司提供的一种硬件调试方法,类似于JTAG调试。它利用处理器提供的调试端口调试。MPC860采用一种特殊的BDM——EPBDM,其运作相当于用处理器内嵌的调试模块接管中断及异常处理,用户通过设置调试许可寄存器(debug enable register)指定哪些中断或异常发生后处理器直接进入调试状态,而不是操作系统的处理程序。进入调试状态后,内嵌调试模块向外部调试通信接口发出信号,通知一直在通信接口监听的主机调试器,然后调试器便可通过调试模块使处理器执行系统指令(相当于特权态)。由于专用的片级调试接口装置(BDI2000)的支持,不需要目标端配备相应的调试代理(Monitor)软件。
1.3调试模式引导代码实现
调试模式引导代码的核心在于使用BDM协议解析微指令,通过调试接口向MPC860发送信号,初始化调试环境。由于MPC860采用RISC结构,所以初始化部分主要是设置处理器内部寄存器,这个过程包括三方面内容:
(1)对处理器相关寄存器进行初始化:主要是关于处理器状态的寄存器(MSR.SRR1.SIUMCR等),中断。时钟相关模块(SYPCR.SCCR.PLPRCR.TBSCR等)。
(2)对BDM调试端口的初始化:包括调试使能寄存器DER.支持指令断点的寄存器ICTRL等。
(3)对片级。板级内存映射的初始化:包括内部内存映射寄存器IMMR,内存控制相关寄存器OR0~0R7.BR0~BR7等。它们主要功能是地址映射。片选信号选择。内存控制器选择(UMPA.UMPB.GPCM)。如果选择UPM,由于UPM控制采用微指令方式,而这些微指令根据内存的不同(SRAM.SDRAM.DRAM等),需要设计人员自行编写代码写入MPC860内部存储区相应位置。对于需要实时刷新的存储体(如SDRAM),还需设置刷新控制微指令。
上述初始化代码得以执行,一方面依赖于目标机MPC860提供的调试接口支持,另一方面也需要宿主机GDB的支持。对于宿主机系统,可能选择Linux,在其下配置GBD;也可以选择Windows2000,使用可视化的调试工具LambdaTools GDB(Coretek公司产品,不支持硬件断点),或者使用BDI2000(支持硬件断点的仿真器)。不管使用哪种调试工具,都可以使用该调试器能够识别的脚本文伯存放初始化指令。这些脚本在功能上是等效的,指令的描述一般都采用如下格式:操作码寄存器数值如在嵌入式Linux下SDRAM初始化的代码片断为:mpcbdm spr MDR=0x1FF77C35mpcbdm spr MDR=0xEFEABC34mpcbdm spr MDR=0x1FB57C35……而在Windows2000下使用BDI2000代码为:WUPM 0x00000005 0x1FF77C35WUPM 0x00000006 0xEFEABC34WUPM 0x00000007 0x1FB57C35……脚本描述的指令执行后,MPC860按照预先的设想进入一个可以正常工作的状态,可以用装载器将程序下载到SDRAM中调试执行。这个程序主要包含中断表。操作系统和应用程序映象两部分,其格式可以为bin.elf.coff等。图1给出了下载完毕后的内存映象。
当程序下载完成后,PC指针指向Image代码段(text段)的首条指令,可以利用调试器提供的命令开始调试。
2固化模式的系统引导
2.1概述
经过调试后,OS和上层应用程序构成的Image的正确性得到了保证,但是这个Image不能自主运行。因为调试模式下,是通过BDM接口初始化处理器,并且通过BDM接口将程序下载到RAM中去运行。实际应用环境中,Image必须被存储在非易失性存储器中,如Flash.EPROM等,本文选择Flash。系统启动时,处理器执行一段引导程序替代调试模式下的调试脚本和装载程序的功能。启动代码主要考虑以下几个问题:(1)系统上电和复位时程序如何执行,需要初始化哪些寄存器,重点仍然是内存映射相关部分;(2)启动代码为几部分,每部分代码应该全部还是部分放到Flash或者RAM中执行;(3)在时间效率和空间效率的折衷。
2.2上电初始化
在两种引导模式下,上电初始化总是必要步骤。它涉及各种核心寄存器初始化。地址映射等问题的处理。
2.2.1地址映射
MPC860的复位是通过一种异常中断来处理的(可理解为CPU自己产生的中断),向量号为0x100。异常向量表的基地址加上复位向量号即为复位向量,也就是CPU开始执行指令的地方。异常向量表在内存空间的可能位置有两个:0x0000000和0xFFF00000。所以PowerPC的复位向量为0x100或0xFFF00100。假设复位向量为0xFFF00100,系统有128K字节的Flash,并准备把它映射到CPU内存空间0xFE000000开始的地址。MPC860内部的CS0片选信号是默认的系统启动片选信号,已被连接到Flash的片选线上。上电时,内存控制器会忽略所有参与征选逻辑的地址线的高17位,CS0总是有效。这样,Flash总会被选中,CPU从Flash偏移0x100的地方取指令,此时CPU的4GB内存空间的每个128KB的块都被映射到Flash。
2.2.2寄存器初始化
固化方式下的大致相同,但是不再采用脚本文件编写,而是直接将一段MPC860汇编程序存放在一个start.s文件中。与调试模式初始化程序一样,主要完成以下处理:
(1)初始化CPU核心寄存器;
(2)设置机器状态寄存器;
(3)禁止ceche;
(4)初始化IMMR;
(5)初始化系统接口单元(SIU);
(6)初始化时钟和中断控制寄存器;
(7)初始化通信处理机(CPM);
(8)初始化内存控制器(UPM);
(9)初始化C语言堆栈。
2.2.3地址空间重映射
上电时,由于只有一个片选信号有效,它选通了Flash,而RAM和其它存储设备地址无效,需要经过地址空间重映射才能访问。MPC860的地址空间重映射是通过设置0R0~OR7.BR0~BR7这十六个寄存器完成的。由于上电时4GB的地址空间均被Flash占用,所以0xFFF00100这个地址仍在Flash的偏移0x100处。在寄存器初始化过程中,需要把SDRAM.MPC860内部寄存器空间以及外设等也映射进来。在进行这些操作前,需要把Flash的位置固定下来,例如映射到0xFE000000,这个操作是通过设置OR0和BR0寄存器实现的。但在写OR0时,CPU仍然在0xFFF00000的那一块取指令,而Flash即将被映射到0xFE000000块,所以程序必定出现“跑飞”的现象,必须对程序计数器(PC)进行调整,然而PC指针对程序员是不可见的,必须用跳转指令修改它。在Flash地址映射完成后,通过设置OR1~OR7.BR1~BR7可以完成对所有存储器空间的映射,各种存储设备可映射在CPU地址空间中的任意位置,但相互之间不能冲突。
2.3引导代码的构成和运行
系统启动所涉及的代码由寄存器初始化汇编文件start.s.一个Load程序以及操作系统与应用程序的Image三部分构成,引导代码则只包含start.s和Load程序。Load程序的作用是将操作系统与应用程序的构成的Image从Flash拷贝到SDRAM中,并跳转到Image的首条指令。
调试完成后的Image有两种运行模式:
Flash-resident image:Load程序仅仅把Image中的数据段(data+bss)复制到RAM中,代码段(text)在Flash中直接运行。
Flash-based image:Load程序把Image完全搬到RAM中执行,包括image中的代码段(text)和数据段(data+bss)。
图2和图3分别描述了两种Image的存贮映象,以及从Flash到SDRAM的装载过程。
2.4时间效率和空间效率上的折衷
在嵌入式系统的应用过程中,针对不同的应用环境,对时间效率和空间效率有不同的要求,基于MPC860的启动代码对此有比较充分的解决方案。
2.4.1时间限制
时间限制主要包括两种情况:系统要求快速启动和系统启动后要求程序高速执行。
对于要求快速启动的系统,应该使在Flash中执行的初始化程序尽量简短,诸如循环语句之类的语法应该尽量减少,尽快将程序装载到RAM中执行,这样做的原因在于Flash的访存时间与RAM的访存时间存在数量级上的差距。但是必须根据代码量以及存储器的特片进行权衡。因为,虽然RAM中捃速度快,但是将Flash中的代码复制到RAM中的操作会带来一定的开销。由于可见,启动时间由Flash中引导代码的运行时间。代码从Flash拷贝到RAM的时间以及RAM中后续启动代码的运行时间三部分组成。启动时间的最小值是这三者和的最小值。
对于启动后要求程序高速执行的系统,主要受处理器。存储器特性以及I/O速度等的影响。在软件方面,应该采用了上述Flash-based image方式,使得代码段在RAM中运行,提高运行速度。
2.4.2空间限制
空间限制主要包括两种情况:Flash等非易失性存储空间有限和RAM等易失性空间有限两种系统。
对于采用高性能非易失性存储器的系统,出于成本因素,Flash等存储设备不能太大,然而它又是系统存放启动代码和操作系统Image的地方。在存放Image时,可以先使用gzip等压缩工具进行压缩,在将Image加载到RAM时采用逆向的解压缩算法解压。同时,出于实时性考虑,压缩算法不能过于复杂,否则压缩解压过程消耗大量时间将与启动时间限制发生严重冲突。采用压缩策略并不一定会增加系统启动时间,因为压缩解压过程虽然消息了一定的时间,但是由于Image体积减小,由Flash复制到RAM中的时间相应减少,有可能反而减少了时间消耗。
对于采用高性能RAM的系统,同样出于成本因素,RAM空间有一定限制,此时一般采用前文描述的Flashresident image方式:Load程序把Image中的数据段复制到RAM中,代码段在Flash中运行。折衷同样存在,因为code段在低速的Flash中运行,在节省空间的同时,却牺牲了时间。
本文介绍了基于嵌入式处理器的操作系统引导方法,重点研究嵌入式系统的引导模式以及不同类别的引导方法。以在MPC860C处理器上引导CRTOSII操作系统为例,阐述了调试模式和固化模式下引导代码的构成。作用以及执行方式,并对不同引导模式下的时空效率的折衷进行了分析。最终,借助BDI2000仿真器对编写的引导代码进行调试,成功实现了调试模式和固化模式下操作系统的引导。后续工作包括:继续研究在不同硬件平台上的操作系统引导方法,例如最流行的ARM.X86系列;在同一平台上,可以研究不同操作系统的启动方法,例如嵌入式Linux.Vxworks.WinCE等。