AT91RM9200的U-BOOT启动烧写过程

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
 

关于启动过程

1. 一开始令BMS=1(拔掉跳线),则系统从片内ROM中启动。内部启动程序初始化调试串口和USB设备接口从外部载入启动程序。在Windows平台下,启动超级终端,发送文件loader.bin和u-boot.bin到SDRAM,成功启动u-boot.

2. 启动了u-boot后就利用u-boot的功能,发送boot.bin和u-boot.gz到SDRAM,然后再拷贝到FLASH,那么FLASH里面就固化了启动程序boot.bin和u-boot.gz。

3. 烧写FLASH的过程如下:

U-Boot>protect off all (注:清除Flash全部块的写保护)

U-Boot>erase all (注:擦除Flash全部块的内容)

U-Boot>loadb 20000000 (注:用KERMIT协议接收boot.bin到SDRAM)

U-Boot>cp.b 20000000 10000000 5fff (注:拷贝boot.bin到Flash)

U-Boot>loadb 21000000 (注:用KERMIT协议接收u-boot.gz)

U-Boot>cp.b 21000000 10010000 ffff(注:拷贝u-boot.gz到Flash)

U-Boot>protect on all (注:设置Flash全部块的写保护)

4. 这时,插上跳线,令BMS=0,然后重启,那么系统就从FLASH启动了,启动u-boot.

5. 启动了u-boot之后,就可以利用它来下载内核文件zImage和Ramdisk.gz映象文件到SDRAM,然后用命令启动linux。

6. 在linux下,利用u-boot的工具程序mkimage将内核映象文件zImage.gz(通过命令:gzip -9 zImage>zImage.gz 压缩成zImage.gz)和Ramdisk.gz映象文件封装成u-boot格式的映象文件:uImage和uramdisk,然后将他们一起烧写入FLASH,然后就可以实现从FLASH启动u-boot,再启动linux。

7. 烧写完FLASH之后一定要插上跳线,即令BMS=0,使系统再重启动时从FLASH启动。
8. 系统从FLASH启动时,系统先启动boot,然后解压缩u-boot.gz,然后启动u-boot.

再进一步解析:

      uboot是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以从http://sourceforge.net/projects/u-boot 下载。
       在9200上,为了启动uboot,还有两个boot软件包,分别是loader和boot。分别完成从sram和flash中的一级boot。其源码可以从atmel的官方网站下载。
       我们知道,当9200系统上电后,如果bms为高电平,则系统从片内rom启动,这时rom中固化的boot程序初始化了debug口并向其发送'c',这时我们打开超级终端会看到ccccc...。这说明系统已经启动,同时xmodem协议已经启动,用户可以通过超级终端下载用户的 bootloader。
       作为第一步,我们下载 loader.bin .loader.bin 将被下载到片内的sram中。这个loder完成的功能主要是初始化时钟,sdram和xmodem协议,为下载和启动uboot做准备。当下载了loader.bin 后,超级终端会继续打印:ccccc....。这时我们就可以下在uboot了。uboot将被下载到sdram中的一个地址后并把pc指针调到此处开始执行uboot。
       接着我们就可以在终端上看到uboot的shell启动了,提示符uboot>,用户可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了对内存、flash、网络、系统启动等一些命令。
       如果系统上电时bms为低电平,则系统从片外的flash启动。为了从片外的flash启动uboot,我们必须把 boot.bin 放到0x0地址出,使得从flash启动后首先执行boot.bin ,而要烧写boot.bin 。

      要先完成上面我们讲的那些步骤,首先开始从片内rom启动uboot。然后再利用uboot的功能完成把boot.bin 和uboot.gz烧写到flash中的目的,假如我们已经启动了uboot,可以这样操作:
       uboot>protect off all
       uboot>erase all
       uboot>loadb 20000000
       uboot>cp.b 20000000 10000000 5fff
       uboot>loadb 21000000
       uboot>cp.b 210000000 10010000 ffff

       然后系统复位,就可以看到系统先启动boot,然后boot解压缩uboot.gz,然后启动uboot。注意,这里uboot必须压缩成.gz文件,否则会出错。


       怎么编译这三个源码包呢,首先要建立一个arm的交叉编译环境,关于如何建立,此处不予说明。建立好了以后,分别解压源码包,然后修改Makefile中的编译器项目,正确填写你的编译器的所在路径。
       对于loader和boot,直接make。
       对于uboot:
       第一步:make_at91rm9200dk
       第二步:make。这样就会在当前目录下分别生成*.bin文件,对uboot.bin,我们还要压缩成.gz文件。

       也许有的人对loader和boot搞不清楚为什么要两个,有什么区别吗?有区别。
       boot主要完成从flash中启动uboot的功能,他要对uboot的压缩文件进行解压,除此之外,他和loader并无大的区别,你可以把boot理解为在loader的基础上加入了解压缩.gz的功能而已。所以这两个并无多大的本质不同,只是他们的使命不同而已。
       特别说明的是这三个软件包都是开放源码的,所以用户可以根据自己的系统的情况修改和配置以及裁减,打造属于自己系统的bootloder。

