11实验四基于ARM的嵌入式Linux开发环境建立22一、实验目的1.掌握嵌入式Linux开发环境的基本流程。2.熟悉Linux操作系统3.熟悉嵌入式开发平台33二、实验内容在PC机虚拟机下的Linux系统中建立基于ARM的嵌入式Linux开发环境。1.学会网口的配置2.Minicom端口的使用44三、预备知识1.了解ARM9处理器结构2.了解Linux系统结构3.了解ARM开发板使用常识55四.实验设备与工具硬件:PC机Pentium100以上,ARM嵌入式开发平台软件:PC机Linux操作系统+MINICOM+AMRLINUX开发环境详见实验指导书五、实验原理六、实验步骤1.双击桌面上VMWARE,打开Linux虚拟机2.点击启动虚拟机,启动虚拟机3.以root身份登陆虚拟机,密码1234564.其他步骤详见实验指导书77七、思考题1.如何验证交叉编译器已安装成功?2.如果我们需要变更根文件系统的目录,该如何设置使得ARM开发板可以成功挂载?3.怎么在u-boot命令行下修改ARM开发板的IP?99实验五基于ARM的模块方式驱动程序实验1010一、实验目的1.掌握Linux系统下设备驱动程序的作用与编写技巧2.掌握Linux驱动程序模块加载和卸载的方法3.了解Linux内核中的makefile和kconfig文件二、实验内容1.基于s3c2440开发板编写led驱动程序。2.将编写好的led驱动加入linux内核中,修改makefile和kconfig文件,配置和编译内核。3.编写关于led的测试程序,交叉编译后运行,控制led灯的亮灭。三、预备知识1.了解ARM9处理器结构和Linux系统结构2.熟练掌握C语言。1111四、实验设备与工具硬件:ARM嵌入式开发平台,PC机Pentium100以上。软件:PC机Linux操作系统+MINICOM+AMRLINUX开发环境五、实验原理linux设备驱动程序驱动的模块式加载和卸载编译模块装载和卸载模块led驱动的原理在本开发板上有八个led指示灯,从下往上分别为LED0-LED7。这八个led灯都是接的芯片上的gpio口(通用功能输入输出口)。在本实验的开发板硬件设计中,当led灯对应的gpio的电平为低时,led灯被点亮;当led灯对应的gpio的电平为高时,led灯灭。本驱动的作用就是通过设置对应gpio口的电平来控制led的亮灭。1212Led对应的具体的gpio口如下表所示:1313因为ARM芯片内的GPIO口都是复用的,即它可以被配置为多种不同的功能,本实验是使用它的普通的I/O口的输出功能,故需要对每个GPIO口进行配置。在内核中已经定义了对GPIO口进行配置的函数,我们只需要调用这些函数就可以完成对GPIO口的配置。本实验所使用的库函数请参见实验指导书。1414六、实验步骤(详见实验指导书)实验程序运行效果:程序会提示:“pleaseentertheledstatus”输入与希望显示的led状态对应的ledstatus值(输入十进制值即可),观察led的显示情况。例如:输入数字“3”,对应的二进制数字为00000011故点亮LED2~LED7输入数字“4”,对应的二进制数字为00000100故点亮LED0,LED1,LED3~LED71.设备驱动程序的功能是什么?2.模块化的最大优点是什么?3.如果在驱动模块中删除module_exit(s3c2440_Led_exit);后会有什么影响?4.驱动代码中调用的宏MKDEV的作用是什么?七、思考题