资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Linux 驱动开发实验报告Linux 驱动开发实验报告目录Linux 驱动开发实验报告1实验一、Linux 内核移植实验31.1 资源31.2 解压源码包31.3 修改 Makefile 文件,支持交叉编译31.1 得到.config 文件31.5 修改 Nand Flash 分区41.6 添加 LCD 支持51.7 添加网卡驱动61.8 添加 YAFFS 文件系统支持71.9 内核配置(即内核裁剪)81.10 编译内核91.11 烧写内核10实验二、ARM Norflash 驱动实验102.1、环境102.2、目的112.3、实验步骤11实验三、嵌入式 linux 驱动实验15Linux 驱动开发实验报告3.1、实验目的153.2、实验原理153.3、参考程序173.4、实验步骤253.5、实验结果303.6、实验体会30实验四、LCD 驱动实验304.1、实验目的304.2、实验设备(环境)及要求304.3、试验结果324.4、实验总结32实验五、DM9000 网卡驱动335.1、实验目的335.2、实验设备(环境)及要求335.3、实验内容与步骤335.4、试验结果355.5、实验总结35Linux 驱动开发实验报告实验一、Linux 内核移植实验1.1 资源1.linux-2.6.24.1.tar.bz2(Linux内核源码的压缩包,下载地址www.kernel.org)2.yaffs2.tar.gz(yaffs文件系统源码的压缩包)3.dm9000.h和dm9000.c(dm9000网卡驱动程序)1.2 解压源码包1. 在 XP 中,把“01/下午/src”文件夹拷贝到“/192.168.1.12”的共享文件夹 uptech 内,并把 uptech 中的“src”更名为“01 linux”2. 在 Linux 虚拟机中进入该文件夹“cd /home/uptech/01 linux”ls 可见 1 个文件:“linux-2.6.24.1.tar.bz2”、“yaffs2.tar.gz”、“dm9000.h”、“dm9000.c”u bz2 压缩包用“tar jxvf”解压u gz 压缩包用“tar zxvf”解压3. 解压 Linux 源码压缩包,即输入命令“tar jxvf linux-2.6.21.1.tar.bz2”4. 解压 YAFFS 源码压缩包,即输入命令“tar zxvf yaffs2.tar.gz”1.3 修改 Makefile 文件,支持交叉编译1. cd /home/uptech/01 linux/linux-2.6.21.2,该目录下就是 linux 的内核源码2. 修改 Makefile 文件,使之支持交叉编译,也就是在 Linux 上编译出 ARM 开发板上运行的内核程序。ARCH ?=arm(目标平台是 arm)CROSS_COMPILE?=arm-linux-(交叉编译器的前缀是arm-linux-)1.1 得到.config 文件1. 得到.config 文件Linux 驱动开发实验报告将“/home/uptech/01 linux/linux-2.6.21.2/arch/arm/configs/s3c2110_defconfig”文件拷贝成“/home/uptech/01linux/linux-2.6.21.2/.config”cparch/arm/configs/s3c2110_defconfig .config2. 对内核进行裁剪(此时暂时不做裁剪,仅是看看) make menuconfig1.5 修改 Nand Flash 分区修改“/home/uptech/01 linux/linux-2.6.21.2/arch/arm/plat-s3c21xx/common-smdk.c”文件中的“struct mtd-partition smdk_default_nand_part”这个结构体:第一个分区从 0x0000 0000 到 0x0008 0000,大小为 0.5M第二个分区从 0x0008 0000 到 0x0028 0000,大小为 2M第三个分区从 0x0028 0000 到 0x0068 0000,大小为 1M第四个分区从 0x0068 0000 到 0x0100 0000,大小为 57.5M具体做法:(1) vi arch/arm/plat-s3c21xx/common-smdk.c(2) 修改分区信息结构体static struct mtd_partition smdk_default_nand_part = 0 = .name = Bootloader,.size = 0x80000,.offset = 0,1 = .name = Linux Kernel,.offset = 0x80000,.size = SZ_2M,2 = .name = Root File System,Linux 驱动开发实验报告.offset = 0x280000,.size = SZ_1M,3 = .name = User Space,.offset = 0x680000,.size = 0x3980000,;1.6 添加 LCD 支持修改“/home/uptech/01 linux/linux-2.6.21.2/arch/arm/mach-s3c2110/mach-smdk2110.c”。具体做法:(1)vi arch/arm/mach-s3c2110/mach-smdk2110.c(2)在 mach-smdk2110.c 文件内添加两个头文件#include #include (3)在 mach-smdk2110.c 文件内添加两个结构体static struct s3c2110fb_display up2110_fb _initdata =.lcdcon5 = (112)|(111)|(19)|(18)|(10),.type = (35),.width = 610,.height = 180,.pixclock = 39721,.xres = 610,.yres = 180,.bpp = 16,.left_margin = 10,.right_margin = 32,Linux 驱动开发实验报告.hsync_len = 32,.vsync_len = 2,.upper_margin = 35,.lower_margin = 5,;static struct s3c2110fb_mach_info up2110_fb_info _initdata =.displays = up2110_fb,.num_displays = 1,.default_display = 0,.gpcup = 0xffffffff,.gpcup_mask = 0x0,.gpccon = 0xaaaaaaaa,.gpccon_mask = 0x0,.gpdup = 0xffffffff,.gpdup_mask = 0x0,.gpdcon = 0xaaaaaaaa,.gpdcon_mask = 0x0,.lpcsel = 0,;(1)在 mach-smdk2110.c 文件内,在“smdk2110_init”函数的末尾一行添加:s3c21xx_fb_set_platdata(&up2110_fb_info);1.7 添加网卡驱动1、修改“/home/uptech/01 linux/linux-2.6.21.2/arch/arm/mach-s3c2110/mach-smdk2110.c”。具体做法:(1)vi arch/arm/mach-s3c2110/mach-smdk2110.c(2)在 mach-smdk2110.c 文件添加两个结构体,用于定义端口地址和中断号等设备信息static struct resource s3c_dm9ks_resource = 0 = Linux 驱动开发实验报告.start = 0x10000000,.end = 0x10000010,.flags = IORESOURCE_MEM,1 = .start = IRQ_EINT2,.end = IRQ_EINT2,.flags = IORESOURCE_IRQ,;struct platform_device s3c_device_dm9ks = .name = s3c2110-dm9ks,.id = -1,.num_resources = ARRAY_SIZE(s3c_dm9ks_resource),.resource = s3c_dm9ks_resource,;(3)在“struct platform_device *smdk2110_devices _initdata”末尾加入网卡数据:&s3c_device_dm9ks,2、将新的“dm9000.c”和“dm9000.h”拷贝到“/home/uptech/01 linux/linux-2.6.21.2/drivers/net”文件夹内,替换旧的文件。cp/home/uptech/01 linux/dm9000.*drivers/net/在dm9000.c文件中增加了uptech_dm9k_init函数,并在dm9k_init_module(voi
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号