AM335x的linux内核移植

  • 格式:docx
  • 大小:103.96 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要

随着时代的发展,人们的生活越来越离不开电子产品,特别是嵌入式电子产品。嵌入式的发展越来越好,得益于硬件的发展和各类嵌入式系统的进步。在众多的嵌入式系统中,最为让人熟悉的就是linux了。所以,这次的课题就以linux 内核为主题,使用的开发板是TI的beaglebone white。

关键词:Linux移植,嵌入式,arm

目录

1.嵌入式系统的概念 (4)

1.1嵌入式系统定义 (4)

1.2ATMEL9200开发平台 (4)

2.BootLoader简介 (4)

2.1 Boot Loader概念 (4)

2.2 Boot Loader启动过程 (5)

2.3 常用的Bootloader…………………………………………… .5

2.4 u-boot移植…………………………………………………… .5

3.嵌入式linux操作系统 (7)

3.1 嵌入式Linux (7)

3.2 嵌入式Linux的特点 (7)

3.3 从Linux到嵌入式Linux (8)

4. 基于BeagleBone的嵌入式linux系统移植 (9)

4.1 移植概念 (9)

4.2 Linux与移植相关内核结构 (9)

4.3 嵌入式Linux 操作系统移植 (9)

5 文件系统构建 (9)

6 把u-boot、linux内核、文件系统下载到SD卡中 (11)

7启动开发板,链接pc,查看效果 (11)

8 参考文献 (13)

1.嵌入式系统的概念

1.1嵌入式系统定义

在信息科学技术爆炸式增长的今天,嵌入式系统早已经融入了我们生活的方方面面。美国汽车大王福特公司的高级经理曾宣称,“福特出售的‘计算能力’已超过了IBM”。这并不是一个哗众取宠或者夸张的说法,在真正感受这句话的震撼力之前,让我们先了解一下嵌入式系统(Embedded Systems)的定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。举例来说,大到油田的集散控制系统和工厂流水线,小到家用VCD机或手机,甚至组成普通PC终端设备的键盘、鼠标、软驱、硬盘、显示卡、显示器、Modem、网卡、声卡等均是由嵌入式处理器控制的,嵌入式系统市场的深度和广度,由此可见一斑,尽管如此,它的市场价值也许仍然超过了您的想象:今天,嵌入式系统带来的工业年产值已超过了1万亿美元。

1.2BeagleBone开发平台

BeagleBone 是仅有信用卡大小的低成本Linux 计算机,它与Internet 相连并运行高级操作系统,例如Android 4.0 和Ubuntu Linux。BeagleBone 包含大量I/O 并使用TI Sitara ™AM335x ARM® Cortex™-A8 处理器为实时分析提供处理能力。要进一步进行定制和扩展,可以使用Cape 插件板以轻松扩展BeagleBone 的功能。

BeagleBone 具有广泛的开源软件支持选项,包括社区支持的Ångström Linux 发行版、Ubuntu或多个其他Linux 发行版。它还支持TI Android DevKit和TI Sitara Linux EZ SDK。TI 支持的两个操作系统使您可以快速入门并操作,只需进行简单的设置即可获得开箱即用体验。它们包括用于启动演示、基准和应用的GUI。此外,您可以快速开始开发您自己的应用。还通过嵌入的Adeneo 支持Windows Embedded Compact 7。

BeagleBone 是一个由社区支持的平台,可用作构建更完整系统的基础和社区软件基线的目标。作为一种替代方案,德州仪器(TI) 直接支持AM335x 入门套件或AM335x 评估模块。

2.BootLoader简介

2.1 Boot Loader概念

简单地说,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对Boot Loader 归纳出一些通用的概念来,以指导用户特定的Boot Loader 设计与实现。

2.2 Boot Loader启动过程

系统上电后,先执行第一阶段代码,进行相应的初始化后,将Blob 第二阶段代码复制到RAM 地址bloc_abs_base,然后跳转到第二阶段开始执行。在第二阶段中,从汇编跳转到 C 的Main() 函数,继续进行如下工作:

外围的硬件初始化(串口,USB 等);

将Flash 中的kernel 加载到DRAM 的kernel 区域;

将Flash 中的ramdisk 加载到DRAM 的ramdisk 区域;

根据用户选择,进入命令行模块或启动kernel。

2.3 常用的Bootloader

(1)Blob

Blob是Boot Loader Object的缩写,是一款功能强大的Bootloader。它遵循GPL,源代码完全开放。Blob既可以用来简单的调试,也可以启动Linux kernel。Blob最初是Jan-Derk Bakker和Erik Mouw为一块名为LART(Linux Advanced Radio Terminal)的板子写的,该板使用的处理器是StrongARM SA-1100。现在Blob 已经被移植到了很多CPU上,包括S3C44B0。

(2)Armboot

Armboot是一个bootloader,是为基于ARM或者StrongARM CPU的嵌入式系统所设计的.它支持多种类型的Flash;允许映像文件经由bootp . dhcp . tftp从网络传输;支持从串口线下载S-record或者binary文件;允许内存的显示及修改;支持jffs2文件系统等。

(3)u-boot

U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。

2.4 u-boot移植

因为TI是一家非常负责的公司,所以它的官网上有非常详细的移植方法文档和工具,这给我们开发人员带来了极大的便利。以下的移植都是参考Ti提供的技术文档的。

我们现在Ti的官网查找对应的资料。全英文的,看得有点吃力。下载Ti提供的在linux 地下进行开发的工具ti-sdk-am335x-evm-07.00.00.00,然后安装即可得到。