打印
[Kinetis]

【原创】巧用J-Link+J-Flash给Kinesis烧写序列号

[复制链接]
9074|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 FSL_FAE_JiCheng 于 2013-11-21 13:39 编辑

    类似前段时间我写的两篇关于知识产权保护芯片加密的**,这次再聊一聊产品量产时常需要考虑的另一个问题——烧写序列号。貌似最近跟“量产”杠上了,呵呵,作为产品生产周期的最后一环,需要考虑的问题很多,不着急,咱以后慢慢聊,哈哈~


    在产品批量生产的时候,很多人会有这样的需求,即将每个芯片烧写一个唯一的ID号(Serial Number),以方便对产品进行跟踪和管理或者满足对芯片进行绑定ID号加密的需要。而为了提高整个批量生产过程的效率,选择一个好的烧写工具则至关重要。对飞思卡尔的Kinetis系列来说,可用的烧写方案包括P&E官方的Cyclone MAX(支持在线烧写和脱机烧写,当然价格较贵)和J-Link(仅支持在线烧写,需要仿真器+上位机配合)等,本篇就以最近比较火的Freescale M0+ Kinetis L系列为例详细介绍一下J-Link+J-Flash批量烧写串号的方案(说到此,不得不感叹J-Link的强大,高速的下载和调试,丰富的IDE支持和调试组件和强有力的调试功能,不是土豪人家是金啊,小伙伴们都惊呆了有木有,怎一个NB了得):


开发平台:Kinetis L系列KL15Z128

烧写工具:J-Link + J-Flash(v4.76f)


(1) 这里我就不单独对J-Flash多作介绍了,可以参考我之前的一篇**《教你用J-Flash ARM工具单独烧写程序到Kinetis》,至于包括J-Flash在内的软件包可以直接到SEGGER官网下载http://www.segger.com/jlink-software.html,建议下载最新版的,支持的芯片系列较全,相应的组件功能也更强大;


(2) 打开J-Flash(路径为Start->All Programs->SEGGER->J-Link ARM V4.76f->J-Flash),在最新版本中会直接弹出选择已有工程选项卡,根据需要在路径"安装路径\SEGGER\JLinkARM_V476f\Samples\JFlash\ProjectFiles\Freescale”下选择自己的目标芯片(我这里选择MKL15Z128xxx4.jflash,木办法,手里只有这个),选择如下图:



(3) 点击“start J-Flash”进入工程管理界面,然后点击File->Open data file,找到需要下载的bin文件或者S19文件,将其加载到jflash工程里面,加载之后的界面如下图:



(4) 万事具备,接下来就开始进行烧写序列号的设置。点击“Options->Project Settings->Production”,选中“Program Serial Number”,设置如下:



(5) 点击“OK”,设置完毕(只设置一次即可),然后连接目标芯片“Target->Connect”,连接成功,点击“Auto”,系统会自动将设置好的序列号添加到s19文件相应的地址,然后启动下载,同时也会在Jflash的工程目录(之前加载的sample prject的目录)下生成一个“<JFlashProjectName>_Serial.txt”,内容如下图,其中“12345679”为下次要写入的数据,系统自动为其加1了(由“Increment”决定):



(6) 我们回读烧写到片子中的数据(Target->Read Back->Entire chip),然后跳转到“0x2000”地址,可以看到序列号(12345678的十六进制)已经写入,如下图:



注意事项:


(1) 在烧写的时候,必须点击“Auto”下载,这样才会生成“<JFlashProjectName>_Serial.txt”文件,且会把序列号自动添加到s19文件然后烧进去,直接点击“Program”或者“Program&Verify”等烧写功能只会烧写原始S19文件,不会添加序列号;


(2) J-Flash烧写序列号最多支持4个字节,高于四个字节的数据J-Flash会将前四个字节取反再烧进去,所以实际上起作用的还是4个字节,不过单纯作为序列号的话肯定是足够了,4个字节32个比特位,IPv4的地址也就这些吧,呵呵,想不到会有什么产品会超过这个范围,那样的话Freescale超越当年的Motorola也不是问题了啊,哈哈;


(3) 关于烧写地址的问题,理论上只要在目标芯片的Code Flash地址范围内并且不与原始运行代码地址重叠即可,因为J-Flash烧写的原理是先添加数据到原始bin或者S19文件相应的位置然后整个文件一块烧写进去,所以写序列号的时候不需要额外的再擦写扇区一次也就是不会破坏同在一个扇区的原始数据,不过当然如果flash空间足够大的话不建议将序列号烧写地址挨着原始代码太近,建议将序列号写到Flash的最后,规避风险;


