收藏 分销(赏)

ARM试验参考指导书.doc

上传人:w****g 文档编号:2735164 上传时间:2024-06-05 格式:DOC 页数:36 大小:597.54KB
下载 相关 举报
ARM试验参考指导书.doc_第1页
第1页 / 共36页
ARM试验参考指导书.doc_第2页
第2页 / 共36页
ARM试验参考指导书.doc_第3页
第3页 / 共36页
ARM试验参考指导书.doc_第4页
第4页 / 共36页
ARM试验参考指导书.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、嵌入式系统实 验 指 导 书前 言一嵌入式系统试验任务嵌入式系统试验是嵌入式系统理论课程一部分,它任务是:1.经过试验深入了解和掌握嵌入式系统基础理论、ARM体系结构、ARM系统硬件设计基础和嵌入式Linux软件设计2.学习和掌握嵌入式系统开发环境使用和实现技术。3.提升应用计算机应用能力及对操作系统有更高水平了解。二试验设备嵌入式系统试验所使用设备由计算机、CPU板、语音单元、开关量输入输出单元、液晶显示单元、键盘单元、信号扩展单元、CPLD模块单元、模拟信号源、直流电源单元等组成。其中计算机是ARM开发软件运行环境,是程序编辑和调试关键工具。语音单元是语音输入和输出模块,关键完成语音信号采

2、集和回放。开关量输入输出单元能够实现开关量输入或输出。液晶显示单元能够对运行结果进行文字和图形显示。模拟信号源能够产生频率和幅度可调正弦波、方波、三角波。直流电源单元能够提供3.3V、+5V、-12V和+12V直流电源。装有ARM开发软件和Linux操作系统计算机和整个试验系统共同组成整个嵌入式系统软、硬件开发环境。全部嵌入式系统试验全部是在这套试验装置上完成。三对参与试验学生要求1.阅读试验指导书,复习和试验相关理论知识,明确试验目标。2.按试验指导书要求进行程序设计、程序修改。3.在试验中注意观察,统计相关数据和图像,并由指导老师复查后才能结束试验。4.试验后应断电,整理试验台,恢复到试验

3、前情况。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第二节 试验系统硬件资源总览3

4、2第三节 关键板资源介绍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集成开发环境(CodeWarrior for ARM Developer Suite),点击File|New,在New对话框中,选择Project栏,其中共有7项,AR

5、M Executable Image是ARM通用模板。选中它即可生成ARM实施文件。还要在,Project name栏中输入项目标名称,和在Location中输入其存放位置。按确定保留项目。(2)在新建工程中,选择Debug版本,使用Edit|Debug Settings菜单对Debug版本进行参数设置。(3)在,点击Debug Setting 按钮,选中Target Setting项,在Post-linker栏中选中ARM fromELF项。按OK确定。这是为生成可实施代码初始开关。(4)点击ARM Assembler ,在Architecture or Processer 栏中选ARM92

6、0T。(5)点击ARM C Compliler ,在Architecture or Processer栏中选ARM920T。这是要编译CPU核。(6)点击ARM linker ,在outpur栏中设定程序代码段地址,和数据使用地址。图中RO Base栏中填写程序代码存放起始地址,RW Base栏中填写程序数据存放起始地址。该地址是属于SDRAM地址。在options栏中, Image entry point要填写程序代码入口地址,其它保持不变,假如是在SDRAM中运行,则可在0x300000000x33ffffff中选值,这是64M SDRAM地址,不过这里用是起始地址,所以必需把你程序空间给

7、留出来,而且还要留出足够程序使用数据空间,而且还必需是4字节对齐地址(ARM状态)。通常入口点Image entry point 为0x30000000,ro_base也为0x30000000。在Layout栏中,在Place at beginning of image框内,需要填写项目标入口程序目标文件名,如,整个工程项目标入口程序是2410init.s,那么应在Object/Symbol处填写其目标文件名2410init.o,在Section处填写程序入口起始段标号。它作用是通知编译器,整个项目标开始运行,是从该段开始。(7)在Debug Setting对话框中点击左栏ARM fromEL

