ARM试验参考指导书_第1页
ARM试验参考指导书_第2页
ARM试验参考指导书_第3页
ARM试验参考指导书_第4页
ARM试验参考指导书_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《嵌入式系统》实验指导书前言一.嵌入式系统试验任务嵌入式系统试验是嵌入式系统理论课程一部分,它任务是:1.经过试验深入了解和掌握嵌入式系统基础理论、ARM体系结构、ARM系统硬件设计基础和嵌入式Linux软件设计2.学习和掌握嵌入式系统开发环境使用和实现技术。3.提升应用计算机应用能力及对操作系统有更高水平了解。二.试验设备嵌入式系统试验所使用设备由计算机、CPU板、语音单元、开关量输入输出单元、液晶显示单元、键盘单元、信号扩展单元、CPLD模块单元、模拟信号源、直流电源单元等组成。其中计算机是ARM开发软件运行环境,是程序编辑和调试关键工具。语音单元是语音输入和输出模块,关键完成语音信号采集和回放。开关量输入输出单元能够实现开关量输入或输出。液晶显示单元能够对运行结果进行文字和图形显示。模拟信号源能够产生频率和幅度可调正弦波、方波、三角波。直流电源单元能够提供3.3V、+5V、-12V和+12V直流电源。装有ARM开发软件和Linux操作系统计算机和整个试验系统共同组成整个嵌入式系统软、硬件开发环境。全部嵌入式系统试验全部是在这套试验装置上完成。三.对参与试验学生要求1.阅读试验指导书,复习和试验相关理论知识,明确试验目标。2.按试验指导书要求进行程序设计、程序修改。3.在试验中注意观察,统计相关数据和图像,并由指导老师复查后才能结束试验。4.试验后应断电,整理试验台,恢复到试验前情况。5.认真写试验汇报,按要求格式对试验结果分析。字迹要清楚,结论要明确。珍惜试验设备,遵守试验室纪律。目录第一章嵌入式系统试验 3试验一ADS1.2开发环境创建 3试验二基于ARM汇编语言程序设计 5试验三基于ARMC语言程序设计介绍 7试验四ARMI/O接口试验 9试验五ARM中止试验 11试验六ARMUART试验 14试验七LCD显示试验 16试验八Linux试验环境搭建 18试验九linux移植、内核、文件系统生成和下载 21试验十基于linux跑马灯应用程序编写 29第二章EL-ARM-挂箱型试验系统资源介绍 31第一节ARM试验箱硬件资源概述 31第二节试验系统硬件资源总览 32第三节关键板资源介绍 33

