当前位置: 首页 > news >正文

TC3xx学习笔记-UCB BMHD使用详解(一)

文章目录

    • 前言
    • UCB BMHD
      • PINDIS
      • HWCFG
      • LSENA0-3
      • LBISTENA
      • CHSWENA
      • BMHDID
      • STAD
      • CRCBMHD
      • CRCBMHD_N
      • PW0-7
    • 总结

前言

AURIX Tc系列Mcu启动过程,必须要了解BMHD,本文详细介绍BMHD的定义及使用过程

UCB BMHD

UCB表示User Configuration Block,UCB是Dflash,存储的地址如下:
在这里插入图片描述

BMHD表示Boot Mode Headers.BMHD存储在UCBU的前四个block(还有四个copy的block在8-11个block)

BMHD0和BMHD8有密码,BMHD1-3,UCB09, UCB10, UCB11没有密码

BMHD定义如下:
在这里插入图片描述
在这里插入图片描述

PINDIS

按配置引脚选择模式:

0B启用HWCFG引脚选择模式功能

1B禁用HWCFG引脚选择模式功能

这个功能是用来禁止硬件PIN(HWCFG)来选择启动模式的

HWCFG

启动模式选择:

111B内部从Flash启动

110B备用启动模式(ABM)

100B通用引导加载模式(ASC/CAN BSL)

011BASC Bootstrap Loader Mode (ASC BSL) elseinvalid

如果禁用了HWCFG PIN启动,则只能通过配置HWCFG位来选择启动模式

LSENA0-3

通过SSW对CPU0进行同步监控控制:

0B关闭CPU0-3的Lockstep监控

1B开启CPU0-3的blockstep监控

LBISTENA

LBIST执行由SSW启动:

0B禁用由SSW启动LBIST

1B启用冷上电SSW启动LBIST

该BIT是为了启动时SSW禁用LBIST

CHSWENA

检查软件(CHSW)执行后的SSW:

101B关闭SSW后的CHSW执行

否则开启SSW后的CHSW执行

该BIT是为了启动时SSW禁用CHSW

BMHDID

固定0xB359,其他值无效

STAD

起始地址(总是必须在PFLASH内部, 32bit对齐):

如果选择了备用启动模式,则该地址为ABM头的起始地址

如果选择了内部flash启动,则该地址为内部启动的起始地址

否则则不考虑模式选择

CRCBMHD

前8个字节的CRC

CRCBMHD_N

前8个字节的CRC反转值

CRC的计算方法如下:

Use CRC32

A polynomial of: 0x4C11DB7

Initial value: 0xFFFFFFFF

Final XOR Value: 0xFFFFFFFF (for non inverted CRC)

Final XOR Value: 0x00000000 (for inverted CRC)

可以使用CRC计算中的工具计算

当起始地址为0xA00A0020时,对应的CRC值为0x4FB4A033ul, 0xB04B5FCCul
在这里插入图片描述
在这里插入图片描述

PW0-7

保护UCB的密码,如果写入了值,并通过CONFIRMATION写入了使能保护,则修改UCB时需要输入密码

DMU_HF_PROTECT.PRODISx可以指示禁用保护的状态,为1时说明是禁用保护的状态
在这里插入图片描述
解锁方法如下:
对同一个地址写不同的值,第一次为UC,第二次为PW0,第三次为PW1.。。以此类推
在这里插入图片描述
在这里插入图片描述

总结

本文介绍了BMHD的定义,后面还会继续介绍BMHD的ORIGIN和COPY的用法,以及密码保护的使用

http://www.xdnf.cn/news/154693.html

相关文章:

  • 多个请求并行改造
  • 使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分
  • Ubuntu20.04部署Dify(Docker方式)
  • 顶点着色器和片元着色器染色+表面体着色器染色
  • 深入理解算力:从普通电脑到宏观计算世界
  • MySQL长事务的隐患:深入剖析与解决方案
  • 【Castle-X机器人】二、智能导览模块安装与调试
  • 【Castle-X机器人】四、智能机械臂安装与调试
  • 【C++】stack、queue和priority_queue的模拟实现
  • Android Compose 框架图像修饰深度剖析:从源码到实践(八)
  • ‌MySQL 事务隔离级别详解
  • 深入剖析 Vue 组件:从基础到实践
  • 5G融合消息PaaS项目深度解析 - Java架构师面试实战
  • Linux文件操作命令终极指南:从查看到高级搜索
  • 使用MobaXterm远程登录Ubuntu系统:SSH服务配置教程
  • 【Docker项目实战】使用Docker部署Caddy+vaultwarden密码管理工具(详细教程)
  • 【Linux网络】打造初级网络计算器 - 从协议设计到服务实现
  • 模态链:利用视觉-语言模型从多模态人类视频中学习操作程序
  • 有关图的类型的题目(1)
  • Linux下终端命令行安装常见字体示例
  • 基于亚马逊云科技构建音频转文本无服务器应用程序
  • 使用matplotlib绘制Raincloud图/云雨图/柱状图/小提琴图
  • 《代码之美:静态分析工具与 CI 集成详解》
  • 【虚幻C++笔记】碰撞检测
  • 探秘卷积神经网络:深度学习的图像识别利器
  • 【Linux网络】构建HTTP响应与请求处理系统 - HttpResponse从理解到实现
  • 常见的机器视觉通用软件
  • JDBC数据库操作中如何保证最后关闭了所占用的资源——try用法的细节控制
  • k8s中资源的介绍及标准资源namespaces实践
  • 如何在 Conda 环境中降级 Python 版本:详细指南