軟件安裝
Clion
官網(wǎng)安裝或者brew安裝,我用的是2023.2版本。
stlink server
https://www.st.com/en/development-tools/st-link-server.html
不安裝的話檢測不到stlink。
STM32CubeMX
https://www.st.com/en/development-tools/stm32cubeide.html#overview&secondary=st-get-software
用來快速搭建一個工程。
環(huán)境搭建
Arm-toolchain
用來編譯和debug的組件。
brew install --cask gcc-arm-embedded
# 以下命令有輸出說明安裝成功
arm-none-eabi-gcc -v
arm-none-eabi-gdb -v
P.S.: 有的教程里說用 brew install arm-none-eabi-gcc
這個是舊版本,安裝以后在我的電腦上會導(dǎo)致編譯失敗。
Openocd
用于下載程序到單片機的的組件。
brew install open-ocd
# 以下命令有輸出說明安裝成功
openocd -v
stlink
brew install stlink
# 插入stlink后以下命令應(yīng)該能檢測到該stlink
st-info --probe
如果顯示指令不存在,說明stlink沒裝好,重新用brew再裝一遍。
如果檢測不到,可能是server有問題。
Clion配置
Step 1:設(shè)置插件
Clion應(yīng)該自動裝好了Embeded Development Support插件,如果沒有就手動裝一下。然后在設(shè)置里寫上路徑,點測試會顯示版本而不是報錯:
STM32CubeMX應(yīng)該會自動檢測到。如果不確定openocd路徑的話,在命令行輸入:
which openocd
Step 2:新建工程和設(shè)置
新建一個工程,選擇嵌入式里的STM32CubeMX。
會自動生成一個.ioc文件,在Clion中打開這個文件,會引導(dǎo)打開STM32CubeMX,在這個軟件中設(shè)置一下使用的單片機信息。需要注意的是,在project manager中,設(shè)置的時候要和在Clion中設(shè)置的project信息一致,最后會覆蓋這個項目的文件夾。且務(wù)必要在Toolchain/IDE中選擇STM32CubeIDE!設(shè)置完成后點右上角的Generate Code覆蓋該文件夾。之后會自動回到Clion,讓選擇一個cfg文件,按照自己的芯片型號選一個,我的是stm32f103c8t6,所以選這個blue pill的,然后選擇復(fù)制到項目并使用:
打開這個cfg文件,往里面加一些關(guān)于燒錄的信息,改成(中間兩行是新加的):
set FLASH_SIZE 0x20000
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f1x.cfg]
Step 3:設(shè)置debugger
在clion的上邊這里,點這個編輯:
在這里選自定義GDB可執(zhí)行文件,然后輸入一下arm-none-eabi-gdb的路徑:
如果不確定路徑的話,在命令行輸入:
which arm-none-eabi-gdb
正常來說,做完這里就可以運行和debug了,每次運行會自動燒錄程序。
Step 4:修改stm32f1x.cfg(如果不幸買到假芯片)
因為不幸買到了假的stm32f103c8t6,運行燒錄的時候一直報錯,報錯信息如下:
Warn : UNEXPECTED idcode: 0x2ba01477
Error: expected 1 of 1: 0x1ba01477
該文件的路徑如下,如果沒有改過homebrew的默認(rèn)路徑應(yīng)該都是一樣的,但是版本號可能會變:
/opt/homebrew/Cellar/open-ocd/0.12.0/share/openocd/scripts/target/stm32f1x.cfg
如果找不到的話可以用命令行:
sudo find /opt/homebrew -name stm32f1x.cfg
在該文件大概40多行(44行?),有一句set _CPUTAPID 0x1ba01477
,把它注釋掉,改成set _CPUTAPID 0x2ba01477
:
# set _CPUTAPID 0x1ba01477
set _CPUTAPID 0x2ba01477
現(xiàn)在就可以正常燒錄和調(diào)試了。
遇到的問題
調(diào)試時顯示端口問題
報錯信息:
Info : tcl server disabled
Info : Listening on port 4444 for telnet connections
端口被占用了,用命令行看看是什么程序占用:
lsof -i :4444
知道pid后,再用kill指令殺掉。
調(diào)試時顯示"pretty-printer"
彈窗報錯:文章來源:http://www.zghlxwxcb.cn/news/detail-721263.html
Undefined info command: "pretty-printer".
不用管他,不影響使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-721263.html
到了這里,關(guān)于【Mac+CLion+STM32+ST-Link】Mac(apple sillicon)上使用STM32CubeMX和CLion搭建嵌入式開發(fā)環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!