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

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

3天内不再提示

英飞凌TC27X芯片的启动学习笔记

832065824 来源:汽车ECU开发 作者:eng2mot 2022-12-09 11:50 次阅读

启动软件是芯片复位后执行的第一个软件。

SSW在CPU0上执行 - 所有其他CPU在引导期间保持Halt状态,由用户软件启动,而:

BootROM中的SSW起始地址是CPU0的程序计数器寄存器中的复位值。从该位置获取指令,这是在任何设备启动之后执行的第一条指令。在此入口点之后,固件立即检查testmode,如果选择了testmode,则执行跳转到测试固件

最后一条SSW指令跳转到第一条用户代码指令。取决于用户选择的启动配置,可以从不同位置获取该第一用户指令。

启动软件包含根据以下一项或多项初始化设备的过程:

以前存储在专用Flash位置的信息

专用寄存器/存储器位置中的特殊位/字段的当前状态

触发SSW执行的事件类型(最后一次重置事件),SSW执行可以由不同的事件触发,包括上电、系统复位、应用复位。

应用于外部(配置)引脚的值(可选)SSW还会调用 - 以防 - 其他固件模块。

启动时的时钟系统

上电或是系统复位后,时钟模块处于初始化状态,各个总线的时钟频率如下:

8fd0a600-76ed-11ed-8abf-dac502259ad0.png

而应用程序复位后,时钟系统不会改变其状态,因此器件以与复位事件之前相同的频率和时钟源运行。

有个注意的点是上电启动过程和系统复位会重写从CPU0 DSPR起的8 KByte空间。因此,应用软件不应使用该区域保存数据。不同复位的影响如下图所示。

8fecd35c-76ed-11ed-8abf-dac502259ad0.jpg

启动模式

其中HWCFG[0:2]用于配置MCU供电模式,HWCFG[3]是BMI的选择引脚,它决定启动配置从引脚HWCFG[4:5]选择,还是从Flash中BMI选择。为了节省引脚资源和避免安全漏洞,通常启动模式选择用Flash中的BMI,芯片的判断流程如下图所示。

901b9aa2-76ed-11ed-8abf-dac502259ad0.png

BMI信息存放在BMHD寄存器中,共由9个字段组成,如下图所示,Flash中的BMHD寄存器总共有4个,如图2所示,其目的是为了做冗余设计,保证在一个或多个损坏时,芯片仍能正常启动。

90496cb6-76ed-11ed-8abf-dac502259ad0.jpg

90729b18-76ed-11ed-8abf-dac502259ad0.jpg

其中:

1、STADABM存放的是用户代码的入口地址;

2、BMI用于配置用户的启动模式,BMI.PINDIS用于配置是否屏蔽硬件HWCFG[3:5]引脚功能,如果该位置位,那么BMI.HWCFG用作启动配置;

3、LCL0LSEN、LCL1LSEN用于配置是否使能core0、core1的锁步功能;

4、BMHDID为固定值0xB359;

5、ChkStart、ChkEnd用于存放计算CRC的起始地址和末尾地址,CRCrange、CC—R—C—r—a—n—g—e—分别是按照IEEE802.3中的CRC算法计算的CRC值和其取反的值;

6、CRChead、C—R—C—h—e—a—d—是计算BMHD的00H~17H的CRC值和其取反的值。

启动流程

如下图所示,主要的初始化过程在CPU0上执行,如果初始化阶段要求锁步核校验,也可以切换至CPU1。其中Firmware固化在BootROM中的启动程序。对于冷复位,可以通过配置PROCOND寄存器选择性地初始化内存区。下面结合图3介绍启动的主要步骤:

1、调用Cstart()函数初始化C运行环境;初始化堆栈指针和程序状态字(PSW)寄存器,A10寄存器用作堆栈指针,用户堆栈指针基地址和堆栈大小通过连接文件设置,启动代码应该测试和初始化用于堆栈的存储区,对齐堆栈边界;上下文存储区(CSA)初始化,PSW(CDC )寄存器中表示连续上下文切换的调用深度内容应该被重置,通过PCXI、LCX、FCX寄存器初始化CSA链表,通过连接文件配置CSA的大小;中断及陷阱向量表的基地址初始化,也就是BIV和BTV寄存器;初始化PCON和DCON寄存器使能程序缓存、数据缓存,该寄存器的配置能有效缩短程序的运行时间;清除bss段的内存,复制data段的数据至内存中。

2、确认已发生的复位时间类型,并测试是否有电源故障和内存数据是否一致。如果复位类型为应用复位,且内存数据没有破坏,则不需要初始化内存、时钟、Flash模块,从而进入快速启动过程。

3、初始化驱动和外设至默认状态。例如将端口引脚初始化为所需要的初始电气状态。

4、进行安全测试和初始化。包括CPU测试、RAM测试、SMU警告检测和其他重要的安全启动测试。另外可以调用safeTlib程序。

5、完成安全测试之后,对应用需要的硬件模块驱动进行初始化,时钟初始化,Flash配置,GTM初始化等。

