WEO啦

首页 » 正文内容 » 第8章 嵌入式Linux实验
第8章 嵌入式Linux实验
收录时间:2023-01-26 03:31:14  浏览:1

1、嵌入式系统技术与设计/第8章 嵌入式Linux实验/本章在前面理论内容的基础上,通过实验,让读者了解在嵌入式平台上移植Linux系统的过程。本章选取的实验涵盖了嵌入式Linux开发的重要环节,包括工具链编译、U-Boot移植、Linux内核移植、根文件系统的制作、Linux内核模块程序和简单字符驱动程序编写等。/本章主要内容: 嵌入式Linux开发环境建立 移植U-Boot实验 烧写U-Boot实验 Linux内核编译与下载实验 Linux内核移植实验 文件系统制作实验 编写Linux内核模块实验 编写带参数的Linux内核模块实验 编写Linux字符驱动程序实验/8/1 搭建嵌入式Linux

2、开发环境/通过运用crosstool-0/43/tar/gz脚本工具包来制作交叉编译器,并且此编译器能够编译Linux-2/6/14内核。本实验旨在让读者学会一种编译制作交叉编译器的方法。在实际开发中,大多根据编译目标选择一个编译好的、经过测试的交叉编译器。本书后面的实验也是灵活地采用适当的交叉编译器。/8/1/1 实验目的/(1)Ubuntu 7/0/4发行版 (2)Linux-2/6/14内核 (3)Embest EduKit2410平台/8/1/2 实验环境/(1)#apt-get d install flex (2)#dpkg -i /var/cache/apt/archives/fl

3、ex_2/5/33-10build1_i386/deb (3)#mkdir /home/Linux/crosstool downloads (4)#su Linux(Linux是一个普通用户名称,用户可以使用系统中的其他普通用户) (5)解压软件包,并进入该目录,查看里面的脚本文件/8/1/3 实验步骤/(6)#vim demo-arm-softfloat/sh (7)#vim gcc-3/4/5-glibc-2/3/6/dat (8)# // demo-arm-softfloat/sh (9)修改build/arm-softfloat-Linux-gnu/gcc-3/4/5-glibc-2/

4、3/6/build-glibc/csu/version-info/h为:/(10)在eval cat arm-softfloat/dat gcc-3/4/6-glibc-2/3/6/dat sh all/sh -notest 末尾处加-nounpack表示不重新解压安装包,目的是让安装过程继续进行,而不覆盖掉以前的编译 结果。 (11)# // demo-arm-softfloat/sh (12)#export PATH=$PATH//home/Linux/crosstool/gcc-3/4/5-glibc-2/3/6/arm-softfloat-Linux-gnu/bin/ (13)#cd

5、/source/kernel/Linux- 2/6/14 (14)#vim Makefile/8/2 移植U-Boot实验/了解U-Boot-1/3/1的代码结构,掌握其移植方法。/8/2/1 实验目的/(1)Ubuntu 7/0/4发行版 (2)U-Boot-1/3/1 (3)Embest EduKit2410平台 (4)交叉编译器 arm-softfloat-Linux-gnu- 3/4/5/8/2/2 实验环境/(1)解压文件 (2)进入U-Boot源码目录 (3)创建自己的开发板 (4)建立编译选项 (5)编译/8/2/3 实验步骤/1建立自己的平台类型/(1)修改中断禁止部分 (2)

6、修改时钟设置(这个文件要根据具体的平台进行修改) (3)将从Flash启动改成从Nand Flash启动 (4)在“_start_armboot/ /word start_armboot ”后加入:/2修改cpu/arm920t/start/S文件,完成U-Boot的重定向/(1)加入Nand Flash的初始化函数 (2)配置GPIO和PLL/3创建board/EduKit2410/nand_read/c文件,加入读Nand Flash的操作 4修改board/EduKit2410/EduKit2410/c文件,加入Nand Flash操作/(1)加入命令定义(Line 39) (2)修改命