8、F项,在Output file name栏中设置输出文件名*.bin,前缀名能够自己取,在Output format 栏中选择Plain binary,这是设置要下载到flash中二进制文件,使用是test.bin.(8)到此,在ADS1.2中基础设置已经完成,能够将该新建空项目文件作为模板保留起来。首先,要将该项目工程文件改一个适宜名字,如S3C2410 ARM.mcp等,然后,在ADS1.2软件安装目录下Stationary 目录下新建一个适宜模板目录名,如,S3C2410 ARM Executable Image,再将刚刚设置完S3c2410 ARM.mcp项目文件存放到该目录下即可。这

9、么,就能看到该模板。2. ADS1.2下仿真、调试在ADS1.2下进行仿真调试,(1)需要一根仿真调试电缆。在连上调试电缆后,给试验箱上电。(2)打开超级终端,设置其参数为:波特率为115200,数据位数8,奇偶校验无,停止位无1,数据流控无。(3)打开H-JTAG软件。(4)打开调试软件AXD Debugger。点击File|load image 加载文件ADS.axf(试验程序HARDWAREADS试验一ADSADS_data目录下)。(5)点击全速运行,在超级终端观察结果。3.利用自己创建模板,重新进行编译调试,验证模板创建正确性。利用模板新建项目工程,把ADS目录下文件添加到新建项目工

10、程中,重新进行编译下载调试,观察试验结果。五思索题及试验汇报要求1.思索题(1)修改程序,使显示文字变为“上海电机学院ARM嵌入式系统教学中心欢迎你”。2.试验汇报要求(1)写出程序分析、修改过程。(2)总结试验过程中模板创建、程序下载、调试过程中所碰到问题和处理方法,写出编程调试经验和体会。试验二 基于ARM汇编语言程序设计一试验目标1. 了解ARM汇编语言基础框架,学会使用ARM汇编语言编程二试验内容1. 用汇编语言编写一个简单应用程序三试验设备1.EL-ARM挂箱教学试验箱,PentiumII以上PC机,仿真调试电缆,串口电缆。2.PC操作系统WIN98或WIN或WINXP, ADS1.

11、2集成开发环境,仿真调试驱动程序四.汇编语言介绍1.ARM汇编部分简明书写规范ARM汇编中,全部标号必需在一行顶格书写,其后面不要添加“:”,而全部指令均不能顶格书写。ARM汇编对标识符大小写敏感,书写标号及指令时字母大小写要一致。在ARM汇编中,ARM指令、伪指令、寄存器名等能够全部大写或全部小写,但不要大小写混合使用。注释使用“;”号,注释内容由“;”号起到此行结束,注释能够在一行顶格书写。具体汇编语句及规范请参考ARM汇编相关书籍、文档,也可参考我们提供文档。2.ARM汇编语言程序基础结构在ARM汇编语言程序中,是以程序段为单位来组织代码。段是相对独立指令或数据序列,含有特定名称。段能够

12、分为代码段和数据段,代码段内容为实施代码,数据段存放代码运行时所需数据。一个汇编程序最少应该有一个代码段,当程序较长时,能够分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可实施文件。可实施映像文件通常由以下几部分组成: 一个或多个代码段,代码段为只读属性。 零个或多个包含初始化数据数据段,数据段属性为可读写。 零个或多个不包含初始化数据数据段,数据段属性为可读写。链接器依据系统默认或用户设定规则,将各个段安排在存放器中对应位置。源程序中段之间相邻关系和实施映象文件中段之间相邻关系不一定相同。五.试验步骤1. 本试验仅使用试验教学系统CPU板,串口。在进行本试验时,LCD电源开关、

13、音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆,和串口间连接公/母接头串口线。3检验连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开试验程序HARDWAREADS试验二asm.mcp项目文件,进行编译。5编译经过后,进入ADS1.2调试界面,加载试验程序HARDWAREADS试验二asm_DataDebug中映象文件程序映像asm.axf。6打开超级终端,配置波特率为115200,校验位无,数据位为8,停止位为1。以后,在ADS调试环境下全速运行映象文件,观察结果。六

14、.思索题及试验汇报要求1.思索题(1)修改程序,使显示字符及其长度改变。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验三 基于ARMC语言程序设计介绍一.试验目标1.了解ARM C语言基础框架,学会使用ARMC语言编程二.试验内容1. 用C语言编写一个简单应用程序三.试验设备1. EL-ARM-830教学试验箱,PentiumII以上PC机,仿真调试电缆,串口电缆。2. PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序四.ARM C语言介绍和使用规则1. ARM