第一章嵌入式系统试验试验一ADS1.2开发环境创建一.试验目标熟悉ADS1.2开发环境,正确使用仿真调试电缆进行编译、下载、调试。二.试验内容学习ADS1.2开发环境三.试验设备1.EL-ARM挂箱教学试验箱,PentiumII以上PC机,仿真调试电缆。2.PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序四.试验步骤1.ADS1.2下建立工程(1)运行ADS1.2集成开发环境(CodeWarriorforARMDeveloperSuite),点击File|New,在New对话框中,选择Project栏,其中共有7项,ARMExecutableImage是ARM通用模板。选中它即可生成ARM实施文件。还要在,Projectname栏中输入项目标名称,和在Location中输入其存放位置。按确定保留项目。(2)在新建工程中,选择Debug版本,使用Edit|DebugSettings菜单对Debug版本进行参数设置。(3)在,点击DebugSetting按钮,选中TargetSetting项,在Post-linker栏中选中ARMfromELF项。按OK确定。这是为生成可实施代码初始开关。(4)点击ARMAssembler,在ArchitectureorProcesser栏中选ARM920T。(5)点击ARMCCompliler,在ArchitectureorProcesser栏中选ARM920T。这是要编译CPU核。(6)点击ARMlinker,在outpur栏中设定程序代码段地址,和数据使用地址。图中ROBase栏中填写程序代码存放起始地址,RWBase栏中填写程序数据存放起始地址。该地址是属于SDRAM地址。在options栏中,Imageentrypoint要填写程序代码入口地址,其它保持不变,假如是在SDRAM中运行,则可在0x30000000—0x33ffffff中选值,这是64MSDRAM地址,不过这里用是起始地址,所以必需把你程序空间给留出来,而且还要留出足够程序使用数据空间,而且还必需是4字节对齐地址(ARM状态)。通常入口点Imageentrypoint为0x30000000,ro_base也为0x30000000。在Layout栏中,在Placeatbeginningofimage框内,需要填写项目标入口程序目标文件名,如,整个工程项目标入口程序是2410init.s,那么应在Object/Symbol处填写其目标文件名2410init.o,在Section处填写程序入口起始段标号。它作用是通知编译器,整个项目标开始运行,是从该段开始。(7)在DebugSetting对话框中点击左栏ARMfromELF项,在Outputfilename栏中设置输出文件名*.bin,前缀名能够自己取,在Outputformat栏中选择Plainbinary,这是设置要下载到flash中二进制文件,使用是test.bin.(8)到此,在ADS1.2中基础设置已经完成,能够将该新建空项目文件作为模板保留起来。首先,要将该项目工程文件改一个适宜名字,如S3C2410ARM.mcp等,然后,在ADS1.2软件安装目录下Stationary目录下新建一个适宜模板目录名,如,S3C2410ARMExecutableImage,再将刚刚设置完S3c2410ARM.mcp项目文件存放到该目录下即可。这么,就能看到该模板。2.ADS1.2下仿真、调试在ADS1.2下进行仿真调试,(1)需要一根仿真调试电缆。在连上调试电缆后,给试验箱上电。(2)打开超级终端,设置其参数为:波特率为115200,数据位数8,奇偶校验无,停止位无1,数据流控无。(3)打开H-JTAG软件。(4)打开调试软件AXDDebugger。点击File|loadimage加载文件ADS.axf(\试验程序\HARDWARE\ADS\试验一\ADS\ADS_data目录下)。(5)点击全速运行,在超级终端观察结果。3.利用自己创建模板,重新进行编译调试,验证模板创建正确性。利用模板新建项目工程,把ADS目录下文件添加到新建项目工程中,重新进行编译下载调试,观察试验结果。五.思索题及试验汇报要求1.思索题(1)修改程序,使显示文字变为“上海电机学院ARM嵌入式系统教学中心欢迎你”。2.试验汇报要求(1)写出程序分析、修改过程。(2)总结试验过程中模板创建、程序下载、调试过程中所碰到问题和处理方法,写出编程调试经验和体会。试验二基于ARM汇编语言程序设计一.试验目标1.了解ARM汇编语言基础框架,学会使用ARM汇编语言编程二.试验内容1.用汇编语言编写一个简单应用程序三.试验设备1.EL-ARM挂箱教学试验箱,PentiumII以上PC机,仿真调试电缆,串口电缆。2.PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序四.汇编语言介绍1.ARM汇编部分简明书写规范ARM汇编中,全部标号必需在一行顶格书写,其后面不要添加“:”,而全部指令均不能顶格书写。ARM汇编对标识符大小写敏感,书写标号及指令时字母大小写要一致。在ARM汇编中,ARM指令、伪指令、寄存器名等能够全部大写或全部小写,但不要大小写混合使用。注释使用“;”号,注释内容由“;”号起到此行结束,注释能够在一行顶格书写。具体汇编语句及规范请参考ARM汇编相关书籍、文档,也可参考我们提供文档。2.ARM汇编语言程序基础结构在ARM汇编语言程序中,是以程序段为单位来组织代码。段是相对独立指令或数据序列,含有特定名称。段能够分为代码段和数据段,代码段内容为实施代码,数据段存放代码运行时所需数据。一个汇编程序最少应该有一个代码段,当程序较长时,能够分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可实施文件。可实施映像文件通常由以下几部分组成:◆一个或多个代码段,代码段为只读属性。◆零个或多个包含初始化数据数据段,数据段属性为可读写。◆零个或多个不包含初始化数据数据段,数据段属性为可读写。链接器依据系统默认或用户设定规则,将各个段安排在存放器中对应位置。源程序中段之间相邻关系和实施映象文件中段之间相邻关系不一定相同。五.试验步骤1.本试验仅使用试验教学系统CPU板,串口。在进行本试验时,LCD电源开关、音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2.在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆,和串口间连接公/母接头串口线。3.检验连接是否可靠,可靠后,接入电源线,系统上电。4.打开ADS1.2开发环境,从里面打开\试验程序\HARDWARE\ADS\试验二\asm.mcp项目文件,进行编译。5.编译经过后,进入ADS1.2调试界面,加载\试验程序\HARDWARE\ADS\试验二\asm_Data\Debug中映象文件程序映像asm.axf。6.打开超级终端,配置波特率为115200,校验位无,数据位为8,停止位为1。以后,在ADS调试环境下全速运行映象文件,观察结果。六.思索题及试验汇报要求1.思索题(1)修改程序,使显示字符及其长度改变。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验三基于ARMC语言程序设计介绍一.试验目标1.了解ARMC语言基础框架,学会使用ARMC语言编程二.试验内容1.用C语言编写一个简单应用程序三.试验设备1.EL-ARM-830教学试验箱,PentiumII以上PC机,仿真调试电缆,串口电缆。2.PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序四.ARMC语言介绍和使用规则1.ARMC语言程序基础规则在ARM程序开发中,需要大量读写硬件寄存器,而且尽可能缩短程序实施时间代码通常使用汇编语言来编写,比如ARM开启代码,ARM操作系统移植代码等,除此之外,绝大多数代码能够使用C语言来完成。C语言使用是标准C语言,ARM开发环境实际上就是嵌入了一个C语言集成开发环境,只不过这个开发环境和ARM硬件紧密相关。在使用C语言时,要用到和汇编语言混合编程。当汇编代码较为简练,则可使用直接内嵌汇编方法,不然,使用将汇编文件以文件形式加入项目当中,经过ATPCS要求和C程序相互调用和访问。ATPCS,就是ARM、Thumb过程调用标准(ARM/ThumbProcedureCallStandard),它要求了部分子程序间调用基础规则。如寄存器使用规则,堆栈使用规则,参数传输规则等。在C程序和ARM汇编程序之间相互调用必需遵守ATPCS。而使用ADSC语言编译器编译C语言子程序满足用户指定ATPCS规则。不过,对于汇编语言来说,完全要依靠用户确保各个子程序遵照ATPCS规则。具体来说,汇编语言子程序应满足下面3个条件:●在子程序编写时,必需遵守对应ATPCS规则;●堆栈使用要遵守对应ATPCS规则;●在汇编编译器中使用-atpcs选项。汇编程序调用C程序汇编程序设置要遵照ATPCS规则,确保程序调用时参数正确传输。在汇编程序中使用IMPORT伪指令申明将要调用C程序函数。在调用C程序时,要正确设置入口参数,然后使用BL调用。C程序调用汇编程序汇编程序设置要遵照ATPCS规则,确保程序调用时参数正确传输。在汇编程序中使用EXPORT伪指令申明本子程序,使其它程序能够调用此子程序。在C语言中使用extern关键字申明外部函数(申明要调用汇编子程序)。在C语言环境内开发应用程序,通常需要一个汇编开启程序,从汇编开启程序,跳到C语言下主程序,然后,实施C程序,在C环境下读写硬件寄存器,通常是经过宏调用,在每个项目文件Startup2410/INC目录下全部有一个2410addr.h头文件,那里面定义了全部相关2410硬件寄存器宏,对宏读写,就能操作2410硬件。具体编程规则同标准C语言。五.试验步骤1.本试验仅使用试验教学系统CPU板,串口。在进行本试验时,LCD电源开关、音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2.在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆,和串口间连接公/母接头串口线。3.检验连接是否可靠,可靠后,接入电源线,系统上电。4.打开ADS1.2开发环境,从里面打开\试验程序\HARDWARE\ADS\试验三\C.mcp项目文件,进行编译。5.编译经过后,进入ADS1.2调试界面,加载\试验程序\HARDWARE\ADS\试验三\C_Data\Debug中映象文件程序映像C.axf。6.打开/试验软件/tools/目录下串口调试助手工具,配置为波特率为115200,校验位无,数据位为8,停止位为1。以后,在ADS调试环境下全速运行映象文件。六.思索题及试验汇报要求1.思索题(1)修改程序,使连续发送数据变为56。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验四ARMI/O接口试验一.试验目标1.了解S3C2410通用I/O接口2.掌握I/0功效复用并熟练配置,进行编程试验二.试验内容1.在试验箱CPU板上点亮LED灯LED1、LED2,并轮番闪烁!三.试验设备1.EL-ARM挂箱教学试验箱,PentiumII以上PC机,仿真调试电缆。2.PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。四.试验原理S3C2410CPU共有117个多功效复用输入输出口,分为8组端口:4个16位I/O端口(PORTC、PORTD、PORTE、PORTG)2个11位I/O端口(PORTB和PORTH)1个8位I/O端口(PORTF)1个23位I/O端口(PORTA)这些通用GPI/O接口,是可配置,PORTA除功效口外,它们仅用作输出使用,剩下PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。配置这些端口,是经过部分寄存器来实现,这些寄存器全部有各自地址,位长32位。往该地址中写入对应数据,即可实现功效及数据配置。五.试验步骤1.本试验使用试验教学系统CPU板,在进行本试验时,LCD电源开关、音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2.在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。3.检验连接是否可靠,可靠后,接入电源线,系统上电。4.打开ADS1.2开发环境,从里面打开\试验程序\HARDWARE\ADS\试验三\IO.mcp项目文件,进行编译。5.编译经过后,进入ADS1.2调试界面,加载试验程序\HARDWARE\ADS\试验五\IO_Data\Debug中映象文件程序映像IO.axf。6.在ADS调试环境下全速运行映象文件。观察CPU板左下角LED1、LED2灯轮番闪烁。六.思索题及试验汇报要求1.思索题(1)修改程序,LED1、LED2灯轮番闪烁改为:先同时点亮维持一段时间后,再轮番闪烁,然后再同时熄灭,再同时点亮依次循环。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验五ARM中止试验一.试验目标1.掌握ARM9中止原理,能够对S3C2410中止资源及其相关中止寄存器进行合理配置2.掌握对S3C2410中止编程方法二.试验内容1.学习响应外部中止请求配置方法,并经过响应定时器中止,实施中止服务子程序使CPU板上LED指示灯LED1、LED2闪烁。三.试验设备1.EL-ARM-830教学试验箱,PentiumII以上PC机,仿真调试电缆。PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。四.ARM中止原理在ARM中,有两类中止,一类是IRQ,一类是FIQ,IRQ是一般中止,FIQ是快速中止,在进行大批量复制、数据转移等工作时,常使用这类中止。FIQ优先级高于IRQ。同时,它们全部属于ARM异常模式,当一旦有中止发生,不管是外部中止,还是内部中止,正在实施程序全部会停下,PC指针进而跳入异常向量地址处,若是IRQ中止,则PC指针跳到0x18处,若是FIQ中止,则跳到0x1C处。异常向量地址处,通常存有中止服务子程序地址,所以,接下来PC指针跳入中止服务子程序中。当完成中止服务子程序后,PC指针会返回到被打断程序下一条地址处,继续实施程序。这就是ARM中止操作基础原理。不过,通常因为生产ARM处理器各厂家全部集成了很多中止请求源,比如,串口中止、AD中止、外部中止、定时器中止、DMA中止等等,所以,很多中止可能同时请求中止,所以,为区分它们,更正确完成任务,这些中止全部有对应优先等级,和当发生中止时,它们全部有对应中止标志位,经过在发生中止是判定中止优先级,和访问中止标志位状态来识别到底哪一个中止发生了。五.中止编程实例在ADS1.2开发环境下,打开HARDWARE/ADS/试验六目录下Interrupt.mcp项目,在Application/SRC/Main.c中能够看到,主程序中,在进行目标板初始化后,程序进入死循环,等候中止!在Startup2410/src/target.C文件中包含对要使用中止控制器初始化程序,CPU响应了该中止后中止服务子程序。 该项目标程序步骤是,按下程序开启后,初始化定时器1,设定定时器中止时间,然后,等候定时器中止,当定时器中止到来时,就会进入定时器中止服务子程序,而中止服务子程序会把LED1和LED2灯熄灭或点亮,从现象中看到LED1和LED2灯忽闪一次,则说明定时器发生了一次中止。最终,关闭中止请求,等候下一次中止到来。为使CPU响应中止,在中止服务子程序实施之前,必需打开ARM920TCPSR中I位,和对应中止屏蔽寄存器中位。打开对应中止屏蔽寄存器中位,是在target.C中voidTimer1INT_Init(void)函数中,在做了这些准备后,就能够等候中止到来了。voidTimer1INT_Init(void){//定时器接口使能if((rINTPND&BIT_TIMER1)){ rSRCPND|=BIT_TIMER1;}pISR_TIMER1=(int)Timer1_ISR;rINTMSK&=~(BIT_TIMER1);//开中止;}TIMER1INT_Init()函数已在Target_Init()中调用。详见/试验程序/HARDWARE/ADS/试验六目录下Interrupt.mcp源代码注释。六.试验步骤1.本试验仅使用试验教学系统关键CPU板。在进行本试验时,LCD电源开关,音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2.在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。3.检验连接是否可靠,可靠后,接入电源线,系统上电。4.打开ADS1.2开发环境,从里面打开\试验程序\HARDWARE\ADS\试验五\Interrupt.mcp项目文件,进行编译。5.编译经过后,进入ADS1.2调试界面,加载\试验程序\HARDWARE\ADS\试验五\Interrupt_Data\Debug中映象文件程序映像Interrupt.axf。6.在ADS调试环境下全速运行映象文件。观察LED1和LED2改变。七.思索题及试验汇报要求1.思索题(1)修改程序,重新调试,改变LED1、LED2灯闪烁频率。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验六ARMUART试验一.试验目标1.了解并熟悉UART概念及其工作原理;2.掌握ARM对应寄存器配置;3.能够用C编写出对应串口程序;二.试验内容1.在试验箱CPU板上运行程序,在超级终端上回显发送数据!三.试验设备1.EL-ARM-830教学试验箱,PentiumII以上PC机,仿真调试电缆,串口电缆。PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。四.试验原理试验原理:把键盘敲击字符经过PC机串口发送给试验箱上ARMCPU板串口0,ARMCPU板上串口得到字符后,经过ARM把它送给CPU板上串口0输出给PC,和经过底板上串口1,送给PC机。这么,就完成了串口间收发数据。五.试验步骤1.本试验使用试验教学系统CPU板,串口。在进行本试验时,LCD电源开关、音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2.在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。使用串口线连接PC机串口1和试验箱CPU板串口,使用直连线连接底板串口2和PC机上串口2之间电缆。3.检验连接是否可靠,可靠后,接入电源线,系统上电。4.打开ADS1.2开发环境,从里面打开\试验程序\HARDWARE\ADS\试验六\uart.mcp项目文件,进行编译。5.编译经过后,进入ADS1.2调试界面,加载试验程序\HARDWARE\ADS\试验六\UART_Data\Debug中映象文件程序映像UART.axf。6.打开超级终端0,超级终端1,进行设置(115200,8位数据,1位停止位,无奇偶校验);7.在ADS调试环境下,全速运行映象文件。激活超级终端0,敲键盘,观察超级终端0,超级终端1内容显示,所敲键盘字符应该在两个超级终端上显示出来。六.思索题及试验汇报要求1.思索题(1)简述ARM和PC机串口通信原理。2.试验汇报要求(1)写出程序分析、调试过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验七LCD显示试验一.试验目标1.学习LCD和ARMLCD控制器接口原理;2.掌握内置LCD控制器驱动编写方法;3.学习调用简单GUI绘图。二.试验内容1.在320X240彩色LCD上显示点、线、圆,设置颜色、改变颜色、显示英文、显示汉字,填充区域等基础绘制功效。三.试验设备1.EL-ARM-830-S3C2410教学试验箱,PentiumII以上PC机,仿真调试电缆。PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。四.试验原理S3C2410中含有内置LCD控制器,它能将显示缓存(在SDRAM存放器中)中LCD图像数据传输到外部LCD驱动电路上逻辑功效。它支持单色、4级、16级灰度LCD显示,和8位彩色、12位彩色LCD显示。在显示灰度时,它采取时间抖动算法(time-basedditheringalgorithm)和帧率控制(FrameRateControl)方法,在显示彩色时,它采取RGB格式,即RED、GREEN、BLUE,三色混合调色。经过软件编程,能够实现332RGB调色格式。对于不一样尺寸LCD显示器,它们会有不一样垂直和水平象素点、不一样数据宽度、不一样接口时间及刷新率,经过对LCD控制器中对应寄存器写入不一样值,来配置不一样LCD显示板。五.试验步骤1.本试验使用试验教学系统CPU板,LCD单元。2.在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。3.检验连接是否可靠,可靠后,接入电源线,系统上电。打开LCD电源开关。4.打开ADS1.2开发环境,从里面打开\试验程序\HARDWARE\ADS\试验七\Lcd.mcp项目文件,进行编译。5.编译经过后,进入ADS1.2调试界面,加载\试验程序\HARDWARE\ADS\试验七\Lcd_Data\Debug中映象文件程序映像Lcd.axf。6.在ADS调试环境下全速运行映象文件到主函数Main(),然后单步运行,观察液晶屏反应。7.试验完成,先关闭LCD电源开关,再关闭ADS开发环境,再关闭电源。六.思索题及试验汇报要求1.思索题(1)修改在Main()函数中改动一些GUIAPI函数,重新装入映像文件,运行程序,观察液晶屏显示效果,反复试验。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验八Linux试验环境搭建一.试验目标1.搭建linux操作系统试验所需试验环境构件2.了解linux组成,学会编译内核二.试验内容1.安装Redhat9.0Linux操作系统2.拷贝已移植好linux操作系统和正确安装交叉编译器3.学习linux内核组成,编译过程三.试验设备1.PentiumII以上PC机,EL-ARM830试验箱,Redhat9.0LINUX操作系统四.试验步骤1.安装虚拟机。(已安装,可跳过此步)2.正确安装Redhat9.0操作系统。(已安装,可跳过此步)3.安装交叉编译器。首先实现windows和linux共享。①开启虚拟机,用户名:root,password:123456②点击菜单VM/installVMwareTools③解压缩tools文件先将/mnt/CDroom/下两个文件如:VMwareTools,拷贝到根目录下新建目录,/tools/下,然后解压缩,命令以下#tarxvzf文件名。#cd/tool/VMware-tools-distribut#./VMware–install.pl最终选择对应选项(基础全部是回车),共享成功。在linux下查看共享文件命令:#cdmnt#ls(共享成功hou)共享RPMS在虚拟机上VM/setting/options/shareFolder/ADD确定,然后选择下一步出现对话框,Name:RPMS(这里需要填写是linux下共享后文件名)Hostfolder:rpms(windows下文件名)在linux根目录下建立linuette文件夹,然后拷贝RPMS到该文件夹。安装RPMS文件内容首先,改变目录到rpms然后安装,命令:#rpm-Uvh*.rpm(注意linux区分大小写)安装成功后会在/opt/生成host文件夹配置NFS网络文件系统①在linux主机终端下,实施setup选中Firewallconfiguration回车,选择noFirewall,然后退出,选择systemservices回车,进入系统服务选择菜单,选中nfs(用空格键),然后退出(能够按F12键退出)。②#cd/etc#geditexports进入到编辑器,对文件进行编译/(rw)/home/nfs(rw)保留,退出,然后改变目录#cd/etc/rc.d/init.d#./nfsstart在终端内输出:StartingNFSservices:[确定]StartingNFSquotas:[确定]StartingNFSdaemon:[确定] StartingNFSmountd:[确定]这么就一切OK了!主机linux下NFS开启起来。5.用交叉网线把主机和试验系统连接。(1)设置虚拟机网络地址:10.10.24.ⅹⅹⅹ开启超级终端(2)用ifconfigeth010.10.24.ⅹⅹⅹ改变试验系统IP地址,然后能够用ping命令查看虚拟机和试验系统是否能联通。(3)联通后用mount命令挂在虚拟机文件到试验系统。首先创建/home/nfs文件夹,然后改变其属性为可读可写。(4)最终在超级终端下输入mount–onolock192.168.0.1:/home/nfs/mnt/yaffs回车,即可完成把主机上/home/nfs下文件挂载到试验系统/mnt/yaffs目录下。6.编译内核当选择采取驱动模块和应用程序利用nfs网络文件系统异地调试时,则不需要重新编译内核,仅需要使用交叉编译器编译驱动模块和应用程序,以后利用mount命令把它们所在文件目录加载到文件系统中。然后使用相关命令进行对驱动模块安装,调试或卸载。步骤以下,在系统工具终端下,切换目录到kernel目录下,然后输入命令:makedep(该命令用于寻求各文件依存关系)makeclean(该命令用于清除以前结构内核时生成全部目标文件、模块文件和临时文件)makezImage(编译内核中文件,生成内核)若编译经过则在/arch/arm/boot/目录下生成内核文件zImage。五.试验汇报要求1.试验汇报要求(1)总结试验过程及步骤。(2)总结交叉编译环境中所碰到问题和处理方法,写出试验过程经验和体会。试验九linux移植、内核、文件系统生成和下载一.试验目标1.了解linux移植基础过程,掌握内核和文件系统下载方法二.试验内容1.学习linux移植基础过程2.学习内核和文件系统生成和下载方法三.试验设备1.PentiumII以上PC机、EL-ARM830试验箱四.linux移植说明本试验系统运行linux版本是针对2.4.18进行移植linux-2.4.18.-rm7-pxa1版本,它存放在/试验软件/source_sys/目录内。因为移植内核所包含内容较多,且也较复杂,同时,在包含到中止切换、内存管理方面复杂移植,通常也无须太过关心,网络上有专门非官方组织在完善该事情。我们所做大多是把该移植好内核,让它怎样在自己硬件系统上正常运转起来。所以,我们所做移植也偏重于应用。1.内核目录结构Linux内核关键由5个子系统组成:进程调度子系统进程间通讯子系统内存管理子系统虚拟文件系统子系统网络接口子系统图4-3-1Linux内核很庞大,包含驱动程序在内有上百兆。2.4.18内核结构图图4-3-1。其关键结构目录:/arch子目录包含了全部和硬件体系结构相关内核移植代码。其中每一个目录全部代表一个硬件平台,对于每种平台全部应该包含:boot:包含开启内核所使用部分或全部平台相关代码。kernel:包含支持体系结构特有特征代码lib:包含存放体系结构特有通用函数实现代码mm:包含存放体系结构特有内存管理程序实现mach-xxx:包含存放该处理器移植代码/Documentation子目录包含相关内核很多很具体文档。/drivers子目录包含内核中全部设备驱动程序。/fs子目录包含了全部文件系统代码。/include子目录包含了建立内核代码时所需大部分库文件头文件,该模块利用其它模块重建内核。同时,它也包含不一样平台需要库文件。/init子目录包含了内核初始化代码,内核以后目录下开始工作。/ipc子目录包含了内核进程间通讯代码。/kernel子目录包含了主内核代码,如进程调度等。/lib子目录包含了通用库函数代码等。/mm子目录包含了内核内存管理代码。/net子目录包含了内核网络相关代码。/scripts子目录包含了配置内核部分脚本文件通常在每个目录下,全部有一个.depend文件和一个Makefile文件,这两个文件全部是编译时使用辅助文件,仔细阅读这两个文件对搞清各个文件这间联络和依靠关系很有帮助;而且,在有目录下还有Readme文件,它是对该目录下文件部分说明,一样有利于我们对内核源码了解。所以,移植工作关键就是移植arch目录下文件。2.内核移植(1)设置目标平台和指定交叉编译器在最上层根目录/Makefile文件中,首先要指定所移植硬件平台,和所使用交叉编译器。改为以下:ARCH:=armCROSS_COMPILE =/opt/host/armv4l/bin/armv4l-unknown-linux-也就是说,所移植硬件平台是ARM,所使用交叉编译器是存放在目录/opt/host/armv4l/bin/下armv4l-unknown-linux-xxx等等工具。(2)arch/arm目录下Makefile修改系统开启代码是经过这个文件产生。在linux-2.4.18内核中要添加以下代码,(在移植好内核中请不要添加)ifeq($(CONFIG_ARCH_S3C2410),y)TEXTADDR =0xC0008000MACHINE =s3c2410endif这里TEXTADDR确定内核开始运行虚拟地址。(3)arch/arm目录下config.in修改配置文件config.in能够配置运行“makemenuconfig”命令时菜单选项,因为2.4.18内核中没有S3C2410相关信息,所以要在该文件中进行有效配置。因为配置选项较多,在此不做赘述,请参见我们提供内核源代码内/arch/arm/config.in文件。做完该步,这么在linux内核配置时就能够选择刚刚加入内核平台了。(4)arch/arm/boot目录下Makefile修改编译出来内核存放在该目录下,这里指定内核解压到实际硬件系统上物理地址。ifeq($(CONFIG_ARCH_S3C2410),y)ZTEXTADDR=0x30008000ZRELADDR =0x30008000endif要依据实际硬件系统修改解压后,内核开始运行实际物理地址(5)arch/arm/boot/compressed目录下Makefile修改该文件从vmlinux中创建一个压缩vmlinuz镜像文件。该文件中用到SYSTEM、ZTEXTADDR、ZBSSADDR、和ZRELADDR是从arch/arm/boot/Makefile文件中得到。添加以下代码:ifeq($(CONFIG_ARCH_S3C2410),y)OBJS +=head-s3c2410.oEndif(6)arch/arm/boot/compressed目录下添加head-s3c2410.s该文件关键用来初始化处理器。(7)arch/arm/def-configs目录下添加配置好S3C2410配置文件。(8)arch/arm/kernel目录下Makefile修改该文件关键用来确定文件类型依靠关系。no-irq-arch :=$(CONFIG_ARCH_INTEGRATOR)$(CONFIG_ARCH_CLPS711X)\ $(CONFIG_FOOTBRIDGE)$(CONFIG_ARCH_EBSA110)\ $(CONFIG_ARCH_SA1100)$(CONFIG_ARCH_CAMELOT)\ $(CONFIG_ARCH_S3C2400)$(CONFIG_ARCH_S3C2410)\ $(CONFIG_ARCH_MX1ADS)$(CONFIG_ARCH_PXA)(9)arch/arm/kernel目录下文件debug-armv.s修改在该文件中添加以下代码,目标是关闭外围设备时钟,以确保系统正常运行。#elifdefined(CONFIG_ARCH_S3C2410).macroaddruart,rxmrcp15,0,\rx,c1,c0tst\rx,#1@MMUenabled?moveq\rx,#0x50000000@physicalbaseaddressmovne\rx,#0xf0000000@virtualaddress.endm.macrosenduart,rd,rxstr\rd,[\rx,#0x20]@UTXH.endm.macrowaituart,rd,rx.endm.macrobusyuart,rd,rx1001:ldr\rd,[\rx,#0x10]@readUTRSTATtst\rd,#1<<2@TX_EMPTY?beq1001b.endm(10)arch/arm/kernel目录下文件entry-armv.s修改CPU初始化时处理中止汇编代码#elifdefined(CONFIG_ARCH_S3C2410)#include<asm/hardware.h> .macrodisable_fiq .endm .macroget_irqnr_and_base,irqnr,irqstat,base,tmp mov r4,#INTBASE @virtualaddressofIRQregisters ldr \irqnr,[r4,#0x8] @readINTMSK ldr \irqstat,[r4,#0x10]@readINTPND bics\irqstat,\irqstat,\irqnr bics\irqstat,\irqstat,\irqnr beq 1002f mov \irqnr,#01001: tst \irqstat,#1 bne 1002f @foundIRQ add \irqnr,\irqnr,#1 mov \irqstat,\irqstat,lsr#1 cmp \irqnr,#32 bcc 1001b1002: .endm .macroirq_prio_table .endm (11)arch/arm/mm目录下相关文件那里面则是移植好相关arm内存管理代码。在mm-armv.c中,把init_maps->bufferable=1;即可。init_maps是一个map_desc型数据结构。Map_desc定义在/include/asm-arm/mach/map.h文件中。(12)arch/arm/mach-s3c2410目录下相关文件那里面则是针对s3c2410这款处理器编写所需代码。到此,移植概要基础结束。五.linux内核、文件系统编译和下载1.编译linux内核编译一份能够运行linux,首先要对linux进行配置。通常是经过makemenuconfig或makexconfig来实现。我们选择makemenuconfig,为了编译最终得到内核文件zImage,我们需要以下几步:makedep这个仅仅是在第一次编译时候需要,以后就不用了,为是在编译时候知道文件之间依靠关系,在进行了数次得编译后,make会依据这个依靠关系来确定哪些文件需要重新编译、哪些文件能够跳过makeclean(该命令用于清除以前结构内核时生成全部目标文件、模块文件和临时文件)makezImage编译内核。编译经过后,在目录arch/arm/boot下生成zImage内核文件。2.制作cramfs文件系统利用工具软件MKCRAMFS制作cramfs文件系统,MKCRAMFS工具在/试验软件/tools/目录下,该文件系统是一个只读压缩文件系统,文件系统类型能够是ext2,ext3等等。我们提供一个系统目录是root_tech。它里面包含未来要用到全部文件,它在/试验软件/source_code/目录内,root.tar.bz2。把制作工具和root_tech放在同一个文件夹下,在终端下切换到那个文件夹目录下使用命令MKCRAMFSroot_techrootfs.cramfs,就可把root_tech制作成文件名为rootfs.cramfs只读压缩cramfs文件系统了。系统开启后,内核将把它加载图4-3-2到内存中,解压。为文件系统目录。当应用程序和驱动模块调试成功后,就能够把驱动模块添加到内核中去,应用程序实施文件就能够放到/usr/sbin或/usr/bin目录下,然后,再在/usr/etc/rc.local文件中添加驱动程序设备文件。以后,利用MKCRAMFS工具把新root_tech制作成cramfs文件系统。3.内核和文件系统下载(1)利用vivi经过超级终端重新下载vivi在WINDOWS下开启超级终端,设置其(115200,8位数据,1位停止位,无奇偶校验位)。用串口线连接试验系统和PC机串口。系统上电,在超级终端vivi命令行下输入:vivi>loadflashvivix,以后,经过xmodem协议发送vivi文件:vivi,等候文件传送完成。(2)利用vivi烧写内核和root文件系统在超级终端vivi命令行下输入:vivi>loadflashkernelx,经过xmodem协议发送kernel文件:zImage,等候文件传送完成。在超级终端vivi命令行下输入:vivi>loadflashrootx,经过xmodem协议发送root文件:miniroot.cramfs,等候文件传送完成。(注:提供两个root:miniroot.cramfs和big.cramfs。miniroot.cramfs是一个小型linux,关键用于建立一个Linux环境,并能够在此基础上使用后续网络烧写方法烧写大root系统,它在试验软件/small_sys/目录中,big.cramfs在/试验软件/big_sys/目录下。串口烧写速度太慢。)(3)利用网络烧写软件imagewrite烧写内核和root文件系统依据第1章试验步骤第4步,在LINUX系统下开启nfs,而且将存放供下载可执行文件目录共享。Imagewrite文件在/试验软件/tools内。在试验系统上mountLINUX主机目录到当地指定目录比如:mountxxx.xxx.xxx.xxx:/home/nfs/mnt/nfs在该目录下经过imagewrite命令来下载文件下载vivi./imagewrite/dev/mtd/0vivi:0下载kernel./imagewrite/dev/mtd/0zImage:192k下载root./imagewrite/dev/mtd/0root.cramfs:2m八.思索题及试验汇报要求1.思索题(1)比较利用vivi烧写内核、root文件系统和利用网络烧写软件imagewrite烧写内核、root文件系统速度,并分析原因。2.试验汇报要求(1)写出linux移植、内核、文件系统生成和下载过程。(2)总结试验过程中Linux环境搭建过程、程序下载、调试过程中所碰到问题和处理方法,写出编程调试经验和体会。试验十基于linux跑马灯应用程序编写一.试验目标1.学习linux下跑马灯应用程序编写方法二.试验内容1.编写跑马灯应用程序程序,实现LED灯轮番显示。三.试验设备1.PentiumII以上PC机,串口线,Linux操作系统,EL-ARM830试验箱。四.跑马灯应用程序编写应用程序名为LED.c,具体代码见试验程序/linux/user_led/led.c。五.将应用程序动态调试在使用光盘资料/试验程序/linux/user_led/目录下Makefile文件编译好应用程序后,将可实施文件led,放到主机下共享目录/home/nfs下,利用ifconfigeth0命令改变试验系统IP地址,而且和主机前三段保持一致,最终一段不一样,如:主机为192.168.0.1,则试验系统可为192.168.0.5(除1外小于255任意数)。利用mount–onolock192.168.0.1:/home/nfs/mnt/yaffs命令把主机上存放应用程序共享文件目录安装到试验系统根文件系统下,以后,查看一下,/mnt/yaffs目录下是否加入了主机上共享目录下文件。成功后,键入实施命令./led,则主机终端有LEDroundshowintheEL_ARM820等输出。以后,就能够输入控制命令,LED灯开始显示。六.将应用程序加入文件系统编译成功后,把可实施文件led,放到存放文件系统root_techusr/sbin目录或usr/bin目录下.以后,使用mkcramfs制作工具,利用命令MKCRAMFSroot_techrootfs.cramfs来生成新文件系统。以后把它经过网口烧下载到flash中,当系统开启后,就可在usr/sbin目录或usr/bin目录下,实施可实施程序。在代码中,实现了8个led灯闪烁时间间隔设定,同时也实现了闪烁方向设定。经过给数据缓存寄存器写入值不一样来控制闪烁方向,经过给数据缓存器写入值时间间隔来控制闪烁时间间隔。以此达成控制8个LED灯目标。七.试验步骤1.本试验使用试验教学系统,在进行本试验时,LCD电源开关应处于关闭状态。2.在PC串口和试验箱CPU之间,连接串口电缆,在PC网口和试验箱CPU网口之间,连接网口交叉电缆。3.在Linux系统下,把led放到共享文件夹内,在Linux系统下,把kbd放到共享文件夹内,如/home/nfs,nfs为一个新建文件夹,在终端下使用命令chmod777/home/nfs改变/home/nfs文件夹属性为共享,在终端下输入minicom-s,配置minicom为波特率为115200,无奇偶校验,8bit。以后,在minicom下,给系统上电,系统正常起来后,利用ifconfigeth0xxx.xxx.xxx.xxx来改变试验系统IP地址,让该地址前三段和主机前三段一致,最终一段,能够选择和主机不反复小于255任意值。比如,主机是192.168.0.100,则试验系统配置为ifconfigeth0192.168.0.5,以后,利用ping命令,在试验系统上ping192.168.0.1,看看试验系统能否和主机连上。当连通后,在终端中,输入mount–onolock192.168.0.1:/home/nfs/mnt/yaffs回车,即可完成把主机上/home/nfs下文件挂载到试验系统/mnt/yaffs目录下。若不能挂载成功,则按第一章中指出,要关闭linux防火墙设置。4.挂载成功后,在终端下,键入实施命令./led,则在终端中首先输出LEDroundshowintheEL_ARM820,Pleaseenterthenumber1or2or3or4andLorRthenEnter!和Suchas1Lor2Lor3Lor4Lor1Ror2Ror3Ror4R,thenEnter!等输出。其中1,2,3,4,是选择led闪烁时间间隔,数值越

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论