ARM9启动流程详解:AT91RM9200芯片实例

需积分: 13 1 下载量 94 浏览量 更新于2024-09-09 收藏 226KB PDF 举报
ARM9启动机制是一个关键的系统初始化过程,它确保了ARM架构的设备能在上电或复位后正确加载并执行预设程序。当ARM系统如ATEM公司的AT91RM9200芯片启动时,这个过程涉及到几个关键步骤。 首先,当ARM9处理器启动时,程序会自动从0x00000000地址(通常称为复位地址)开始执行。这个地址通常是固定的,不论设备是从内部ROM还是外部存储介质加载。对于AT91RM9200,它可以支持两种启动模式:内部启动和外部启动。 1. 内部启动:这是指处理器直接从集成的ROM中读取和执行代码。AT91RM9200通过启动模式选择器,允许用户选择内部ROM作为启动源,此时芯片自带的固件程序会被执行,通常包含引导装载程序和系统配置信息。 2. 外部启动:在这种模式下,ARM9处理器会从连接到NCS0(Non-Volatile Memory Controller)接口的外部设备(如外部ROM或Flash)加载程序。外部启动通常采用通用的引导程序,如u2boot,它负责定位并加载目标应用程序。u2boot是一个开源的、可移植的启动加载器,它能管理不同类型的外部存储,并确保程序正确加载到处理器的内存中。 为了实现从不同设备启动,ARM系统利用地址重映射技术。这意味着处理器的地址空间可以被动态地映射到实际的外部设备上,这样无论启动源是内部还是外部,都能确保程序正确地定位并执行。 在移植u2boot到AT91RM9200这样的设备时,开发者需要确保引导加载器能够识别和处理该芯片特有的架构特性,例如内存布局、中断向量表的位置等。同时,他们还需要适配u2boot以适应AT91RM9200的启动流程和配置选项。 ARM9启动机制涉及硬件配置、引导程序的选择和配置、以及地址映射的管理,这些都对系统的可靠性和性能有着重要影响。理解并掌握这一过程对于设计和维护基于ARM9的嵌入式系统至关重要。