0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AURIX™ TC3xx启动流程详解

jf_EksNQtU6 来源:汽车电子嵌入式 2023-06-06 10:31 次阅读

前言

本文首先介绍整个启动流程的概况,接着分别介绍了firmware启动流程,boot mode的配置,以及用户程序启动流程。这里的Startup Sequence包含MCU的firmware启动流程和用户程序启动流程两部分。

2657d19e-03b5-11ee-90ce-dac502259ad0.png

正文

1.启动整体流程 Startup Flow

26780284-03b5-11ee-90ce-dac502259ad0.png

TC3xx芯片的启动分为两部分:

1)Startup Firmware的启动,Startup Firmware是固化在芯片内部的程序。

2)Startup Software的启动,Startup Software是应用层序的启动程序。

269e95ca-03b5-11ee-90ce-dac502259ad0.png

Startup Firmware根据Reset方式的不同,执行的流程也不一样。例如,Cold Power Reset后Startup Firmware执行的时间就会长一些,执行的内容也会多一点。

Firmware执行完后会跳到应用程序的首地址去执行,应用程序的Startup程序也会根据Reset方式的不同,执行的流程不同。比如,Power On Reset执行的内容就多一点,Application Reset执行的内容就少一点。

26cb9070-03b5-11ee-90ce-dac502259ad0.png

27059b30-03b5-11ee-90ce-dac502259ad0.png

2.启动固件Startup Firmware

273786c2-03b5-11ee-90ce-dac502259ad0.png

芯片复位后只有CPU0是Enable的,其他的CPU都是停止的。SSW中都会选用100MHz的fbackup作为时钟

ESR可以在UCB里面进行配置,SSW这里把ESR的配置给读出来设置实际的ESR。

SWAP也是在UCB里面配置的,SSW这里读取SWAP配置看要不要使能SWAP。

Default模式下会初始化所有的SRAM为0,在UCB里面可以配置哪些SRAM不初始化。

BMHD主要配置应用程序的起始地址,BMHD也是在UCB中配置的。

LBIST主要做一些内部逻辑电路的检测,它可以在SSW中执行,也可以在应用程序的Startup程序中执行。如果需要在SSW中执行,则需要在UCB里面进行配置。

CHSW(Check Software),SSW检查UCB中配置的内容在写入寄存器后是否和寄存器的Reset值一样。

如果UCB中配置了Debug lock,则SSW就会锁住芯片的Debug功能,外部Debug功能不能用了。

3.启动选项 Boot options, Boot mode headers

275e08a6-03b5-11ee-90ce-dac502259ad0.png

TC3xx的SSW的最后可以根据UCB的配置直接跳转到应用程序执行,或者根据BMHD的配置进入Boot Mode。

Generic Bootstrap Loader可以通过CAN或者ASC(串口)的方式和这部分boot loader进行通信,然后下载一部分Code到PSPR里面,然后再和这部分代码进行通信,把程序下载到Flash。

ASC Bootstrap Loader和Generic Bootstrap Loader差不多。

如果希望冲Bootloader跳转到应用程序的时候有个复位的动作,则可以使用Alternate Boot Modes。

27930f7e-03b5-11ee-90ce-dac502259ad0.png

内部Flash启动的启动地址在BMHD寄存器(UCB)里面配置的,BMHD.STAD位域。启动模式的选择也可以通过外部Pin脚来实现,PINDIS[3]。

不带Cache的Flash是从0xA000 0000开始的,才Cache的Flash是从0x8000 0000开始的。

27c1af8c-03b5-11ee-90ce-dac502259ad0.png

BMHD_ORIG和BMHD_COPY是相互备份的(例如在刷写BMHD_ORIG的时候(先擦除再写入)断电了,BMHD_COPY还是正常使用)。

BMHD0_ORIG和BMHD0_COPY里面是支持写入密码的,通过UCB_BMHD_ORIG: Confirmation写入,写入密码后要更新BMHD0_ORIG和BMHD0_COPY的话需要通过密码校验。

27edb762-03b5-11ee-90ce-dac502259ad0.png

281b8c6e-03b5-11ee-90ce-dac502259ad0.png

