打印
[开发工具]

【PW200烧录器评测】+ PW200烧录器综合测评

[复制链接]
875|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 纪国圣 于 2020-7-12 09:02 编辑

一、开箱
今天收到申请的烧录器,于是迫不及待的打开包装。、
首先见到的是一封信,居然是亲笔签名!而且开头不是一般性的敬语,可见创芯工坊的细心和用心。在此先对创芯工坊表示感谢。

然后是我们的主角-烧录器:


包装简洁,由一张名片、一个烧录器和线材组成。

烧录器很小巧,只有手掌大小。估计采用了卡扣的结构,所以还没有拆开来看看内部结构。等有工具再看看内部电路。
其中这里应该是接挂绳的。外壳设计挺用心的。

接口为传统的JTAG接口,只不过又在此基础上添加了一些功能:


最后来一张全体照:

二、安装PowerWriter
本来打算测试PowerWriter在win XP至win 10的兼容性。于是打算在虚拟机安装与测试,结果。。。。。。

好吧只能在实体机上测试了。本人使用win8.1。首先双击PowerWriter_1.0.1.0_installer.exe安装PowerWriter:

然后弹出安装界面:

点击Custom更改安装路径:

安装中:

安装完成:

PowerWriter界面:

打开设备管理器,发现串口驱动没有安装:

按照手册说明进行安装:
首先右击PowerWriter Serial Port,点击更新驱动,然后选择从计算机的设备驱动列表中选取。

双击显示所有设备:

选择mbed Serial Port,点击下一步。

安装驱动完成。

本以为串口功能是引出来的,结果官方说没有。。。。。。

对此实在无语。希望官方可以添加这个功能。
可是到这里还没有结束,因为keil5居然不识别仿真器

估计驱动不对。重新安装驱动:


安装驱动后可以识别了:




使用特权

评论回复
评论
AlexChiu 2020-6-30 23:45 回复TA
期待更为精彩的功能评测! 
沙发
纪国圣|  楼主 | 2020-7-5 13:54 | 只看该作者
本帖最后由 纪国圣 于 2020-7-5 15:16 编辑

三、不同品牌芯片和不同的IDE仿真测试IDE:1.keil5.26.2
先测试一下华大的HC32F460:



可以看出仿真正常,可以打断点,可以看到变量值。
其次测试MM32L073:

结果出错。
最后测试STM32F103RCT6:


可以看出仿真正常,可以打断点,可以看到变量值。
但是继续测试会发现,当程序停至断点后再点击运行,程序不会在断点处停止而是继续运行,仿佛断点不存在一般,同时在加断点也不起任何作用。。。。。。
当IDE与单片机断开时,仿真器会发出声音提醒,这个功能挺好的。2.IAR Embedded Workbench for ARM 8.32.1.18631
仿真器一直连接不上,不能仿真。
工程文件如下:

STM32F103RCT6.zip (579.78 KB)

使用特权

评论回复
板凳
纪国圣|  楼主 | 2020-7-7 19:10 | 只看该作者
本帖最后由 纪国圣 于 2020-7-8 08:07 编辑

四、PowerWriter初步使用
首先创建测试工程。在工程中定义一个const常量数组string_[],编译后通过.map文件可以看到string_[]被分配到地址0x08000bc8:


打开PowerWriter,点击选择芯片:

选择STM32F103RCT6:

可以看到芯片与上位机连接成功:

按图示设置参数:

点击Program Memory:

先执行查空操作,检查芯片内部是否有程序:

因为之前下载过程序,所以结果非空:

之久点击添加固件,准备下载程序:

PowerWriter可以识别.bin.hex.s19格式的文件,选择固件:

弹出参数设置对话框,用于设置地址等参数:

点击自动编程,执行程序下载:

好像成功了:

读取芯片内部程序,检查是否正确:

选择整片读取:

