基于ARM9的Linux操作系统的移植实习报告.doc

上传人:h**** 文档编号:101749 上传时间:2018-07-06 格式:DOC 页数:25 大小:1.44MB
下载 相关 举报
基于ARM9的Linux操作系统的移植实习报告.doc_第1页
第1页 / 共25页
基于ARM9的Linux操作系统的移植实习报告.doc_第2页
第2页 / 共25页
基于ARM9的Linux操作系统的移植实习报告.doc_第3页
第3页 / 共25页
基于ARM9的Linux操作系统的移植实习报告.doc_第4页
第4页 / 共25页
基于ARM9的Linux操作系统的移植实习报告.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、嵌入式系统开发与应用工程实习 (报告 ) 第 1 页 25 页 1 1 模块功能 1.1 课题背景 嵌入式操作系统的发展经历了几个比较明显的阶段,最先是无操作系统的嵌入算法阶段,是以单芯片为核心的可编程控制器形式的系统 ; 然后发展为以嵌入式 CPU为基础、以简单操作系统为核心的嵌入式系统 ; 之后便是通用的嵌入式实时操作系统阶段,是以嵌入式操作系统为核心的嵌入式系统。这一阶段嵌入式操作系统的主要特点是:兼容性好 、 内核精小、效率高,并且具有高度的模块化和扩展性 ; 现在正在迅速发展的基于 Internet 为标志的嵌入式系统,是嵌入式系统的趋势 。 随着 Internet 的发展以及 In

2、ternet 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与 Internet的结合将代表着嵌入式技术的真正未来。 随着通信网络技术和集成电路设计的高速发展,嵌入式系统已成为了 T 业的一个焦点。嵌入式系统大量的应用于自动控制、工业生产、军事技术和家用消费类数码设备上。 PC 已经从高速增长进入到平稳发展的市场顶峰时期,单纯由 PC 带领的电子产业蒸蒸日上的时代已经成为历史,现在的电子产业的发展需要寻找一个新的发展点。人们提出了“后 PC 时代”的概念,计算机无所不在,它渗透到生活和工作的方方面 面。后 PC 时代的绝大多数的计算机是以非计算机的形式出现的,例如智能手机、个人数字助理

3、、路由器、电视机等等。这些设备的大多数是以嵌入式系统的形式存在。 开发中国自主产权的嵌入式处理器和嵌入式操作系统,对于我们国家的民族 IT 业来讲,将有十分重要的战略意义。我们应该抓住机遇,组织力量,重点出击,取得主动权。1.2 课题意义 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它是计算机技术、通信技术、半导体技术、微电子技术 、语音图像数据传输技术等先进技术相结合后的产品 。嵌入式系统一般包括嵌入式微处理器,外围硬件设备,嵌入式操作系统,和应用程序等几个部分。 数字时代的特征越来越明显,手持智能终

4、端蓬勃发展。这些都给予了嵌入式操作系嵌入式系统开发与应用工程实习 (报告 ) 第 2 页 25 页 2 统以新的契机,尤其是 Linux操作系统的发展。随着 Linux 2.6内核的迅速发展,嵌入式 Linux在嵌入式领域的应用越来越广泛。 Linux具有源代码开放、内核稳定高效、软件丰富、支持处理器结构和硬件平台类型多、可定制性好,可移植性高等特点。 本课题主要研究 在 以高性能的 32位 ARM9处理器为核心 的 JXARM-2410硬件开发平台上移植嵌入式 Linux操作系统与文件系统 以及相关的 设备驱动 等 。 在 嵌入式移植 过程中,还需要移植合适的引导装载程序( Boot Loa

5、der), 引导装载程序和系统硬件紧密相关, 它们不仅与处理器的体系结构有关,而且还 需要根据系统的硬件配置对引导装载程序进行配置,主要是设置处理器参数、内存地址分配、内存空间的映射、加载操作系统内核等。 Linux内核的配置、移植,将主要是修改内核源代码树中各个文件夹下的配置文件,合理组织新的驱动程序,根据配置进行条件编译、连接,最终生成内核映像文件。根 文件系统负责以文件的方式管理系统的各种资源。 1.3 开发平台简介 1.3.1 硬件环境 硬件: JXARM-2410 嵌入式实验箱, PC 机( Pentium500 以上,硬盘 10G 以上) 1.3.2 软件环境 软件: PC 机操作

