AT91RM9200启动机制简析

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

本文以H9200M开发板为例,简单分析一下AT91RM9200处理器的启动机制

一 H9200M开发板简介
1.ATMEL的AT91RM9200微处理器     AT91RM9200微处理器是一款由ATMEL设计生产的嵌入式ARM微处理器,内含一个ARM920T核和以下主要片内外围:
1) ARM920T ARM-Thumb 微处理器核
2) 片内存储器     128K ROM: 地址 0x00100000 内有厂家固化的启动代码16K SRAM: 地址 0x00200000 通常在此配置堆栈区
3) 外部总线接口 EBI 支持SDRAM,Static Memory,Burst Flash,和nand Flash等
4) 片内外围电路

5) 网卡接口      

6) 双USB2.0主口
7) USB从口        

8) 多媒体卡接口  

9) IEEE 1149.1JTAG边界扫描接口 MCI
10)三个异步串行控制器 SSC           

11)四个同步/异步收发器 USART
12)主/从串行外围接口 SPI            

13)两个三通道16位的定时/计数器 TC
14)两线接口 TWI


2.NOR Flash存储器 
  4M 数据宽度16位存放启动代码,Linux内核,用户程序等 通过J201跳线选择 Chip Select 0(0x10000000) 或 Chip Select 7(0x80000000)
3.NOR Flash存储器
  64M 16位 映射到Chip Select 3 (0x40000000)
4.SDRAM 存储器
  32M 由两块16位的SDRAM并联成32位的存储系统 作为程序的运行空间(内存)
  映射到Chip Select 1 (0x20000000)
5.异步串行通讯口
  Debug UART:用于软件调试与开发
  UART0:用于与PC及Modem通讯
6.UD485接口
7.以太网MAC
8.USB接口
9.IIC存储器
  用于存储IP地址、MAC地址及系统加密等
10.系统总线驱动
11.跳线及LED显示
12.JTAG接口
13.复位电路
14.电源电路

 

二 启动模式选择(BMS)

AT91RM9200芯片的PA31/BMS引脚的电平高低来决定选择哪种启动模式:当J100跳线1-2短接时,BMS为低电平(BMS=0),复位后从片外Flash启动;当J100跳线2-3短接时,BMS为高电平(BMS=1),复位后从片内ROM启动。启动(复位)时首先执行的是位于0x00000000处的指令
1.片内启动(BMS=1)
      片内ROM代码主要包含两部分:bootloader和Uploader
      当BMS=1时,ROM地址被重映射为0x00000000,内部固化的启动代码开始运行,首先激活bootloader对设备进行初始化,接下来从片外"非挥发"的存储器中寻找有效的可执行代码.首先要分析该存储器的前32字节(即ARM异常向量入口代码,当ARM发生异常时转向不同的处理程序进行处理),若是执行跳转或载入与PC 寻址相关的PC ARM 指令,则认为是有效代码,分析计算要下载代码的长度,然后将确定大小的代码载入到片内SRAM的起始地址(0x00200000)处,随后该地址被映射为0x00000000并开始执行下载的代码(相当于bootloader的stage1阶段,启动过程详见uboot的启动流程).
 

     若没有找到有效的代码,Boot Uploader被激活,建立外部通讯通道(调试串口Debug UART 或USB),启动xmodem协议,等待用户上传代码(loader.bin),载入片内SRAM并执行(进行必要的初始化),进入uboot启动流程.  Uboot启动后,即可将起动程序(boot.bin ramdisk uboot.bin),Linux内核及应用程序烧到Flash中固化,复位后即可从片外Flash启动.

 

2.片外启动(BMS=0)
     当BMS=0时,片外含有启动代码的Flash被映射到0x00000000,并由此处开始执行.

 

注:引导程序为变量与堆栈在内部SRAM 开辟一片存储区域。为防止上载错误,载入的应用程序至少要小于SRAM 3K.

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

相关推荐

at91rm9200上vxworks的热启动试验(WARM_BOOT)

/* 写在开头 */:         笔者的工作是做嵌入式系统软件开发,入行到现在才1年半时间,接触vxworks大概8,9个月吧,之前所用的BSP中并不能实现热启动(即在控制台shell中输入reboot或者按ctrl+X实现重新加载vxworks),进行上述操作后,程序就跑飞了。         在厌倦了无数次去按板上的复位键之后,我决定研究一下热启动的方式,并终于在今天成功了,激动之余

wuyanrobert的专栏 1570

ATMELAT91RM9200开发板配套光盘上的全部示例程序.rar

