工欲善其事,必先利其器。
STM32Cube生態系統是ST為STM32開發者打造的軟件生態,是嵌入式開發的利器。
為提升功能豐富且高能效的STM32系列微控制器的易用性,2019年,意法半導體在STM32Cube軟件生態系統中增加了一個免費的多功能STM32開發工具:STM32CubeIDE。
為了和商用集成開發環境(IDE)工具一樣好用,STM32CubeIDE充分發揮了意法半導體2017年收購的嵌入式開發工具廠商Atollic的技術優勢。這套IDE軟件采用行業標準的開放式許可條款,為簡化和加快基于STM32的嵌入式設計,新增了STM32專用功能,包括功能強大的STM32CubeMX微控制器配置和項目管理工具。
通過整合STM32CubeMX與STM32CubeIDE,意法半導體創建了一個更強大的開發環境。STM32Cube的完整生態系統還包含STM32CubeProgrammer的代碼燒寫器和STM32CubeMonitor系列的代碼運行監控器,以及眾多獨立的MCU固件包。
STM32CubeIDE是ST官方提供的免費軟件開發工具,也是STM32Cube生態系統的一員大將。它基于Eclipse/CDT框架,GCC編譯工具鏈和GDB調試工具,支持添加第三方功能插件。同時,STM32CubeIDE還集成了部分STM32CubeMX和STM32CubeProgrammer的功能,是一個 “多合一”的STM32開發工具。
用戶只需要STM32CubeIDE這一個工具,就可以完成從芯片選型,項目配置,代碼生成,到代碼編輯,編譯,調試和燒錄的所有工作。
在開發的過程中,用戶也可以非常方便地切換到內嵌的CubeMX初始化窗口,添加或者修改之前的外設和中間件配置。不需要在多個工具之間進行切換。
STM32CubeIDE提供的編譯和堆棧分析工具為用戶提供了關于項目狀態和內存使用的有用信息。還提供了很多高級的調試功能幫助用戶進行高效地調試。
跟 STM32CubeMX,STM32CubeProgrammer 一樣,它也是一個多平臺的STM32開發工具,用戶可以在Windows,Linux和macOS操作系統上通過STM32CubeIDE進行軟件開發。
STM32CubeIDE界面
STM32CubeIDE 是基于 Eclipse 的框架,它繼承了 Eclipse 所特有的一些對用戶來說還不太熟悉的特性,比如透視圖,工作空間等。
工作空間(Workspace):STM32CubeIDE通過工作空間(workspace)對工程進行管理,打開STM32Cube時,它會新建一個默認的工作空間,用戶也可以通過Browse按鈕另外選擇一個文件夾作為工作空間,之后新建或者導入的工程就都屬于前面選擇的這個工作空間。同一個工作空間下的工程具有相同的IDE層面的配置(在Window→Preferences中進行設置),比如顯示和編輯的風格設置等。從文件系統的角度,工作空間就是一個文件夾,里面包含了多個工程的文件夾和一個名為“.metadata”的文件夾,“.metadata”文件夾下包含了該工作空間內的所有工程的信息。用戶可以通過File→Switch Workspace菜單,切換不同的工作空間。
透視圖(Perspective):透視圖是一系列和某類功能相關的窗口的組合。常用的有C/C++編輯透視圖,調試透視圖和CubeMX配置透視圖。
C/C++編輯透視圖包括了項目管理器,編輯窗口,Outline窗口等。在項目管理器中可以查看和操作當前工作空間中的所有項目。雙擊打開項目中的文件,文件內容會顯示在編輯窗口,在編輯窗口可以對其進行編輯。最右邊的Outline窗口列出了當前打開的文件中定義的所有函數,變量和宏。
在Window Show View菜單中可以打開和關閉需要顯示在C/C++編輯透視圖中的窗口。
通過右上方的圖標可以在不同的透視圖之間切換,比如點擊爬蟲圖標,就可以切換到調試透視圖。在C/C++編輯透視圖下點擊工具欄的Debug按鈕啟動調試后,也會自動切換到調試透視圖。
工程管理
1 1. 新建和導入工程
使用STM32CubeIDE,用戶可以通過多種方法來開始新建一個項目。在STM32CubeIDE的歡迎界面上,列出了創建/導入工程的快捷入口,分別對應下面的四種場景。也可以通過File菜單下的New和Import實現對應的功能。
? 從零開始新建一個STM32工程
? 已有STM32CubeMX的配置文件(*.ioc文件 ),希望根據該ioc文件新建一個STM32工程
? 已有SW4STM32或者TrueSTUDIO工程,希望轉換成STM32CubeIDE工程
? 基于STM32Cube庫中的例程創建新工程
2 STM32CubeIDE工程結構
STM32CubeIDE有兩種工程結構,如下圖所示。
單核的MCU都是扁平結構。
對于雙核架構的MCU或者安全MCU,比如STM32H7,STM32L5和STM32MP1系列,STM32CubeIDE工程是分層結構。以STM32H7為例,創建或者導入STM32H7工程后,在Project Explorer欄看到的是一個三層的工程結構:最上面一層是“根”工程,然后是兩個分別對應CM7和CM4內核的“子”工程,“子”工程下面才是工程文件。這兩個CM7和CM4“子”工程才是真正的可編譯和調試的工程,而“根”工程只是作為一個“容器”,包含了CM7和CM4這兩個“子”工程。AN5361,AN5394,AN5360和AN5564分別描述了在STM32CubeIDE中如何創建,導入,編譯和調試STM32H7雙核,STM32L5,STM32MP1以及STM32WL的工程。
3 打開/關閉/刪除/切換/導出STM32CubeIDE工程
在Project Explorer窗口中可以看到當前工作空間下的所有工程。用戶可以對這里面的任一工程進行打開/關閉/刪除/導入/導出/更名等操作。
具體請參考“工程的基本操作”(馬上推出,敬請期待)。
4 固件庫管理
STM32CubeIDE集成了STM32CubeMX的部分功能,可以直接選擇芯片/開發板型號,或者選擇例程來生成一個新工程。STM32CubeIDE生成工程所需要的驅動和例程代碼都來自各個STM32系列的固件庫。
在Help→Manage Embedded Software Packages里,可以對所有的STM32固件庫以及其他的插件進行管理(安裝/刪除固件庫)。
用戶可以通過Install Now按鈕讓STM32CubeIDE自動從網絡進行下載安裝,也可以通過From Local按鈕來安裝已經預先下載好的固件庫。
通過Remove Now按鈕可以刪除選中的固件庫。
在Window Preferences窗口的STM32Cube Firmware Updater標簽頁下,可以設置固件庫安裝的路徑和更新的方式。
默認STM3CubeIDE在打開和新建工程的時候,都會嘗試連接網絡。用戶也可以選擇“Off Line Mode”,不讓STM32CubeIDE去聯網。但是需要通過上一張圖中Embedded Software Packages Manager窗口的From Local按鈕來安裝已經預先下載好的固件庫,否則將不能自動為新建的STM32工程生成代碼。
點擊Check Connection按鈕可以檢測當前的網絡連接狀態。檢測結束如果出現一個紅色的×,則說明網絡配置有問題,需要我們到Network Connection頁面去進行設置。
除了前面主動檢測網絡狀態,如果出現固件下載失敗的情況,也請檢查STM32CubeIDE的網絡配置是否正確。
配置步驟見下圖:
1.進入 Window Preferences菜單,選擇General Network Connections標簽頁
2.選擇 Manual方式
3.選擇HTTP,雙擊打開編輯窗口,設置網絡連接參數。
代碼編輯
STM32CubeIDE基于Eclipse,Eclipse的一些常用快捷鍵和編輯技巧一樣適用于STM32CubeIDE。熟練掌握這些小技巧可以提高開發效率,使得程序開發的工作事半功倍。
代碼編譯
1 工程屬性設置及編譯
在Project Explorer中選中一個工程,點擊右鍵后進入properties菜單,在其中就可以對編譯項進行配置。常用配置的操作細節,請查看“STM32CubeIDE工程屬性配置技巧”。
配置完成之后就可以進行編譯了。用戶可以通過下面三種方式啟動編譯:
? 方法一:選中工程,點擊右鍵,然后選擇“Build Project”
? 方法二:選中工程,從Project菜單進入,然后選擇“Build Project”
? 方法三:選中工程,直接點擊工具欄里的Build圖標
2 提高編譯速度
通過使能并行編譯,可以提高STM32CubeIDE的編譯速度。
選中工程,點擊右鍵后進入properties菜單,選擇“C/C++ Build”,在Behavior標簽頁下,勾選“Enable parallel build”功能。
3 編譯相關輔助工具
工程編譯完成以后,在“Build Analyzer”窗口可以看到鏈接文件中定義的所有內存區域(memory region)和段(section)的使用情況,包括加載地址,運行地址,有多少字節已經被占用,還剩余多少字節等。
在“Static Stack Analyzer”窗口中顯示了靜態堆棧的使用情況。
STM32CubeIDE還提供了Headless Build功能,可以不打開CubeIDE的圖形界面,通過命令行就可以進行編譯。
代碼調試及燒錄
1 調試及運行配置
STM32CubeIDE工程編譯完成且無任何錯誤,就可以進行調試和下載了。
在C/C++透視圖的工具欄中有三個和下載調試相關的按鈕:調試,運行和外部工具。
通過“調試”按鈕旁邊的小三角,可以打開Debug Configurations菜單,進行調試參數的配置,比如調試器的選擇,GDB連接的設置,ST-LINK的設置,外部Flash Loader的設定等,并啟動調試。
通過“運行”按鈕,可以僅下載程序不啟動調試。
通過“外部工具”按鈕,可以調用外部的命令行工具。
有關調試參數配置及調試技巧的內容,請參考“STM32CubeIDE工程調試配置及技巧”(馬上推出,敬請期待)。
2 啟動調試
STM32CubeIDE使用GDB進行調試,支持STLink和SEGGER J-Link調試器,支持通過SWD或JTAG接口連接目標MCU。
STM32CubeIDE工程編譯完成之后,直接點擊工具欄的爬蟲圖標或者通過選擇菜單Run-->Debug,可以啟動調試。
如果是第一次對當前工程進行調試,STM32CubeIDE會先編譯工程,然后打開調試配置窗口。調試配置窗口包含:調試接口的選擇,STLink的設置,復位設置和外部flash loader的設置等選項,用戶可以檢查或者修改各項配置。確認所有的配置都正確無誤,就可以點擊OK,啟動調試。
然后STM32CubeIDE會先將程序下載到MCU,然后從鏈接文件(*.ld)中指定的程序入口開始執行。程序默認從Reset_Handler開始執行,并暫停在main函數的第一行,等待接下來的調試指令。
3 基本調試操作
啟動調試后,STM32CubeIDE將自動切換到調試透視圖,在調試透視圖的工具欄中,列出了調試操作按鈕。如下圖所示。
插件的使用
STM32CubeIDE同樣支持Eclipse插件。
可以通過Help菜單下的“Eclipse Marketplace”,在Eclipse市場中查找并安裝插件;
或者通過Help菜單下的“Install New Software”,從指定的網址安裝插件。
STM32CubeIDE使用例程
下面我們通過一個LED閃燈的例程,來體驗一下使用STM32CubeIDE進行軟件開發的流程。
例程使用NUCLEO-H743ZI開發板,通過STM32CubeIDE從零開始新建工程。該工程就實現一個簡單的功能:板載的LED1以500ms的間隔自動翻轉。
通過這個例程,可以了解到以下內容:
? 新建一個STM32CubeIDE工程
? 對STM32芯片進行配置
? 添加用戶代碼并編譯
? 設置調試參數
? 調試代碼(查看變量及寄存器)
? 設置斷點
首先,選擇File-->New-->STM32 Project,STM32CubeIDE會打開MCU選擇窗口。在這個窗口下,可以選擇某個型號的芯片,也可以選擇某個ST開發板或者例程。這里我們在搜索框里輸入STM32H743ZI,就可以直接選擇這個芯片了,然后點擊Next。
在接下來彈出的窗口中,需要設置項目的名稱,類型和工程保存的位置。默認情況下,新建的工程會保存在當前的workspace中,用戶也可以按下圖所示,取消“Use default location”,然后自定義工程保存的位置。需要注意的是,如果你試圖將兩個工程放在同一個路徑下,在后面的創建過程中可能會報錯。所以你可以在路徑中加上工程名,以區別不同的工程。
設置完成后,點擊Finish,STM32CubeIDE將為我們創建一個工程,并打開芯片的配置界面,這個界面和STM32CubeMX是一樣的。
期間可能會彈出將要打開CubeMX配置透視圖的提示,點擊Yes就可以了。
接下來要做的是,在芯片配置界面,按功能需求對時鐘,GPIO,外設,中間件等進行配置。在這個例程中,我們只用到了PB0,作為輸出控制LED1,所以只需要配置它就可以了。時鐘就使用默認配置。
在Pinout視圖下,通過搜索欄,可以在快速在芯片封裝圖上找到要配置的引腳。
選擇該引腳,點擊右鍵,選擇GPIO_Output功能。
然后轉到System視圖,點擊GPIO模塊,然后就可以看到剛剛配置的PB0引腳。這個窗口中,還可以繼續調整PB0的其他參數,比如上/下拉,速度等。還可以為其定義一個用戶標簽LDE1,方便在代碼中進行引用。
所有的配置結束后,選擇Project-->Generate Code重新生成代碼。這時STM32Cube會切換到C/C++透視圖,然后可以添加用戶的文件或對某個C文件進行修改。
在這里,我們添加了一段翻轉PB0的代碼。這里要注意,所有用戶添加的代碼必須放在“USER CODE BEGIN xxx”和“USER CODE END xxx”這一對聲明之間。這樣當再次重新生成代碼的時候,才不會丟失這部分代碼。
代碼添加完成后,點擊“Build”開始編譯。
如果編譯結束并且沒有任何報錯。就可以點擊Debug,啟動調試。
第一次啟動調試,會先彈出調試參數配置窗口,確認好所有的參數無誤,點擊OK,STM32CubeIDE就會自動從編輯界面切換到調試界面了。如下圖所示。
在調試界面下,通過工具欄的操作按鈕,可以進行單步調試。
雙擊某一行代碼最左邊的標記欄處,就可以在這行代碼處添加斷點。
右側打開了多個調試窗口,包括:局部變量,斷點,全局變量和寄存器等等。這些窗口可以在Window-->Show View菜單中打開或者關閉。
相關資源
1 如何查看STM32CubeIDE文檔集
第一次打開STM32CubeIDE時,首先顯示的是“Information Center”頁面。這個頁面提供了創建工程的快速通道和使用STM32CubeIDE的文檔入口。用戶不需要在使用STM32CubeIDE之前閱讀所有這些文檔,但可以把這里作為一個入口,在需要的時候從這里進入去搜索相關文檔。
審核編輯:湯梓紅
-
微控制器
+關注
關注
48文章
7542瀏覽量
151316 -
嵌入式
+關注
關注
5082文章
19104瀏覽量
304809 -
STM32
+關注
關注
2270文章
10895瀏覽量
355734
原文標題:傻瓜式教程:如何使用“多合一”開發工具STM32CubeIDE
文章出處:【微信號:玩轉嵌入式,微信公眾號:玩轉嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論