AURIX TC3XX系列之启动流程

1、启动简介

        TC3XX系列芯片的启动流程,大致可以分为三步:复位、固件启动、用户软件启动。

        复位(Reset)分为:冷复位(即重上电复位),热复位,系统复位,应用复位。固件(Firmware)是固化在芯片内部的程序,由复位触发启动运行。用户代码启动指的就是我们常说的从_Start处启动。用户软件部分可以理解为分成两部分:一部分为英飞凌提供的Ifx_Ssw_Tcx.c(x代表核ID),另一部分为用户自定义的Main函数。在Main函数中可以实现EcuM初始化,开启OS,可以选择在_start_tc函数中或者通过OS开启从核。

        整个启动流程可以参考下图:

2、固件Firmware

        Firmware在用户手册里的第三章节进行了介绍,主要包括了两部分:Startup Software(SSW)和Checker Software(CHSW)。Startup Software主要用于Flash,Ram,寄存器的初始化和配置、启动模式评估选择(包括用户代码启动地址配置等),也能调用Bootloader例程等等;Checker Software主要用于检查SSW中的配置是否正确。

        SSW是芯片复位后执行的第一个软件。SSW在CPU0上执行,其他所有cpu在启动时保持Halt状态,由后续的用户软件启动,Firmware(BootROM)中的SSW起始地址是CPU0程序计数器寄存器(PC)中的复位值。从这个位置获取一条指令,这是任何设备启动后执行的第一条指令。最后一条SSW指令执行跳转到第一条用户代码指令。根据用户选择的启动配置,可以从不同的位置获取第一个用户指令。

        Firmware的整体流程如下图所示:

2.1 模式评估:

        Firmware的模式评估的功能通过Boot Mode Headers(BMHD)寄存器实现,TC3xx有4个BMHD,在User Configuration Blocks (UCB)中配置。每个BMHD包含一个UCB_BMHDx_ORIG
和UCB_BMHDx_COPY,两者内容一致。BMHD寄存器中,BMI.PINDIS决定是否通过硬件PIN选择启动模式(一般不用),  BMI.HWCFG决定启动模式,Firmware有三种启动模式:Internal Start、ABM(Alternate Boot Mode)、Bootloader Modes;

  • Internal Start:从内部Flash启动,STAD就直接指向用户代码首地址;
  • Alternate Boot Mode:从ABM模式启动,STAD指向ABM Header(ABMHD)存放的地址,ABMHD.STADABM指向用户代码首地址;
  • Bootloader Modes:分为ASC Bootloader和CAN Bootloader。

Internal Start和ABM最大的区别如下图所示:

ABM模式下,由ABMHD做了一个中转且放在PFlash中,UCB位于DFlash中,它的刷新容易锁板子,因此ABM模式为我们提供了解决容易锁板子的思路。

STAD决定用户代码启动地址(Internal Start模式下)或者ABM启动地址(ABM模式下)。

BMHD寄存器内容如下:

英飞凌的Demo工程里就有BMHD的配置源文件

3、用户软件启动

        用户软件的启动流程可以根据英飞凌给的Demo工程来进行分析。以Core0为例,进入_start_tc0函数之前,流程如下图所示(其他核流程类似):

__StartUpSoftware

初始化core 寄存器,以及赋予一些操作权限。

__StartUpSoftware_Phase2

MCU自检操作:主要对mcu 电源,内部内存进行一些自检。

__StartUpSoftware_Phase3PowerOnResetPath

主要是进行上下文初始化。包含stack 与 CSA。

__StartUpSoftware_Phase4

开启看门狗,初始化时钟系统。

__StartUpSoftware_Phase5

如果有配置smu,这里就可以开启SMU来监控芯片状态

__StartUpSoftware_Phase6

此阶段既可以选择开启下一个核,然后以菊花链形式开启所有从核,也可以选择通过后续OS开启所有从核,然后运行至Core0的main函数。当选择OS开启从核时,后续流程如下图所示:

调用Os_StartOS之后,程序便交给操作系统来掌管。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值