烧写过程:

1.内部启动

2. 下载loader.bin 到 内部SRAM

3. 下载uboot.bin  到 外部的SDRAM 并把pc指针调到此处开始执行uboot。

4. 利用uboot的功能完成把boot.bin 和uboot.gz烧写到flash中。

       uboot>protect off all
       uboot>erase all
       uboot>loadb 20000000
       uboot>cp.b 20000000 10000000 5fff
       uboot>loadb 21000000
       uboot>cp.b 210000000 10010000 ffff

启动过程:

 1.选择片外启动

 2.boot.bin初始化硬件, 将uboot.gz解压到sdram中

 3.启动uboot

AT91RM9200 EK or DK开发参考 Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class 阅读详情

相关推荐

(三)U-BootAT91RM9200上的移植及启动分析

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

hare_Lee的专栏 1859

AT91SAM9260 uboot及解析

AT91SAM9260 uboot源代码及解析说明

基于AT91RM9200LINUX2.6.26内核的嵌入式平台开发全过程

一、ARM9+LINUX开发历程    使用了51系列和MOTOROLA单片机若干年,觉得自己已经跟不上嵌入式发展的时代了。决定开发一种新的硬件平台,综合比较了一下,觉得ARM9+LINUX模式不错。先从头捋一遍32位嵌入式开发平台的流程:芯片选型——使用DXP画原理图(如果有可能买块开发板可以极快加快进度)——使用DXP画PCB图——芯片购买/PCB投板生产——芯片焊接—— 使用ADS编

warmshepherd的专栏 7805

AT91RM9200的U-BOOT启动过程【转】

关于启动过程1. 一开始令BMS=1(拔掉跳线),则系统从片内ROM中启动。内部启动程序初始化调试串口和USB设备接口从外部载入启动程序。在Windows平台下,启动超级终端,发送文件loader.bin和u-boot.bin到SDRAM,成功启动u-boot.2. 启动了u-boot后就利用u-boot的功能,发送boot.bin和u-boot.gz到SDRAM,然后再拷贝到FLASH,

游手好弦 信步涂鸦 1768

at91rm9200 编译运行一个hello小module

Living with you!欢迎转载http://blog.csdn.net/livingparkLiving Park hello.c:#include linux/init.h>#include linux/kernel.h>#include linux/module.h

To be or not to be,that's a question! 992

用超级终端at91rm9200安装系统

根据实验说明书精简步骤,把说明书上没说清楚的地方依据实验结果明确步骤,一来给自己留存档,二来给一起开发的同路人参考讨论。开始了。1、开发板硬件部分。+5v电源不必说,com1口是与计算机连接的端口,注意查看原理图弄清楚GND,,RXD,TXD,分别和GND,TXD,RXD相连。用到TFTP协议和NFS,需要用交叉网线。--------------------------------

查干(嵌入式) 608

AT91RM9200开发历程

