kahou

导航

uboot

为什么uboot启动需要关看门狗(watchdog)?

  首先要知道,看门狗是个硬件设备来的,它的存在是防止系统死机卡在那里,运作原理是它有一个计时器,或者说时钟源分频出来的一个时钟,它会倒计时,当计时器去到零,它就会收到一个重启的信号,继而会重启系统,如果想要系统正常运行,就需要进行喂狗,也就是通过软件的方式,给看门狗的时钟源重新设置一个值,而且要定时做这个操作,不然疯狗就会一直重启。uboot为什么要把这个东西关了呢,还不是因为uboot是一个十分简单的程序,把芯片当单片机完了,防止意外重启,就干脆把它给关了呗。

为什么uboot启动要关中断呢?

  uboot初始化,很多硬件的外设还没有初始化完成,如果这个时候收到中断,无论是外部中断还是内部中断,uboot都不可以正常的继续完成初始化,uboot原本的存在意义就没有了。

为什么uboot启动要关cache?

  cache的存在是为了解决一个矛盾,就是cpu的高速运行和外存的相对缓慢的数据读写速度的匹配关系,设置这个高速缓存,可以先把数据读取到cache中,然后cpu就直接读取cache里面的都东西,减少了cpu因为读取不到数据,在好多个周期里面等指令的资源浪费。在uboot的启动阶段,通常外存还是没有完全初始化好的,如果这时候cpu进行数据的读取,也就是读数据cache,就会有可能产生读取地址指令出错,使得uboot初始化失败,不过,指令cache是可以不用禁止的。

为什么uboot启动要关MMU?

  还不是因为MMU在uboot的启动过程中没有起到什么作用,因为这个阶段,cpu所操作的地址都是实际的物理地址,开了MMU对实际操作没有什么帮助,为了简化uboot的流程或者说是减少cpu的负担,把它关了是一个很通常的做法 。

 

posted on 2018-07-11 10:13  kahou  阅读(376)  评论(0编辑  收藏  举报