6、系统 Redhat Linux9.0, Linux 开发环境 1.4 使用工具简介 1.4.1 JXARM-2410 嵌入式实验箱 介绍 硬件组成 : JXARM9-2410-3 教学系统采用统一的豪华实验箱包装,除 ADT1000 仿真器外,所有配件均放置于实验箱之内,所包含配 件如下: 1、 JXARM9-2410-3 主板一块(内置简易 JTAG 仿真器); 2、 ADT1000 仿真器一套(为可选配置); 3、 320 X 240 256 色彩色 LCD 显示器一块(带触摸屏); 4、 4 X 4 键盘一套; 5、 USB 连接电缆一条; 6、 PC 并口延长电缆一条; 7、 RS-2

7、32 串口通讯线一条; 8、直连网线一根; 嵌入式系统开发与应用工程实习 (报告 ) 第 3 页 25 页 3 9、软件光盘一张; 10、实验指导书一本; 11、 GPRS 天线一根; 12、 GPS 天线一根 ; 软件组成 : JXARM9-2410-3 软件均保存在随箱附带的软件光盘中,包含如下软件: 1、实验源程序; 2、实验程序模板; 3、 ADT IDE for ARM; 4、实验用工具软件及驱动程序。 1.4.2 Linux 开发环境 介绍 嵌入式 LINUX 系统的基本元素:引导工具 ,Linux 微内核 ,初始化进程硬件驱动程序 ,应用程序 ,文件系统 ,协议栈 . Linux

8、 能够支持 x86、 ARM、 MIPS、 ALPHA、 PowerPC 等多种体系结构, 目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的 CPU 上。 Linux 有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新的硬件技术,甚至可以在没有存储管理单元的处理器上运行,这些都进一步促进了 Linux 在嵌入式系统中的应用。 Linux 内核的高效和稳定已经在各个领域内得到了大量事实的验证, Linux 的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得

9、 Linux 系统内 核可以裁剪得非常小巧,很适合于嵌入式系统的需要。 Linux 是开放源代码的自由操作系统,它为用户提供了最大限度的自由度。由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。 Linux 的软件资源十分丰富,每一种通用程序在 Linux 上几乎都可以找到,并且数量还在不断增加。在 Linux 上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件作为原型,在其上进行二次开发。 2 基础知识 2.1 Linux 内核的移植 及根文件系统 Linux 是一 种很受欢迎的操作系统,它与 Unix 系统兼容,开放源代码。 嵌

10、入式系统开发与应用工程实习 (报告 ) 第 4 页 25 页 4 Linux 内核的移植可以分为板级移植和片级移植。对于 Linux 发行版本中已经支持的CPU。通常只要针对板级硬件进行适当的修改即可,这种移植叫做板级移植;而对于 Linux发行版本中没有支持的 CPU,则需要添加添加相应 CPU 的内核移植,这种移植称为片级移植 2.1.1 Linux2.6 内核新特性 ( 1) Linux2.6 内核吸收了一些新技术,在性能、可测量性,支持和可用性方面不断提高。使得新内核支持更多的体系结构,处理器、总线、接口和设备,简化扩 展添加新设备和子系统的支持。 ( 2) Linux 2.6 版本的

11、 Linux 内核使用了由 Ingo Molnar 开发的 O(1)调度算法,它在高负载的情况下极其出色,并且对多处理器调度有很好的扩展。 ( 3)它采纳了内核抢占的补丁,大大减小了用户交互,多媒体等应用程序的调度延迟。 ( 4) 新内核重写了线程框架,它基于一个 1: 1 的线程模型,能够支持 NPTL(Native Posix Threading Library)线程库, NPTL 线程库解决了传统的 Linux 线程库存在的问题,对系统有很大性能的提升。 ( 5)相对于 Linux 2.4, Linux2.6 对文件系统的支持在很多方面都有很大的改进,关键变化在于对扩展属性( exten

12、ded attributes)以及 POSIX 标准的访问控制的支持,并且重写了对 NTFS 文件系统的支持。 ( 6)新内核添加了新的系统声音 ALSA(Advanced Linux Sound Architecture),新的声音体系机构支持 USB 音频和 MIDI 设备,全双工重放等。 此外新内核最值得关注的变化是创建了一个统一的设备模型。这个设备模型通过维持大量的数据结构囊括了几乎所有的设备结构和系统,从而改进 了设备的电源管理和设备相关的任务管理。 2.1.2 Linux 内核源码结构 Linux 的内核源代码非常庞大,并且随着版本的发展不断的增加。所以它采用了目录树结构,并且使用