一、ARM9+LINUX开发历程    在使用了51系列和MOTOROLA68332单片机若干年后,彻底厌倦了它们跟蜗牛一样的速度。决定开发一种新的硬件平台,综合比较了一下,觉得ARM9+LINUX模式不错。说干就干,时间安排如下:(1)5~7月硬件设计(芯片,型号,预测价格),已初步完成CPU:AT91RM9200,81SDRAM:MT48LC16M16A2TG-75IT(两片3

1459

U-bootAT91RM9200上的全线移植分析

  U-bootAT91RM9200上的全线移植分析 Sailor_forever  sailing_9806@163.com  转载请注明http://blog.csdn.net/sailor_8318/archive/2007/10/11/1820904.aspx **************************************************

Sailor_forever 6484

at91rm9200上u-boot移植

at91rm9200上移植u-boot================== 准备工作=================1.阅读at91rm9200 官方文档有关“引导程序”的章节对at91rm9200启动流程有个大概的了解。at91rm9200引导流程图Device Setup||Boot SPI DataFlash Boot --> Download from DataFlash --> r

andyzx的开发日记 4850

at91rm9200上移植u-boot

 ================== 准备工作=================1.阅读at91rm9200 官方文档有关“引导程序”的章节对at91rm9200启动流程有个大概的了解。at91rm9200引导流程图Device Setup||Boot SPI DataFlash Boot --> Download from DataFlash --> run||TWI EEPROM Boot

民工甲的专栏 1881

【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之三--U-BOOTAT91RM9200上的移植

  U-BOOT全线移植分析系列之三――U-BOOTAT91RM9200上的移植 Sailor_forever  sailing_9806@163.com 转载请注明http://blog.csdn.net/sailor_8318/archive/2008/08/05/2773307.aspx 【摘要】本节介绍了U-bootAT91RM9200上移植的详细过程

Sailor_forever 7812

AT91RM9200启动机制简析

AT91RM9200启动机制简析 本文以H9200M开发板为例,简单分析一下AT91RM9200处理器的启动机制 一 H9200M开发板简介1.ATMEL的AT91RM9200微处理器  AT91RM9200微处理器是一款由ATMEL设计生产的嵌入式ARM微处理器,内含一个ARM920T核和以下主要片内外围1) ARM920T ARM-Thum

ruixj的专栏 1956

AT91RM9200引导程序的建立(三)--------U-Boot1.1.4在AT91RM9200上的移植

  BootLoader概述       Boot Loader就是在操作系统内核运行之前运行的一段小程序。通过这段BootLoader,我们来初始化硬件设备,为硬件设备准备地址空间,中断号等,建立内存空间的映射,从而将系统的软硬件环境带到一个合适的状态。AT91RM9200处理器启动有两种情况,一种是从外部启动,如Flash,EEPROM,DATAFLASH等;一种是从内部的BOOT

打印/传真嵌入式开发--张志龙的专栏 5076

U-BOOT全线移植分析系列之三 ――U-BOOTAT91RM9200上的移植

<br />【摘要】本节介绍了U-bootAT91RM9200 上移 植的详细过程。首先分析AT91RM9200 片内片外启动的详细流 程,接着介绍了AT91RM9200 启动所需几个文件的执行流程。针对片内片外存储器的映射情况,介绍了bootloader 、内 核及文件系统的内存分布。最后介绍了ubootAT91RM9200 上移植所需要的基本文件,并根据开发板的配置情况介绍了详细的移植过程。<br /> <br />【关键词】AT91RM9200 ,U-boot ,片内启

liangkaiming的专栏 1519

Atmel at91rm9200armlinuxbootloader启动代码分析

<!--google_ad_client = "pub-2132256014190581";/* 160x600, 创建于 09-1-4 */google_ad_slot = "4461398019";google_ad_width = 160;google_ad_height = 600;//-->balancesli著 前阶段做了一次基于at9

嵌入式 Linux ARM ADS ADHOC C C++ PLC 单片机 2378

at91rm9200移植u-boot

我是一个基督徒,今年36岁了,目前在一家上市公司担任维修组的负责人,2018.7月份开始了业余编程,到现在已经2年的时间了,因着上帝的恩典和怜悯,从零开始,现在把linux系统跑起来了。圣经上面说:“你们白白的得来,也要白白的舍去”。我要和大家一起分享我这两个年来做出来的东西,希望能够帮助有需要的人。 荣耀归于神,平安归于他所喜悦的人。 硬件介绍: CPU: at91rm9200 SDRAM: IS42S16160C-7TLI 32M NAND FALSH: H27U1G8F2BTR(或nand512w

weixin_43207907的博客 566
上一篇: U-BOOT全线移植分析系列之四--U-boot如何引导Linux内核启动?
下一篇: AT91RM9200启动机制简析
flymachine
博客等级 码龄23年 252粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值