前言
本文将测试序列号的应用,序列号功能可以让每次下载的程序在指定的flash区域自动增加(可以设置增加的位数),可以使用这种方式来自动的给单片机编号。
序列号写入地址:0x8002000
测试环境:
单片机:STM32F103RCT6
试验过程
程序实现
我写了一个串口程序(串口实现不是本文重点,不做赘述),上电的自动打印地址0x8002000 的32位数据,打印代码实现如下:
printf("\r\nThe data in address 0x8002000 is :%d\r\n", *(uint32_t*)0x8002000);
序列号设置
- 打开工具
野火脱机烧录器 ,,进行烧录配置,加载新的程序固件
- 打开“序列号管理”,然后进行如下设置:
- 使用数组1
- 设置序列号的长度为4,即32bits,每一个长度表示8bits
- 设置烧录地址为
0x8002000
- 设置烧录的数据的其实数据为0,即第一次烧录的数值
- 设置每一次烧录的序列号的步进长度,这里设置为1,表示每烧录一次序列号+1,也可以设置其他不步长,本文不做赘述
- 点击“一键烧录”,等待上位机将固件烧录到fireFlasher Mini主机中
- 然后点击“退出配置”
测试验证
然后短按FireFLasher上面的红色按钮,开始下载,连续测试了6次,下面是测试结果,没下载一次,可以看到地址0x8002000 的32位数据会加1,试验成功。
后记
该功能使用起来十分的简单,在实际的工厂烧录中是很有用的,可以设置出厂编号,以便记录管理,方便追述。
|