發表文章

目前顯示的是 6月, 2016的文章

[STM32] 在 Windows 下使用 VSCode 架設 STM32 開發環境

1. 所需安裝的軟體 GNU Arm Embedded Toolchain : 下載壓縮檔,解壓到你想擺放的目錄。例如:c:\stm32\gcc-arm\ GNU MCU Eclipse Windows Build Tools : 這是 make 和相關的軟體,也可以使用 cygwin 或 mingw 內的工具,但我發現這包最簡潔。下載壓縮檔後將其解開,把裡面 bin 目錄下的執行檔複製到你想擺放的目錄。例如:c:\stm32\build tools\ OpenOCD : 這是燒 code 和 debug 的工具。下載壓縮檔,解壓到你想擺放的目錄。例如:c:\stm32\openocd\ VSCode : 這次的主角,編輯器和整合的操作介面。下載安裝程式執行,依指示安裝。安裝過程中有選項可將開啟檔案和開啟目錄加入滑鼠右鍵選單,建議打勾,以後開啟專案比較方便。 ST-Link Utility : STM32 原廠開發版的驅動程式和燒錄工具 STM32CubeMX (非必備): ST 提供的程式碼生成工具,利用它產生 makfile 的專案比較快 2. VSCode 的設定 由於 VSCode 的 Build 和 Debug 設定是存放在專案目錄下 .vscode/ 裡的 tasks.json 和 launch.json ,以下的操作必需是以 Folder 的方式開啟專案目錄才能用。你可以在檔案總管中,在專案的目錄上按右鍵,選"Open with Code"(安裝時必需有打開滑鼠右鍵選單功能)。或是在 VSCode 內用 "Open Folder" 打專案的目錄。 2.1 安裝 Extensions 第一次使用 VSCode 先從左側打開 Extensions 的側欄,安裝下列 Extensions。 C/C++ (Microsoft) Cortex-Debug 打開 settings,設定 cortex-debug 需要的路徑 "cortex-debug.openocdPath": "c:/stm32/openocd/bin/openocd.exe", "cortex-debug.armToolchainPat

[STM32] 4. 移植 FreeRTOS

FreeRTOS 是一個非常小型的 RTOS ,提供了任務排程器,同步機制和記憶體管理。如果只是需要一個單純的多工的環境,它是一個非常適合的輕量化 RTOS。其實這一篇嚴格來說稱不上移植,只能說是安裝。因為 FreeRTOS 本來就支援 ARM Cortex-m4,只需將原始碼加到專案中,聯結所需的函式就能使用了。 4.1 移植 FreeRTOS 主程式 到官網下載程原始碼,這篇使用的是 FreeRTOSv9.0.0.zip 。不過各版本的移植方式大同小異,是可通用的。 將壓縮檔解開後可以發現裡面有兩個目錄 FreeRTOS/ 和 FreeRTOS-Plus/ 。FreeRTOS 是主要核心,FreeRTOS-Plus 則是應用工具。目前只要看 FreeRTOS 就可以了。 在專案下建立目錄 lib/FreeRTOS/src 和 lib/FreeRTOS/inc 放置檔案。 將 FreeRTOS/License 複製到 lib/FreeRTOS/ 下 將 FreeRTOS/Source/ 下所有 .c 檔複製到 lib/FreeRTOS/src 將 FreeRTOS/Source/include 下所有 .h 檔複製到 lib/FreeRTOS/inc 將 FreeRTOS/Source/portable/MemMang 下所有 .c 檔複製到 lib/FreeRTOS/src 將 FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c 複製到 lib/FreeRTOS/src 將 FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h 複製到 lib/FreeRTOS/inc 將 FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h 複製到 /inc 修改 FreeRTOSConfig.h 移除 #ifdef __ICCARM__ 和相對應的 #endif 修改 src/stm32f4xx_it.c ,將 SVC_Handler(), PendSV_Handler(),SysTick_Handler() 三個函式前面加上 __attribute