好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

ARM嵌入式系统初始化过程..docx

3页
  • 卖家[上传人]:cl****1
  • 文档编号:465797518
  • 上传时间:2023-08-25
  • 文档格式:DOCX
  • 文档大小:9.65KB
  • / 3 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于 ARM 内核微处理器的系统一般为复杂的片上系统,这种复杂系统的多数硬 件模块都是可配置的,需要软件设置为特定的工作状态,因此在用户的应用程序 之前,需要有一些专门的代码完成对系统的初始化由于这类代码直接面对 ARM 处理器内核和硬件控制器,一般都使用汇编语言完成初始化代码完成的 操作与具有的硬件平台相关,但一般包括一下的内容: --初始化异常向量表(中断向量表)--初始化存储器系统--初始化堆栈--初始化有特殊要求的端口和设备 --初始化应用程序的运行环境--调用主应用程序1、初始化异常向量表(中断向量表)ARM 微处理器结构要求中断向量表必须放置在从 0x00 地址开始的连续 8×4字节 的空间内,每当一个中断(异常)发生以后, ARM 微处理器便强制把 PC 置为对 应的中断向量由于每个中断只占用向量表中一个字( 4 个字节)的存储空间, 只能放一条 ARM 指令,所以通常为跳转指令,使程序从向量表跳转到存储器的 其他位置,执行真正的中断处理具体代码实现如下:AREA Init,CODE,READONLY // 初始化ENTRYB Reset_Handler //异常复位B Undef_Handler // 未定义指令异常B SWI_Handler // 软件中断B PreAbort_Handler //指令预取中止B DataAbord_Handler // 数据中止B . // 系统保留B IRQ_Handler // 普通外部中断B FIQ_Handler // 快速外部中断2、初始化存储器系统 主要是对系统存储器控制器( MMU )的初始化。

      由于存储器控制器并不是 ARM 架构的一部分,不同芯片的实现方式各不相同由于运算能力和寻址能力的强 大,基于 ARM 内核的微处理器系统一般都需要外扩展各种类型的存储器对于 存储器系统的初始化一般包括如下几个方面: --存储器类型、时序和总线宽度的配置--存储器地址的配置(1)存储器类型基于 ARM 微处理系统的存储器一般有如下几类: SARM,DRAM,Flah, 同时,即使 同类存储器也有访问速度上的不同其中, SRAM 和 Flah 属于静态存储器,可以 共用存储器端口,而 DRAM 有动态刷新和地址复用等特征,需要专门的存储器 端口2)时序 存储器端口的接口时序优化对系统性能影响非常大,因为系统运行的速度瓶颈一 般都存在于存储器的访问,因此希望存储器的访问尽可能快,但又要考虑由此带 来的系统稳定性问题3)总线宽度ARM 微处理器架构支持 8/16/32 位的数据总线宽度访问存储器和外设,对于特定 的存储器来说,需要设定数据总线的宽度4)存储器地址的配置ARM 微处理器架构理论上可以支持 4GB 的地址空间,而对于一个实际的系统来 说,配置的物理地址远没有这么多,因此,如何配置存储器的地址,也是一个重 要的问题。

      5)存储器地址重映射 存储器地址重映射就是可以通过软件配置来改变一块存储器物理地址的方法,是 当前许多先进控制器所具有的功能进行地址重映射的原因:提高系统的运行效率 进行地址重映射的注意:保证程序流程的连续性有的 ARM 处理器不具有地址重映射的功能,可以采样代码搬移加跳转的方式完 成上述功能3、初始化堆栈由于 ARM 微处理器有 7 中运行模式,每一种模式的堆栈指针( SP)都是独立的 (其中系统模式和用户模式使用相同的 SP)因此,需要对每一种模式的 SP 进 行初始化采用的方法是:改变当前程序状态寄存器( CPSR)内的状态位,使处理器切换 到不同的状态,然后初始化 SP但是对用户模式下 SP 的初始化应该放在最后, 因为 ARM 微处理器进入用户模式之后就无法再切换到其他模式 设置堆栈应该注意的问题是:堆栈的大小根据需要确定,要尽可能给堆栈分配高 速存储器(例如片内的 SRAM )堆栈性能的提高对提高系统整体性能的影响非 常显著初始化堆栈的代码如下:MRS R0, CPSRBIC R0, R0, #MODEMASK ORR R1, R0, #IRQMODE MSR CPSR_c, R1 LDR SP, =IRQStackBIC R0, R0, #MODEMASK ORR R1, R0, #FIQMODE MSR CPSR_c, R1LDR SP, =FIQStack 4、初始化应用程序和有特殊要求的端口和设备 该部分的初始化由具体的系统和用户需求决定,一般的外设初始化可以放在系统 初始化以后进行。

      比较典型的应用是驱动一些简单的输出设备,例如 LED 等,用来指示系统启动的进程和状态初始化应用程序的运行环境,就是完成必 要的从 ROM 到 RAM 的数据传输,初始化有特殊要求的端口、设备和应用程序 的运行环境5、改变处理器的模式用户ARM 微处理器支持 7 种模式,其中: 超级模式( Supervisor):复位后的缺省模式 多种特权模式变化:主要完成各模式的堆栈设置,注意不要进入用户模式 模式:用户程序运行模式6、调用应用主程序 当完成所有的系统初始化工作之后,就需要把程序流程转入主应用程序最常见 的操作是:IMPORT C_EntryB C_Entry。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.