6、在驱动程序初始化后,此时硬件只启动了CPU0,其他核仍保持Halt状态,软件通过调用Startcore()、Cstart()函数启动和初始化相应的核,最后把控制权交给操作系统

908c472a-76ed-11ed-8abf-dac502259ad0.jpg

审核编辑:汤梓红

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

    关注

    66

    文章

    2110

    浏览量

    138110
  • 寄存器
    +关注

    关注

    31

    文章

    5267

    浏览量

    119606
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10761

    浏览量

    210345

原文标题:英飞凌TC27X芯片的启动学习笔记

文章出处:【微信号:汽车电子嵌入式,微信公众号:汽车电子嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    声明:本文是在学习英飞凌 TC3XX系列多核 MCU 过程中整理的笔记,便于后期复习!
    发表于 09-19 09:54 2146次阅读
    <b class='flag-5'>英飞凌</b><b class='flag-5'>TC</b>3XX系列多核MCU<b class='flag-5'>学习</b><b class='flag-5'>笔记</b>(1)

    国产智驾域控上为什么很多是英飞凌TC397?

    电子发烧友网报道(文/梁浩斌)最近看到一个博主拆解了多个智驾域控制器,发现英飞凌TC397/TC297的出镜率非常高,而且是覆盖不同的智驾芯片方案。包括华为的MDC610、小鹏G9上德
    的头像 发表于 09-13 00:13 5041次阅读

    TC275如何修改BMI从PF1启动

    求问英飞凌TC275如何修改BMI从PF1(0xA0200000)启动
    发表于 02-02 06:54

    使用aurix development studio对 TC213L mcu进行编程显示设备锁定错误,怎么解决?

    : 英飞凌 芯片TC2_592k 子名称 : 数据闪存库 0b 宽度 : 32 大小 : 16384 芯片数 : 1 未使用的地址线 : 0 配置:
    发表于 07-02 06:57

    英飞凌TC1767

    那位老师有英飞凌TC1767汽车编程器。软件
    发表于 01-08 03:20

    英飞凌TC1797Data sheet

    英飞凌TC1797Data sheet,欢迎使用这块芯片的一起交流
    发表于 04-26 12:24

    大家有人使用过英飞凌芯片做电机控制的吗

    大家有人使用过英飞凌芯片做电机控制的吗?请问英飞凌TC1797和TI 28335区别在哪啊?
    发表于 04-26 12:26

    基于英飞凌Tc1797芯片的电机控制系统设计

    电机控制系统能否满足电动汽车的要求,是新能源汽车研发中的重要问题。本文介绍了基于英飞凌Tc1797芯片的电机控制系统设计方法。为电动汽车中电机控制系统的设计提供了可行、可靠的方案。 由于全球
    发表于 12-06 10:03

    MCU模块的功能有哪些

    及外设时钟等;初始化RAM区;MCU的功耗控制;MCU的复位控制;获取复位原因.模块提供的服务接口功能三、配置1、时钟配置英飞凌TC27x系列,提供EXCEL配置工具,可直接输入需要的频率,直接计算出各个配置项的配置值,例如时钟分频值等。...
    发表于 11-01 07:32

    中断系统的相关资料推荐

    中断系统TC27x中断系统框图TC27x中的中断系统在中断路由器模块中实现,该模块包括服务请求节点( SRN),中断控制单元( ICU)和支持软件(SW)开发的附加功能。如图所示,每个可以生成
    发表于 02-22 06:38

    英飞凌aurix tc27x系列介绍

      全新AURIXTC27x系列是英飞凌下一代MCU系列产品的平台,可满足最新的汽车动力总成和安全应用要求。最多可由三个TriCore构成,以AMP、SMP或锁步模式处理应用负载。第一款AURIX设备是TC27x,配有200MH
    发表于 09-12 18:55 109次下载

    AURIX TriCore学习笔记六:TC397开发环境搭建

    AURIX TriCore学习笔记六:TC397开发环境搭建
    发表于 11-13 20:21 37次下载
    AURIX TriCore<b class='flag-5'>学习</b><b class='flag-5'>笔记</b>六:<b class='flag-5'>TC</b>397开发环境搭建

    AURIX系列之TC275学习笔记(五):中断系统

    中断系统 TC27x中断系统框图TC27x中的中断系统在中断路由器模块中实现,该模块包括服务请求节点
    发表于 12-27 19:20 18次下载
    AURIX系列之<b class='flag-5'>TC</b>275<b class='flag-5'>学习</b><b class='flag-5'>笔记</b>(五):中断系统

    英飞凌TC3XX MCAL CAN模块简析

    英飞凌芯片在汽车电子里用得可谓是颇多,刚好小编也用过,最近刚好在摸TC3系列的CAN模块,刚好简单写写。
    的头像 发表于 03-07 09:29 2394次阅读

    英飞凌AURIX TC4x微控制器系列中的并行处理单元(PPU)简介

    并行处理单元(PPU)是集成在英飞凌AURIX™ TC4x微控制器系列中的协处理器。
    的头像 发表于 05-17 10:52 775次阅读
    <b class='flag-5'>英飞凌</b>AURIX <b class='flag-5'>TC4x</b>微控制器系列中的并行处理单元(PPU)简介