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

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

3天内不再提示

一起学习TC3xx芯片的UCB文件

832065824 ? 来源:汽车电子嵌入式 ? 2023-06-13 09:05 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

刚开始使用TC3xx芯片的时候,程序烧录进去后起不来,一番咨询后是因为没有配置UCB导致的,然后刷了一个其他平台项目的UCB文件后,程序正常起来了。本着刨根问底的态度,今天就来一起学习TC3xx芯片的UCB。因为UCB的配置内容非常的多,本文以UCB中BMHD的配置为例详细介绍通过UCB来配置符合用户需求的BMHD,其他UCB的具体内容的配置及分析思路可以参考本文。

正文

1.UCB的定义及其功能简介

UCB是User Configuration Block的简称。TC3xx芯片提供了一块23KB的Flash存储空间用作UCB配置。每个UCB大小为512 Byte,总共有46个UCB配置项,UCB的起始地址为0xAF400000,结束地址为0xAF405FFF

9acdc012-0980-11ee-962d-dac502259ad0.png

TC3xx芯片在启动时会运行固化在芯片内部的名为SSW的软件,SSW软件在运行时可以读取用户的配置信息来进行特定化的启动操作,比如SSW运行完后跳转到客户应用程序的起始地址,RAM是否需要进行初始化及冷启动还是热启动后初始化等,是否需要进行LBIST操作等。而这些可以让用户自定义的配置就是UCB的配置内容。

也就是说,用户可以通过配置UCB来影响SSW程序的执行(比如跳转的APP的起始地址),及完成芯片的特殊配置(比如使能HSM等)

9afd9d0a-0980-11ee-962d-dac502259ad0.png

2.UCB_BMHD0_ORIN/COPY功能详细分析

UCB的配置内容很多,这里详细介绍UCB_BMHD0_ORIN和UCB_BMHD0_COPY,起到抛砖引玉的作用,在分析其他UCB的时候可以参考。

UCB_BMHD0_ORIN和UCB_BMHD0_COPY用来配置Boot Mode Headers (BMHD),SSW程序在启动时会读取UCB_BMHD0_ORIN和UCB_BMHD0_COPY配置信息进行评估,然后执行对应的操作。UCB_BMHD0_ORIN和UCB_BMHD0_COPY的配置项目如下图所示。

9b0b013e-0980-11ee-962d-dac502259ad0.png

2.1 BMI_BMHD

BMI配置如下图所示,BMI可以配置:

PINDIS: 是否可以通过HWCFG pins外部配置Start-up mode

HWCFG:程序的Start-up mode选择,比如配置为111B则SSW介绍后直接跳转到Checker Software

LSENAx: 配置是否使能CPUx的Lockstep monitoring

LBISTENA: 配置是否在SSW执行LBIST

CHSWENA:配置SSW程序结束后是否执行CHSW

9b627f04-0980-11ee-962d-dac502259ad0.png

9bbf27ea-0980-11ee-962d-dac502259ad0.png

BMHDID:固定为0xB359H

2.2 STAD

STAD: 如果是ABM启动,则为Alternate Boot Mode Header的起始地址;如果为Internal 启动,则为用户程序的起始地址

2.3 CRCBMHD

CRCBMHD: 是BMI+ BMHDID +STAD值的CRC32校验值

CRCBMHD_N:是BMI+ BMHDID +STAD反向值的CRC32校验值

2.4 Password

PW0-PW7: 给UCB_BMHD0_ORIN和UCB_BMHD0_COPY安装(Install)密码(Password),如果我们在运行时想要修改UCB_BMHD0_ORIN和UCB_BMHD0_COPY的内容,需要通过Disable Protection指令传入Password进行match后才能修改

9bd87556-0980-11ee-962d-dac502259ad0.png

9c098a74-0980-11ee-962d-dac502259ad0.png

例如:执行

ST553CH, 0x00

ST.W 553CH, PW0

ST.W 553CH, PW1

ST.W 553CH, PW2

ST.W 553CH, PW3

ST.W 553CH, PW4

ST.W 553CH, PW5

ST.W 553CH, PW6

ST.W 553CH, PW7

就能Disable UCB_BMHD0_ORIN和UCB_BMHD0_COPY的写保护。

9c3e2176-0980-11ee-962d-dac502259ad0.png

2.5 Confirmation

往Confirmation位域中写入特定的值就能让Confirmation处于:UNLOCKED, CONFIRMATION,ERASED,ERRORED四种状态之一。

9c4d0632-0980-11ee-962d-dac502259ad0.png

然后,UCB_BMHD0_ORIN和UCB_BMHD0_COPY中的Confirmation的状态组合,就能决定SSW使用ORIN还是COPY中的配置数据

9c7fb96a-0980-11ee-962d-dac502259ad0.png

3.UCB在项目中的使用

请关注本公众号的后续文章。

4. 总结

. 通过配置UCB可以指导SSW程序的执行及系统的相关配置

. UCB_BMHD_ORIN/COPY主要配置程序的启动模式,SSW程序结束后的跳转地址,是否开启锁步核及以及是否在SSW中执行LBIST

. 读者可以参照本文的分析思路来分析其他UCB_HSMCFG, UCB_PFLASH_ORIN/COPY等的配置选项