13、 Makefile 组织配置编译。 Linux 内核顶层目录的 Makefile 是整个内核配置编译的核心文件,负责整个组织目录树中子目录的编译管理。 内核源码顶层有许多子目录,分别组织各种内核子系统和文件。下面我们先把认识一下这些顶层目录。 arch/ 存放体系结构相关的代码,如 arch/i386,arch/arm 等 drivers/ 各种设备驱动 程序,如 drivers/char, drivers/block 嵌入式系统开发与应用工程实习 (报告 ) 第 5 页 25 页 5 Documentation/ 内核文档 fs/ 文件系统,例如: fs/ext3,fs/jffs2 等 in

14、clude/ 内核头文件 init/ Linux 初始化 ipc/ 进程间通信的代码 kernel/ linux 内核核心代码 lib/ 各种库子程序 mm/ 内存管理代码 net/ 网络支持代码,主要是网络协议 scripts/ 内部或外部使用的脚本 usr/ 用户的代码。 如图 2-1 所示为本实验系统所采用的实验环境以及开发流程。在主机的 RedHat Linux 操作系统下安装 Linux 发行包以及交叉编译器 arm-linux-gcc。然后对 Linux 进行配置 (make menuconfig)并选择适合本实验系统的相关配置,配置完成后进行编译生成 Linux 映像文件zIma

15、ge。然后通过 u-boot 的 tftp 命令将该文件下载到目标板并执行。 图 2-1 JXARM9-2410 Linux 内核开发流程 嵌入式系统开发与应用工程实习 (报告 ) 第 6 页 25 页 6 2.2 嵌入式 Linux 系统的软件开发环境 软件开发平台是嵌入式开发的关键,由于嵌入式硬件平台的存储空间有限、处理器频率较低,很难直接在 嵌入式硬件式平台上建立 Linux 系统、安装嵌入式开发软件,因此只能采用嵌入式交叉开发环境来解决这个问题。通过建立开发环境我们才能更方便的进行Boot Loader 移植、 Linux 内核移植以及 GUI 系统开发等。 2.2.1 交叉开发环境

16、由于嵌入式系统的硬件资源的局限性,在嵌入式系统的开发过程,通常都要借助于交叉开发环境,这样我们可以在开发主机上安装开发工具,编辑,编译目标的引导程序,内核和文件系统,然后在目标板上调试运行。 交叉开发方式的好处是:一方面开发者可以在熟悉的主机环境下进行程序开发;另外一方面可 以真实地在目标板上调试运行程序,可以避免受到目标板硬件的限制。 2.2.2 目标板与主机之间的连接 目标板与主机之间的连接有串口,以太网接口, USB 接口以及 JTAG 几口等连接方式。 ( 1)串行通讯接口。常用 9 针串口和 25 针串口。通过串口可以作为控制台,向目标板发送命令,显示信息;也可以通过串口传送文件以及

17、调试内核及程序。通常串口设备的驱动实现比较简单, 缺点是通讯网络速率慢,不适合大数据量传输。 ( 2) 以太网接口。以太网高度灵活,相对简单,易于实现等特点,是当今最重要的一种局域网组网技术。网络接口一般 采用 RJ-45 标准插头, PC 机上一般都配置 10M/100M以太网卡,通过以太网连接和网络协议,可以实现快速的数据通讯和文件传输。 缺点是驱动程序实现比较麻烦。 ( 3) USB 接口。 USB( Universal Serial Bus) 接口,支持热拔插,具有即插即用的优点,支持热拔插,通讯速率也很快。 缺点是 USB 设备分主从端,两端分别要有不同的驱动程序支持。 ( 4) J

