im&|H- 原创:ICCCCC
uU<Yf5 bk8IGhO|m! 前言:
Db2G)63 x$Lt?'
ztTpMj {L8SDU{P 一、开箱
M5<5(l t$}+oCnkv
= U^B,q s#d>yx_b
onjTuZ^h e\P+R>i0
'8}\! i& Vbwbc5m} 二、在线仿真测试
i1/FNem |5O%@ 测试环境:MDK v5.30
08'JT{i id g'mkhF( 测试芯片:STM32F429BIT6
"e_ED* HVC\(h,)i 建立测试工程项目过程略过,直接进入设置,仿真设备选择CMSIS-DAP,如下所示:
p>MX}^6 tmm\V7sJ
M]6=Rxq1:E fBQZ=zh 点击Settings进行设置,如下所示:
6E ok7DI
(OJ}|*\ e @]OI(B
z\;kjI #Q;#A |EZ
FMR0?\jnT <H$ CCo
'2%hc\P6P //WgK{Mt Pack选项,可以使能或者不使能,如果异常就切换。
Z3S\@_/; 6z/8nf +u 都设置好,回到主界面,点击下载,如下所示:
ag] nVE/ 1Og9VG1^
GM@TWwG-B <,LeFy\zW [img]https://z3.ax1x.com/2021/10/28/5bhwDO.png[/img]
+wQGC ^tpy8TQ 下载成功。点击主界面Debug按钮,进入仿真状态,如下所示:
;aD_^XY bi,%QZZ [img]https://www.z4a.net/images/2021/10/28/40.png[/img]
z9VQsC'K *yt/
Dj [img]https://z3.ax1x.com/2021/10/28/5bhDVe.png[/img]
K7CiICe H-I*; 全速运行,一切正常,点击暂停,可以正常查看各种变量数据等。
N'^ 0:zK: $i =-A [img]https://z3.ax1x.com/2021/10/28/5bh0bD.png[/img]
ma-|L3 # ^P]: etld9 测试环境:MDK v5.30
;T/' CD ZkqC1u3 测试芯片:STM32H743XIH6
&*0!${B zmuq4-. 测试组件:EventRecorder
#BM *40tch l ='lV] Debug配置上差不多,需要注意的是Trace选项里的Clock要跟目标单片机时钟一致,如下所示:
SH5k^EJ u<+;]8[o [img]https://z3.ax1x.com/2021/10/28/5bhrUH.png[/img]
| WDX@Q
"+|>nA=7 配置好后进入仿真状态,全速运行,时间测试及printf正常显示,代码执行时间准确,10MHz的带宽完全满足,效果如下所示:
&qo'ge8p Cu!4ha.e` [img]https://z3.ax1x.com/2021/10/28/5bhc8I.png[/img]
8y+Gvk: P~?u2,.E[ [img]https://z3.ax1x.com/2021/10/28/5bhs5d.png[/img]
xNjA>S\]W5 *aTM3k)Zs 在线仿真完结。
+[*UC" Q>X ;7nt0 三、UID加密操作
dkCSqNFL) 2*Gl|@~N UID 加密设置是创芯工坊研发的目前市面上烧录器在授权控制上较为强大的加密版本,不但提供了随机的内置离线授权方法,一键生成动态的项目代码,同时提供了在线授权服务器(目前市面上提供此功能的只有 Segger 的 Secure Flash)支持第三方基于创芯工坊提供的授权服务器模板自建授权服务器,支持在线非对称授权方案,创芯工坊技术团队提供全程技术支持,支持离线 ICWKEY ECDSA非对称授权算法。
>0512_J+ :CH'Bt4< [img]https://z3.ax1x.com/2021/10/28/5bh6PA.png[/img]
GifD>c |z /AWHG._ 本次先使用<内置离线授权>,芯片使用STM32F429BIT6,配置如下:
0`OqD d gg6&Fzp [img]https://z3.ax1x.com/2021/10/28/5bhg2t.png[/img]
IMVoNKW- {0e5<"i 密钥储存地址在芯片flash最后倒退12字节位置,密钥长度选择12字节,小端模式。点击UID矩阵编码按钮,打开窗口如下所示:
C8(sH @ mTcLocx [img]https://z3.ax1x.com/2021/10/28/5bhWKf.png[/img]
1P6~IZVN Th"7p:SE? [img]https://www.z4a.net/images/2021/10/28/16353823221.png[/img]
@ cv`}k pKp#4Js [img]https://z3.ax1x.com/2021/10/28/5bh2xP.png[/img]
SLBKXj| |rNm_L2 导出源码:导出源码功能将用户设置好的信息,导出为 MDK Source Code(如果用户 IDE 为其他格式,请包含对应的源码和头文件即可使用),导出的源码 Demo 如下图所示:
xv1$,|^ts Ef7Kx49I [img]https://z3.ax1x.com/2021/10/28/5bhfr8.png[/img]
`5x,N%9{ K<N0%c~ 主要文件就是cortex_chipid_binding.c与cortex_chipid_binding.h,本小节只讲使用,不解析程序。
M`"2; :Z&ipd!yY 编译并保存:编译并保存功能将用户设置好的 Power Writer 内置授权功能同步到PowerWriter 硬件,同时导出源码供用户使用。
+LrW#K; CIV6Qe"< 其他选项请根据自己需求配置,保存项目为f429bit6uid.pkg。
/wIZ ' 1a%*X UT 准备个正常的MDK项目,复制cortex_chipid_binding.c与cortex_chipid_binding.h到项目下,打开工程,如下所示:
B{zIW'Ld @89mj{ 使用的是安富莱电子的例子,板子是V6开发板。
SqEO
]~ 5nEvnnx0 [img]https://z3.ax1x.com/2021/10/28/5bhhqS.png[/img]
slw^BK3t hI/p9
`w main.c文件加入#include "cortex_chipid_binding.h"头文件,打开工程选项,C/C++里选择C99模式,因为导出的代码编写方式是变量就近定义,默认的C89是不支持这种骚写法,如下所示:
W&r