
一般情况,每个产品在生产的时候都会分配一个唯一的序列号或编号,可以但是1个字节、2个字节、4个字节等,可以存储在内部Flash、内部EEPROM、外部Flash或外部EEPROM等。产品序列号的烧写有多种方式——通过独立程序烧写、通过在hex文件中修改Flash对应的地址内容和使用工具自动递增修改(如Jlink+J_flash)等。下面详细介绍一下Jlink+J_flash的方式: 通过Jlink+J_flash的方式烧写时,程序只需要正常的读取相应地址里面的值即可,其余的不要做特别的处理,将程序生成hex文件,这种方式序列号的存储的位置支持内部Flash和EEPROM。' X- e' [4 d6 I 打开J_Flash工具,新建好一个对应自己MCU型号的工程,如我建立的工程为TestPrj.jflash,文件为TestV100.hex,ID为2字节,存储在EEPROM的0x08080000位置,序列号每次增加1,打开文件后如下如: ![]() 点击Options->Preject settings...,并在弹出的对话框中选择Production: ![]() 在Program serial number栏填写参数存储地址,地址为08080000,其实序列号为25007,长度为2,增加量为1:4 U" x2 l' F+ `$ {. X' p! u ![]() 参数修改完后,点击确定按钮,此时J-Flash项目所在的文件夹下会生产一个文件“TestPrj_Serial.txt”,里面存的就是上图设置的序列号。- ?# C3 f& E+ I( ^ Jlink连接上硬件并上电,点击Target->connect连接硬件:4 Z; |) W$ j; P) B% r. U ![]() 点击Target->Auto自动编程:+ W2 n9 a; `' V3 R ![]() 操作执行完毕后,序列号写入相应的EEPROM地址并自动按照增加量增加。7 S: B7 t0 ^& Q8 n4 c # A$ }: M$ I/ T' b( }! j! N # N; p& B8 w k/ j( V2 \( o( Y9 r # y$ G# T# k0 h/ u A- ? |
![]() |
![]() |
这波操作可以有 |
谢谢分享 |
基于STM32的自动跟踪小车
获取STM32代码运行时间的技巧
USB4 产品设计将会令 USB4 取得成功
【原创】【MCU实战经验】+ 可在产品中使用的bootloader程序...
小缓存实现大效果:X-NUCLEO-GFX01M1 和 TouchGFX 4.15让你的产品...
小缓存实现大效果:X-NUCLEO-GFX01M1 和 TouchGFX 4.15让你的产品...
STM32H7各产品应用定位
单片机是控制电子产品的大脑
为什么自己设计的嵌入式系统稳定性远不如工业级产品?
PCB之间的互连是产品EMC的最薄弱环节