286b0fe6-03b5-11ee-90ce-dac502259ad0.png

ABM主要用来指定应用程序的起始地址。如果我们希望程序从bootloader跳到应用程序有一次复位的过程,就可以通过就ABM模式来实现,ABMHD(Alternate Boot Mode Header)的STADABM存放的是应用程序的起始地址,ABMHD这个结构体的地址存放在BMHD.STAD位域,这样在跳转到应用程序之前把BMHD.STAD改成ABM模式,然后再执行一次软件复位,软件复位以后就能从ABMHD.STADABM指定的应用程序入口开始执行,这样在跳到应用程序之前就有一个复位过程,能保证所有的外设和Memory都是复位状态。

4.启动软件 Startup software

28a34c8a-03b5-11ee-90ce-dac502259ad0.png

查看RSTSTAT寄存器的复位原因,走不同的初始化流程。

TC3xx芯片的复位类型有很多种,比如Power on Reset, System Reset, Application Reset等。System Reset和Application Reset可通过RSTCON寄存器来配置,比如软件复位和看门狗复位可以配置成System Reset或者Application Reset。

28ccd370-03b5-11ee-90ce-dac502259ad0.png

如果是Power On Reset的话,就需要判断是否需要进行LBIST。LBIST有可能在SSW里面做完的,如果做完了就把当前的签名读出来和预期的签名做比较。如果没有做完,就可以在User的Startup里面做LBIST。需要注意的是,LBIST做完后一定有一个复位的过程。

2903d992-03b5-11ee-90ce-dac502259ad0.png

USTACK和CSA初始化完后,就可以进行C函数的调用了。

293ae428-03b5-11ee-90ce-dac502259ad0.png

主频的抬高是一个渐变的过程,不能太快,否则可能造成芯片损坏。

2966a270-03b5-11ee-90ce-dac502259ad0.png

29a0cb62-03b5-11ee-90ce-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50301

    浏览量

    421396
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16949

    浏览量

    350105
  • Firmware
    +关注

    关注

    0

    文章

    27

    浏览量

    10306
  • 启动流程
    +关注

    关注

    0

    文章

    14

    浏览量

    6463
  • Aurix
    +关注

    关注

    1

    文章

    71

    浏览量

    10887

原文标题:AURIX™ TC3xx 启动流程

