美文网首页
从上电开始

从上电开始

作者: 游魂_2e0d | 来源:发表于2019-04-24 20:56 被阅读0次

    hisi手册介绍启动方式有bootrom、片外flash、PCIE等几种方式。实际上是通过上电时几个硬件管脚的电平决定CPU内部的重映射:

    • 选择bootrom启动,将bootrom地址重映射到0地址开头的空间,bootrom启动串口(hitool)交互流程,类似Ti芯片的fastboot。如果串口通信成功则通过串口下载程序并执行。
    • 选择片外flash启动,则将片外flash在总线上的地址映射到0地址,执行flash 0地址处的程序。

    详细过程:
    bootrom:

    • bootrom是一块ROM区域,可以直接执行代码,可以理解为内置的类似norflash的但是只读的ROM区

    片外flash:

    • 上电,处理器将片外flash上前面的数据映射到FMC空间,然后将FMC空间重映射到0地址。
    • CPU执行0地址的代码,即执行片外flash起始的代码,在uboot即为start.S。
    • 初始阶段使用的ROM为FMC,ram为SRAM,经过初始化DDR和自举后将代码重定向到DDR内,取消重映射,SRAM保存异常向量表
    • start.S经编译后0地址处为连续的异常向量表,0地址是一条跳转指令,跳转到reset代码部分
      start.S代码,执行了切换到SVC模式、禁用cache、禁用MMU、检查自举模式、打印SystemStartup、清除重映射、初始化DDR、初始化全片寄存器、判断从FMC启动则拷贝flash到DDR、初始化堆栈、跳转到_start_armboot,就跳转到C语言部分了,具体分析可以参考这篇:《3519v101 start.S》
    _start: b       reset           @ 跳转reset
            ldr     pc, _undefined_instruction   @ 未定义指令
            ldr     pc, _software_interrupt     @ 软中断
            ldr     pc, _prefetch_abort     @ 预取错误
            ldr     pc, _data_abort      @ 数据错误
            ldr     pc, _not_used       @ 未用
            ldr     pc, _irq         @ 中断
            ldr     pc, _fiq        @ 快中断
    

    相关文章

      网友评论

          本文标题:从上电开始

          本文链接:https://www.haomeiwen.com/subject/tauggqtx.html