概述 本文的目的在于帮助AT91SAM9g20(以下简称为SAM9g20)的软件开发工程师从零开始,为SAM9g20建立Linux运行环境。 在进行SAM9g20 Linux开发之前,需要建立开发环境。 本文选用的目标板为:timll SBC6020上。 本文涉及到的一些linux基础知识,若无相关介绍,则请自行至网络搜索补充。 本文的部分内容来源于网络。 SAM9g20 Linux的基本组成: · U-boot · Kernel · Rootfs · Bootstrap在Windows PC上编译,其余的在Linux PC上编译。 各部分组成如下图: 开发环境 · 一台Linux PC(可以是虚拟机,以下简称为Linux开发机) · 可以安装主流的Linux发行版本,比如 ubuntu, Fedora等等。在此推荐用ubuntu-10.4。 · ubuntu-10.4标准的发行版本可能并没有包括所有开发中需要的组件。开发过程中可以根据需要通过网络安装。 · 如果采用虚拟机方式,可以选择虚拟机软件如 Virtual PC, VMware, VirtualBox等。在此推荐用VMware v6.5.2 · 安装完成后需要”打通”虚拟机与宿主机的共享通道,可以使用Linux的samba或者使用虚拟软件提供的第三方工具。 · 可用的网络 · 基于两个原因: · 1. 开发初期使用NFS会比较方便。 · 2. Linux开发机安装组件。 · 开发机上所需要的基本程序开发工具 · 比如gcc( GCC-HOWTO)等。 · 目标板所用的交叉编译器 · 所谓交叉编译器,就是指在开发机上运行,编译结果在另外架构的平台上运行。 · 这里的交叉编译器指的就是ARM交叉编译器。编译器在Linux x86上将源代码编译成ARM体系结构适用的可执行文件。 · Linux下可以使用的ARM交叉编译器很多,经过测试,推荐使用arm-linux-gcc 4.3.2工具。 · 交叉编译工具的搭建,详见: (链接) · 目标烧写工具 · 有了编译的输出,还需要编程工具将其固化到SAM9g20的板子上运行。这个过程就是编程的过程。 · 由于SAM9g20提供了SAM-BA工具,所以最基本的方式就是通过USB口利用SAM-BA软件下载。 SAM9g20 Linux 启动流程 本文主要讲述从Data Flash上启动的过程,NAND flash启动,NOR Flash启动请参考相关文档。 1. BOOTROM - 检查一个有效的Bootstrap是在FLASH中,如果Bootstrap存在,则将它加载到内部SRAM中,并将控制权交给Bootstrap。 2. AT91Bootstrap - 开始分管硬件配置,从FLASH当中加载U-Boot程序到SDRAM,并将控制权交给U-boot。 3. U-boot - 它是一个引导加载程序,在从FLASH,网络,USB等设备中加载内核到SDRAM中,并将控制权交给内核。 4. Linux kernel - 操作系统内核。 5. Rootfs - 根文件系统。 1. 处理器复位,根据BMS引脚的设置,选择从内部ROM启动(NOR Flash启动方式不在本文的讨论范围)。 2. BOOTROM开始运行,初始化CPU和内存控制器,比如DBGU,USB device port。它还建立了为内核使用的格式是一致的跨平台的内存映射,然后跳转到Bootstrap运行。 3. 如果Bootstrap存在,ROMBOOT将其复制到内部SRAM并跳转到Bootstrap运行。如果没有,则等待DBGU或者USB口的连接,这部分内容请参考SAM-BA手册。 4. Bootstrap将初始化一些设备,主要是Data Flash与SDRAM,然后从Data Flash特定位置(在Bootstrap源代码中指定)将U-boot复制到SDRAM的指定位置,然后跳转到U-boot开始位置运行。 5. U-boot根据环境变量(bootcmd)加载Linux Kernel的image。加载完成后跳转到Kernel运行,并传递启动参数(bootargs)。 6. Linux Kernel开始运行,init读取/ etc / inittab文件,以执行相应的运行从/ etc / rc.d中,其中一开始就执行初始化脚本和其他网络系统服务控制脚本,加载相关驱动,并加载rootfs。 Data Flash Boot Mem Map *内部集成FLASH的AT91系列,Bootstrap存储于AT91内部FLASH当中,而不存储于DATAFLASH或NANDFLASH中。 Nand Flash Boot Mem Map *内部集成FLASH的AT91系列,Bootstrap存储于AT91内部FLASH当中,而不存储于DATAFLASH或NANDFLASH中。
文件历史记录 版本 编制 日期 更改内容 ----------------------------------------------------------------------------------- V1.0 抵岸科技 2010-6-26 首发 V1.1 抵岸科技 2010-7-23 更改:*Bootstrap存储于AT91内部FLASH当中... |
ARM AT91SAM9260 移植Linux-2.6.30流程
最新推荐文章于 2020-12-24 05:48:11 发布