在arm平台上移植linux操作系统大学论文.docx
- 文档编号:1495751
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:15
- 大小:429.35KB
在arm平台上移植linux操作系统大学论文.docx
《在arm平台上移植linux操作系统大学论文.docx》由会员分享,可在线阅读,更多相关《在arm平台上移植linux操作系统大学论文.docx(15页珍藏版)》请在冰豆网上搜索。
在arm平台上移植linux操作系统大学论文
科技学院计算机学院综合性实验
结课论文
论文题目在ARM平台上移植linux操作系统
实验学期2016至2017学年第1学期
学生所在学院部计算机学院
年级专业班级
学生姓名学号
任课教师
实验成绩
计算机学院制
课程结课论文评价
教师评价
序号
评定项目
A
B
C
D
E
1
课程学习的态度与纪律
2
结课论文的格式规范和字数
3
结课论文内容翔实与完整程度
4
结课论文研究内容与课程的关联度
5
结课论文研究的深度
6
总评
评价标准:
1.表格第一行中的A、B、C、D、E分别对应优、良、中、及格、不及格。
2.学生结课论文的总评成绩分为优、良、中、及格、不及格5个等级,分别对应
95、85、75、65、55。
优秀:
所有评价项目中都是B以上,且至少获得4个A;
良好:
所有评价项目中都是C以上,且至少获得4个B或A;
中等:
所有评价项目中都是D以上,且至少获得4个C或以上;
及格:
所有评价项目中都是D以上;
不及格:
符合以下条件之一的:
(1)评价项目中只要有一项是E;
(2)课程学习期间无视课程纪律,未能参加课程学习的时间超过
全部时间的三分之一以上;
(3)课程学习目的不明确,结课论文报告马虎潦草或内容与课程学习内容不符,未达到课程学习中规定的基本要求;
(4)大部分内容抄袭别人或网上的内容。
在ARM平台上移植linux操作系统
摘要:
在ARM平台上移植linux操作系统作为实现设备小型化、智能化的一个重要元素,目前己经广泛应用于国防、工业、交通、能源、信息技术以及日常生活等各个领域,研究和开发linux操作系统在ARM平台上的移植具有重要的现实意义。
本文主要介绍了将公开源代码的linux3.3.3内核移植到S3C6410(arm1172核)的关键技术分析以及具体的移植过程,建立嵌入式Linux交叉开发环境,移植BootLoader引导程序,配置、编译、移植Linux内核,制作文件系统并对文件系统进行移植到开发板。
我们可以根据内核所支持的文件系统类型制作文件系统本论文选择制作yaffs文件系统并移植。
并且vim,arm-linux-gcc开发环境下设计了一个简单的测试程序。
另外,基于此平台的开发也将使软件缺陷大幅度减少,从而为程序员开发此平台上进行二次开发。
关键字:
linux嵌入式移植内核配置
目录
1绪论3
1.1课题研究的背景、目的和意义3
2嵌入式Linux系统构成和软件开发环境3
2.1嵌入式Linux系统的体系结构3
2.2嵌入式Linux开发软件平台建立3
2.2.1软件开发平台的二种平台的介绍4
3嵌入式Linux的引导BootLoader程序4
4.Linux内核的编译、移植4
4.1Linux内核启动流程4
4.2内核移植的实现5
4.3配置、编译内核7
5文件系统制作9
5.1内核支持YAFFS文件系统10
6测试13
6.1编写简单C程序测试移植的系统13
6.2在开发板执行测试程序13
7结论与展望14
1绪论
1.1课题研究的背景、目的和意义
随着各种芯片技术的发展,各种嵌入式产品也如雨后春笋一般地出现了。
目前,嵌入式产品应用领域涉及移动通信、汽车、医疗、家电等很多领域。
而且,如今的嵌入式硬件的速度和容量越来越接近于PC,因此在这些嵌入式产品上运行操作系统就成为了可能。
一直以来,很多企业花费了巨大成本研发了大量运行在PC上的软件产品。
如果将这些优秀的软件应用在嵌入式系统中,将会成为快速开发嵌入式系统,降低嵌入式产品开发成本,提高软件稳定性和安全性的重要途径。
2嵌入式Linux系统构成和软件开发环境
进行嵌入式操作系统以及驱动程序的移植,需要对目标硬件平台和软件结构有深入的理解。
本章介绍嵌入式Linux系统的体系结构、硬件平台构成和嵌入式软件开发环境。
2.1嵌入式Linux系统的体系结构
除了硬件系统外,嵌入式Linux系统需要有下面三个基本元素:
系统引导程序BootLoader(用于设备加电后的系统定位引导)、Linux微内核(内存管理、程序管理)、初始化进程。
但如果要它成为完整的操作系统并继续保持小型化还必须加上硬件驱动程序、硬件接口程序和应用程序组。
最终可用的嵌入式Linux系统体系结构如表所示:
表2-1嵌入式Linux系统体系结构
应用软件
应用层
BOOTLOADER、LINUXKERNEL、DRIVERS
系统层
嵌入式开发板实验板
(本论文使用SAMSUNGS3C6410)
硬件层
2.2嵌入式Linux开发软件平台建立
软件开发平台是嵌入式开发的关键,嵌入式软件开发平台建立的目的是为了进行BootLoader移植、Linux内核移植以及GUI系统开发。
由于嵌入式硬件平台的存储空间有限、处理器频率较低,很难直接在嵌入式硬件式平台上建立Linux系统、安装嵌入式开发软件,因此只能采用嵌入式交叉开发环境来解决这个问题。
2.2.1软件开发平台的二种平台的介绍
嵌入式Linux系统开发需要一台装有Linux操作系统的PC机,在此机器上运行交叉编译工具,Linux系统采用FC5,具体有以下几种方案:
l)采用VMWare。
2)按通常的方法,在独立的分区上安装Linux操作系统。
但是安装2个系统需要用的grub,需要配置修改启动项,而且删除此Linux操作系统很麻烦。
3嵌入式Linux的引导BootLoader程序
引导BootLoader程序是为了初始化ARM平台上的硬件设备,引导内核,给内核提供ARM平台的硬件参数,还有为操作系统引导根文件系统。
4.Linux内核的编译、移植
内核是操作系统的核心组件。
使用内核的目的是希望以一致的方式管理硬件,以及为用户软件提供高层抽象层。
Linux会驱动设备、管理I/O的存取、调度进程、共享存储空间、管理信号的配送以及处理其他管理工作。
4.1Linux内核启动流程
在移植的调试阶段,在没有在线仿真器的情况下,可以通过板上LED的状态输出或串口输出的调试信息进行错误定位,所以有必要了解一下内核的启动流程,图4-1对此做来解释。
内核在启动的过程中按下图步骤一步一步启动,了解启动的顺序,有利于掌握好内核移植的工作安排过程。
图4-1内核启动流程图
4.2内核移植的实现
在Linux内核移植的初始阶段,应尽可能屏蔽不相关的设备驱动以及内核功能配置选项,使内核支持的选项尽可能的少,构造最小内核。
在确保己经进行的内核移植操作正确的情况下逐步的添加相应的硬件支持和功能支持。
1)Makefile文件介绍
Make是用来自动编译、链接程序的实用工具,Make命令将根据Makefile文件的规则来决定如何编译和连接程序。
Makefile文件描述程序之间的依赖关系,以及提供更新文件的命令。
Makefile文件贯穿内核代码目录,所有Makefile中的CROSS_COMPILE关键字用于指定要进行交叉编译工具链,ARCH关键字用于指定目标平台,所以这里改为:
CROSS_COMPILE?
=arm-linux-
ARCH?
=arm
2)arch/ARM/config.in文件
config.in是配置文件,运行makemenuconfig命令时出现的菜单就是config配置的。
config文件决定了menuconfig菜单的内容。
把使用的平台加在需要的地方,这样在配置Linux内核时就能够选择是否支持新添加的平台了。
3)arch/arm/Makefile
根目录下的Makefile,指定了交叉编译器arch/ARM/Makefile更具针对性,系统启动代码是通过这个文件产生的。
在内核添加对S3C2410处理器的支持。
其代码如下:
ifeq(#(CONFIG_ARCH_S3C2410),y)
TEXTADDR=0xC0008000
MACHINE=s3c2410
endif
TEXTADDR为内核解压的起始地址,决定内核起始运行地址,即内核映像应下载的位置,根据开发板的电路设计,这个地址是OxC0008000。
这里0xC0008000的含义是,从地址0xC0000000开始,总共32M字节的空间。
4)compressed/Makefile
添加对本文开发板的支持。
通过这个文件,将从vmLinux创建一个压缩的vmlinuz镜像。
ifeq(#(CONFIG_ARCH_S3C6410),y)
objs+=head-s3c6410.o
Endif
5)compressed/head_s3c641O.S
这个文件是依据S3C6410的芯片手册编写的,主要用来初始化处理器。
主要完成到对系统主要模块的配置、运行环境的建立、系统时钟、MMU等模块的配置等。
6)arch/arm/kernel/Makefile
Makefile的作用是根据配置的情况,构造出需要编译的源文件列表,然后分别编译,并把目标代码链接到一起,最终形成Linux内核二进制文件。
7)debug_armv.S
在此文件中定义串口打印函数,关闭全部外围设备的时钟,从而保证系统正确运行。
8)setup.c
这个文件中一个非常重要的函数是setup_arch。
这个函数用来完成和体系相关的初始化工作,比如对物理内存结构meminfo的初始化。
这个结构在内存初始化中有很重要的作用。
其中,nBanks指定了内存块的数量,bank指定了每块内存的范围。
在这里用来指定块开始和长度的PAGE_OFFSET和MEM_SIZE,都定义在includelasm-ARM/arch-s3c6410/memory.h中,PAGE_OFFSET是内存的开始地址,往后函数就将根据meminfo进行内存结构初始化。
9)arch/ARM/mach-s3c6410
发布的代码只对处理器的基本信息提供了支持,有关开发板的外设,例如USB、电源管理等都需要自己添加。
4.3配置、编译内核
编译内核之前首先要配置内核,配置内核的命令包括:
1)makes3c6400_defconfig
这种方法将配置选项以命令行的形式列出,会恢复内核的默认配置。
如果己经存在有.config的配置文件,那么就会以该文件中的配置选项作为默认配置设置。
2)makemenuconfig
与makeconfig类似,不过这种方法的显示方式是以菜单模式进行显示的。
Makexconfig使用鼠标选择对应的选项,makemenuconfig使用空格选择相应的选项,每个选项前的括号可以是〔〕、<>和()。
中括号中要么是空格,要么是*,尖括号里可以是空格、*和M;小括号里的内容是在所提供的几个选项里选择一个。
空格表示不将该功能编译进内核,*表示将该功能编译进内核,M表示将该功能编译成模块,在需要时将其动态插入到内核。
3)makexconfig(不推荐使用)
用于XWindow下的配置,将配置选项以图形菜单的形式显示出来。
在进行相应的配置的时候,有三种方式选择:
Y:
将该功能编译进内核;
N:
不将该功能编译进内核;
M:
将该功能编译成可译载需要时动态插入到内核的模块。
makexconfig使用鼠标选择对应的选项,makemenuconfig使用空格选择相应的选项,每个选项前的括号可以是[]、<>和()。
中括号中要么是空格,要么是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arm 平台 移植 linux 操作系统 大学 论文