ARM系统初始化过程 bootloader
ARM 系统初始化过程 Bootloader ARM 系统初始化过程是 ARM 嵌入式系统的核心部分,它是 ARM 微处理器启动过程的必要一步骤。在这个过程中, Bootloader 负责完成系统的初始化,包括异常向量表的初始化、存储器系统的初始化、堆栈的初始化、有特殊要求的端口和设备的初始化、应用程序的运行环境的初始化等步骤。 1. 初始化异常向量表(中断向量表) ARM 微处理器结构要求中断向量表必须放置在从 0x00 地址开始的连续 8×4 字节的空间内,每当一个中断(异常)发生以后,ARM 微处理器便强制把 PC 置为对应的中断向量。由于每个中断只占用向量表中一个字(4 个字节)的存储空间,只能放一条 ARM 指令,所以通常为跳转指令,使程序从向量表跳转到存储器的其他位置,执行真正的中断处理。 在初始化异常向量表时,需要将中断向量表的每个入口点设置为对应的中断处理程序,同时也需要设置中断优先级和中断屏蔽位等。在 ARM 微处理器中,一共有 7 种中断类型,每种中断类型都有其对应的中断向量表入口点。 2. 初始化存储器系统 初始化存储器系统是 ARM 系统初始化过程的重要一步骤。由于存储器控制器并不是 ARM 架构的一部分,不同芯片的实现方式各不相同。因此,在初始化存储器系统时,需要根据具体的存储器类型和芯片特性进行配置。 存储器系统的初始化包括存储器类型、时序和总线宽度的配置、存储器地址的配置、存储器地址重映射等几个方面。在配置存储器类型时,需要根据 ARM 微处理器的存储器架构选择合适的存储器类型,例如 SRAM、DRAM、Flash 等。在配置时序时,需要根据存储器的访问速度和系统的性能要求进行调整。总线宽度的配置则需要根据 ARM 微处理器的数据总线宽度和存储器的总线宽度进行匹配。 3. 初始化堆栈 初始化堆栈是 ARM 系统初始化过程的重要一步骤。由于 ARM 微处理器有 7 中运行模式,每一种模式的堆栈指针(SP)都是独立的。因此,需要对每一种模式的 SP 进行初始化。 在初始化堆栈时,需要改变当前程序状态寄存器(CPSR)内的状态位,使处理器切换到不同的状态,然后初始化 SP。设置堆栈应该注意的问题是:堆栈的大小根据需要确定,要尽可能给堆栈分配高速存储器(例如片内的 SRAM)。堆栈性能的提高对提高系统整体性能的影响非常显著。 4. 初始化应用程序和有特殊要求的端口和设备 初始化应用程序和有特殊要求的端口和设备是 ARM 系统初始化过程的最后一步骤。在这步骤中,需要根据具体的系统和用户需求进行初始化,例如驱动一些简单的输出设备,例如 LED 等。同时,也需要根据具体的应用程序和设备进行初始化,例如UART、SPI、I2C 等。 在初始化应用程序和有特殊要求的端口和设备时,需要根据具体的系统和用户需求进行配置,例如设置 UART 的波特率、数据位数、停止位数等,设置 SPI 的时钟频率、数据位数等。 ARM 系统初始化过程是 ARM 嵌入式系统的核心部分,包括异常向量表的初始化、存储器系统的初始化、堆栈的初始化、有特殊要求的端口和设备的初始化、应用程序的运行环境的初始化等步骤。通过这些步骤,ARM 微处理器可以正确地启动和运行应用程序。
评论3
最新资源