STM32單片機開發Clion環境配置
最近開始接觸STM32。那個Keil編輯器實在不行,代碼提示幾乎沒有。偶爾在網上看到能用Clion開發STM32,並且三大平台都可以。於是,折騰又開始了。
-
一、工具准備
-
GNU Arm Embedded toolchain
-
linux:
- sudo apt install gdb-arm-none-eabi
- sudo apt install gcc-arm-none-eabi
-
gcc編譯工具(根據你的系統選擇32位還是64位)
- windows下: mingw
- linux下一般默認安裝
-
OpenOCD
- windows下的地址
- linux下直接apt install即可
-
STM32CubeMX
- 直接去ST官網下載最新版即可。下載完成直接就有三個系統下的版本。
- linux:
- 需要先安裝Java環境:sudo apt install default-jre
- 運行STM32CubeMX:
- 可能需要加上運行權限:sudo chmod +x SetupSTM32CubeMX-6.1.1.linux
- ./SetupSTM32CubeMX-6.1.1.linux
-
Clion直接去官網下載,目前最新版2020.1
- 學生和老師用教育網郵箱即可免費使用。好像有期限:一年。
- 他的全家桶都可以用。我反正用得很爽。
-
- zadig:這個東西也要備一個。如果JLink燒寫出現問題可能需要。用這個工具你一定要知道你在干什么。所以,我推薦用stlink.
-
stLink
- windows下OpenOCD包中有這個驅動
- Linux下需要編譯安裝才比較保險。
-
-
二、安裝注意事項
- 1、基本按照上面的步驟安裝。盡量全部下載完畢再安裝。
- 2、在Windows下能用管理員權限就用管理員權限。
- 3、OpenOCD只用解壓即可。但要注意在Windows系統變量里增加路徑。
- 4、MinGW不要用線上安裝方式,慢到你懷疑人生。直接下載安裝包即可。
- 5、B站上有詳細的教程。這一類的視頻還不多見。
- 6、這些工具很多是GNU下的,所以如果可能的話,還是在Linux下配置吧。我在Deepin15.11下配置成功。但當時只想着怎么把他搞定,沒想着寫筆記,現在有些步驟都忘記了。這也是以前學習的毛病,以為自己能記住,下次再用進,一切重新來過。這浪費了大量的時間。現在學乖了,只要有時間,我就把做過的一些事情記下來。這樣,下次再搞不用再浪費時間。發到網上,也許還能不小心幫到同道中人,也多少算是一點功德吧!
-
三、踩坑記
-
1、Clion不能生成CMakeLists.txt文件。最后升級Clion2020.1版本問題解決。
-
2、寫入時出現Error: error writing to flash at address 0x08000000 at offset 0x00000000
- https://github.com/platformio/platform-ststm32/issues/175
- H:\OpenOCD\share\openocd\scripts\board (H代表你的OpenOCD安裝所在分區)這里有好多個CFG文件,建議把沒有的刪去,只留下STM開頭的。如果你只是開發STM32的話。
- 百度了N多次,找不到有用的。最后在上面這個地址找到解決辦法。把cfg文件中的
set WORKAREASIZE 0x2000
這句話中的0x2000改為0x1000。 - 因為我用的是F030的,所以我選的是stm32f0discovery.cfg這個文件。
-
3、解決了1的問題之后又出現了鏈接問題,目前還未解決。
-
====================[ Build | untitled1.elf | Debug]=========================== "H:\JetBrains\CLion 2019.3.5\bin\cmake\win\bin\cmake.exe" --build H:\stm32\untitled1\cmake-build-debug --target untitled1.elf -- -j 6 [ 4%] Linking C executable untitled1.elf h:/gnutoo~1/92019-~1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: cannot open linker script file H:/stm32/untitled1/: Invalid argument collect2.exe: error: ld returned 1 exit status mingw32-make.exe[3]: *** [CMakeFiles\untitled1.elf.dir\build.make:375: untitled1.elf] Error 1 mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:75: CMakeFiles/untitled1.elf.dir/all] Error 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/untitled1.elf.dir/rule] Error 2 mingw32-make.exe: *** [Makefile:117: untitled1.elf] Error 2
-
-