文章出处:【微信号:谈思实验室,微信公众号:谈思实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    英飞凌TC3XX系列多核MCU学习笔记(3)

    TC3XX 系列属于AURIX™ 2G系列,AURIX™ 2G系列系列单片机采用的是TC1.6.E和TC1.6P的核心组合。使用的是32位哈
    发表于 09-19 10:00 2104次阅读
    英飞凌<b class='flag-5'>TC3XX</b>系列多核MCU学习笔记(<b class='flag-5'>3</b>)

    TC3xx芯片的Endinit功能详解

    为了提供系统的安全性能,TC3xx上一些重要的寄存器都受Endinit保护,不能直接修改。如果想要修改这些重要寄存器,就需要先按特定步骤解锁Endinit,然后才能修改这些重要的寄存器的值,最后还要
    的头像 发表于 11-27 09:23 2031次阅读
    <b class='flag-5'>TC3xx</b>芯片的Endinit功能<b class='flag-5'>详解</b>

    TC3xx芯片时钟系统的锁相环PLL详解

    的Tick数就是基于模块时钟的)。本系列文章就来详细介绍TC3xx芯片的时钟系统及其具体配置。本文为TC3xx芯片时钟系统的锁相环PLL详解
    的头像 发表于 12-01 09:37 2332次阅读
    <b class='flag-5'>TC3xx</b>芯片时钟系统的锁相环PLL<b class='flag-5'>详解</b>

    英飞凌TC3xx系列安全管理单元的使用

    本篇文档主要用来介绍英飞凌基于AURIX-2G TriCore 1.6.2架构的 TC3xx系列安全管理单元的使用。
    的头像 发表于 12-07 09:29 1963次阅读
    英飞凌<b class='flag-5'>TC3xx</b>系列安全管理单元的使用

    AURIXTC3XX如何暂时仅启用/禁用CAN中断?

    你我使用的是 AURIXTC3XX。 在 CAN ISR 处理期间,如何暂时仅启用/禁用 CAN 中断?
    发表于 01-18 06:47

    Pflash恢复保护命令最终会在Aurix TC3xx控制器上重置目标是为什么?

    我正在连接 T32 调试器的 Aurix TC3xx 控制器评估板上测试 Pflash 读/写保护机制,我配置了 UCB_pFlash 和 UCB 调试,我成功解锁了 Pflash 保护,然后尝试再次锁定保护,最终进入目标重置。 我不知道为什么会这样。
    发表于 01-24 06:42

    GCC和TASKING有什么区别?应该为AURIXTC3xx选择什么?

    GCC 和 TASKING 有什么区别? 我应该为 AURIXTC3xx 选择什么? 这将如何影响代码的运行?
    发表于 03-01 10:09

    TSIM是否支持TC3xx系列在没有硬件的情况下调试应用程序?

    你好, TSIM是否支持TC3xx系列在没有硬件的情况下调试应用程序? AURIX TC3xx - Free Entry ToolChain 是否有助于实现上述目的?
    发表于 05-17 07:02

    英飞凌AURIX单片机TC3xx系列助力自动驾驶和电动交通发展

    2016年10月28日,为满足自动驾驶汽车和电动车的市场需求,英飞凌科技股份公司(FSE: IFX / OTCQX: IFNNY)近日发布新一代 AURIX™单片机,即TC3xx,它是市场上同类器件中集成度最高的产品,实时性能是现有器件的
    发表于 11-07 13:51 3048次阅读

    英飞凌AURIX单片机TC3xx系列助力电动交通发展

    为满足自动驾驶汽车和电动车的市场需求,英飞凌科技股份公司近日发布新一代 AURIX™单片机,即TC3xx,它是市场上同类器件中集成度最高的产品,实时性能是现有器件的3倍。
    发表于 03-24 13:42 5831次阅读

    英飞凌 AURIX 单片机 培训文档链接

    包括AURIX™ -TC2xx Microcontroller TrainingAURIX™ -TC3xx Microcontroller TrainingAURIX™ TC2xx I
    发表于 12-03 16:06 19次下载
    英飞凌 <b class='flag-5'>AURIX</b> 单片机 培训文档链接

    AURIXTC3xx NVM是非易失性存储器学习笔记

    TC3xx芯片最多有6个内核,每个核有自己的私有的Memory以及共有的Memory。
    发表于 06-19 09:09 6369次阅读
    <b class='flag-5'>AURIX</b>™ <b class='flag-5'>TC3xx</b> NVM是非易失性存储器学习笔记

    英飞凌AURIX TC3xx和TRAVEO T2G系列微控制器介绍

    英飞凌市场领先的 AURIX TC3xx 和TRAVEO T2G 车用 MCU将率先支持Rust语言。虽然TRAVEO 使用的是 Rust 官方工具链和Arm Cortex-M 目标架构,但英飞凌的工具合作伙伴 HighTec EDV-Systeme 为
    发表于 06-20 15:07 820次阅读
    英飞凌<b class='flag-5'>AURIX</b> <b class='flag-5'>TC3xx</b>和TRAVEO T2G系列微控制器介绍

    TC3xx芯片DMU介绍

    AUTOSAR架构图下的Fls模块对上(Fee)模块提供统一的标准接口,但是具体的实现因不同的芯片而不一样,Infineon公司的Fls模块通过操作TC3xx芯片的DMU模块实现Fls的功能。在具体
    的头像 发表于 08-31 14:10 1758次阅读
    <b class='flag-5'>TC3xx</b>芯片DMU介绍

    TC3xx芯片的MPU功能详解

    在前面的文章文章中我们介绍了RH850-U2A的内存保护单元(MPU),了解了MPU的概念以及在RH850-U2A上的具体使用流程,但是对于TC3xx系列芯片的的MPU功能不甚了解。
    的头像 发表于 09-19 11:42 2103次阅读
    <b class='flag-5'>TC3xx</b>芯片的MPU功能<b class='flag-5'>详解</b>