英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法
本系列的其它几篇文章:
《英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM》
《英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器》
《英飞凌 AURIX 系列单片机的HSM详解(4)——Tricore核与HSM核之间的通信方法》
《英飞凌 AURIX 系列单片机的HSM详解(5)——HSM硬件加速模块的使用》
本文以TC397为例,来介绍一下HSM的开发方法。
1. 编译器
HSM开发时分两类工程,一类工程是编译Tricore内核代码的,用到的编译器是Tasking for Tricore;
另一类工程是编译HSM的ARM Cortex-M3内核的,用的是Tasking ARM for HSM。
各个版本可以在下面Tasking的官网上找到,需要试用的话要联系Tasking的销售:
https://www.tasking.com/support/tricore-and-aurix-toolset-support#4.3
2. 调试器
英飞凌的Miniwiggler支持Tricore和HSM核的调试,可以使用Tasking内嵌的Debugger。
高端一点的调试器可以用Lauterbach,配合软件Trace32,需要有Tricore和ARM的license。用Trace32软件结合Lauterbach硬件调试器可以实现HSM核和Tricore核程序的烧写和调试。此外还有iSYSTEM等不太常用的调试器。
3. PFlash地址划分
HSM核的程序代码可以存放于PFlash0的S0-S39这40个16K的PFlash块中,手册中对该区域的定义如下,我们暂时先考虑右侧“HSM only”的情况,先不管TP:
我们此次将该区域划分成如下三部分:
PF0的起始地址0x80000000处的S0-S1用于存放Tricore APP的部分代码,Tricore上电后从0x80000000处开始执行。
HSM代码分为BootLoader和APP两部分,此次将HSM的BootLoader起始地址放在S2 - 0x80008000处,HSM的APP起始地址放在S24 - 0x80060000处,将S2-S39共38个Sector都预留给HSM使用,其中BootLoader分配352K空间,APP分配256K空间。
预留给HSM的这38个Sector要被保护起来,是通过寄存器SP_PROCONHSMCX0/1两个寄存器设置的,HSM的BootLoader启动地址由寄存器SP_PROCONHSMCBS设置,这三个寄存器又都由UBC中的UCB_HSMCOTP0/1_ORIG和UCB_HSMCOTP0/1_COPY定义,详细定义见上一篇文章。这三个寄存器的设置值如图中所示。
MCU上电时,SSW代码先判断UCB中的内容,如有效则将其复制到响应的寄存器中,然后查找SP_PROCONHSMCBS获取HSM核的启动代码地址,启动HSM核。
Flash地址分配可以用链接脚本来控制,代码共分为三个部分,Tricore的APP,HSM的BootLoader和HSM的APP,三个工程的链接脚本要相互配合好,保证编译出来的代码不会互相覆盖。
例如,HSM BootLoader工程中的链接脚本中,PFlash起始地址定义如下:
#define HSM_FLASH 0x80008000
HSM APP工程链接脚本中的PFlash起始地址定义如下:
#define HSM_FLASH 0x80060000
Tricore APP工程链接脚本中,应将PF0中用于HSM的一段剔除,例如:
原链接脚本:
修改为:
(这里pfls01的大小为了方便就写了2M,实际剩余空间>2M)。
将原来放在pfls0的代码段都改为pfls01,只有启动代码放在pfls00中,要修改的地方比较多就不一一列举了:
编译后的Hex文件地址如下图所示:
我们可以看到0x80008000-0x8009FFFF这一段已经没有代码了,被预留出来烧写HSM的代码。
4. 程序烧写步骤
根据上文所述,共有三个工程,分别编译得到三个elf或hex文件。程序烧写步骤如下:
(1)烧写BMHD
首先确保BMHD区域的值正确,保证Tricore可以正常启动。
(2)禁用HSM
在烧写HSM程序前,要保证HSM处于禁用的状态,即UCB_HSMCOTP0/1_ORIG和UCB_HSMCOTP0/1_COPY两个UCB中 PROCONHSMCFG 中的HSMBOOTEN值为0。
(3)烧写程序
向PFlash中烧写HSM的BootLoader程序、APP程序和Tricore的APP程序。
(4)程序校验
查看PFlash相应地址处的程序,确保三个程序烧写完整,彼此没有覆盖。
(5)配置HSM BootLoader启动地址
在PROCONHSMCBS寄存器中配置正确的HSM BootLoader启动地址,依据前文所述,向UCB_HSMCOTP0/1_ORIG 和UCB_HSMCOTP0/1_COPY两个UCB中的PROCONHSMCBS中的BOOTSELx填入0x02(暂定,待验证)。
(6)启用HSM
以上准备工作完成后,就可以启用HSM配置了,即向UCB_HSMCOTP0/1_ORIG和UCB_HSMCOTP0/1_COPY两个UCB中 PROCONHSMCFG 中的HSMBOOTEN写入1.
以上配置都完成且正确后,再次给MCU上电,MCU即可启动Tricore核和HSM核。
英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法相关推荐
- 英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM
本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> <英飞凌 AURIX 系列单片机的HSM详解(3)--开发方法> ...
- 英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器
本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(1)--何为HSM> <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> ...
- 英飞凌 AURIX 系列单片机的HSM详解(5)——HSM硬件加速模块的使用
本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(1)--何为HSM> <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> ...
- 英飞凌 AURIX 系列单片机的HSM详解(4)——Tricore核与HSM核之间的通信方法
本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(1)--何为HSM> <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> ...
- STM8L101系列单片机串口配置详解(基于IAR自带库)
STM8L101f3p6 有一个串口如图 本历程基于库操作 不讨论具体寄存器操作 有兴趣的同学可以自行参考编程手册 下面看一下手册的了解一下特点 本人英语是个小白只可意会不可言传了 内部结构了由于是 ...
- 单片机执行指令过程详解
单片机执行指令过程详解: 单片机执行程序的过程,实际上就是执行我们所编制程序的过程,即逐条指令的过程. 计算机每执行一条指令都可分为三个阶段进行.即取指令-----分析指令-----执行指令. (1) ...
- h2 不能访问localhost_SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台
SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台 作者:一一哥 我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2. H ...
- 大型网站系统架构系列:负载均衡详解(一)
大型网站系统架构系列:负载均衡详解(一) 2016-03-20 架构说 面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比 ...
- 【百度飞浆】YOLO系列目标检测算法详解
YOLO系列目标检测算法详解 1 YOLO发展史 2 YOLO v3目标检测原理 3 PaddleDetection中YOLO v3模型介绍 4 YOLO v3配置演练 1 YOLO发展史 2 YOL ...
- 【百度飞浆】RCNN系列目标检测算法详解
RCNN系列目标检测算法详解 目录 两阶段目标检测算法发展历程 R-CNN R-CNN网络结构 R-CNN网络效果 Fast R-CNN Fast R-CNN网络效果 Faster R-CNN Fas ...
最新文章
- java 二维数组内存溢出_模拟Java内存溢出
- 已知三角形三边长怎么求面积_解三角形问题中的常见错解分析
- 一个ioc例子jdk和spring版本导致问题
- c++备忘录模式mememto
- bean named 'entityManagerFactory' that could not be found错误及解决
- VS2013 MFC + OpenCV3.0 打开图片
- 三步完成自动抢票,又一款春节免费抢票神器推荐
- Mybatis框架源码笔记(一)之编译Mybatis源码和源码调试环境准备
- php编程模块英文缩写_PHP版国家代码、缩写查询函数代码
- 常用嵌套sql语句查询
- python实现连环阵
- 选择SAP IBP(集成业务计划云)的十大理由
- ul阻燃标准有几个等级_阻燃等级划分标准
- C# 盛金公式 求解一元三次方程
- 工程图学及计算机绘图第二版答案,工程图学及计算机绘图第3版答案
- 梦幻西游唯美版3D模型展示
- Apple LZF算法解析
- Spring源码分析番外篇二:事务原理番外篇
- 中关村GHOST XP SP3极速装机版2013V4.0(NTFS)
- 完整的ChatRoom聊天室代码