MacOS 燒寫STM32

2019年在實驗室的主機上安裝了黑蘋果,迫於體驗極佳,在19年的最後一個月入了MacBookPro替代原來的遊戲本提高生產力,這一篇文章也因此而來。

不得不說,Mac剪輯視頻、寫Web都是極佳的利器,但我作爲一名電子專業的學生,平時需要使用的一些EDA軟件。他們有很多僅支持Windows,或者僅在Windows上能夠破解,這成爲了令很多電子類專業用MacBook的同學一個腦闊疼的問題,最簡單直接的辦法是安裝雙系統,大部分人都是如此。但我在買筆記本之前就已經想好退路了,要我在Mac上裝雙系統是不可能的,接下來要介紹的是 How to Develop Stm32 with MacOS?

在MacOS上實現STM32燒寫的方案網絡上有多種:

  1. ST官方推出的STM32CubeIDE

    基於Eclipse改過來的IDE,集成了STM32CubeMX、STM32CubeProgrammer和燒寫程序的功能。

    But,用Vivado的SDK時帶來的不好的體驗,使我對Eclipse魔改過來的IDE一直沒有好感,這個方案PASS

  2. VsCode插件PlatformIO IDE

    也是可以通過Jtag等方式直接燒寫stm32,但用的庫文件不夠官方,結構有點詭異。

    適合寫Arduino或小規模的工程。而且新建工程的速度慢,這個方案PASS。

  3. stm32Cube加上openocd

    我的好朋友用的是這種方案,我沒有嘗試,似乎效果還不錯?感興趣的朋友可以百度研究一下。

而我們使用的工具鏈是:VSCode、ArmGCC、STM32CubeMX、STM32CubeProgrammer。

類似第三種方案與第一種方案的結合。

Keil這些年來一直停滯不前,而這些工具一直在進步。

注:本文下載的軟件較多,且下載速度較慢,可以去我的個人博客下載鏡像立即前往

一、安裝VsCode

前往官網下載

安裝完成之後,在左側的擴展欄目裏,先搜索插件:Chinese,安裝,漢化。
在這裏插入圖片描述
然後按住command+shift+p,選擇“Install ‘code’ command in PATH。接下來我們就能夠使用code file這個命令來打開文件了。
在這裏插入圖片描述

二、安裝ArmGCC

ArmGCC是Arm官方用於編譯 ARM 架構的裸機系統的編譯器,就和他的名字一下,用於Arm的GCC編譯器。我們需要使用ArmGCC將我們編寫的C語言程序、Arm的彙編指令,編譯成燒寫用的hex、bin文件、調試用的elf文件。

點擊前往下載

下載MacOS版本,解壓後得到如下的文件夾。

在這裏插入圖片描述

之後,我將這個文件夾拷貝到了home下的opt目錄中,畢竟不能把他隨便丟在下載文件夾裏面,太難看了。

在這裏插入圖片描述
然後,我們需要把gcc-arm的bin文件夾放到環境變量PATH裏去。

爲什麼需要放到環境變量PATH中去?怎麼放到環境變了裏去?

我相信有實力折騰本文操作的讀者,應該不會被這種問題困擾,但還是爲了以防萬一,這裏對我的環境做簡單的介紹。

如果不清楚,可以參考相關文章。

打開命令行,輸入 code ~/.zshrc 由於我用的是zsh,所以是zshrc,如果沒有經過配置,那麼你輸入的應該是:code ~/.bash_profile

在文件的末尾加入:

export PATH="/Users/wanglei/opt/gcc-arm-none-eabi/bin:$PATH"

把中間的 “/Users/wanglei/opt/gcc-arm-none-eabi/bin”替換成你的目錄,然後重啓命令行,就可以使用ArmGCC的命令了。

打開命令行,輸入以下命令查看是否配置成功:

三、安裝STM32CubeMX和STM32CubeProgrammer

STM32CubeMX是意法半導體官方,在前幾年推出的圖形化底層代碼生成工具,簡單的說,它能夠芯片/開發版,進行一些底層代碼的配置,例如要用哪些資源,控制這些資源的庫代碼,這樣你就可以不用依賴正點給你寫的那些功能庫了。

而對於STM32CubeProgrammer,我們需要了解將程序下載到單片機的兩種方法:

  • 普通串口下載

    只要開發板上有CH340這個芯片,我們就能通過USB直接往芯片裏燒寫Hex文件。但Mac上沒找到燒寫的軟件,所以這個方案對我們不適用。

  • 下載器下載

    用SWD等方式燒寫Bin文件,STM32CubeProgrammer是幫助我們實現該功能的工具。

但是,這個軟件居然要依靠JAVA來運行,我們還得先去官網下載一個JRE安裝一下

點擊前往下載JRE

我安裝的是最新款的JRE13。

然後分別下載Mac版本的STM32CubeMX和STM32CubeProgrammer

點擊前往下載STM32CubeMX

點擊前往下載STM32CubeProgrammer

MAC安裝這倆軟件的方式有些不同,下載完成,解壓之後。需要右擊,顯示包內容。然後前往Content->MacOS裏執行安裝(如果權限不夠,需要給一下執行權限)安裝過程還是很無腦的,一路Next就好了。

在這裏插入圖片描述
安裝完成STM32CubeMX之後,打開軟件。

在這裏插入圖片描述

安裝成功。

接着一樣安裝完STM32CubeProgrammer,爲了能夠方便的燒寫單片機,我們還需要將STM32_Programmer_CLI這個文件所在目錄放在系統的環境變量裏。

export PATH="/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin:$PATH"

然後我們就能用

STM32_Programmer_CLI -c port=SWD -d build/ProgramDemo.bin 0x8000000 -s

來燒寫單片機了。

四、實戰演示

看到這裏,我相信你還有很多疑惑🤔,似乎環境已經安裝完成了,但如何使用?

流程大概是這樣:

  1. 使用STM32CubeMX生成工程模板
  2. 配置VsCode工程環境
  3. 編寫代碼
  4. make編譯出hex、bin、elf文件
  5. 用STM32_Programmer_CLI命令燒寫/或者用Cortex-Debugger插件調試

用語言描述有些複雜了,錄製了一段視頻放在bilibili,大家可以前往查看。

五、一些問題的解答

  1. 報錯信息:Error: Old ST-LINK firmware version. Upgrade ST-LINK firmware

    下載ST-Link升級固件:點擊下載

    也可以去我的個人博客下載哦:點擊前往

    給自己的ST-Link升級一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章