U-Boot启动解析:关闭看门狗与初始化过程

需积分: 46 312 下载量 130 浏览量 更新于2024-08-09 收藏 324KB PDF 举报
"《关闭看门狗-云原生发展白皮书(2020)》探讨了在云原生环境下如何关闭看门狗定时器以及进行外部NOR闪存初始化的操作。文档中提供了针对特定硬件平台,如ELFIN系列设备的U-Boot启动过程的详细步骤。" 在云原生环境中,为了确保服务的稳定性和可靠性,有时需要关闭看门狗定时器以防止系统因超时而意外重启。在提供的代码段中,展示了关闭看门狗定时器的汇编语言指令,主要通过将寄存器`r0`设置为看门狗基地址`ELFIN_WATCHDOG_BASE`(0xE2700000),然后将`r1`设置为0,并将其存储到`r0`的地址中,从而禁用看门狗。 同时,文档还涉及到外部NOR闪存的初始化,这对于某些设备的启动过程至关重要。初始化过程通常包括配置GPIO引脚以正确地与NOR闪存通信。这里,代码使用了`ELFIN_GPIO_BASE`作为GPIO控制器的基地址,通过对`GPJ1`和`GPJ4`的配置来设置SROM(系统只读存储器)的地址线。通过修改`GPJ1CON_OFFSET`和`GPJ4CON_OFFSET`对应的寄存器,设置相应的GPIO端口为输出模式,并设定其电平。此外,通过`GPJ1PUD_OFFSET`和`GPJ4PUD_OFFSET`清除上拉/下拉电阻,确保正确驱动NOR闪存。 接下来,文档简要介绍了U-Boot的启动流程。U-Boot是从CPU的启动汇编代码开始执行的,这个过程通常位于`/cpu/s5pc11x/start.S`。启动过程中,首先会处理异常中断向量,定义各个中断类型的处理程序。在复位异常处理部分,代码设置了TEXT_BASE虚拟地址,并进行了内存区域的对齐,以保证后续代码的正确执行。 在U-Boot启动时,会经过一系列的初始化步骤,例如设置内存管理、设备树解析、初始化网络堆栈等,这些步骤对于加载操作系统内核、初始化设备和提供命令行接口至关重要。在云原生环境中,U-Boot的这些功能支持容器化服务的启动和管理,使得整个系统的部署和运维更加灵活高效。 总结来说,《关闭看门狗-云原生发展白皮书(2020)》揭示了云原生环境下系统初始化的关键操作,包括看门狗定时器的关闭和NOR闪存初始化,这些都是保证服务连续性和系统正常运行的基础。同时,文档也涉及到了U-Boot启动流程的细节,这些信息对于理解和调试嵌入式系统的启动问题非常有价值。