15、 C语言程序基础规则在ARM程序开发中,需要大量读写硬件寄存器,而且尽可能缩短程序实施时间代码通常使用汇编语言来编写,比如ARM开启代码,ARM操作系统移植代码等,除此之外,绝大多数代码能够使用C语言来完成。C语言使用是标准C语言,ARM开发环境实际上就是嵌入了一个C语言集成开发环境,只不过这个开发环境和ARM硬件紧密相关。在使用C语言时,要用到和汇编语言混合编程。当汇编代码较为简练,则可使用直接内嵌汇编方法,不然,使用将汇编文件以文件形式加入项目当中,经过ATPCS要求和C程序相互调用和访问。ATPCS,就是ARM、Thumb过程调用标准(ARM/Thumb Procedure Call S

16、tandard),它要求了部分子程序间调用基础规则。如寄存器使用规则,堆栈使用规则,参数传输规则等。在C程序和ARM汇编程序之间相互调用必需遵守ATPCS。而使用ADSC语言编译器编译C语言子程序满足用户指定ATPCS规则。不过,对于汇编语言来说,完全要依靠用户确保各个子程序遵照ATPCS规则。具体来说,汇编语言子程序应满足下面3个条件: 在子程序编写时,必需遵守对应ATPCS规则; 堆栈使用要遵守对应ATPCS规则; 在汇编编译器中使用-atpcs选项。汇编程序调用C程序汇编程序设置要遵照ATPCS规则,确保程序调用时参数正确传输。在汇编程序中使用IMPORT伪指令申明将要调用C程序函数。在

17、调用C程序时,要正确设置入口参数,然后使用BL调用。C程序调用汇编程序汇编程序设置要遵照ATPCS规则,确保程序调用时参数正确传输。在汇编程序中使用EXPORT伪指令申明本子程序,使其它程序能够调用此子程序。在C语言中使用extern关键字申明外部函数(申明要调用汇编子程序)。在C语言环境内开发应用程序,通常需要一个汇编开启程序,从汇编开启程序,跳到C语言下主程序,然后,实施C程序,在C环境下读写硬件寄存器,通常是经过宏调用,在每个项目文件Startup2410/INC目录下全部有一个2410addr.h头文件,那里面定义了全部相关2410硬件寄存器宏,对宏读写,就能操作2410硬件。具体编程

18、规则同标准C语言。五.试验步骤1本试验仅使用试验教学系统CPU板,串口。在进行本试验时,LCD电源开关、音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆,和串口间连接公/母接头串口线。3检验连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开试验程序HARDWAREADS试验三C.mcp项目文件,进行编译。5编译经过后,进入ADS1.2调试界面,加载试验程序HARDWAREADS试验三C_DataDebug中映象文件程序映像C.axf。6打开/试验软件/tools/目录下串

19、口调试助手工具,配置为波特率为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

20、以上PC机,仿真调试电缆。2. PC操作系统WIN98或WIN或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。四.试验原理S3C2410 CPU 共有117个多功效复用输入输出口,分为8组端口:u 4个16位I/O端口 (PORT C、PORT D、PORT E、PORT G)u 2个11位I/O端口 (PORT B 和PORT H)u 1个8位I/O端口(PORT F)u 1个23位I/O端口(PORT A)这些通用GPI/O接口,是可配置, PORTA除功效口外,它们仅用作输出使用,剩下PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。

21、配置这些端口,是经过部分寄存器来实现,这些寄存器全部有各自地址,位长32位。往该地址中写入对应数据,即可实现功效及数据配置。五.试验步骤1本试验使用试验教学系统CPU板,在进行本试验时,LCD电源开关、音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。3检验连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开试验程序HARDWAREADS试验三IO.mcp项目文件,进行编译。5编译经过后,进入ADS1.2调试界面,加载试验程序HARDWAREADS试验五IO_DataDeb

22、ug中映象文件程序映像IO.axf。6在ADS调试环境下全速运行映象文件。观察CPU板左下角LED1、LED2灯轮番闪烁。六.思索题及试验汇报要求1.思索题(1)修改程序,LED1、LED2灯轮番闪烁改为:先同时点亮维持一段时间后,再轮番闪烁,然后再同时熄灭,再同时点亮依次循环。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验五 ARM中止试验一试验目标1. 掌握ARM9中止原理,能够对S3C2410中止资源及其相关中止寄存器进行合理配置2. 掌握对S3C2410中止编程方法二试验内容1. 学习响应外

