AURIX™ TC3xx 启动流程
2023-6-3 17:50:17 Author: 谈思实验室(查看原文) 阅读量:17 收藏

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

前言

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

参考资料:

[1]https://videos.infineon-autoeco.com/pc/page/index?keyword=AURIX

[2]TriCore TM TC1.6.2 core architecture manual

[3 ]Infineon-AURIX_TC3xx_Part1-UserManual-v02_00-EN

正文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ASC Bootstrap LoaderGeneric Bootstrap Loader差不多。

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

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

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

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

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

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

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

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

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

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

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

码上报名

AES 2023 第四届中国国际汽车以太网峰会,6月8-9日,上海

更多文章

智能网联汽车信息安全综述

软件如何「吞噬」汽车?

汽车信息安全 TARA 分析方法实例简介

汽车FOTA信息安全规范及方法研究

联合国WP.29车辆网络安全法规正式发布

滴滴下架,我却看到数据安全的曙光

从特斯拉被约谈到车辆远程升级(OTA)技术的合规

如何通过CAN破解汽

会员权益: (点击可进入)谈思实验室VIP会员

END

微信入群

谈思实验室专注智能汽车信息安全、预期功能安全、自动驾驶、以太网等汽车创新技术,为汽车行业提供最优质的学习交流服务,并依托强大的产业及专家资源,致力于打造汽车产业一流高效的商务平台。

每年谈思实验室举办数十场线上线下品牌活动,拥有数十个智能汽车创新技术的精品专题社群,覆盖BMW、Daimler、PSA、Audi、Volvo、Nissan、广汽、一汽、上汽、蔚来等近百家国内国际领先的汽车厂商专家,已经服务上万名智能汽车行业上下游产业链从业者。专属社群有:信息安全功能安全自动驾驶TARA渗透测试SOTIFWP.29以太网物联网安全等,现专题社群仍然开放,入满即止。

扫描二维码添加微信,根据提示,可以进入有意向的专题交流群,享受最新资讯及与业内专家互动机会。

谈思实验室,为汽车科技赋能,推动产业创新发展!


文章来源: http://mp.weixin.qq.com/s?__biz=MzIzOTc2OTAxMg==&mid=2247522711&idx=1&sn=f045ecca4bf959139fb1423d623878dd&chksm=e927dd4cde50545ae4fa95309d5ff436bc98e170f330beea4dc9ea5f0986f5b7dde7fe5aaac3#rd
如有侵权请联系:admin#unsafe.sh