7、令提示符(Line 114) (3)修改默认载入地址(Line 125) (4)加入Flash环境信息(在Line 181前) (5)加入Nand Flash设置(在文件结尾处) (6)加入Nand Flash启动支持(在文件结尾处) (7)加入usb的支持/5修改include/configs/EduKit2410/h头文件/(1)加入函数原型定义 (2)修改saveenv函数 (3)修改env_relocate_spec函数/6修改include/Linux/mtd/nand/h头文件 7修改include/Linux/mtd/nand_ids/h头文件 8修改common/env_nan

8、d/c文件/(1)首先添加头文件#include (2)修改do_go函数。具体修改为:/9修改common/cmd_boot/c文件,添加内核启动参数设置/10交叉编译U-BOOT/8/3 烧写U-Boot实验/掌握烧写Bootloader的方法。/8/3/1 实验目的/(1)Ubuntu 7/0/4发行版 (2)Embest EduKit2410平台 (3)交叉编译器版本 arm-softfloat-Linux-gnu- 3/4/5/8/3/2 实验环境/8/3/3 实验步骤/图8-1 并口驱动安装界面/图8-2 K9S1208烧写界面一/图8-3 K9S1208烧写界面二/8/4 Lin

9、ux内核编译与下载实验/8/4/1 实验目的/本实验针对Linux-2/6以上的内核,通过本实验可以使读者掌握编译Linux内核的方法。/(1)Ubuntu 7/0/4发行版 (2)EduKit2410平台以及开发板中移植好的U-Boot (3)交叉编译器arm-softfloat-Linux-gnu- 3/4/5/8/4/2 实验环境/图8-4 内核选项配置界面/8/4/3 实验步骤/图8-5 编译过程输出/图8-6 编译错误示例/8/5 Linux内核移植实验/本实验是对Linux-2/6/14版本的移植,通过tftp下载zImage并挂载NFS文件系统,实现对Nand Flash的存储管

10、理,并实现对Yaffs2文件系统的支持。通过本实验我们可以基本掌握系统移植的主要步骤和方法,并增加我们对Linux系统的整体认识。实验分为3个部分,分别是:CS8900A网卡驱动移植,k9f1208u0m Nand Flash驱动移植,Yaffs2文件系统移植。/8/5/1 CS8900A网卡驱动移植/1实验目的/本实验在Linux-2/6/14内核上移植CS89900A网卡驱动,使其可以通过网络NFS的方式挂载在Ubantu主机环境上的文件系统,从而实现Linux系统的完全启动。/(1)Ubuntu7/04 (2)Embest EduKit2410平台以及开发板中移植好的U-Boot (3)

11、交叉编译器 arm-softfloat-Linux-gnu- 3/4/5/2实验环境/(1)修改内核根目录的Makefile文件。 (2)配置内核产生/config文件: (3)添加网卡驱动到内核。 (4)修改Makefile和Kconfig文件。 (5)保存退出,修改Kconfig文件。 (6)支持启动时挂载devfs。/3实验步骤/(7)为网卡驱动添加头文件。 (8)建立网卡地址内存映射。 (9)配置内核支持CS8900A网卡。 (10)编译内核产生zImage文件,并将arch/arm/boot/zImge复制到/tftpboot目录中。 (11)复制光盘rootfs-farsight/

12、tar/gz到配置了tftp及NFS服务的Ubantu7/04环境中。 (12)修改内核启动参数。 (13)启动开发平台,在超级终端观察现象。/8/5/2 Nand Flash驱动移植/1实验目的/本实验在Linux-2/6/14内核上移植Nand Flash驱动,使其可以设别到Nand Flash分区,并可以管理相应的Flash设备。从而进一步完善系统结构,并通过移植的过程来了解Nand Flash的移植方法。/(1)Ubuntu7/04 (2)Embest EduKit2410平台以及开发板中移植好的U-Boot (3)交叉编译器 arm-softfloat-Linux-gnu- 3/4/