18、TAG 等接口。 JTAG 是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路测试接口,通过 JTAG 测试工具对芯片的核进行测试。 嵌入式系统开发与应用工程实习 (报告 ) 第 7 页 25 页 7 目前大多数比较复 杂的器件都支持 JTAG 协议,如 ARM, DSP, FPGA 器件等,标准的 JTAG 接口是四线, TMS, TCK, TDI, TDO,分别为测试模式选择,测试时钟,测试数据输入和测试数据输出等。 2.2.3 文件传输 主机端编译的 Linux 内核映像必须下载到目标板上执行,通常是由目标板的引导程序负责把主机端的映像文件下载到内存中。根据不同的连接方式,可以有多种

19、文件传输方式。 ( 1) 串口传输方式。主机端通过 kermit、 minicom、或者 Windows 超级终端等工具通过串口发送文件,在发送之前需要配置数据传输率和传输 协议,目标板端也要做好接受准备。 ( 2) 网络传输方式。网络传输方式一般采用 TFTP( Trivial File Transport Protocol)协议。 TFTP 协议是一种简单的网络传输协议,基于 UDP 传输,没有传输控制,是一种不可靠的传输协议。但是其协议简单,容易实现。在使用 TFTP 传输之前,需要驱动目标板以太网接口并且配置 IP 地址。 ( 3) USB 接口传输方式。 USB 接口方式需要在主机端

20、安装驱动程序,识别目标板设备后,可以传输数据。 ( 4) JTAG 接口传输方式。 JTAG 仿真器与主机之间的连接通常都是 串口、并口、以太网接口或者 USB 接口。传输速率会受到主机连接方式的限制。 ( 5) 移动存储设备。如果目标板上有软盘、 CDROM、 USB 盘等移动存储介质,就可以制作启动盘或者复制到目标板,从而引导系统。 2.2.4 建立交叉开发平台的几种方案 要进行嵌入式 Linux 系统开发,我们需要在一台装有 Linux 操作系统的 PC 机,在此PC 机上运行交叉编译工具, Linux 采用 RedHat9.0,具体有以下几种方案 : ( 1)采用 VMWare。 VM

21、Ware 是一个可运行在 Windows 平台的 “ 虚拟 PC” 软件,它可以在一台机器上 同时运行二个或更多个 Windows、 DOS、 Linux 系统。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据。 VMWare 主要的功能有 : 不需要分区或重开机就能在同一台 PC 上使用两种以上的操作系统;完全隔离并且保护不同 OS 的操作环境以及所有安装在 OS 上面的应用软件和资料;不同的 OS 之间还能互动操作,包括网络、周边、文件分享以及复制贴上功能;有复原( Undo)功能;能够设定并且随时修改操作系统的操作环境,如:内存、磁碟空间、周边设备等等。 嵌入式系统开发

22、与应用工程实习 (报告 ) 第 8 页 25 页 8 ( 2)使用 Cygwin。 Cygwin 是一个在 Windows 平台上运行的 Unix 模拟环境,是 Cygnus solutions公司开发的自由软件。它对于学习 Unix/Linux操作环境,或者从 Unix到 Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用 GNU 具集在 Windows 上进行 嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin 产生了兴趣。 ( 3)在硬盘上的独立分区上安装 Linux 操作系统。 2.2.5 安装 Linux 操作系统 为了开发方

23、便,我们选择了其中较为熟悉的的第一种和第三种方案,对于内存不小于512M 和主频较高的 PC 机适合使用 VMWare, VMWare 默认使用 PC 机一半的内存,内存较小PC 机将会运行很慢,所以配置相对较低的 PC 机不适合采用此方案。因为我们所在的网络问题,我们这里主要采用第一种方案进行平台研究。 在 VMVare 上安装 Linux 与普通装机大同小异,即可以设定从物理光盘安装,也可以采用使用映像 ISO文件安装,这里我们使用 ISO映像文件进行安装,安装光盘为 RedHat9.0。下图为 CD-ROM 设置界面 设置好 ISO 映像文件后,点击开始按钮,就可以安装了,如果对 Lin

