AURIX TC377,TC387,TC397用户启动程序流程
用户启动程序是在Boot Firmware之后运行的程序(即用户程序里的第一级Boot Loader,类似Linux的Uboot),初始化过程是CPU0完成的。用户可以根据不同的复位事件来选择不同的执行路径。
AURITX 2代芯片的主要启动过程如下(该阶段只有在Cold Power on Reset时才会执行,其他的Reset是不会执行的):
- 第一个阶段,初始化PSW寄存器,以便可以在User1模式下使用最大深度中断堆栈深度。之后会判断复位类型,看是Application Reset,还是Power On Reset还是CPU0 Reset。
- 第二阶段主要有三个部分:1)初始化EVR,同时确保寄存器内容是所需的配置值;2)执行LBIST测试,以保证系统安全;3)MONBIST检查,以便确保第二级电压监控和Alarm产生路径是好的。
- 第三阶段,设置好系统以支持函数调用。这主要包括Context Save Area的初始化和Stack Pointer(A10)的初始化。至此没有全局变量使用。
- 第四阶段是初始化时钟和Flash Wait State的值。对于ADAS的应用,在PLL初始化之前,MMIC芯片需要使能,MMIC芯片可以给CPU提供时钟。出于功能安全考虑,RAM的MBIST需要执行,会初始化所有RAM的功能安全特性。这个阶段是只有在发生Power on Reset时才会执行,对于其他类型Reset,这个阶段的动作是不需要执行的,因为Clock和Flash