(三)U-Boot在AT91RM9200上的移植及启动分析

本文详细分析了U-Boot在AT91RM9200上的启动过程,分为三个阶段:汇编程序初始化、硬件配置与内核引导。探讨了U-Boot的移植方法,包括修改配置文件、初始化硬件、设置环境变量。通过bootm命令引导Linux内核启动,并介绍了如何在目标板上进行网络环境变量设置、内核映像加帧头以及加载到FLASH中的步骤。该移植成功为后续驱动和应用开发奠定了基础。
摘要由CSDN通过智能技术生成
 1.引 言

U-Boot(Universal Boot Loader)是遵循GPL条款的开放源码项目,他支持多种体系结构的上百种开发板,并且支持多种嵌入式操作系统内核,具有较高的可靠性和稳定性,已经成为功能最多、灵活性最强并且开发最积极的开放源码BootLoader。作为通用的BootLoader,U-Boot可以方便地移植到其他硬件平台上。

本文基于AT91RM9200的嵌入式目标板和U-Boot1.1.2源码资源,分析了U-Boot的启动过程,介绍了U-Boot的移植方法和具体操作,最后讲述如何引导内核启动。

2. U-Boot启动分析

在具体移植之前,先来了解一下U-Boot启动过程。U-Boot启动过程可以分成3个阶段。

(1)在FLASH中运行汇编程序,进行基本硬件初始化,并将FLASH中的启动代码复制到SDRAM中,同时创造环境准备运行C程序。

汇编程序start.s是U-Boot启动后执行的第一个程序,他位于CPU/AT91RM9200中,链接脚本Board/AT91RM920DK/U-Boot.1ds决定U-Boot的入口函数位于该程序中,上电后,处理器首先执行该程序,具体工作流程如图1所示。

(2)跳转到SDRAM中执行,对硬件进行初始化,并向显示终端输出启动信息。

start_armboot是U-Boot执行的第一个C语言函数,他位于lib_arm/board.c中,主要完成系统初始化工作,进入主循环,处理用户输入的命令。具体工作流程如图2所示。

全局变量结构体gd用来

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值