使用J-link+J-Flash给STM32芯片烧写序列号
??? 最近項目中,需要為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++;}
?
?
?
總結
以上是生活随笔為你收集整理的使用J-link+J-Flash给STM32芯片烧写序列号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬件:电脑基础进阶必学知识,详解电脑主板
- 下一篇: winRAR 破解注册码