logo资料库

ARM9的linux移植.pdf

第1页 / 共72页
第2页 / 共72页
第3页 / 共72页
第4页 / 共72页
第5页 / 共72页
第6页 / 共72页
第7页 / 共72页
第8页 / 共72页
资料共72页,剩余部分请下载后查看
摘要
目录
第1章 绪论
1.1 嵌入式系统概述
1.1.1 嵌入式系统的定义
1.1.2 嵌入式系统的组成
1.1.3 嵌入式系统的开发
1.2 嵌入式操作系统概述
1.2.1 嵌入式操作系统
1.2.2 嵌入式Linux操作系统
1.3 ARM体系结构与硬件平台
1.3.1 ARM体系结构的历史与技术特征
1.3.2 Samsung S3c2410处理器简介
1.3.3 LJD2410开发板简介
1.4 本课题的背景和意义
1.5 本课题的主要工作和研究内容
第2章 交叉编译环境的建立
2.1 上位机的软硬件配置
2.1.1 上位机硬件配置
2.1.2 上位机操作系统及软件
2.2 硬件连接与调试
2.2.1 硬件连接方式
2.2.2 串口调试
2.3 配置TFTP及NFS服务
2.3.1 TFTP服务简介
2.3.2 TFTP服务安装与配置
2.3.3 NFS服务简介
2.3.4 NFS服务安装与配置
2.4 安装交叉编译工具
2.4.1 交叉编译简介
2.4.2 交叉编译器的安装及配置
2.4.3 测试交叉编译器
2.5 本章小结
第3章 移植Bootloader
3.1 Bootloader概述
3.2 U-boot简介
3.2.1 U-boot的获取
3.2.2 U-boot目录结构
3.3 U-boot的启动过程及工作原理
3.3.1 启动模式介绍
3.3.2 启动阶段1分析
3.3.3 启动阶段2分析
3.4 U-boot的移植过程
3.4.1 准备工作
3.4.2 添加支持NAND Flash启动功能
3.4.3 添加NAND Flash读写功能
3.4.4 修改U-boot环境变量保存方式
3.4.5 加入NAND Flash闪存型号支持
3.4.6 编译U-boot
3.5 U-boot的烧写及测试
3.6 设置U-boot环境变量
3.7 本章小结
第4章 Linux内核的移植
4.1 Linux内核的结构
4.2 Linux启动过程简析
4.3 Linux内核的移植过程
4.3.1 选择参考板
4.3.2 修改NAND Flash分区信息
4.3.3 关闭ECC校验
4.4 CS8900a网卡的移植过程
4.4.1 修改硬件地址映射
4.4.2 添加CS8900A内核编译项
4.5 Linux内核的剪裁配置
4.5.1 使用配置菜单
4.5.2 基本配置选项
4.5.3 驱动程序配置选项
4.5.4 保存配置文件
4.5.5 编译Linux内核
4.6 内核的下载及启动
4.6.1 将引导信息加入内核映像
4.6.2 内核映像的下载及运行
4.7 本章小结
第5章 建立根文件系统
5.1 根文件系统概述
5.1.1 根文件系统简介
5.1.2 NFS文件系统与Cramfs文件系统
5.2 建立Linux根文件系统目录
5.3 移植Busybox工具
5.3.1 Busybox工具简介
5.3.2 Busybox的配置
5.3.3 编译并安装Busybox
5.4 移植Tinylogin工具
5.4.1 编译Tinylogin工具
5.4.2 建立登陆密码文件
5.5 建立初始化文件
5.5.1 Inittab文件
5.5.2 Fstab文件
5.5.3 Profile文件
5.6 建立启动脚本文件
5.7 应用程序的建立
5.8 将Linux内核及根文件系统部署到开发板
5.8.1 重新修改、编译内核及启动脚本文件
5.8.2 内核的烧写固化过程
5.8.3 制作Cramfs根文件系统映像
5.8.4 根文件系统的固化过程
5.9 本章小结
结论
致谢
参考文献
附录A 移植U-boot过程中涉及的文件
A-1 start.s
A-2 /drivers/nand_legacy/nand_legacy.c
A-3 include/configs/smdk2410.h
A-4 default_env函数
附录B 登录密码相关的文件
B-1 password
B-2 shadow
B-3 group
附录C 初始化文件
C-1 inittab
C-2 fstab
C-3 profile
附录D Hello Wrold程序源文件
D-1 helloworld.c
D-2 helloworld.h
D-3 Makefile
附录E 启动过程
毕业设计(论文) 班级: 0402301 姓名: 张立强 2008 年 6 月
毕 业 设 计 ( 论 文 ) 题 目:基于 ARM9 的嵌入式导航计算机 Linux 系统移植 院 (系) 信息科学与工程学院 专 业 电气工程及其自动化 学 生 张立强 学 号 040230125 指导教师 曲延滨 哈尔滨工业大学教务处制 2008 年 6 月
毕业设计(论文)任务书 专 业 电气工程及其自动化 班 级 0402301 学 生 张立强 指导教师 曲延滨 指导教师 职 称 教授 设计题目 基于 ARM9 的嵌入式导航计算机 Linux 系统移植 题目类型 实验研究型 设计时间 2008 年 4 月 9 日 至 2008 年 6 月 15 日 共 12 周 设计的专业方向、基本理论及设计内容: 专业方向:电气工程及其自动化 基本理论:基于 ARM 处理器的嵌入式操作系统移植 设计内容:本设计主要研究嵌入式开发的操作系统移植。需要使用PC 机建 立编译环境,按步进行操作系统各个部分的修改定制、编译和移植。设计 中需要在开发板上进行大量的实验,通过实验中发现问题,逐步进行修改, 工作完成后所要达到的目标是使 Linux 操作系统在 ARM 开发板上正常运行, 并实现一定的功能。 学生本人在该设计中具体完成的工作: 1, 在 PC 机上建立交叉编译工具链 2, 移植 Bootloader 3, 精简 Linux 内核,并将其移植到开发板 4, 建立根文件系统 主要参考文献、资料: [1] 李亚锋等《ARM 嵌入式 Linux 系统开发》 清华大学出版社 2007.8 [2] 孙纪坤等《嵌入式 Linux 系统开发技术详解—基于 ARM》人民邮电出 版社 2006.8 [3] 孙天泽等《嵌入式设计及 Linux 驱动开发指南—基于 ARM9》电子工 业出版社 2005 [4] 郭秋平《基于 ARM 系统的 Linux 平台移植研究》浙江大学硕士论文 2006.1 年 月 日 负责人签字 负责人签字 年 月 日 设 计 要 求 系 审 批 意 见 院 审 批 意 见
哈尔滨工业大学(威海)毕业设计(论文) 摘要 嵌入式导航计算机是飞机,车辆,导弹和船舶等运载体上的重要设备。 其主要任务是按照原定的计划和任务,以要求的精度,在一定时间内将载体 引导至目的地。本课题的目的就是针对其硬件环境,搭建起一个高效、稳定 的嵌入式操作系统的平台。Linux 操作系统具有开放源代码、功能强大且易 于移植等特点而成为嵌入式操作系统的首选。 本文首先总结了 ARM 的体系结构和特点,并选择了基于 ARM920T 内 核的 LJD2410 开发板作为移植平台。然后介绍了搭建交叉开发环境的一般方 法。之后介绍了嵌入式 Linux 系统的启动程序的实现原理,并实现了 U-Boot 的移植。在对 Linux 内核结构进行了分析后,结合嵌入式导航计算机的系统 需求,给出了 Linux 内核的移植和裁剪方案。最后详细介绍了如何构建根文 件系统以及系统部署的方法。 关键词: 嵌入式系统;ARM;Linux;移植;系统部署 I
哈尔滨工业大学(威海)毕业设计(论文) Abstract Embedded navigation computer is an important equipment in aircrafts, vehicles, missiles, ships and other transporters. Its main task is to lead carriers to the destination as planed with the required precision and in a certain period of time. The purpose of this subject is building an efficient and stable embedded operating system platform according to its hardware environment. Linux operating system has became the first choice in building an embedded operating system for its openness in source code, its powerful function and easiness in transplanting. Firstly, the paper summarizes the features of the ARM architecture. The LJD2410 board that based on ARM920T is choosen as the target platform. Afterward the way to building a cross-development environment is expounded. Then comes the introduction of the methods in building a cross-development environment and the bootloader of embedded Linux system is expounded, along with the transplant of U-Boot. After the analysis of the kernel in Linux, according to the system requirements of the embedded navigation computer, the scheme for its transplant and reducing is given. Finally the paper described in detail how to build a root file system and the system deployment methods. Keywords: Embedded system; ARM; Linux; Transplant; System deployment II
哈尔滨工业大学(威海)毕业设计(论文) 目录 摘要....................................................................................................................I Abstract ............................................................................................................II 第 1 章 绪论 ......................................................................................................1 1.1 嵌入式系统概述 ..................................................................................1 1.1.1 嵌入式系统的定义 ..................................................................1 1.1.2 嵌入式系统的组成 ..................................................................1 1.1.3 嵌入式系统的开发 ..................................................................1 1.2 嵌入式操作系统概述...........................................................................2 1.2.1 嵌入式操作系统......................................................................2 1.2.2 嵌入式 Linux 操作系统...........................................................2 1.3 ARM 体系结构与硬件平台...............................................................3 1.3.1 ARM 体系结构的历史与技术特征.........................................3 1.3.2 Samsung S3c2410 处理器简介 ................................................4 1.3.3 LJD2410 开发板简介 ..............................................................5 1.4 本课题的背景和意义.........................................................................6 1.5 本课题的主要工作和研究内容 .........................................................6 第 2 章 交叉编译环境的建立............................................................................8 2.1 上位机的软硬件配置...........................................................................8 2.1.1 上位机硬件配置 ......................................................................8 2.1.2 上位机操作系统及软件...........................................................8 2.2 硬件连接与调试.................................................................................9 2.2.1 硬件连接方式..........................................................................9 2.2.2 串口调试................................................................................10 2.3 配置 TFTP 及 NFS 服务...................................................................11 2.3.1 TFTP 服务简介......................................................................11 2.3.2 TFTP 服务安装与配置 ..........................................................12 2.3.3 NFS 服务简介........................................................................12 2.3.4 NFS 服务安装与配置 ............................................................13 2.4 安装交叉编译工具...........................................................................13 2.4.1 交叉编译简介........................................................................13 III
哈尔滨工业大学(威海)毕业设计(论文) 2.4.2 交叉编译器的安装及配置.....................................................14 2.4.3 测试交叉编译器 ....................................................................14 2.5 本章小结 ..........................................................................................15 第 3 章 移植 Bootloader..................................................................................16 3.1 Bootloader 概述................................................................................16 3.2 U-boot 简介 ......................................................................................16 3.2.1 U-boot 的获取........................................................................16 3.2.2 U-boot 目录结构....................................................................16 3.3 U-boot 的启动过程及工作原理 .......................................................17 3.3.1 启动模式介绍........................................................................17 3.3.2 启动阶段 1 分析 ....................................................................19 3.3.3 启动阶段 2 分析 ....................................................................20 3.4 U-boot 的移植过程...........................................................................20 3.4.1 准备工作................................................................................20 3.4.2 添加支持 NAND Flash 启动功能 ..........................................21 3.4.3 添加 NAND Flash 读写功能..................................................22 3.4.4 修改 U-boot 环境变量保存方式............................................22 3.4.5 加入 NAND Flash 闪存型号支持 ..........................................22 3.4.6 编译 U-boot............................................................................23 3.5 U-boot 的烧写及测试.......................................................................23 3.6 设置 U-boot 环境变量......................................................................25 3.7 本章小结 ..........................................................................................26 第 4 章 Linux 内核的移植...............................................................................27 4.1 Linux 内核的结构 ............................................................................27 4.2 Linux 启动过程简析.........................................................................28 4.3 Linux 内核的移植过程.....................................................................28 4.3.1 选择参考板 ...........................................................................28 4.3.2 修改 NAND Flash 分区信息 .................................................28 4.3.3 关闭 ECC 校验......................................................................30 4.4 CS8900a 网卡的移植过程................................................................30 4.4.1 修改硬件地址映射................................................................30 4.4.2 添加 CS8900A 内核编译项...................................................31 4.5 Linux 内核的剪裁配置.....................................................................31 IV
哈尔滨工业大学(威海)毕业设计(论文) 4.5.1 使用配置菜单........................................................................31 4.5.2 基本配置选项........................................................................32 4.5.3 驱动程序配置选项................................................................33 4.5.4 保存配置文件........................................................................34 4.5.5 编译 Linux 内核 ....................................................................34 4.6 内核的下载及启动...........................................................................34 4.6.1 将引导信息加入内核映像 ....................................................34 4.6.2 内核映像的下载及运行 ........................................................35 4.7 本章小结 ..........................................................................................36 第 5 章 建立根文件系统 .................................................................................36 5.1 根文件系统概述...............................................................................36 5.1.1 根文件系统简介 ....................................................................36 5.1.2 NFS 文件系统与 Cramfs 文件系统 .......................................36 5.2 建立 Linux 根文件系统目录 ............................................................36 5.3 移植 Busybox 工具...........................................................................37 5.3.1 Busybox 工具简介 .................................................................37 5.3.2 Busybox 的配置 .....................................................................37 5.3.3 编译并安装 Busybox.............................................................38 5.4 移植 Tinylogin 工具 .........................................................................38 5.4.1 编译 Tinylogin 工具...............................................................38 5.4.2 建立登陆密码文件 ................................................................38 5.5 建立初始化文件...............................................................................39 5.5.1 Inittab 文件 ............................................................................39 5.5.2 Fstab 文件..............................................................................39 5.5.3 Profile 文件............................................................................40 5.6 建立启动脚本文件...........................................................................40 5.7 应用程序的建立...............................................................................40 5.8 将 Linux 内核及根文件系统部署到开发板.....................................42 5.8.1 重新修改、编译内核及启动脚本文件..................................42 5.8.2 内核的烧写固化过程.............................................................42 5.8.3 制作 Cramfs 根文件系统映像 ...............................................42 5.8.4 根文件系统的固化过程.........................................................43 5.9 本章小结 ..........................................................................................43 V
分享到:
收藏