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

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

如何獲取Jlink-ob的固件

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

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

在對比了DAPLink和Jlink-ob之后,我覺得先使用STM32F072這個芯片來DIY一個Jlink-ob,使用072好處是,它電路簡單,不需要外部晶振,同時支持opencdc的虛擬串口和SWO引腳

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

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

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

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

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

板子還沒到,所以先學習一下,如果獲取STM32F072中的jlink-ob的固件。

SEGGER肯定不會給我們在官方網(wǎng)站上提供一個按鈕的。

但是,我們知道,我們在使用jlink-ob的時候,經(jīng)常會遇到固件更新的提示,既然它能夠通過usb更新jlink-ob的固件,那么說明jlink的驅(qū)動程序中一定包含了對應(yīng)的固件。

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

先說答案,這個固件存放在jlink的驅(qū)動文件中,就是我們在MDK中也會調(diào)用的JlinkAMR.dll文件。

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

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

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

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

這里因為是小端模式,所以我們應(yīng)該把這兩個32bit的數(shù)據(jù)反過來,它就變成了0x20002240和0x0801468D。

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

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

至于,這里的為什么是0x20002240和0x0801468D,我們在下一篇文章中分析。

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

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

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

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
HCNW3120#300 1 Avago Technologies 1 CHANNEL LOGIC OUTPUT OPTOCOUPLER, 0.300 INCH, SURFACE MOUNT, DIP-8
$4.78 查看
FTLX8571D3BCL 1 Finisar Corporation Transceiver, 840nm Min, 860nm Max, 10000Mbps(Tx), 10000Mbps(Rx), LC Connector, Board/panel Mount, ROHS COMPLIANT PACKAGE-20
$77.85 查看
ECS-250-20-33-DU-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal, 25MHz Nom, SMD, 4 PIN
$0.86 查看

相關(guān)推薦

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

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