历史上的今天
今天是:2025年07月23日(星期三)
2018年07月23日 | 使用J-link+J-Flash给STM32芯片烧写序列号
2018-07-23 来源:eefocus
最近项目中,需要为STM32芯片烧写一个序列号,也就是产品量产时都会遇到的问题
硬件准备:J-Link 一个,STM32F103C8T6 的开发板子一块
软件准备: Setup_JLink_V600d 版本的J-Flash
前期的创建new project, 对Options的Project Setting 的Genneral/ Target Interface/ MCU/Flash的选项卡,不作太多详细的说明,大家做项目应该会设置。
在最后一个Projection 的选项卡中 Program serial number
Address 指定烧写的地址 (这里我们烧写的地址取 0x0800 F000)
Len 指定烧写长度,最大4个字节
Next SN 指定第一次要烧写的十进制数,之后自动根据Increment 数值递增 (十进制: 123456789,对应的十六进制为:075BCD15 )
Increment 序列号递增的间隔
配置好之后,点击“OK”,设置完毕(只设置一次即可),然后连接目标芯片“Target->Connect”,连接成功,点击“Auto”。
然后再读出整个Flash 内存 Target->Read back-> Entire chip
可见序列号已经按照要求写入到指定的地址了。
下一步就是从程序中读Flash,然后存储在buff中。
可以参考如下程序:
#define FLASH_ADDR (0x800F000)
uint8_t Read_Flash_ID_Buff[4];
void ReadFlashGdata(void)
{
uint8 p;
uint16 count=0;
memset(Read_Flash_ID_Buff,0,sizeof(Read_Flash_ID_Buff));
RCC_HSICmd(ENABLE);
while(count < 4)
{
p=*(u8 *)(FLASH_ADDR + count*1); //读取方法
Read_Flash_ID_Buff[count]=p;
count++;
}
史海拾趣
|
我的电路学的不好我请教大家一个问题,在这个图中计算等效戴维南电路电压时为什么要 UOC= Ui*40/(10+40)+USB*10/(10+40)=0.8 Ui+0.2 USB (迭加定理)呢,为什么不是UOC= Ui*10(10+40)+USB*40(10+40)=0.8 Ui+0.2 USB?我看不懂。怎么插入图片啊?我不 ...… 查看全部问答> |
|
初学C单片机编程,用红外线接收头(在into上),接受到遥控板按键信号后,要求P1.1上的二极管亮,遇到一个问题,见上图部分,使用示波器测得总时间60ms, 红色部分用时假如2us,那么红色部分以外的时间段怎么处理呢?下面是我的代码,肯定有问题,请 ...… 查看全部问答> |
|
详情: 我的产品坏了100多个了(总共做了400个)。拿回来修,大多是单片机坏了。单片机发热。有时也能下载程序。就是不会正常工作/。用万用表量发显短路。不知道什么原因。 出厂都没问题。到客户那里运行一段时间就短路了。这是什么原因。工 ...… 查看全部问答> |
|
请问可不可以用EZ430-CC2500的仿真模块仿真其它型号的单片机 可不可以用EZ430-CC2500的仿真模块仿真其它型号的单片机 就是把那6根线用来和其它的单片机相连,不知道可不可以… 查看全部问答> |
|
ucos移植问题(ucos2.86+stm32+lib3.5):提示main.o和os_core.o出现41个重复定义的错误,但是main函数里并没有定义那些东西呢?不知道为什么,请求解决,谢谢… 查看全部问答> |
|
首先会让你输入root用户的密码。 1)出错的时候如果告诉你是哪一块硬盘的分区有问题,比如是/dev/hda3 接着用如下的命令去对付它呀: &nb ...… 查看全部问答> |




