STM32F746 Discovery 開發紀錄: ST-LINK/V2 韌體更新

由於我們很久沒有使用這一片 STM32F746 Discovery 開發板,因此最好先更新一下他的 ST-LINK/V2 的驅動。

本文紀錄如何在 Linux 下更新 ST-LINK/V2 驅動的方式。

事前準備

首先你必須到 STMicroelectronics 網站去註冊一個帳號,我們需要登入這個帳號才能下載檔案。

接下來到 Discovery kit with STM32F746NG MCU 這邊,往下找到以下這個 STSW-LINK007 點擊進入下載頁面

接著一樣往下拉到最後,就會看 Get software 按鈕,點選下載

這樣下載會得到名為 en.stsw-link007.zip 的檔案。

解壓縮

我們先將 en.stsw-link007.zip 這檔案解壓縮

coldnew@gentoo ~ $ unzip en.stsw-link007.zip

會得到 stsw-link007 資料夾,裡面結構長這樣

coldnew@gentoo ~/stsw-link007 $ tree -L 3
. <b>
├── AllPlatforms <b>
│   ├── native <b>
│   │   ├── linux_x64 <b>
│   │   ├── linux_x86 <b>
│   │   ├── mac_x64 <b>
│   │   ├── win_x64 <b>
│   │   └── win_x86 <b>
│   ├── StlinkRulesFilesForLinux <b>
│   │   ├── 49-stlinkv2-1.rules
│   │   ├── 49-stlinkv2.rules
│   │   ├── 49-stlinkv3.rules
│   │   └── Readme.txt <g>
│   └── STLinkUpgrade.jar <r>
├── readme.txt <g>
└── Windows <b>
    ├── ST-LinkUpgrade.exe
    └── STLinkUSBDriver.dll

9 directories, 8 files

根據你的平台不同,有可能需要裝些驅動,這邊我只以 Linux 平台舉例

安裝需要的套件

由於這份更新程式會用到 libusb-1.0 這個套件 ,根據你的平台不同會有不同的安裝方式,以下以 Debian/Ubuntu 為例:

coldnew@debian ~ $ sudo apt-get install libusb-1.0

Gentoo Linux 則是:

coldnew@gentoo ~ $ sudo emerge dev-libs/libusb

另外,由於這隻程式會依賴 jdk 這邊請依照各自平台安裝 jdk8 的方式來處理,不另外描述。

更新 udev rules

接下來我們需要更新 udev rules,讓 Linux 可以知道怎樣的 uid:pid 可以對應到 STM32 的產品,並針對這些設備設定權限讓非 root 使用者也可以使用。

將這些 *.rules 的檔案複製到你的 /etc/udev/rules.d 資料夾下

coldnew@gentoo ~/stsw-link007 $ sudo cp -rf AllPlatforms/StlinkRulesFilesForLinux/*.rules /etc/udev/rules.d/

接下來告訴 udevadm 有 rules 更新,要重新載入一下

coldnew@gentoo ~/stsw-link007 $ sudo udevadm control --reload-rules

這樣針對 Linux 的驅動部份就完成了~

更新 ST-LINK/V2

接下來,就讓我們執行這隻更新程式吧,首先把你的 STM32F746G-DISCO 接上 USB-STLINK 到電腦。

coldnew@gentoo ~/stsw-link007 $ java -jar AllPlatforms/STLinkUpgrade.jar

這樣執行程式的時候,應該就會找到它 (沒找到點選 Refresh device list )

點選 Open in update mode ,會看到你的板子的當前 ST-LINK/V2 的韌體版本號

點選 Upgrade 後,就開始更新啦

更新完成,我們可以準備開始玩這塊板子囉