2018年2月24日星期六

[STM32] 如何在 Windows 作業系統 建立 STM32CubeMX + Eclipse 開發環境 之 三

STM32CubeMX

在 ST 網站 ( http://www.st.com )搜尋並下載  STM32CubeMX

建立 STM32F031F6Px 做示範,選好 Device Type 後設定需要的功能。



點選 選單列的 Project/Settings


在 Project Name 設定好名稱,在 Toolchain 務必選定 TrueSTUDIO  今年的STM32CUBE版本可以改選 SW4STM32  ,然後 點 OK 離開。
還有進階的 Clock Configuration 及 Configuration 等標籤設定功能,這待後續有機會再分享,現在可以產生原始碼。

點選 Project/Generate Code 開始產生程式碼,完成後 會彈出


請點選 Open Folder 會自動開啟檔案總管 ,就會看到 STM32CubeMX 產生的程式碼。

這段程式碼有在 Github 分享,有興趣的朋友可以到 這個網址 (https://github.com/cold63/STM32F031x6Project) 下載。


Eclipse IDE

請到 https://www.eclipse.org/downloads/eclipse-packages/ 下載 Eclipse 軟體,目前版本是 OXYGEN。 在下載的項目中選擇 C/C++ Package 版本 ,依據您的系統選擇 32 bit 或是 64bit
,並安裝它。



安裝完成後,點選選單列 Help / Install new Software


點選 Add 後,


欄位 Name 填入 

GNU MCU Eclipse Plug-ins
欄位 Location 填入 

http://gnu-mcu-eclipse.netlify.com/v4-neon-updates

點 OK 儲存離開。

回到 Available Software , 在 Work with  下拉選單 選擇剛剛新增的 GNU MCU Eclipse Plug-ins 就會自動下載檔案清單。



初學可以全選打勾, 點選 Next 繼續安裝流程。



安裝完成後,繼續剛剛的 STM32F031F6Px 專案。

首先,先複製 剛剛從 STM32CubeMX 產生的程式碼 連同資料夾 複製到 Eclipse 的 Workspace。

在 資料夾 startup 有個 startup_stm32f031x6.s 文件 ,將它副檔名更名為 asm

startup_stm32f031x6.asm

回到 Eclipse 。

點 File / New / Project... 選擇 C Project


在 Project Name填入剛剛複製的資料夾名稱, 會出現 Directory with specified name already exists. 可以不理會它,點 Next 繼續下一步。


我的習慣將 Debug 取消 , 當然也可以保留。 Next 下一步


會自動帶入 Toolchain 路徑。 Finish 完成

有警告訊息


OK 繼續。
在 Eclipse 的 Project Explorer 出現 STM32F031F6PBoard 的 Project 資料夾



將游標移到 STM32F031F6PBoard 上面按滑鼠 右鍵 , 選擇 Properties



選擇 C/C++ General / Paths and Symbols / Symbols 標籤

按照 ST 的規範 分別建立兩個 Symbols

USE_HAL_DRIVER
STM32F031x6

 Add 加入。將

Add to all configurations
Add to all languages

前面的 checkbox 打勾,建立完成後


選擇 C/C++ General / Paths and Symbols / Includes 標籤
加入 4 個 Include 路徑, 分別是

Drivers/CMSIS/Device/ST/STM32F0xx/Include

Drivers/CMSIS/Include

Drivers/STM32F0xx_HAL_Driver/Inc

Inc

點 Add ,選擇 Workspace... 分別選擇 加入。
一樣將
Add to all configurations
Add to all languages

前面的 checkbox 打勾

Is  a workspace path 不要打勾

Root 名稱要從原本的 STM32F031F6PBoard 改為 ${PathDirPath} 變數,這是 Eclipse 的常規變數。完成後點 Apply



選擇 C/C++ Build / Settings / Tool Settings 標籤
在 Target Processor 項目 的 ARM family 選擇 cortex-m0

移到 GUN ARM Cross C Linker 項目 的 General 加入 STM32F031F6_FLASH.ld 文件


點 OK 後 回到 Properties 設定頁面。再點 Apply and Close
現在已完成基本設定,可以測試 Build 。

在 專案名稱上 點 滑鼠右鍵 找到 Build Project  及 Clean Project

兩個要搭配使用。

執行 Build Project 後 , 在 底下的 Console 視窗開始有 編譯的訊息出現,直到 出現

Finished building: STM32F031F6PBoard.hex
 
Invoking: GNU ARM Cross Print Size
arm-none-eabi-size --format=berkeley "STM32F031F6PBoard.elf"
   text    data     bss     dec     hex filename
   6172    1088    1856    9116    239c STM32F031F6PBoard.elf
Finished building: STM32F031F6PBoard.siz
已經大功告成。現在可以開始繼續您的程式,這只是初步可以編譯
後續再分享其他使用經驗。

0 comments:

發佈留言