(4) 实际上采用J-Flash也可以烧写多余4个字节的数据,不过这需要手动添加编辑txt文件,这里就不多说了,可以参考附件中文档。


UM08003_JFlashARM.pdf (559.81 KB)



相关帖子

沙发
FSL_TICS_imx| | 2013-11-21 13:46 | 只看该作者
好贴,顶~~

使用特权

评论回复
板凳
springvirus| | 2013-11-21 13:56 | 只看该作者
含量高的技术贴!

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2013-11-21 13:58 | 只看该作者
网友们有福了,这么好的贴,顶起啊!

使用特权

评论回复
5
黄小俊| | 2013-11-21 14:58 | 只看该作者
顶起来。。

使用特权

评论回复
6
FSL_TICS_Admin| | 2013-11-21 16:16 | 只看该作者
真的是好帖,是FAE在实际应用中总结得来的, 必须顶.

使用特权

评论回复
7
123de7| | 2013-11-21 20:11 | 只看该作者
LZ好强大!!!!!!!!!

使用特权

评论回复
8
xinyinxing| | 2013-11-21 21:50 | 只看该作者
好贴,顶起!!!

使用特权

评论回复
9
hu_uuu| | 2013-11-22 10:01 | 只看该作者
10
FSL_FAE_JiCheng|  楼主 | 2013-11-22 10:18 | 只看该作者
hu_uuu 发表于 2013-11-22 10:01
http://blog.chinaaet.com/detail/34089.html

呵呵,我一般会先在我自己博客上更新,然后再发到21IC和Amobbs,谢谢关注~
(PS:对你的名字好熟悉啊,是不是在AET上交流过?)

使用特权

评论回复
11
dirtwillfly| | 2013-11-22 11:22 | 只看该作者
序列号还能自己烧?不是出厂时自带的?

使用特权

评论回复
12
FSL_FAE_JiCheng|  楼主 | 2013-11-22 11:45 | 只看该作者
dirtwillfly 发表于 2013-11-22 11:22
序列号还能自己烧?不是出厂时自带的?

Kinetis每个芯片出厂会带唯一ID号,但是有很多客户还是需要根据自己需求对每个产品烧写serial number,方便对自己产品的管理

使用特权

评论回复
13
laserpic| | 2013-11-22 13:55 | 只看该作者
4.22版的好像没这功能,只有一个地址。

使用特权

评论回复
14
FSL_FAE_JiCheng|  楼主 | 2013-11-22 14:29 | 只看该作者
laserpic 发表于 2013-11-22 13:55
4.22版的好像没这功能,只有一个地址。

只有一个地址是指?

使用特权

评论回复
15
dongshan| | 2013-11-22 15:03 | 只看该作者
好文,4.62的驱动直接支持8个字节的序列号。

使用特权

评论回复
16
motodefy| | 2013-11-22 15:05 | 只看该作者
厉害的···

使用特权

评论回复
17
FSL_FAE_JiCheng|  楼主 | 2013-11-22 16:52 | 只看该作者
dongshan 发表于 2013-11-22 15:03
好文,4.62的驱动直接支持8个字节的序列号。

请注意看我最后的红色标注,J-Flash至少到目前最新版本都是4个字节的,如果将Len设置成8的话后四个字节只是前四个字节的取反~

使用特权

评论回复
18
FSL_TICS_A| | 2013-11-22 17:34 | 只看该作者
好贴啊,支持一下!!

使用特权

评论回复
19
Jay1987887| | 2013-11-22 19:57 | 只看该作者
支持学习一下啊。

使用特权

评论回复
20
hu_uuu| | 2013-11-22 22:10 | 只看该作者
FSL_FAE_JiCheng 发表于 2013-11-22 10:18
呵呵,我一般会先在我自己博客上更新,然后再发到21IC和Amobbs,谢谢关注~
(PS:对你的名字好熟悉啊,是 ...

我在AET上也是这个名,经常去光顾你的博客,哈哈

使用特权

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

本版积分规则

个人签名:技术源于积累,成功源于执着~ 欢迎访问我的博客http://blog.chinaaet.com/jihceng0622

9

主题

32

帖子

3

粉丝