嵌入式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:”文本框的“”按钮,选择要将工程保存的路径,然后点击确定即可建立一个新的工程。工程建立之后会出现一个 p 窗口。
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为0x32000000linux系统vim编辑器,设置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下,进入“虚拟机”->“设置”,进入“虚拟机设置”对话框。进入“选项”->“共享文件夹”进行设置,选择要设置的共享文件夹路径,勾选固定分配和自动挂载,共享成功过后就可以在red
hat中访问共享文件夹。在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 /home
2、执行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)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论