23、部中止请求配置方法,并经过响应定时器中止,实施中止服务子程序使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指针进而跳入异常向量

24、地址处,若是IRQ中止,则PC指针跳到0x18处,若是FIQ中止,则跳到0x1C处。异常向量地址处,通常存有中止服务子程序地址,所以,接下来PC指针跳入中止服务子程序中。当完成中止服务子程序后,PC指针会返回到被打断程序下一条地址处,继续实施程序。这就是ARM中止操作基础原理。不过,通常因为生产ARM处理器各厂家全部集成了很多中止请求源,比如,串口中止、AD中止、外部中止、定时器中止、DMA中止等等,所以,很多中止可能同时请求中止,所以,为区分它们,更正确完成任务,这些中止全部有对应优先等级,和当发生中止时,它们全部有对应中止标志位,经过在发生中止是判定中止优先级,和访问中止标志位状态来识别到

25、底哪一个中止发生了。五中止编程实例 在ADS1.2开发环境下,打开HARDWARE/ADS/试验六目录下Interrupt.mcp项目,在Application/SRC/Main.c中能够看到,主程序中,在进行目标板初始化后,程序进入死循环,等候中止!在Startup2410/src/target.C文件中包含对要使用中止控制器初始化程序,CPU响应了该中止后中止服务子程序。 该项目标程序步骤是,按下程序开启后,初始化定时器1,设定定时器中止时间,然后,等候定时器中止,当定时器中止到来时,就会进入定时器中止服务子程序,而中止服务子程序会把LED1和LED2灯熄灭或点亮,从现象中看到LED1和L

26、ED2 灯忽闪一次,则说明定时器发生了一次中止。最终,关闭中止请求,等候下一次中止到来。为使CPU响应中止,在中止服务子程序实施之前,必需打开ARM920TCPSR中I位,和对应中止屏蔽寄存器中位。打开对应中止屏蔽寄存器中位,是在target.C中void Timer1INT_Init(void)函数中,在做了这些准备后,就能够等候中止到来了。void Timer1INT_Init(void) /定时器接口使能 if (rINTPND & BIT_TIMER1) rSRCPND |= BIT_TIMER1; pISR_TIMER1 = (int)Timer1_ISR; rINTMSK &= (

27、BIT_TIMER1); /开中止; TIMER1INT_Init()函数已在Target_Init()中调用。详见/试验程序/HARDWARE/ADS/试验六目录下Interrupt.mcp源代码注释。六试验步骤1本试验仅使用试验教学系统关键CPU板。在进行本试验时,LCD电源开关,音频左右声道开关、AD通道选择开关、触摸屏中止选择开关等均应处于关闭状态。2在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。3检验连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开试验程序HARDWAREADS试验五Interrupt.mcp项目文件,进行编译。5

28、编译经过后,进入ADS1.2调试界面,加载试验程序HARDWAREADS试验五Interrupt_DataDebug中映象文件程序映像Interrupt.axf。6在ADS调试环境下全速运行映象文件。观察LED1和LED2改变。七思索题及试验汇报要求1.思索题(1)修改程序,重新调试,改变LED1、LED2灯闪烁频率。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验六 ARMUART试验一试验目标1. 了解并熟悉UART概念及其工作原理;2. 掌握ARM对应寄存器配置;3. 能够用C编写出对应串口程序

29、;二试验内容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通道选

30、择开关、触摸屏中止选择开关等均应处于关闭状态。2在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。使用串口线连接PC机串口1和试验箱CPU板串口,使用直连线连接底板串口2和PC机上串口2之间电缆。3检验连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开试验程序HARDWAREADS试验六uart.mcp项目文件,进行编译。5编译经过后,进入ADS1.2调试界面,加载试验程序HARDWAREADS试验六UART_DataDebug中映象文件程序映像UART.axf。6打开超级终端0,超级终端1,进行设置(115200,8位数据,1位停止位,无奇偶校

31、验);7在ADS调试环境下,全速运行映象文件。激活超级终端0,敲键盘,观察超级终端0,超级终端1内容显示,所敲键盘字符应该在两个超级终端上显示出来。六思索题及试验汇报要求1.思索题(1)简述ARM和PC机串口通信原理。2.试验汇报要求(1)写出程序分析、调试过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验七 LCD显示试验一试验目标1. 学习LCD和ARMLCD控制器接口原理;2. 掌握内置LCD控制器驱动编写方法;3. 学习调用简单GUI绘图。二试验内容1. 在320X240彩色LCD上显示点、线、圆,设置颜色、改变颜色、显示英文、显示汉

