加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

如何獲取Jlink-ob的固件

05/29 10:14
5137
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

前面文章提到,我準(zhǔn)備自己DIY一個(gè)DebugTool,自己做一個(gè)既能夠通過(guò)SWD下載又能實(shí)現(xiàn)RTT和兼容Jscop進(jìn)行波形輸出,同時(shí)還能進(jìn)行串口通信的工具。

在對(duì)比了DAPLink和Jlink-ob之后,我覺(jué)得先使用STM32F072這個(gè)芯片來(lái)DIY一個(gè)Jlink-ob,使用072好處是,它電路簡(jiǎn)單,不需要外部晶振,同時(shí)支持opencdc的虛擬串口和SWO引腳

這樣,如果效果好的話,就在DebugTool上面繼承DAPlink和Jlink-ob兩個(gè)燒錄器,可以同時(shí)跟蹤調(diào)試多個(gè)板子。

首先花了一個(gè)小時(shí)畫(huà)了個(gè)小板子,正好嘉立創(chuàng)有免費(fèi)的打板優(yōu)惠卷,連運(yùn)費(fèi)都不需要,真的感謝嘉立創(chuàng)。

為了方便可靠,接口使用了TypeC接口,并將CC1和CC2進(jìn)行下拉,保證任何接口都可以獲取到5V的VBUS電壓。

由于無(wú)需晶振,電路非常簡(jiǎn)潔,為了方便手工焊接,所有阻容元器件全部選用了0603封裝,吃激素吃的手還是抖,駕馭不了0402的器件。

鑒于嘉立創(chuàng)的免費(fèi)卷,先做一個(gè)獨(dú)立的下載器手工一下。另外,立創(chuàng)商城的STM32真的價(jià)格太高了,我還是選擇了淘寶,目前STM32F072C8T6大概是3塊錢(qián)一片,拆機(jī)件便宜一些,還在板子上的,沒(méi)拆下來(lái)的更便宜,1.8就可以拿到手。

板子還沒(méi)到,所以先學(xué)習(xí)一下,如果獲取STM32F072中的jlink-ob的固件

SEGGER肯定不會(huì)給我們?cè)诠俜骄W(wǎng)站上提供一個(gè)按鈕的。

但是,我們知道,我們?cè)谑褂胘link-ob的時(shí)候,經(jīng)常會(huì)遇到固件更新的提示,既然它能夠通過(guò)usb更新jlink-ob的固件,那么說(shuō)明jlink的驅(qū)動(dòng)程序中一定包含了對(duì)應(yīng)的固件。

一個(gè)網(wǎng)名為DIY JLink-OB-072 (JLink + COM) : X893的大神就找到了固件的位置,我們一起來(lái)探究一下。

先說(shuō)答案,這個(gè)固件存放在jlink的驅(qū)動(dòng)文件中,就是我們?cè)贛DK中也會(huì)調(diào)用的JlinkAMR.dll文件。

dll文件就是window系統(tǒng)中編譯好的二進(jìn)制文件,所以我們可以使用vs code或者Winhex打開(kāi)這個(gè)二進(jìn)制文件,就像我們打開(kāi)bin文件一樣。

我們可以在里面搜索關(guān)鍵字,關(guān)鍵字搜索可以直接搜索STM32F072,這個(gè)dll文件里面包含多個(gè)jlink-ob的固件,這里我們只關(guān)心對(duì)應(yīng)STM32F072的。

從上面的圖里,我們可以看到這個(gè)版本的dll文件中,對(duì)應(yīng)的jlink-ob的固件,以及他的編譯時(shí)間為2017年。

順著這個(gè)地方向上翻閱,可以翻到一個(gè)40 22 00 20 的地方,他后面還跟著 8D 46 01 08。

這里因?yàn)槭切《四J?,所以我們?yīng)該把這兩個(gè)32bit的數(shù)據(jù)反過(guò)來(lái),它就變成了0x20002240和0x0801468D。

熟悉Cortex-M核的朋友都知道,編譯后生成的bin文件的第一個(gè)32bit數(shù)據(jù)和第二個(gè)32bit數(shù)據(jù)是處理器的SP和PC兩個(gè)寄存器對(duì)應(yīng)的取值。

SP是對(duì)應(yīng)的程序的棧頂指針,而PC則對(duì)應(yīng)著程序要運(yùn)行的指令。

至于,這里的為什么是0x20002240和0x0801468D,我們?cè)谙乱黄恼轮蟹治觥?/p>

這里,我們有了程序的起始部分,只需要把他后面的數(shù)據(jù)全部copy出來(lái)另存為一個(gè)bin文件就可以了,要copy多少呢,其實(shí)按照STM32F072的flash大小來(lái)復(fù)制就可以,因?yàn)槌绦蚪Y(jié)尾之后的數(shù)據(jù)并不會(huì)執(zhí)行,除非他在程序末端存放了一些配置數(shù)據(jù)。

接下來(lái),我們還需要制作一個(gè)bootloader固件,因?yàn)閺腜C指針對(duì)應(yīng)的0x0801468D可以看出來(lái),固件是從很大的一個(gè)地址開(kāi)始運(yùn)行,的所以我們需要將前面的數(shù)據(jù)補(bǔ)充為0xFF,然后將上面的提到的SP和PC指針對(duì)應(yīng)的8個(gè)字節(jié)一起覆蓋到bootloader的開(kāi)始。

這樣程序就會(huì)自動(dòng)跳轉(zhuǎn)到我們的固件中執(zhí)行了。

關(guān)于SP和PC指針的確定,以及bootloader的大小還需要在研究一下。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ASEM1-16.000MHZ-LC-T 1 Abracon Corporation MEMS OSC XO 16.0000MHZ CMOS SMD
$1.63 查看
CAT24C04WI-GT3 1 Rochester Electronics LLC 512X8 I2C/2-WIRE SERIAL EEPROM, PDSO8, 0.150 INCH, GREEN, MS-012, SOIC-8
$0.21 查看
LTST-C190CKT 1 Lite-On Semiconductor Corporation Single Color LED, Red, Water Clear, 1.1mm,

ECAD模型

下載ECAD模型
$0.21 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

多年硬件從業(yè)經(jīng)驗(yàn),專(zhuān)注分享從研發(fā)到供應(yīng)鏈,再到精益制造過(guò)程中的經(jīng)驗(yàn)和感悟!