13、5/2实验环境/在Linux-2/6/14内核中已经包含了s3c2410的Nand Flash***驱动,但需要做一些配置工作才能正常使用。 (1)指明分区信息,建立分区表。 (2)建立Nand Flash硬件支持。/3实验步骤/(3)加入Nand Flash芯片支持到Nand Flash驱动。 (4)指定启动时初始化。 (5)配置MTD,具体操作如下: (6)编译内核,并将arch/arm/boot/zImge复制到/tftpboot目录中。 (7)启动系统,在串口终端输入:/8/5/3 Yaffs2文件系统移植/1实验目的/Yaffs2是一种专门为Nand Flash设计的可读写文件系统,

14、本实验是在前面以上的实验的基础上,加入了对Yaffs2的支持,从而进一步完善系统结构,通过移植的过程来了解Yaffs2的移植方法。/(1)Ubuntu 7/0/4 (2)Embest EduKit2410平台以及开发板中移植好的U-Boot (3)交叉编译器 arm-softfloat-Linux-gnu- 3/4/5/2实验环境/(1)下载yaffs2源代码,或从光盘Softwareyaffs2目录复制。下载地址为: (2)修改fs目录下的Makefile: (3)修改fs目录下Kconfig: (4)配置内核选项,目的是内核支持Yaffs2文件系统: (5)编译内核,重新下载。 (6)测试

15、Yaffs2文件系统。/3实验步骤/8/6 文件系统制作实验/熟悉Linux文件系统目录结构,创建自己的文件系统,通过NFS方式集成测试,用文件系统生成ramdisk文件系统映像文件。/8/6/1 实验目的/8/6/2 实验环境/(1)Ubuntu 7/0/4发行版 (2)Embest EduKit2410平台以及开发板中移植好的U-Boot,编译好的Linux-2/6/14内核 (3)交叉编译器 arm-softfloat-Linux-gnu- 3/4/5/8/6/3 实验步骤/(1)下载并配置buxybox源码 (2)安装建立BusyBox文件系统 (3)NFS测试 (4)制作ramdis

16、k文件系统 (5)制作cramfs文件系统和部署 (6)制作jffs2文件系统镜像和部署/8/7 编写Linux内核模块实验/熟悉并能够编写Linux内核程序,了解Linux模块加载机制。/8/7/1 实验目的/8/7/2 实验环境/(1)Ubuntu 7/0/4发行版 (2)Linux-2/6/14内核/8/7/3 实验步骤/(1)编写代码(Hello/c): (2)编译内核模块: (3)将模块加入内核: (4)查看内核模块: (5)查看系统日志: (6)卸载模块:/8/8 编写带参数的Linux内核模块实验/熟悉并能够编写Linux内核程序,了解Linux模块的参数使用方法。/8/8/1 实验目的/(1)Ubuntu 7/0/4发行版 (2)Linux-2/6/14内核/8/8/2 实验环境/(1)编写代码(Hello/c): (2)编译内核模块: (3)将模块加入内核: (4)查看内核模块: (5)查看系统日志: (6)卸载模块:/8/8/3 实验步骤/8/9 编写Linux字符驱动程序实验/编写一个可以控制开发平台上蜂鸣器的字符设备驱动程序。通过实验熟悉并能够编写Linux字符设备驱动程序。/8/9/1 实验目的/(1)Ubuntu 7/0/4发行版 (2)Lin

温馨提示:
1. WEO啦仅展示《第8章 嵌入式Linux实验》的部分公开内容,版权归原著者或相关公司所有。
2. 文档内容来源于互联网免费公开的渠道,若文档所含内容侵犯了您的版权或隐私,请通知我们立即删除。
3. 当前页面地址:https://www.weo.la/doc/11a76262d24043ca.html 复制内容请保留相关链接。