EFR32 xG1x的bootloader被擦除
生活随笔
收集整理的這篇文章主要介紹了
EFR32 xG1x的bootloader被擦除
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:
用Simplicity Studio的調試功能下載程序到芯片,CPU不停在main入口處,而是直接跑飛。用Debug界面上的復位按鈕把芯片復位,可以看到CPU停在地址0x0FE10000處,但是反匯編窗口顯示該處全是0xFF。
如下圖表,此處是bootloader。
用Simplicity Studio或Simplicity Commander是不會擦除這個區域的。但是如果用Segger J-Flash的整片擦除功能,那么就會把這個區域擦掉,如下消息所示:
Connecting …
- Connecting via USB to J-Link device 0
- Target interface speed: 2000 kHz (Auto)
- VTarget = 2.997V
- Executing init sequence …
- Initialized successfully
- Target interface speed: 2000 kHz (Auto)
- J-Link found 1 JTAG device. Core ID: 0x2BA01477 (None)
- Connected successfully
Erasing chip … - 266 sectors, 4 ranges, 0x0 - 0x7FFFF, 0xFE00000 - 0xFE007FF, 0xFE04000 - 0xFE047FF, 0xFE10000 - 0xFE13FFF
解決方法:
(1) 用Segger J-Flash把Lock Bits(LB)page中的CLW0中的Bootloader enable位(Bit 1)寫成0。(*(0x0FE041E8) = 0xFC)
(2) 用Segger J-Flash把正常芯片的bootloader讀出來(0x0FE10000 - 0x0FE13FFF),存成HEX文件,然后燒寫到故障芯片中。
總結
以上是生活随笔為你收集整理的EFR32 xG1x的bootloader被擦除的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go : gin + lumberjac
- 下一篇: ubuntu22.04图文安装流程