审核编辑:刘清

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

    关注

    0

    文章

    3

    浏览量

    7466
  • CRC32
    +关注

    关注

    0

    文章

    8

    浏览量

    8551
  • Flash存储
    +关注

    关注

    0

    文章

    40

    浏览量

    8458

原文标题:TC3xx芯片的UCB详解

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    两片TC3XX芯片之间的时钟同步可以实现吗?

    实现两片TC3XX芯片之间的时钟同步,希望两片芯片的PWM输出能够同步。类似功能的芯片能实现上述操作吗?期待你的答复。非常感谢!!!
    发表于 08-04 07:51

    TC3XX /TC1.6.2OCDS如何通过软件启用核心调试控制器?

    如何通过软件启用核心调试控制器?也就是说可以通过软件读取DBGSR.DE =1。参考TriCore? TM TC1.6.2 核心架构手册第 1 卷。
    发表于 07-30 06:27

    禁用直接LPB访问,如何与TC3x 上的 SWAPEN 协同工作?

    禁用直接 LPB 访问 (xDDIS) 位可通过 TC37x 的 FLASHCON4 和 PROCONTP 进行配置。在 SOTA 场景中,我们应该如何配置上述两个寄存器? 如果我启用 SWAPEN,我是否应该禁用 UCB_OTP PROCONTP 中的 DDIS?
    发表于 07-29 10:26

    TC397XX如何使用 EB 堆栈处理 IRQ?

    我们正在使用 TC397XX。我遇到的问题是 EB Stack 中没有 IRQ 驱动程序。那么,我们如何使用 EB 堆栈处理 IRQ。 从哪个 AUTOSAR 版本开始,IRQ 驱动程序被删除了?
    发表于 07-15 06:20

    Aurix TC36x MTU SSH4 和 SSH9寄存器值错误的原因?

    有所不同。 我直不明白,为什么 MTU SSH4 和 SSH9 会在不改变 DMU_HF_PROCONRAM 寄存器的情况下发生改变 根据 TC3xx 安全手册 2.0,只要 SSH4 和 SSH9
    发表于 07-14 07:52

    CYW920820M2EVB-01开发套件可以与蓝牙的免提配置文件一起使用吗?

    我有英飞凌 CYW920820M2EVB-01 开发套件,我想将它与蓝牙的免提配置文件一起使用。 是否可以。 该套件是否支持该配置文件? 我无法在任何地方找到该套件支持的配置文件。 如
    发表于 06-30 06:15

    CyU3PDeviceGpioOverride是否仅与LPP引脚一起使用?

    CyU3PDeviceGpioOverride 是否仅与 LPP 引脚一起使用? 如果使用 CyU3PDeviceGpioOverride,则 io_cfg.gpioSimpleEn 跳过还是反之亦然?
    发表于 05-15 07:33

    请问tc3xx如何配置多个dedicatedRxBuffersNumber?

    tc3xx如何配置多个dedicatedRxBuffersNumber?
    发表于 04-21 07:53

    AN-166:与Linduino一起飞行中更新

    电子发烧友网站提供《AN-166:与Linduino一起飞行中更新.pdf》资料免费下载
    发表于 01-12 10:09 ?0次下载
    AN-166:与Linduino<b class='flag-5'>一起</b>飞行中更新

    将UCC39002与3个PT4484模块一起使用

    电子发烧友网站提供《将UCC39002与3个PT4484模块一起使用.pdf》资料免费下载
    发表于 12-21 10:23 ?0次下载
    将UCC39002与<b class='flag-5'>3</b>个PT4484模块<b class='flag-5'>一起</b>使用

    优化TC3xx系统运行效率的策略

    目录 1.Tricore寻址模式 2.lsl链接文件Section分析 3.限定符对于代码的影响 4.小结 1.Tricore寻址模式 今天聊个好玩的事情。 之前ARM培训的时候,他们对于函数形参
    的头像 发表于 11-16 11:00 ?1521次阅读
    优化<b class='flag-5'>TC3xx</b>系统运行效率的策略

    TAS57XX当BCLK为64*fs的频率,BCLK和MCLK引脚连接在一起用,这个是对57XX所有芯片都适用吗?

    TAS57XX当BCLK为64*fs的频率,并且采样率在44.1KHz以上的时候可以使用。此时,BCLK和MCLK引脚连接在一起用,这个是对57XX所有芯片都适用吗?会对音频指标有什
    发表于 11-06 08:33

    请问AURIX TC3xx tricore架构下浮点运算和将浮点数小数点去掉变成整数来计算哪种方式更加节省算力?

    AURIX TC3xx tricore架构下浮点运算和将浮点数小数点去掉变成整数来计算哪种方式更加节省算力? 比如个浮点数12.89V,如果将其写成12890mV,再参与计算,哪种方式更加节省算力
    发表于 08-26 06:54

    请问EB tresos如何配置TC39XX的Flexray?

    EB tresos如何配置TC39XX 的 Flexray,在网络上找不到相关的配置方法。可以提供下 EB 的配置工程吗?
    发表于 08-14 08:14

    DAC8771RGZ电流输出端IOUT和电压输VOUT出端是连在一起的,是否可以不并在一起

    请教下DAC8771RGZ这款芯片,看官方demo板,电流输出端IOUT和电压输VOUT出端是连在一起的,是否可以不并在一起,分成两路,单独分别输出电流或电压吗?
    发表于 08-08 07:59