




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式linux实验指导书实验一:arm裸机实验实验条件:pc ADS开发环境 FL2440开发套件 SecureCRT串口超级终端实验目的:熟悉arm裸机开发基本步骤,掌握ADS集成开发环境的使用,能够编写简单的裸机程序并下载到开发板运行测试。实验原理:ADS 全称为 ARM Developer Suite ,是 ARM 公司推出的新一代 ARM 集成开发工具。ADS 由命令行开发工具 、 ARM 实时库、GUI 开发环境 (Code Warrior 和 AXD) 、实用程序和支持软件组成。 有了这些部件,用户就可以为 ARM 系列的 RISC 处理器编写和调试自己开发的应用程序了。本次实验利用ADS集成开发环境建立基于arm9 S3C2440的实验工程,完成工程搭建、代码编写和编译,生成可执行文件并下载到开发板进行运行测试。实验步骤:1、 首先打开ADS软件 CodeWarrior,点击 File 菜单下的 New 来创建新工程。 Project 对话框中选择 ARM Executable Image 。在 Project name 中输入工程名,例:2440_led,点击“Location:”文本框的“Set.”按钮,选择要将工程保存的路径,然后点击确定即可建立一个新的工程。工程建立之后会出现一个 2440_led.mcp 窗口。2、 创建源文件,点击 File 菜单下的 New,选择标签页 File, 在 File name 中输入要建立的文件名,如:Init.s (.s 文件为 arm 中的汇编文件),若此时选上了 Add to Project,创建的文件会自动添加到工程中,选择target方式为DebugRel,点击确定关闭窗口,文件创建完成后编写代码。(可将arm_linux文件夹下的裸机例程代码复制到工程中进行修改,如:复制裸机程序中的led程序init.s led.c到建立的工程文件目录中,点击 Project 菜单下的 Add Fils 将源文件添加到工程中)3、 点击 Edit 菜单,选择“DebugRel Settings”(注意,这个选项会因用户选择的不同目标而有所不同)。选择Target Settings,在右侧属性栏中,将Linker设置为ARM Linker,Post-linker设置为ARM fromELF;选择ARM Assembler,设置Target下Architecture or Processor为ARM920T,Floating Point设置为No floating point;选择ARM Linker,设置output下simple image中RO Base为0x32000000,设置options下Image entry point为0x32000000,设置layout下object/symbol为init.o;选择ARM fromELF,设置output format为plain binary。设置完成后点击ok。4、 源文件添加完成并设置后,可以进行工程的编译。点击project菜单,选择make,若程序无误则会在工程文件下DebugRel目录生成.axf和.bin的可执行文件。5、 连接开发板串口与pc串口,连接开发板usb与pc机usb,打开串口终端并连接COM1串口。启动开发板,此时串口终端会打印输出信息,立即按下enter键进入bootloader选择模式,按下0选择下载用户程序到开发板内存中运行,此时打开DNW软件,选择usb transmit,bin文件,将上述生成的.bin文件下载到开发板内存中运行,若下载成功则串口终端会打印相关信息,开发板会在内存中执行程序。6、 第5步也可以选择1将程序下载到内存中运行,并在同时写入开发板flash中,此时掉电程序不丢失。实验结果:实验心得:实验二:搭建嵌入式linux工作环境实验条件:pc机 winXP或win7系统 虚拟机软件 redhat镜像文件 arm交叉编译链实验目的:搭建嵌入式linux开发环境,包括虚拟机的安装和使用,redhat系统的安装和使用,熟悉linux基本命令,在系统中加入arm开发的交叉编译链。实验步骤:1、安装虚拟机,VMware Workstation,按照提示进行安装,根据喜好选择语言及其他相应设置即可。(pc机已默认安装)2、虚拟机安装完成后,选择文件-新建虚拟机,在CD选项中添加redhat linux的光盘镜像,根据提示设置系统名称,内存大小,硬盘大小,系统语言,管理员密码等(一般设置内存至少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,执行cd vmwaretools-distrib进入该目录下执行./vmware-install.pl脚本安装虚拟机增强工具,出现选项时直接按下enter,直至安装结束回到shell状态。在VM下,进入“虚拟机”-“设置”,进入“虚拟机设置”对话框。进入“选项”-“共享文件夹”进行设置,选择要设置的共享文件夹路径,勾选固定分配和自动挂载,共享成功过后就可以在redhat中访问共享文件夹。在redhat下,执行cd /mnt/hgfs命令进入/mnt/hgfs目录下,执行ls命令可以看到之前添加的共享文件夹。(为方便后续实验,在此将pc桌面本次实验内容的文件夹arm_linux设置为共享文件夹)4、安装arm-linux-gcc交叉编译工具链。将cross-3.4.1压缩包复制到共享文件夹中,在redhat下,新建命令行终端,执行cd /mnt/hgfs/arm_linux命令,进入arm_linux共享文件夹,执行tar xvjf cross-3.4.1.tar C /usr/local命令解压交叉工具链到/usr/local/arm目录。编辑/etc/bashrc 文件,执行vi /etc/bashrc命令,进入编辑页面单击“i”键进行输入,在最后增加路径:export PATH=/usr/local/arm/3.4.1/bin:$PATH ,修改完成后单击“Esc”键,输入“:x”命令保存退出,这样就把/usr/local/arm/3.4.1/bin 添加到命令的默认路径,执行source /etc/bashrc保存文件并使文件生效。此时,执行arm-linux-gcc v命令可以查看编译器版本。实验结果:实验心得:实验三:linux内核及文件系统的编译和烧写实验条件:pc机 redhat系统 bootloader、linux内核和文件系统源码 arm-linux-gcc编译工具实验目的:了解嵌入式linux系统构成,熟悉相关组成文件的编译和烧写,有兴趣者可深入查看源代码。实验原理:运行于嵌入式设备中的linux系统通常由bootloader、Linux内核和文件系统三部分组成,bootloader完成核心硬件如nandflash的初始化配置并设置启动参数引导linux内核启动,内核主要进行系统调度、资源管理等,内核启动后用户并不能直接的对内核进行直接操作,因此需要一套文件系统挂接到内核上实现用户与系统的交互。当有了 linux 内核源码和文件系统源码之后需要交叉编译,因为源码是不能直接运行的。此处编译的是linux 2.6 的内核,采用yaffs2文件系统,交叉编译器为 3.4.1 版本。内核编译命令:make config(基于文本的最为传统的配置界面,不推荐使用)make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)make xconfig(基于图形窗口模式的配置界面,Xwindow 下推荐使用)make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)这三个命令中, make xconfig 的界面最为友好,但系统支持差,所以使用 make menuconfig 最为普遍。文件系统可使用busybox工具制作,本实验直接使用FL2440官方文件系统。实验步骤:1、启动redhat系统,新建命令行终端,执行cd /mng/hgfs/arm_linux命令进入共享文件夹,执行tar xvjf linux-2.6.12.tar.bz2 C /home 将内核文件解压到/home目录下,同样将文件系统文件解压到home目录,tar -xvjf qte_yaffs.tar.bz2 C /home2、执行cd /home/linux-2.6.12,进入 linux-2.6.12 目录,在命令行输入make menuconfig命令,选择进入 “Load an Alternate Configuration File”装载配置文件 “S3C2440.CFG”,点击“OK”,然后保存退出。(可以根据硬件配置对内核进行裁剪,本次实验采用FL2440的默认配置文件)。在命令行输入命令make zImage,此时系统会对内核进行编译,编译完之后,则在 linux-2.6.12/arch/arm/boot 路径下生成 zImage 文件。执行cp arch/arm/boot/zImage /mnt/hgfs/arm_linux a命令将内核文件复制到共享文件夹下供烧写使用。3、执行cd /home/ qte_yaffs进入文件系统目录,文件系统的所有文件都在该目录下,可根据需要修改。其中关于支持鼠标或触摸屏在/etc/init.d/rcS 中选择(rc.mouse 或 rc.touch)。最后用 mkyaffs2image 工具来制作文件系统:./mkyaffs2image qte_yaffs qte.yaffs 执行cp qte.yaffs /mnt/hgfs/arm_linux a将制作好的文件系统复制到共享文件夹供烧写使用。4、由于FL2440开发板默认已烧写好linux内核和yaffs文件系统,此处烧写部分不作叙述,有兴趣同学可利用官方提供烧写工具进行内核和文件系统地烧写。实验结果:实验心得:实验四:linux驱动程序实验条件:pc redhat 系统及交叉编译工具 FL2440开发板套件 SecureCRT串口超级终端实验目的:了解linux驱动程序开发原理,学会简单的字符型驱动程序编写,熟悉驱动程序的加载和卸载过程。实验原理:可以简单地将linux系统分为内核层和应用层,内核层与应用层有明显的界限划分。应用层主要执行用户程序,进行系统操作等,内核层主要进行系统调度和对硬件的存储访问等;应用层程序无权直接访问系统硬件,所以linux系统中几乎所有的外部设备都由驱动程序进行初始化和直接操作,驱动程序处于linux内核层。字符驱动程序 module 的工作流程主要分为四个部分:a、 用 Linux 提供的命令加载驱动 module,insmod命令。b、 驱动 module 的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用),init()函数。c、 当操作设备时,即有系统调用时,调用驱动 module 提供的各个服务函数,ioctl()函数。d、 卸载驱动 module,rmmod命令。实验步骤:1、 编写FL2440开发板的led驱动程序,文件处于arm_linux/led_module文件夹下。阅读并理解驱动程序,可自行尝试修改驱动程序进行测试。2、 编写led驱动程序对应的makefile文件,此处必须将makefile文件中的内核路径指向上述解压的linux内核路径,否则会涉及内核版本不兼容的相关问题。有兴趣同学可参考相关资料尝试修改驱动程序和makefile文件。3、 Redhat系统下进入led_module文件夹下执行make命令,生成s3c2440_led.ko驱动文件,执行file s3c2440_led.ko命令确认该驱动文件的文件类型。4、 连接开发板串口与pc机串口,启动串口超级终端并连接COM1,给开发板上电,可看到串口打印出相关信息,启动后bootloader默认设置时间为7s左右,在7s以内按下enter键,出现选择菜单后选择4启动linux系统。5、 系统完全启动后点击enter键进入控制台界面(此控制台与redhat控制台基本一致,只是功能稍弱,只提供linux常用命令),执行rz命令将上述生成的驱动文件s3c2440_led.ko传送到开发板中,chmod 777 s3c2440_led.ko给驱动文件添加可执行权限,执行insmod s3c2440_led.ko加载驱动程序,驱动程序加载成功后会在控制台打印相应信息,可执行ls l /dev命令查看dev文件下是否有s3c2440_led设备。同理,执行rmmod s3c2440_led.ko可卸载驱动程序。实验结果:实验心得:实验五:led应用程序实验条件:pc redhat系统及交
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 组合数学竞赛模拟试题及答案
- 考点解析-华东师大版7年级下册期末试题附答案详解(能力提升)
- 2025年土壤污染修复技术在特殊土壤环境中的应用研究报告001
- 2025年智慧公交系统实施方案评估报告:公交智能化政策研究
- 2025年电动汽车电池热管理技术热管理系统创新与新能源汽车环保性能强化报告
- 2025至2030年中国高光相纸行业市场深度评估及投资战略规划报告
- 2025至2030年中国江苏白酒行业市场供需格局及投资规划建议报告
- 2025版汽车保险代理与运营服务承包协议
- 2025年度企业项目贷款担保合同
- 2025房地产企业财务审计服务合同范本
- 商场保洁服务应急预案
- T/CATCM 026-2023中药液体废弃物循环利用指导原则
- 低空经济培训项目工程方案
- 中国冷冻榴莲行业市场前景预测及投资价值评估分析报告
- 2025至2030年中国眼科手术器械行业投资前景及策略咨询报告
- 人教九年级英语上册Unit 7《单元写作》课件
- 外贸英语专业课件
- 心血管系统疾病相关专业医疗质量控制指标(2021年版)
- 苏教版六年级上册数学教案:19分数与分数相乘及分数乘法练习
- 2025学校食堂食品安全培训
- 生产安全事故应急预案评估报告
评论
0/150
提交评论