STM32F7 GCC 開發筆記 -- example 專案

在 Linux 或是 Mac OSX 上面用 GCC 開發 STM32F7,在開始之前要先去 ARM 官網 download gcc、安裝相關工具(make、st-flash...)、買開發板。之後就是要找到一個可以build 出 firmware 檔的專案了。

最初我也是到 SDK 裡面的 example 找看看有沒有直接可以 build 成功的專案,後來發現都沒有 makefile。無奈之下只好自已寫了,我把這個樣板專案放到 github 上。


內附的 README.md 有簡單地說明在 ubutnu 64 bits 的作業系統之下如何安裝才能成功地build 出 firmware.bin。在 mac 系統下安裝的方式可能不太一樣,但是因為我手上沒有"乾淨" 的 mac 環境,所以就沒寫在 mac 環境下如何準備...(只記得都是靠 brew 指令),等哪一天買新的 mac 之後再來補好了。

在 ubuntu 下的安裝簡介

測議的環境是 ubuntu 14.04 (64 bit) 版本  在 docker 下測試。一般不大會有問題才是。

首先安裝常用的工具:


sudo dpkg --add-architecture i386
sudo update 
sudo apt-get install git build-essential cmake libc6:i386 libncurses5:i386 libstdc++6:i386 wget unzip


再來就是把專案抓回來,順便進入資料夾 stm32dev 。


git clone https://github.com/onionys/STM32_GCC_PROJ_TEMPLATE.git stm32dev 

cd stm32dev 



會看到資料夾 "stm32dev/stm32f7" 這個才是 STM 的專案資料夾,裡面的 Makefile 設置會需要把 SDK 和 gcc 放置在 stm32dev 這個資料夾。

所以接下來就是去 ARM 官網抓特定版本的 gcc 回來。這邊用的版本是 arm-none-eabi-gcc 4.8..4 for linux ,可以使用 wget 指令抓下來,順便解壓縮:


wget https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q3-update/+download/gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2

tar jxvf gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2



再來就是去 ST 官網抓 STM32CubeF7 SDK 1.15   ,不用錢但是要在官網註冊帳號。抓到資料夾 stm32dev 後,就解壓縮:


unzip en.STM32Cube_FW_F7_V1.15.0.zip



這個時候應該就可以進去 stm32f7 資料夾 build 看看了


cd stm32f7

make all



成功的話會在 build 資料夾下看到 firmware.bin 這個檔案。

STM32CubeF7 SDK 和 arm gcc 的位置要更換的就,就自行修改 Makefile 裡下這兩個變數

...
STM32SDK = ../STM32Cube_FW_F7_V1.15.0
...
ARM_GCC_PATH= ../gcc-arm-none-eabi-4_8-2014q3/bin
...



目前只能用常見的 HAL 部份,像是 lwip、 freeRTOS、 fatfs 之類這種第三方的還沒有完全整合進去,之後會再慢慢加進去 Makefile。

說明一下,之所以想開這個系列,是因為官方沒有提供寫好的 Makefile。官方提供的 example project 都沒有看到 Makefile。後來新提供的什麼CubeMX 的工具可以產生專案,但是對我來說過於複雜,所以在還沒摸索到能否產生 Makefile 之前就累了。於是索性就自已花點時間建個樣板專案並寫個 Makefile。發現花的時間還比較少...

所以我的整個開發環境就是,使用 vim + ctag + make,然後 compile 就使用 arm 官方的 gcc。然後全部都在 command line 環境底下開發。總之就是完全脫離 windows 了~~,GUI 什麼的也用不太習慣。話說以前第一次玩 STM32 的 MCU 時竟然是先從買IC、layout、洗板子、焊接完之後才開始coding,是種由先硬後軟的方式在摸索。會這樣子完全是因為閉門造車,所以花了很久的時間。說實在的,早知就就先買一塊官方出的開發板這樣還比較省事。

留言

熱門文章