stm32烧写序列号

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

    在产品批量生产的时候,很多人会有这样的需求,即将每个芯片烧写一个唯一的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,木办法,手里只有这个),选择如下图:

stm32烧写序列号_第1张图片

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

stm32烧写序列号_第2张图片

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

stm32烧写序列号_第3张图片

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

stm32烧写序列号_第4张图片

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

stm32烧写序列号_第5张图片

你可能感兴趣的:(硬件)