结果不对。。。。。。顺便吐槽一下,在未执行操作时,进度条能否不要变化?同时不要做循环播放?这样很容易产生误会。

用keil下载后再次查看,结果正确得到结果。。。。。。

重新编写一个例程,添加string1_[]并编译:

同时查看手册发现,需要按如下步骤才能下载程序至芯片:

选择编程选项:

软件提示编程成功:

这里提个建议。当烧写完成后能否直接弹出提示对话框?不然切换界面挺麻烦的。
重新打开软件,执行芯片flash读取操作:
可以看到烧写操作成功。
最后吐槽一下,当我断开上位机与烧写器的时候,上位机与烧写器居然又自动连上了。。。。。。

使用特权

评论回复
地板
纪国圣|  楼主 | 2020-7-11 09:52 | 只看该作者
本帖最后由 纪国圣 于 2020-7-11 12:52 编辑

六、UID加密与离线加载
在烧写功能设置中选择UID加密设置选项卡,加密模式选择内置离线授权:

设置密匙地址和Matrix编码:

在PowerWriterUID加密算法编辑器中按照图示顺序操作:





生成的代码:



将生成的代码中cortex_chipid_binding.c和cortex_chipid_binding.h添加到原来的工程项目中:

main函数中修改:



其中如果是通过非法途径获取的固件并下载,程序会进入到陷阱中,即a只做取反操作,如果是合法的烧录固件,则程序执行a++操作。
编译,出现错误:

ROM超出范围经检查是cortex_chipid_binding.h中UID_KEYADDR_INNER设置有些问题,作如下更改:

编译正常:

别忘记更改上位机:

选择序列号设置,使能条件序列号功能,并添加序列号地址:

选择数量设置与芯片检测,使能此安置烧写次数,并设置为3:

点击保存并离线加载:

设置密码与保存路径:

这里指出一点,进度条能否不要循环播放,让人造成误解?


先使用keil下载程序并仿真,可以看到程序掉入陷阱中:

关闭上位机,按下烧写器按键4次,可以看到前三次OK灯亮,第四次NG灯亮。
不知为何离线烧写速度十分缓慢,要等大约9秒才烧写完成。上位机直接下载不到3秒就烧写完成。
打开上位机,读取芯片固件:

可以看到在指定的地址读到了序列号,说明烧写正确。测试a的值为自增一变化。
删除原来的pkg文件,执行离线读取并保存:



可以看到保存在烧写器中的参数被正确读取:







使用特权

评论回复
5
纪国圣|  楼主 | 2020-7-11 15:06 | 只看该作者
我去,怎么吞楼了?补一下。五、上位机更新:
上位机具有自动检测更新的功能。前几天官方推出了新版本,因此今天打开上位机时,检测到新版本:


点击立即更新:


此后又会提示升级固件:

点是,更新固件:


至此更新完毕。
提个建议:软件在弹出更新对话框时,能否写明此次更新添加了哪部分功能,修复了哪部分bug,好让用户决定是否更新。

使用特权

评论回复
6
纪国圣|  楼主 | 2020-7-11 15:36 | 只看该作者
本帖最后由 纪国圣 于 2020-7-11 16:19 编辑

七、通过创芯工坊后台管理系统发布与下载固件
首先在创芯工坊官网上注册:

注册完成后,点击烧录工具并安装。
之后选择我是开发者,程序发布:

然后填写相关参数,上传pkg文件(本次使用离线模式):


选择确认发布。可以看到发布成功:

之后另一个账户可以看到上传的固件:

打开客户端,点击刷新,也可以看到上传的固件:

点击下载固件:

弹出配置对话框:

点击确定,开始烧录程序:

可以看到烧录成功,并且烧写次数减少了一次:

按下烧写器的按钮,执行离线下载。当OK灯亮起则表示烧写成功。
读取固件,可以看到序列号变化,烧写成功。



使用特权

