步驟1:下載所需的一切
您需要下載三個部分才能正常工作:
用于ARM的GCC編譯器
STM32固件文件
St-link實用程序
Sample Project
編譯器是將我們的C代碼和所有其他庫文件編譯成stm32控制器可以理解的機器語言的主要軟件。下載此編譯器的最新預編譯版本。
包含STM32固件的文件夾是保存主處理器運行所需的所有啟動文件和核心文件的文件夾。我們將使用HAL已超越的標準外圍設備庫。我更喜歡StPeriphLibrary,因為使用該處理器的公司都在使用它們,因為它功能強大,更老舊并且受支持。它也更堅固。它不會減少初始化外圍設備或打開LED所需的工作,但是會迫使您學習這些處理器的工作方式。這樣一來,您將對內部工作有更多的了解,從而可以對任何任務進行編程。
最后一個下載的軟件是st-link實用程序。它在github上維護,用于通過板上的stlink IC作為SWD/JTAG編程器/調試器將編譯的二進制文件傳輸到處理器。
我還提供了一個示例項目文件夾稍后再下載。它位于第一個VIDEO1文件夾中。
步驟2:安裝軟件
下載后我建議您將所有文件都放在一個公用文件夾中,因為它們都出于相同的目的而一起使用。我將所有文件夾放在HOME目錄中一個名為“ Embedded”的文件夾中。
我們將從最簡單的STM32庫開始。您下載的文件夾可以留在這里。只需確保四處挖掘以查看適當文件的存儲位置。因此,您可以更改和編輯主MakeFile,使其可以在您的平臺上使用。
第二個最簡單的是編譯器。您也不需要執行任何操作,但是我們將使編譯器成為可全局訪問的函數,因此您可以從任何文件夾調用編譯器,而無需考慮路徑。所有步驟都可以在終端機或gui中完成,但是我喜歡使用終端機,因為當您有經驗時,它會變得越來越快,更容易,如果您擔心的話,建議您多使用終端機。步驟如下:
進入主文件夾“/home/YOURUSERNAME/”或“?/”,或在終端中輸入 cd
通過鍵入以下內容來打開文件“ .bashrc”: nano .bashrc
向下滾動到文件末尾并添加以下行:
export PATH = $路徑:?/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
通過保存退出: CTRL + X,單擊Y,ENTER
運行命令: source .bashrc 刷新終端源
通過鍵入以下命令檢查是否一切正常: arm-none-eabi-gcc --version,它應該顯示編譯器的最新版本
要安裝st-link,請將已下載的存檔解壓縮到Embedded文件夾中。然后執行以下步驟:
運行: make
進入文件夾“ build/Release”: cd build/Release
鍵入 ls ,您將看到兩個名為“ st-flash”和“ st-util”的可執行文件
將這兩個可執行文件移動到父目錄中stlink: mv st-flash st-util 。./。./
可以,如果您想使用這兩個功能,可以通過以下方式再次全局編輯“ .bashrc”文件添加:
導出PATH = $ PATH:?/Embedded/stlink/
僅此而已!您擁有所需的一切。現在,抓住您自己喜歡的文本編輯器。我只使用標準的,像SublimeText或Atom這樣的更智能的標準。
第3步:建立示例項目
我們現在將創建一個示例項目,您可以使用該示例項目來啟動每個項目。就像一個模板,已經處理了所有主要設置。
您可以將其下載到我的MEGA中,該鏈接位于本教程的第一步,并且在我的所有youtube視頻下。里面是空的main.c文件,以及此處理器和Makefile的一些啟動文件。 Makefile可以告訴C編譯器在哪里找到arm編譯器,如何編譯以及所有庫在哪里。為了獲得適合您項目的這些文件,您可以進入STM32庫文件夾并檢查“ project”或“ examples”文件夾。在內部,您將看到并復制以下文件: main.c , Makefile 和 XXX_conf.h , system_XXX.c。
此外,您還需要 stm32_flash.ld 鏈接程序文件,該文件可在示例文件夾或以下文件夾中找到:
“/FLASH_Program/TrueSTUDIO/FLASH_Program/”或只需搜索文件即可。
Makefile可以在線找到,也可以從我的文件夾中復制,但是您需要做一些更改。讓我們來看看我的make文件以及可以更改的內容。
# Path to stlink folder for uploading code to board
STLINK=~/Embedded/stlink
# Put your source files here (*.c)
SRCS=main.c system_stm32f4xx.c
# Libraries source files
#SRCS += stm32f4xx_rcc.c
#SRCS += stm32f4xx_gpio.c
# Binaries will be generated with this name (.elf, .bin, .hex)
PROJ_NAME=test
# Put your STM32F4 library code directory here, change YOURUSERNAME to yours
STM_COMMON=/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0
# Compiler settings. Only edit CFLAGS to include other header files.
CC=arm-none-eabi-gcc
OBJCOPY=arm-none-eabi-objcopy
# Compiler flags
CFLAGS = -g -O2 -Wall -Tstm32_flash.ld
CFLAGS += -DUSE_STDPERIPH_DRIVER
CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork
CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
CFLAGS += -I.
# Include files from STM libraries
CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/Include
CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Include
CFLAGS += -I$(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/inc
CFLAGS += -I$(STM_COMMON)/Utilities/STM32F4-Discovery
# add startup file to build
SRCS += $(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Source/Templates/TrueSTUDIO/startup_stm32f4xx.s
OBJS = $(SRCS:.c=.o)
vpath %.c $(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \
.PHONY: proj
all: proj
proj: $(PROJ_NAME).elf
$(PROJ_NAME).elf: $(SRCS)
$(CC) $(CFLAGS) $^ -o $@
$(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex
$(OBJCOPY) -O binary $(PROJ_NAME).elf $(PROJ_NAME).bin
clean:
rm -f *.o $(PROJ_NAME).elf $(PROJ_NAME).hex $(PROJ_NAME).bin
# Flash the STM32F4
burn: proj
$(STLINK)/st-flash write $(PROJ_NAME).bin 0x80000000
您可以編輯第一行以將路徑更改為stlink實用程序文件夾
您可以使用庫和YOURUSERNAME
STM_COMMON=/home/YOURUSERNAME/Embedded/STM32F4-Discovery_FW_V1.1.0
將行更改為文件夾的目的地,也可以檢出鏈接所有庫的部分。這可能會根據您使用的平臺而有所不同,因此請檢查文件樹中的更改。包括指向某些文件的路徑在內的所有其他內容,都可以更改,例如帶有啟動文件的下一行。
在Makefile中編輯完所有這些內容之后,您可以檢查其是否正常運行在目錄內打開一個終端,然后輸入: make 。如果它可以毫無問題地編譯所有東西,那么您就設置好了。如果沒有,請查看編譯器錯誤并編輯Makefile。
此外,當我使用Atom時,我并排放置了兩段代碼。通常main.c和Makefile在左側,因為您只需要編輯一次Makefile,在右側編輯庫。您可以在圖片上看到我打開了包含每個庫的.c和.h文件的文件夾。您可以在視頻中看到所有這些內容。
第4步:完成!
現在,您已經配置了Makefile并編譯器正常工作時,您可以將該文件夾用于所有項目作為模板,因此請確保保存此文件夾的副本。
還可以測試 st-flash 和《通過插入開發板并在終端中鍵入 st-info 程序:st-info --probe
您可以看到stlink軟件可以識別的平臺以及IC系列以及緩存和其他東西。您可以鍵入:st-info以查看所有可用參數。
責任編輯:wv
-
Linux
+關注
關注
87文章
11326瀏覽量
209964 -
STM32
+關注
關注
2270文章
10915瀏覽量
356755
發布評論請先 登錄
相關推薦
評論