如何使用J-Flash烧录序列号
来源:segger.com | 作者:风标电子工程师 | 发布时间: 2024-04-05 | 118 次浏览 | 分享到:

首先为了使用序列号编程功能,需要先配置要使用的J-Flash项目以及工作文件夹中的一些文件(根据配置而定)。以下是一些设置序列号编程配置的通用信息。

序列号设置为了使用序列号功能,需要配置J-Flash项目以在特定地址启用序列号编程。通过在屏幕截图和下表中显示的启用"Program serial number"选项来完成此操作。



lAddress

编程序列号的地址

lLen

应该编程的序列号长度(以字节为单位)。
• 如果没有提供序列号列表文件,J-Flash允许使用1-4字节的序列号。如果选择8作为长度,则序列号及其补码将被编程到给定的地址。
• 如果提供了序列号列表文件,J-Flash将从列表文件中获取序列号字节。如果列表文件中的序列号未定义Len的所有字节,则剩余的字节将填充为0。不会添加补码等到序列号中。

lNext SN

• 如果没有提供序列号列表文件,则Next SN是应该被编程的下一个序列号。序列号始终以小端格式存储在闪存中。
• 如果提供了序列号列表文件,则Next SN描述了从序列号列表文件中读取下一个序列号字节的行。J-Flash从第0行开始计数,因此为了从SNList.txt的第一行开始序列号编程,需要将Next SN设置为0。

lIncrement

指定Next SN增加的数量。

l序列号文件

在启动程序过程Target -> Production Programming时,J-Flash将创建一个名为<JFlashProjectName>_Serial.txt的序列号文件。该文件是基于J-Flash项目中的序列号设置生成的,并将包含由Next SN选项定义的值。由于序列号是以ASCII格式编写的,用户也可以手动编辑序列号文件。

l序列号列表文件

为了编程无法通过J-Flash提供的标准序列号方案(例如,在编程非连续序列号或序列号之间存在间隙时)覆盖的自定义序列号,用户需要创建一个所谓的序列号列表文件。
在选择Target -> Production Programming时,J-Flash将检查J-Flash项目所在目录中是否存在名为<JFlashProjectName>_SNList.txt的序列号列表文件。序列号列表文件需要用户手动创建,其语法如下:

• 每行一个序列号

• 序列号的每个字节由两个十六进制数字描述。


示例:

将一个8字节的序列号编程到地址0x08000000。它应该以以下方式编程到内存中:

0x08000000: 0x01 0x02 0x03 0x04 0x55 0x66 0x77 0x88

序列号列表文件应如下所示:

0102030455667788


每行要读取的字节数由J-Flash中的Len选项配置。

J-Flash将在下一个编程周期中读取哪一行是通过Next SN选项配置的。更

注意:

1.如果序列号列表文件中某行中指定的字节数少于项目中定义的序列号长度,则Flasher ARM将用0填充剩余的字节。
2.如果序列号列表文件中某行中指定的字节数大于J-Flash项目中定义的序列号长度,则J-Flash将忽略剩余的字节。

l编程过程

在每次成功的编程周期之后,J-Flash将按照Increment中定义的值递增<JFlashProjectName>_Serial.txt中的序列号。

l示例设置

以下是如何设置J-Flash进行序列号编程的一个小示例。在以下示例中,从12345670x12D687)开始的4字节序列号应该被编程到地址0x08001000

定义序列号地址、长度、起始值和增量

J-Flash项目中需要定义如下内容:

• 地址为0x08001000
• 长度为4(字节)
• Next SN1234567
• Increment1


现在,J-Flash已经准备好编程8字节的序列号。在编程序列号之后,J-Flash会创建<JFlashProjectName>_Serial.txt文件。