评论回复
7
纪国圣|  楼主 | 2020-7-12 09:10 | 只看该作者
纪国圣 发表于 2020-7-5 13:54
三、不同品牌芯片和不同的IDE仿真测试IDE:1.keil5.26.2
先测试一下华大的HC32F460:

官方回复:

使用特权

评论回复
8
AlexChiu| | 2020-7-13 16:40 | 只看该作者
感谢国圣的用心评测,上述提到的问题,有些已经在做调整和升级,谢谢支持!

使用特权

评论回复
9
纪国圣|  楼主 | 2020-7-14 11:01 | 只看该作者
说一下希望PowerWriter烧录器添加的功能:1.仿真方面希望开放虚拟串口功能。虽然keil中有EventRecoder的Printf功能可以使用,但对于其它IDE的使用者就少了一项调试手段。额外添加串口模块也是增加工程师的成本呀。
2.对于基于Ecplise的IDE,虽然可以通过OPENOCD进行仿真,但是配置有些复杂,也希望官方能出一个集成好的插件,方便大家使用。
3.关于离线下载,可否加一块显示屏显示剩余次数?有时出差到别的公司是不准携带手机电脑的,没有显示剩余次数,工作时间一长就忘了还能烧写多少次了,已经完成多少。
4.看群里的拆解图片,应该有无线功能。对此表示期待。

使用特权

评论回复
10
AlexChiu| | 2020-7-14 13:09 | 只看该作者
纪国圣 发表于 2020-7-14 11:01
说一下希望PowerWriter烧录器添加的功能:1.仿真方面希望开放虚拟串口功能。虽然keil中有EventRecoder的Prin ...

谢谢你的意见和建议!有些功能我们已经在做升级规划,烧录器会是创芯工坊不断升级迭代的硬件产品,有些新功能我们也已经考虑在下一代硬件产品中。再次感谢!

使用特权

评论回复
11
纪国圣|  楼主 | 2020-7-18 14:17 | 只看该作者
本帖最后由 纪国圣 于 2020-7-18 14:49 编辑

今天发现官方又更新了,于是更新了上位机和固件。

重新测试IAR,发现可以仿真了:



MDK下仿真断点问题也得到解决:

仿真设置为Reset and Run:

测试发现当keil 执行debugge时,上位机会自动断开/连接目标芯片,比较智能:


使用特权

评论回复
12
纪国圣|  楼主 | 2020-7-25 14:59 | 只看该作者
本帖最后由 纪国圣 于 2020-7-25 15:01 编辑

九、在线授权
首先登陆官网,点击我是开发者

点击授权中心

点击添加

按照图示顺序操作,获取公钥

点击确定保存公钥

可以看到设置的公钥已经被保存。
点击右侧界面的项目列表

按图示顺序添加之前设置的算法


将PowerWriter_SampleF071例程中相关代码拷贝至sissdk文件夹中

在原来的离线工程中添加上述代码和头文件(注:该工程使用了双验证方式)


修改堆栈大小以适应加密软件运行的需要

按图所示修改代码





其中修改PUBLIC_KEY是根据之前下载的publickey.cert得到的。用NOTEPAD++和HEXEDITOR插件就可以查看这个二进制文件。

按照之前离线发布的方式上传文件,只不过编程模式改为在线授权。

发布成功后,刷新创芯工坊客户端,可以看到发布成功的固件。

选择下载固件,可以看到灯按照预期的方式闪烁。同时多烧录几次,可以看到运行次数减少。

本人移植的例程和官方例程如下:
PowerWriter_SampleF071.zip (3.28 MB)
STM32F103RCT6.zip (1.71 MB)
小结一下:
在线方式比较离线方式加密性更好,但移植却更加复杂,同时需要移植的代码较多,对于小容量的MCU具有一些挑战性。希望官方可以缩小代码大小,简化移植流程。同时公钥下载最好有ASCII编码方式的文件,方便用户查看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

405

帖子

5

粉丝