32、字,填充区域等基础绘制功效。三试验设备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-based dithering algorithm)和帧率控制 (Frame Rate Control)方法,在显示

33、彩色时,它采取RGB格式,即RED、GREEN、BLUE,三色混合调色。经过软件编程,能够实现332RGB调色格式。对于不一样尺寸LCD显示器,它们会有不一样垂直和水平象素点、不一样数据宽度、不一样接口时间及刷新率,经过对LCD 控制器中对应寄存器写入不一样值,来配置不一样LCD 显示板。五试验步骤1本试验使用试验教学系统CPU板,LCD单元。2在PC机并口和试验箱CPU板上JTAG接口之间,连接仿真调试电缆。3检验连接是否可靠,可靠后,接入电源线,系统上电。打开LCD电源开关。4打开ADS1.2开发环境,从里面打开试验程序HARDWAREADS试验七Lcd.mcp项目文件,进行编译。5编译经

34、过后,进入ADS1.2调试界面,加载试验程序HARDWAREADS试验七Lcd_DataDebug中映象文件程序映像Lcd.axf。6在ADS调试环境下全速运行映象文件到主函数Main(),然后单步运行,观察液晶屏反应。7试验完成,先关闭LCD电源开关,再关闭ADS开发环境,再关闭电源。六思索题及试验汇报要求1.思索题(1)修改在Main()函数中改动一些GUIAPI函数,重新装入映像文件,运行程序,观察液晶屏显示效果,反复试验。2.试验汇报要求(1)写出程序分析、修改过程(2)总结试验过程程序编译、程序下载、调试过程中所碰到问题和处理方法,写出试验过程经验和体会。试验八 Linux试验环境搭

35、建一试验目标1.搭建linux操作系统试验所需试验环境构件2.了解 linux组成,学会编译内核二试验内容1. 安装Redhat 9.0Linux操作系统2.拷贝已移植好linux操作系统和正确安装交叉编译器3.学习linux内核组成,编译过程三试验设备1. PentiumII以上PC机, EL-ARM830试验箱,Redhat 9.0LINUX操作系统四试验步骤1.安装虚拟机。(已安装,可跳过此步)2.正确安装Redhat9.0操作系统。(已安装,可跳过此步)3.安装交叉编译器。 首先实现windows和linux共享。 开启虚拟机,用户名:root,password:123456 点击菜单

36、VM/install VMware Tools 解压缩tools文件先将/mnt/CDroom/下两个文件如:VMwareTools,拷贝到根目录下新建目录,/tools/下,然后解压缩,命令以下# tar xvzf 文件名。# cd /tool/VMware-tools-distribut# ./VMware install.pl最终选择对应选项(基础全部是回车),共享成功。 在linux下查看共享文件命令:# cd mnt # ls(共享成功hou) 共享RPMS在虚拟机上VM/setting /options/share Folder/ADD 确定,然后选择下一步出现对话框,Name:

37、RPMS (这里需要填写是linux下共享后文件名)Host folder:rpms (windows下文件名) 在linux根目录下建立linuette文件夹,然后拷贝RPMS到该文件夹。 安装RPMS文件内容首先,改变目录到rpms然后安装,命令:# rpm -Uvh*.rpm (注意linux区分大小写) 安装成功后会在/opt/生成host文件夹 配置NFS网络文件系统 在linux主机终端下,实施setup选中Firewall configuration回车,选择no Firewall,然后退出,选择system services回车,进入系统服务选择菜单,选中nfs(用空格键),然

38、后退出(能够按F12键退出)。 # cd /etc # gedit exports 进入到编辑器,对文件进行编译/ (rw)/home/nfs (rw)保留,退出,然后改变目录# cd /etc/rc.d/init.d#./nfs start在终端内输出:Starting NFS services: 确定 Starting NFS quotas: 确定Starting NFS daemon: 确定Starting NFS mountd: 确定这么就一切OK了!主机linux下NFS开启起来。5用交叉网线把主机和试验系统连接。(1)设置虚拟机网络地址:10.10.24.开启超级终端(2)用ifc

