一、启动流程概括
最近大部分工作都在C66x平台上,但由于TI C6678等平台的启动流程设计的太绕了,每次都会重新去理解这个过程,所以想弄做个笔记,记录一下这个过程。
跟ARM等其他嵌入式平台相同,C66x的启动也是以Rom Code作为起点,并读取相关的拨码引脚从各个引导设备进行启动,以C6678为例,TI芯片支持的拨码启动模式如下图:
但对于TI的TMSC6678评估板的wiki硬件启动拨码表中,出现了新的字眼,IBL NOR、IBL NAND和IBL TFTP。
通过查看拨码表的GPIO1~3引脚,会发现其实IBL *** 启动都是属于I2C master启动的一种。至于IBL是什么东西,为什么会有IBL这个东西,我们后面再聊
我在开发过程中,比较常用的是IBL NAND/NOR boot和SPI boot,下面就针对这两种启动方式进行介绍,其他方式也是大同小异,各个启动模式的具体启动流程可以通过TI提供的Keystone BootLoader User guide来查看。
IBL *** boot: