还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
嵌入式linux实验指导书实验一arm裸机实验实验条件pcADS__环境FL2440__套件SecureCRT串口超级终端实验目的熟悉arm裸机__基本步骤,掌握ADS集成__环境的使用,能够编写简单的裸机程序并下载到__板运行测试实验原理ADS全称为ARMDeveloperSuite,是ARM公司推出的新一代ARM集成__工具ADS由命令行__工具、ARM实时库、GUI__环境CodeWarrior和AXD、实用程序和支持软件组成有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己__的应用程序了本次实验利用ADS集成__环境建立基于ar__S3C2440的实验工程,完成工程搭建、代码编写和编译,生成可执行文件并下载到__板进行运行测试实验步骤
1、首先打开ADS软件CodeWarrior,__File菜单下的New来创建新工程Project对话框中选择ARMExecutableI__ge在Projectname中输入工程名,例2440_led,__“Location”文本框的“Set...”按钮,选择要将工程保存的路径,然后__确定即可建立一个新的工程工程建立之后会出现一个2440_led.mcp窗口
2、创建源文件,__File菜单下的New,选择标签页File,在Filename中输入要建立的文件名,如Init.s.s文件为arm中的汇编文件,若此时选上了AddtoProject创建的文件会自动添加到工程中,选择target方式为DebugRel,__确定关闭窗口,文件创建完成后编写代码(可将arm_linux文件夹下的裸机例程代码__到工程中进行修改,如__裸机程序中的led程序init.sled.c到建立的工程文件目录中,__Project菜单下的AddFils将源文件添加到工程中)
3、__Edit菜单,选择“DebugRelSettings…”注意,这个选项会因用户选择的不同目标而有所不同选择TargetSettings,在右侧属性栏中,将Linker设置为ARMLinker,Post-linker设置为ARMfromELF;选择ARMAssembler,设置Target下ArchitectureorPro__ssor为AR__20T,FloatingPoint设置为Nofloatingpoint;选择ARMLinker,设置output下______i__ge中ROBase为0x32000000,设置options下I__geentrypoint为0x32000000,设置layout下o__ect/symbol为init.o;选择ARMfromELF,设置outputfor__t为plainbinary设置完成后__ok
4、
5、连接__板串口与pc串口,连接__板u__与pc机u__,打开串口终端并连接COM1串口启动__板,此时串口终端会打印输出信息,立即按下enter键进入bootloader选择模式,按下0选择下载用户程序到__板内存中运行,此时打开DNW软件,选择u__tran__it,bin文件,将上述生成的.bin文件下载到__板内存中运行,若下载成功则串口终端会打印相关信息,__板会在内存中执行程序
6、第5步也可以选择1将程序下载到内存中运行,并在同时写入__板flash中,此时掉电程序不丢失实验结果实验心得实验二搭建嵌入式linux工作环境实验条件pc机winXP或win7系统虚拟机软件redhat镜像文件arm交叉编译链实验目的搭建嵌入式linux__环境,包括虚拟机的__和使用,redhat系统的__和使用,熟悉linux基本命令,在系统中加入arm__的交叉编译链实验步骤
1、__虚拟机,VMwareWorkstation,按照提示进行__,根据喜好选择语言及其他相应设置即可(pc机已默认__)
2、虚拟机__完成后,选择文件-新建虚拟机,在CD选项中添加redhatlinux的光盘镜像,根据提示设置系统名称,内存大小,硬盘大小,系统语言,_____等(一般设置内存至少256M,硬盘至少8GB,中文)共3个盘片(pc机已默认__,___账户为root,__为test123)
3、Redhat__完成后,启动系统,用root用户登录打开“虚拟机”-“设置”-“CD/DVD”右侧设备状态勾选“已连接”和“打开电源时自动连接”,“使用ISO镜像文件”,浏览文件,将arm_linux文件夹中的linux.iso加入路径打开shell终端,进入命令行界面执行cd/mnt/cdrom,进入/mnt/cdrom目录,可看到镜像文件被挂载到虚拟光驱中,文件名为vmware-tools-distrib,执行cdvmwaretools-distrib进入该目录下执行./vmware-install.pl脚本__虚拟机增强工具,出现选项时直接按下enter,直至__结束回到shell状态在VM下,进入“虚拟机”-“设置”,进入“虚拟机设置”对话框进入“选项”-“共享文件夹”进行设置,选择要设置的共享文件夹路径,勾选固定分配和自动挂载,共享成功过后就可以在redhat中访问共享文件夹在redhat下,执行cd/mnt/hgfs命令进入/mnt/hgfs目录下,执行ls命令可以看到之前添加的共享文件夹(为方便后续实验,在此将pc桌面本次实验内容的文件夹arm_linux设置为共享文件夹)
4、__arm-linux-__c交叉编译工具链将cross-压缩包__到共享文件夹中,在redhat下,新建命令行终端,执行cd/mnt/hgfs/arm_linux命令,进入arm_linux共享文件夹,执行tar–xvjfcross–C/usr/local命令解压交叉工具链到/usr/local/arm目录编辑/etc/bashrc文件,执行vi/etc/bashrc命令,进入编辑页面单击“i”键进行输入,在最后增加路径exportPATH=/usr/local/arm//bin:$PATH,修改完成后单击“Esc”键,输入“x”,执行sour__/etc/bashrc保存文件并使文件生效此时,执行arm-linux-__c–v命令可以查看编译器版本实验结果实验心得实验三linux内核及文件系统的编译和烧写实验条件pc机redhat系统bootloader、linux内核和文件系统源码arm-linux-__c编译工具实验目的了解嵌入式linux系统构成,熟悉相关组成文件的编译和烧写,有兴趣者可深入查看源代码实验原理运行于嵌入式设备中的linux系统通常由bootloader、Linux内核和文件系统三部分组成,bootloader完成核心硬件如nandflash的初始化配置并设置启动参数引导linux内核启动,内核主要进行系统调度、资源管理等,内核启动后用户并不能直接的对内核进行直接操作,因此需要一套文件系统挂接到内核上实现用户与系统的交互当有了linux内核源码和文件系统源码之后需要交叉编译,因为源码是不能直接运行的此处编译的是linux
2.6的内核,采用yaffs2文件系统,交叉编译器为版本内核编译命令__keconfig(基于文本的最为传统的配置界面,不推荐使用)__kemenuconfig(基于文本选单的配置界面,字符终端下推荐使用)__kexconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)__keoldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)这三个命令中,__kexconfig的界面最为友好,但系统支持差,所以使用__kemenuconfig最为普遍文件系统可使用busybox工具制作,本实验直接使用FL2440__文件系统实验步骤
1、启动redhat系统,新建命令行终端,执行cd/mng/hgfs/arm_linux命令进入共享文件夹,执行tar–xvjflinux-.tar.bz2–C/home将内核文件解压到/home目录下,同样将文件系统文件解压到home目录,tar-xvj–C/home
2、执行cd/home/linux-,进入linux-目录,在命令行输入__kemenuconfig命令,选择进入“LoadanAlternateConfigurationFile”装载配置文件“S3C
2440.CFG”,__“OK”,然后保存退出(可以根据硬件配置对内核进行裁剪,本次实验采用FL2440的默认配置文件)在命令行输入命令__kezI__ge,此时系统会对内核进行编译,编译完之后,则在linux-/arch/arm/boot路径下生成zI__ge文件执行cparch/arm/boot/zI__ge/mnt/hgfs/arm_linux–a命令将内核文件__到共享文件夹下供烧写使用
3、执行cd/home/qte_yaffs进入文件系统目录,文件系统的所有文件都在该目录下,可根据需要修改其中关于支持鼠标或触摸屏在/etc/init.d/rcS中选择(rc.mouse或rc.touch)最后用mkyaffs2i__ge工具来制作文件系统./mkyaffs2i__geqte_yaffsqte.yaffs执行cpqte.yaffs/mnt/hgfs/arm_linux–a将制作好的文件系统__到共享文件夹供烧写使用
4、由于FL2440__板默认已烧写好linux内核和yaffs文件系统,此处烧写部分不作叙述,有兴趣同学可利用__提供烧写工具进行内核和文件系统地烧写实验结果实验心得实验四linux驱动程序实验条件pcredhat系统及交叉编译工具FL2440__板套件SecureCRT串口超级终端实验目的了解linux驱动程序__原理,学会简单的字符型驱动程序编写,熟悉驱动程序的加载和卸载过程实验原理可以简单地将linux系统分为内核层和应用层,内核层与应用层有明显的界限划分应用层主要执行用户程序,进行系统操作等,内核层主要进行系统调度和对硬件的存储访问等;应用层程序无权直接访问系统硬件,所以linux系统中几乎所有的外部设备都由驱动程序进行初始化和直接操作,驱动程序处于linux内核层字符驱动程序module的工作流程主要分为四个部分a、用Linux提供的命令加载驱动module,in__od命令b、驱动module的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用),init()函数c、当操作设备时,即有系统调用时,调用驱动module提供的各个服务函数,ioctl()函数d、卸载驱动module,rmmod命令实验步骤
1、编写FL2440__板的led驱动程序,文件处于arm_linux/led_module文件夹下阅读并理解驱动程序,可自行尝试修改驱动程序进行测试
2、编写led驱动程序对应的__kefile文件,此处必须将__kefile文件中的内核路径指向上述解压的linux内核路径,否则会涉及内核版本不兼容的相关问题有兴趣同学可参考相关资料尝试修改驱动程序和__kefile文件
3、Redhat系统下进入led_module文件夹下执行__ke命令,生成s3c2440_led.ko驱动文件,执行files3c2440_led.ko命令确认该驱动文件的文件类型
4、连接__板串口与pc机串口,启动串口超级终端并连接COM1,给__板上电,可看到串口打印出相关信息,启动后bootloader默认设置时间为7s左右,在7s以内按下enter键,出现选择菜单后选择4启动linux系统
5、系统完全启动后__enter键进入控制台界面(此控制台与redhat控制台基本一致,只是功能稍弱,只提供linux常用命令),执行rz命令将上述生成的驱动文件s3c2440_led.ko传送到__板中,chmod777s3c2440_led.ko给驱动文件添加可执行权限,执行in__ods3c2440_led.ko加载驱动程序,驱动程序加载成功后会在控制台打印相应信息,可执行ls–l/dev命令查看dev文件下是否有s3c2440_led设备同理,执行rmmods3c2440_led.ko可卸载驱动程序实验结果实验心得实验五led应用程序实验条件pcredhat系统及交叉编译工具FL2440__套件串口超级终端实验目的学习linux应用程序编写的基本原理,熟悉vi/vim工具的使用,能够在应用程序中调用驱动程序并对其操作控制编写与led驱动程序对应的应用程序,通过应用程序控制led的亮灭实验原理上述实验完成了led驱动程序的编译和加载,但仅有驱动程序并不能让linux用户直接或间接访问硬件,所以必须编写用户层的应用程序对硬件实施相应额管理和控制基本原理如下实验步骤
1、编写led应用程序,实现在串口终端模式下,按下不同的键盘按键实现不同的led的亮灭,或者实现不同的led亮灭模式
2、编写相应__kefile文件
3、在redhat系统下进入led_app目录,执行__ke命令生成led应用程序的可执行文件,可通过fileled命令查看led文件的格式,确定是否为arm平台的可执行文件
4、连接__板串口与pc机串口,打开串口超级终端并连接COM1串口,启动__板,进入linux系统控制台界面下,in__ods3c2440_led.ko加载驱动执行rz命令,将共享文件夹中生成的led可执行文件下传到__板系统中,chmod777led更改led文件的执行权限,执行./led命令运行led应用程序,根据提示键入不同的按键,观察led是否按照设计的程序运行程序执行过程中可使用ctrl+c强制退出该程序实验结果实验心得应用程序驱动程序硬件设备。