39、onfig eth0 10.10.24. 改变试验系统IP地址,然后能够用ping命令查看虚拟机和试验系统是否能联通。(3)联通后用mount命令挂在虚拟机文件到试验系统。首先创建/home/nfs 文件夹,然后改变其属性为可读可写。(4)最终在超级终端下输入mount o nolock 192.168.0.1:/home/nfs /mnt/yaffs回车,即可完成把主机上/home/nfs下文件挂载到试验系统/mnt/yaffs目录下。6. 编译内核当选择采取驱动模块和应用程序利用nfs网络文件系统异地调试时,则不需要重新编译内核,仅需要使用交叉编译器编译驱动模块和应用程序,以后利用moun

40、t命令把它们所在文件目录加载到文件系统中。然后使用相关命令进行对驱动模块安装,调试或卸载。步骤以下,在系统工具终端下,切换目录到kernel目录下,然后输入命令: make dep (该命令用于寻求各文件依存关系)make clean (该命令用于清除以前结构内核时生成全部目标文件、模块文件和临时文件)make zImage (编译内核中文件,生成内核)若编译经过则在/arch/arm/boot/目录下生成内核文件zImage。五试验汇报要求1.试验汇报要求(1)总结试验过程及步骤。(2)总结交叉编译环境中所碰到问题和处理方法,写出试验过程经验和体会。试验九 linux移植、内核、文件系统生成

41、和下载一试验目标1. 了解linux移植基础过程,掌握内核和文件系统下载方法二试验内容1. 学习linux移植基础过程2. 学习内核和文件系统生成和下载方法三试验设备1. PentiumII以上PC机、EL-ARM830试验箱四linux移植说明本试验系统运行linux版本是针对2.4.18进行移植linux-2.4.18.-rm7-pxa1版本,它存放在/试验软件/source_sys/目录内。因为移植内核所包含内容较多,且也较复杂,同时,在包含到中止切换、内存管理方面复杂移植,通常也无须太过关心,网络上有专门非官方组织在完善该事情。我们所做大多是把该移植好内核,让它怎样在自己硬件系统上正常

42、运转起来。所以,我们所做移植也偏重于应用。 1. 内核目录结构Linux内核关键由5个子系统组成:l 进程调度子系统l 进程间通讯子系统l 内存管理子系统l 虚拟文件系统子系统l 网络接口子系统 图4-3-1Linux内核很庞大,包含驱动程序在内有上百兆。2.4.18内核结构图图4-3-1。其关键结构目录:/arch 子目录包含了全部和硬件体系结构相关内核移植代码。其中每一个目录全部代表一个硬件平台,对于每种平台全部应该包含:boot: 包含开启内核所使用部分或全部平台相关代码。kernel: 包含支持体系结构特有特征代码lib:包含存放体系结构特有通用函数实现代码mm: 包含存放体系结构特有

43、内存管理程序实现mach-xxx:包含存放该处理器移植代码/Documentation 子目录包含相关内核很多很具体文档。/drivers 子目录包含内核中全部设备驱动程序。/fs 子目录包含了全部文件系统代码。/include 子目录包含了建立内核代码时所需大部分库文件头文件,该模块利用其它模块重建内核。同时,它也包含不一样平台需要库文件。/init 子目录包含了内核初始化代码,内核以后目录下开始工作。/ipc 子目录包含了内核进程间通讯代码。/kernel 子目录包含了主内核代码,如进程调度等。/lib 子目录包含了通用库函数代码等。/mm 子目录包含了内核内存管理代码。/net 子目录包

44、含了内核网络相关代码。/scripts 子目录包含了配置内核部分脚本文件通常在每个目录下,全部有一个.depend 文件和一个 Makefile 文件,这两个文件全部是编译时使用辅助文件,仔细阅读这两个文件对搞清各个文件这间联络和依靠关系很有帮助;而且,在有目录下还有Readme 文件,它是对该目录下文件部分说明,一样有利于我们对内核源码了解。所以,移植工作关键就是移植arch目录下文件。2 内核移植 (1) 设置目标平台和指定交叉编译器在最上层根目录/Makefile文件中,首先要指定所移植硬件平台,和所使用交叉编译器。改为以下:ARCH := armCROSS_COMPILE = /opt

45、/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.i

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服