资源描述:
《嵌入式操作系统实训报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、嵌入式操作系统实训报告姓名:学号:专业:一、实习的任务与目的本次实训的目的是在学生已掌握了嵌入式操作系统的知识、对当前嵌入式操作系统的主要种类和应用领域有较清晰的概念的基础上,以嵌入式Linux操作系统教学内容为指导,以S3C2410经典实验箱为平台,使学生掌握配置、裁剪、移植和维护嵌入式Linux操作系统的技能和相关理论知识,具备一个初级嵌入式Linux系统程序员的综合技能。本次实训的任务是通过教师对嵌入式Linux的配置、裁剪、移植以及文件系统的移植等内容的讲解,让学生掌握如何搭建嵌入式开发环境、嵌入式Linux系统移植、文件系统移植以及简单的驱
2、动程序的开发。二、实习内容第一部分嵌入式LINU开发基础知识1.1嵌入式LINUX简介1.2嵌入式LINUX开发平台简介1.3嵌入式LINUX开发流程1.4嵌入式LINUX开发环境的建立第二部分嵌入式Linux系统构建2.1Bootloader移植2.2LINUX内核裁剪与移植2.2创建根文件系统第三部分设备驱动程序设计3.1模块方式驱动实验3.2LED驱动实验3.3中断按键控制LED实验三、实训步骤一)移植U-Boot.1.2.0到博创2410一、在U-Boot中建立自己的开发板类型,并测试编译。1在工作目录下解压U-Boot。$tarzxvfu-
3、boot.git.tar.gz2进入U-Boot目录,修改Makefile,为开发板建立编译项3在/board子目录中建立自己的开发板目录,还要记得修改自己的开发板目录下的Makefile文件,不然编译时会出错:COBJS:=tekkaman2410.oflash.o4在include/configs/中建立配置头文件$cd../../..$cpinclude/configs/smdk2410.hinclude/configs/tekkaman2410.h5测试交叉编译成功!!二、修改U-Boot中的文件,以匹配博创的2410实验箱。1修改/cpu/
4、arm920t/start.S2在board/tekkaman/tekkaman2410加入NANDFlash读函数,建立nand_read.c文件。3修改board/tekkaman/tekkaman2410/Makefile文件4修改include/configs/tekkaman2410.h文件,添加如下内容:5修改board/tekkaman/tekkaman2410/lowlevel_init.S文件依照开发箱的内存区的配置情况,修改board/tekkaman/tekkaman2410/lowlevel_init.S文件6修改/board
5、/tekkaman/tekkaman2410/tekkaman2410.c......8在include/linux/mtd/nand_ids.h的结构体nand_flash_ids加入staticstructnand_flash_devnand_flash_ids[]={......{"SamsungKM29N16000",NAND_MFR_SAMSUNG,0x64,21,1,2,0x1000,0},{"SamsungK9F1208U0M",NAND_MFR_SAMSUNG,0x76,26,0,3,0x4000,0},{"Samsungunknow
6、n4Mb",NAND_MFR_SAMSUNG,0x6b,22,0,2,0x2000,0},......{NULL,}};9修改/lib_arm中的board.c。10修改common/env_nand.c11在/board/tekkaman/tekkaman2410/tekkaman2410.c文件的末尾添加对NandFlash的初始化函数u-boot运行至第二阶段进入start_armboot()函数。其中nand_init()函数是对nandflash的最初初始化函数。Nand_init()函数在两个文件中实现。其调用与CFG_NAND_LEGA
7、CY宏有关,如果没有定义这个宏,系统调用drivers/nnd/nand.c中的nand_init();否则调用自己在board/smdk2410/smdk2410.c中的nand_init()函数。3C2410_GetBase_NAND();12修正U-Boot的NE2000驱动的低级错误将第45行:athttp://sources.redhat.com/ecos/ecos-license/*/改为:athttp://sources.redhat.com/ecos/ecos-license/13因为没有NorFlash芯片,所以注释掉/common
8、/cmd_bootm.c中关于imls命令的程序段和/common/cmd_flash.c中的程序。不然,按