Infineon Tricore系列芯片自带启动软件运行逻辑分析

发布于 2022-04-19 14:41:06

Tricore系列芯片的BootRom中包含出厂自带的“启动软件(SSW)”,系统上电或复位后首先运行的就是这段代码。该启动代码在芯片出厂时就已固化在芯片内部。它主要负责完成系统启动模式的选择,并执行不同模式下所对应的基本操作。

以下以TC17xx为例,介绍SSW运行过程,其流程图如下图所示:
image.png

  • 首先,根据外部测试模式选择引脚的配置情况,分别选择进入正常运行模式或者芯片自测模式,对用户而言,选择进入正常模式;
  • 其次,根据外部调试模式控制引脚的配置,选择调试接口类型为JTAG或者DAP(Data Access Port);
  • 再次,程序读取硬件配置字寄存器HWCFG的值,并以此作为依据进入相应的启动模式,如内部启动模式、外部启动模式和ABM启动模式。其中

    1. 内部模式指系统代码从PFlash的0xA000 0000处开始执行,这是最常用的模式,只需配置2个PIN脚即可。
    2. 外部启动(Bootstrap Loading)模式是指芯片通过ASC或CAN接口从外部下载程序代码,然后将该代码拷贝到SPRAM区,从0xD400 0000处开始执行。
    3. 而在ABM模式下,程序将自动检查ABM header,只要两个Header中有一个OK,那么程序就转入有效Header中所指定的地址处开始执行。注意,两个ABM Header的存放位置是固定的(0xA001FFE0~0xA001FFFF、0xA000FFE0~0xA000FFFF)!
    4. 若Header check都失败,则自动转入外部启动模式(支持ASC或CAN下载程序)。

至此,芯片内部的Startup code执行完毕。

由于ABM启动模式可以使用户自由指定程序执行的起始地址,并在Header检测失败时自动转入外部启动模式。这一机制有助于提高软件更新功能的可用性,因此,建议用户尽量选择ABM这种启动模式。

参考资料:

TC1767 User Manual,Infineon

0 条评论

发布
问题