ATMELAT91RM9200开发板配套光盘上的全部示例程序.rar

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

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

warmshepherd的专栏 7805

AT91RM9200 开发原理图

AT91RM9200 原理图 linux AT91RM9200 原理图 linux

AT91RM9200微处理器的VxWorks BSP与驱动开发包

本文还有配套的精品资源,点击获取 简介:本文档是一个为AT91RM9200微处理器设计的软件包,包含了VxWorks操作系统的板级支持包(BSP)和特定于该处理器的驱动程序,如网卡和串口驱动。这些工具包对于在VxWorks环境下开发基于AT91RM9200嵌入式系统至关重要,支持网络连接和串行通信,有助于工程师快速实现网络功能和串口通信的集成。 1. AT91R...

weixin_31641077的博客 2354

ATMEL公司的AT91RM9200调试手册

 LINUX常用命令压缩、解压部分1.         压缩目录)tar czf DirName.tgz DirName (2.         针对以gz为结尾的压缩文件)gzip –d filenames (3.         针对以tar为结尾的压缩文件)tar –xvf filenames (4.         针对以tar.gz为结尾的压缩文件)tar zxv

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

基于ATMEL AT91RM9200嵌入式Linux移植笔记 (2)

来自: http://hi.baidu.com/xfcylyf/blog/item/10776a95157e6b46d1135ef4.html 一、了解一下存储器的基本分类情况。 存储器的物理实质是一组或多组具备数据输入输出和数据存储功能的集成电路,用于充当设备缓存或保存固定的程序及数据。存储器按存储信息的功能可分为只读存储器ROM(Read Only Memory)和随机存储器RAM(R

鹿门山隐士 1164

U-boot在AT91RM9200上的全线移植分析

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

Sailor_forever 6484

AT91RM9200处理器的启动机制

2009/8/12重新生产一批板子后,发现在写入boot.bin和u-boot后,外部启动超级终端没有观测到任何现象,很郁闷.在网上搜一下,发现以下好文章:  1.引言在开发基于AT91RM9200 处理器的嵌入式系统时,以何种方式启动系统是一个首先要考虑的基本问题。庆幸的是,AT91RM9200 处理器提供了各种各样的启动方式,总体上可分为从外部的DATAFLASH、二线EEPROM

warmshepherd的专栏 2462

全开源-AT91RM9200开发板内核源码/bootloader源码及硬件等-电路方案

本项目开源的是一个AT91RM9200开发板全套设计资料,资料包括该开发板的SCH和PCB,用protel99se打开。同时,还包括AT91RM9200开发板内核源码/bootloader源码等。希望能给大家借鉴学习参考。欢迎大家可以随便下载附件资料使用并修改,但请勿用于商业目的。这个AT91RM9200板子经过实践检验过,大家尽可放心使用。 AT91RM9200开发板特性: 1.USBHOST USBDEVICE 2.CAN总线接口 3.IDE接口 4.RS232 RS485 5.图形点阵液晶屏接口 6.SD卡接口 7.10/100M网卡接口 8.16MB NORFLASH 32MB NANDFLASH(可扩展到1GB,在高就没试过,不敢妄言),32MB SDRAM(可扩展的64MB) 9.4层板设计 AT91RM9200开发板实物截图: 附件内容截图: 开发板的程序 bootloader源码,u-boot的版本号是1.3.4,上传的U-BOOT的是根据开发板修改好的源码,大家直接编译使用就可以

at91rm9200上u-boot移植

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

andyzx的开发日记 4850

Atmel at91rm9200的armlinux的bootloader启动代码分析

<!--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

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

民工甲的专栏 1881

AT91RM9200启动程序设计实践与源码分析

本文还有配套的精品资源,点击获取 简介:AT91RM9200是基于ARM920T内核的微处理器,常用于嵌入式系统。本教程提供了深入理解AT91RM9200启动过程所需的关键源代码,包括硬件初始化、存储介质访问、中断处理、安全机制、文件系统管理以及用户交互。开发者将通过源码学习如何实现Boot Loader,并掌握编译、烧录以及调试的全过程,从而在嵌入式项目中应用这些技术和知...

weixin_36487018的博客 757

AT91RM9200的U-BOOT启动烧写过程

Uboot 烧写过程 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,然后再

ruixj的专栏 2186

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

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

打印/传真嵌入式开发--张志龙的专栏 5077
上一篇: AT91RM9200的U-BOOT启动烧写过程
下一篇: UBOOT1.3.1代码导读(2)-lowlevel_init.S
flymachine
博客等级 码龄23年 252粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值