由於我們很久沒有使用這一片 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 後,就開始更新啦
更新完成,我們可以準備開始玩這塊板子囉