轉:http://blog.sina.com.cn/s/blog_68eaa6e70102xhms.html
安裝STM32CubeMX
1.下載地址 http://www.st.com/zh/development-tools/stm32cubemx.html
2.用STM32CubeMX新建工程,生成代碼,此處注意對應平台 MakeFile
安裝編譯工具鏈
在終端使用 brew cask install gcc-arm-embedded
這會將編譯工具軟鏈接到 /usr/local/bin 中
修改STM32CubeMx生成的代碼
1.修改編譯工具位置
打開生成工程中的MakeFile文件,修改變量BINPATH 為我們安裝的編譯工具的目錄/usr/local/bin(默認為空)如下圖(崩潰,無法上傳圖片)
2.STM32CubeMX導出的makefile文件有錯誤
參考此博客http://blog.csdn.net/ailikez/article/details/79154972
錯誤表現為在編譯過程中會報 multiple defination(重復定義)錯誤;
修改方法:更改makefile文件中的變量 C_SOURCES,默認生成的文件中,此變量里面包含的c文件有重復的,刪除重復即可
自定義修改工程
stm32CubeMX只是幫我們建立工程,並將用到的硬件初始化,具體要實現的功能要自己寫,可以用代碼編輯軟件(比如VS code)進行編輯,如果添加C文件和H文件,要同時修改makefile文件
編譯工程
在終端中轉到工程目錄,使用 make 命令安裝makefile的規則編譯工程,默認會在工程中建立build目錄,並在build中生成.o(中間過程文件).bin .elf .hex .bin 文件
.hex .bin文件是最后需要下載到單片機中的,在mac上我們需要的.bin 文件。
燒寫文件到單片機
此處有兩種方法,JLink和StLink;
公司中只有JLink,所以這次使用的JLink;
好像不管JLink還是STlink,mac都集成驅動
JLink
在JLink官網下載mac版JLink配套軟件
https://www.segger.com/downloads/jlink/
安裝之后,默認會在/Applications里面,並且軟鏈接到/usr/local/bin中,所以可以移動位置,比如移動到STM32CubeMX的目錄下,然后更新軟鏈接。
燒寫命令,在終端下執行 JLinkExe -device (芯片名字) 比如STM32F103C8
然后進入JLink自帶的shell下,開頭是 jlink->
然后首先需要與板子建立通信,按照提示 輸入 connect 然后按提示操作 回車代表執行默認
建立連接后,就可以燒寫了,使用如下命令:loadbin xxx.bin(編譯得到的文件) 0x8000000(芯片中flash開始的地址,可以查看工程目錄下的 形如STM32F103C8Tx_FLASH.ld文件中有記錄。
結束。
Stlink
這個只需要使用芯片的usart1連接的stlink,然后下載開源st-flash工具,可以用homebrew安裝,執行如下命令: brew install stlink
安裝后,只需要使用燒寫命令:st-flash write xx.bin 0x8000000
結束。