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

英飞凌TC3xx--深度手撕HSM安全启动(五)--TC3xx HSM启动流程、通信机制分析

        在包含HSM的MCU的软件开发里,Host和Hsm应该为两个独立的软件工程。不管是Etas还是Vector的HSM包,都是需要单独收费的。

        既然是单独的工程,相应的启动代码也是必须要有的。

        在英飞凌的HSM固件架构里,HSM BootRom主要有以下几个作用:内部测试、生产使用、启动配置等。那么接下来,我们深入分析下HSM的BootRom到底干了些什么?

1、问题引入

  1. 根据芯片手册,系统上电后只有CPU0一个核处于运行(运行SSW),那么HSM的核(CM3)在什么时候释放并运行自己的BootROM(简称BoS)?
  2. 在Host侧,有一个寄存器用于选择HSM code的启动地址,那么是不是在BoS里要去判断这些启动位置是否有有效的中断向量表?
  3. HSM的安全启动是如何进行的?
  4. Host和HSM如何进行通信

2、Host和HSM通信机制

        为什么要先讲这个?因为Host CPU0首先启动,然后由CPU0释放HSM核。同时HSM在启动过程中也会和Host进行交互。基于此,所以先聊二者的通信机制(本质上是我最开始写BootRom流程发现里面用到了很多通信机制,所以先讲,避免大家迷糊了)。

        在英飞凌的设计中,Host和HSM之间通过一个Bridge模块来实现Host和HSM的隔离,通过Bridge里的Communication单元来实现双方的通信,如下:

http://www.lryc.cn/news/170651.html

相关文章:

  • 【窗体】Winform两个窗体之间通过委托事件进行值传递,基础篇
  • mac使用指南
  • Git 版本控制系统 笔记
  • VRTK4⭐四.和 UI 元素交互
  • 【STM32】SDIO—SD 卡读写01
  • SpringCloud Alibaba 整合Sentinel的基本使用
  • Linux中如何执行命令
  • 基于51单片机的智能病房呼叫系统的设计与实现
  • js在一个时间范围内产生一个随机时间
  • Javascript Date 对象相关知识
  • Vim快捷用法
  • Stream流的常用方法(自用)
  • 【python函数】torch.nn.Embedding函数用法图解
  • with ldid... /opt/MonkeyDev/bin/md: line 326: ldid: command not found
  • [golang gui]fyne框架代码示例
  • 2000-2018年各省能源消费和碳排放数据
  • C# ref 学习1
  • MQ - 08 基础篇_消费者客户端SDK设计(下)
  • Flutter层对于Android 13存储权限的适配问题
  • Android kotlin开源项目-功能标题目录
  • Linux下,基于TCP与UDP协议,不同进程下单线程通信服务器
  • qt功能自己创作
  • Linux网络编程:使用UDP和TCP协议实现网络通信
  • 【后端速成 Vue】初识指令(上)
  • 爬虫 — Scrapy-Redis
  • tcpdump常用命令
  • 计算机网络运输层网络层补充
  • java CAS详解(深入源码剖析)
  • 1786_MTALAB代码生成把通用函数生成独立文件
  • 2023/09/19 qt day3