24、ux 系统不是很熟悉,最好选择完全安装,否则在交叉编译过程中,可能会提示缺少文件。完全安装会需要较长时间,所以这里我们自定义安装,大概二十分钟即可安装完成。 注: 安装虚拟机 详细步骤 下载 VMWare 解压后根据提示正 确 安装 VMWare 到硬盘中 (1). 建立虚拟机 A.用鼠标左建双击桌面中的 “VMware workstation“图标 ,运行虚拟机 B. 建 立 一 台 虚 拟 机 。 点 击 “FILE( 文件 )” -“NEW( 新建 )” -“NewVirtual Machine( 新建虚拟 机 )” ,弹出虚拟机创建菜单。 C.根据向导一步一步地创建虚拟机,首先选择安装

25、方式是 “TYPICAL( 典型 )” 还是 “CUSTOM( 自定义 )” 安装。 我这里选择典型。 D.因为这里是用于安装 REDHAT, 在不晓得安装 Lunix操作系统版本时候我们选择“ RED HAT LINUX”, 选择 “ LINUX“ ,点击下一步。 E.在 Virtual machine name(虚拟机名字 )中输入你想建立的虚拟机的名字 F.在 Location(位置 )中选择虚拟机的安装位置。因为会在虚拟机中安装操作系统 和应用软件,所以建议将虚拟机安装在一个有较大空间的磁盘分区中 嵌入式系统开发与应用工程实习 (报告 ) 第 9 页 25 页 9 G.如果你的电脑连接

26、在网络中,那么选择一个合适的网络环境。我这里选择 Use bridged net-working(使用路由网络 ) H.点击 finish,返回 VMWARE 主界面, LINUX 虚拟机就建好了。 ( 2) . 安装操作系统 A. 选 中 LINUX 虚拟机,点击 VMWARE 工具栏中的 Power ON 按钮,启动 LINUX 虚拟机 B.然后插入 REDHAT7.3 光盘,虚拟系统根据你选择的安装方式开始安装。 ( 3) .从硬盘安装 REDHAT9.0 如果你认为从光驱中安装比较费时间,又不方便,那你可以将光盘文件转换成 ISO文件拷 贝在硬盘中,然后从硬盘安装。 A.点击 Sett

27、ings(设置 )-Configuration Editor(编辑配置 )进入设置界面对虚拟机进行 配置。 B.在 Hardware(硬件 )选项中,选择 DVD/CD-ROMIDE 1:0项,在左边的选项中进行设置。 C.在 Connection(连接 )选项选中 Use ISO image(使用 ISO 镜像包 ),然后点击Browse(预览 ) 按钮,找到放置 ISO 文件的目录。 D.在打开对话框中选择 RedHat.ISO 文件,然后点击打开,将 ISO 文件打开 (如果第一个 ISO 文件安装完后,计算机提示你插入第二张光盘,则在此选择 RedHat.ISO,如此类推 ) E.在

28、Virtual device mode(虚拟设备模式 )选择虚拟设备的接口方式,选择 IDEO: 0项 然后点击 OK 返回到 虚拟机界面下,点击 Power ON 就可以直接从硬盘安装操作系统了 安装完操作系统后,我们需要安装 VMware Tools,把 CD-ROM 设置为 VMware 的安装路径(默认为 “C: Program FilesVMwareVMware Workstation” )下的 Linux.iso 文件,进入 Linux 操作系统,运行以下命令 我们可以看到有两种格式的安装包,我们选择 rpm 格式,安装过程如下 如果系统不支持 rpm 格式安装,可以使用 tar

29、格式,由于我们挂载的 ISO 文件是只读嵌入式系统开发与应用工程实习 (报告 ) 第 10 页 25 页 10 的,所以需要把安装包复制到工作 目录,然后解压安装。 安装 VMware Tools 有助于我们在 windows 和 Linux 系统下共享文件,打开 VMware 下新安装的 Linux 操作系统的设置菜单,点击 option 选项,在 Shared Folders 中设置共享目录,进入 linux 系统的 /mnt/hgfs 目录下,看有没有我们共享的文件,如果有,说明设置成功了。 2.3 配置主机的 TFTP 服务 TFTP 全称为 Trivial File Transfer Protoeol 及简单文件传输协议。 检查宿主机端的 TFTP 服务是否已经开通 ,,开通宿主机上的 TFTP 服务,对于 Redhat 9.0,在宿主机上执行 : #setup 选择 System services: 图 2-2 将其中的 tftp 一项选中,并去掉 ipchains 和 iptables 两项服务。然后还要选择Firewall configuration,选中 No firewall。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。