【STM32H7教程】第4章 STM32H7工程模板建立(MDK5)


完整教程下載地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

第4章   STM32H7工程模板建立(MDK5)

本章教程為大家介紹如何創建MDK5工程,配置方法以及經常用到的一些配置項。

4.1 初學者重要提示

4.2 第1步,創建工程文件夾

4.3 第2步,創建新工程

4.4 第3步,設置工程名和工程分組名

4.5 第4步,添加工程文件

4.6 第5步,Target Options配置

4.7 第6步,最后一步驗證是否創建成功

4.8 MDK的字體,多核並行編譯,語法提示等設置

4.9 總結

 

 

4.1   初學者重要提示

  1.  KEIL官方有一個專門的MDK上手文檔mdk5-getting-started,在MDK的安裝目錄里面,壇友翻譯了整個文檔:http://www.armbbs.cn/forum.php?mod=viewthread&tid=31288
  2.  MDK5的工程創建過程還是比較重要的,務必實際上手操作一遍。

4.2   第1步,創建工程文件夾

創建一個文件夾,里面包含如下文件(直接將跑馬燈例子的Project文件里面內容全部刪除,然后整個工程復制進來即可)。

 

  • Doc文件夾

用於記錄例程的修改記錄和例子簡介。

  • Libraries文件夾

在第一章詳細介紹從官網的下載方法。

  •  Project文件夾

這個是本章的重點,在這個文件夾里面再建立兩個文件夾,MDK-ARM(uV5)文件夾里面用於存放MDK工程,EWARMv8文件夾用於存放IAR工程,方便以后創建IAR的工程。

  • User文件夾

這個是要用戶提供的,開發板已經都提供好,bsp文件夾里面是開發板各個外設的驅動,segger文件夾是硬件異常分析代碼。

  •  刪除目標文件.bat

這個是批處理文件,用於刪除MDK和IAR工程編譯后生成的obj和list臨時文件。

4.3   第2步,創建新工程

打開MDK,選擇Project ->New uVision Project:

 

工程名設置為project:

 

選擇器件:STM32H743XIHx

 

點擊OK后彈出如下界面,點擊Cancel取消,當前我們還不使用RTE環境創建,

 

4.4   第3步,設置工程名和工程分組名

默認新建的工程是下面這樣的:

 

打開Manage Project Items,雙擊Targer1修改名字為Flash,或者任何其它方便自己管理的名稱,設置完畢后點擊OK。

 

可以看到已經修改為Flash:

 

再次打開Manage Project Items,添加如下分組內容:

 

可以看到左側工程列表已經更新:

 

4.5   第4步,添加工程文件

添加方法跟第2步,第3步一樣,可以通過Manage Project Items添加:

 

也可以直接雙擊工程列表里面的分組添加(注意文件類型里面推薦設置為ALL files所有文件):

 

  •  添加User分組需要的文件

 

main.c文件位於文件夾User,實現了一個簡單的跑馬燈效果。

  • 添加BSP分組需要的內容

 

bsp.c 位於路徑\User\bsp,主要用於MPU、Cache、時鍾和外設初始化。

bsp.h位於路徑\User\bsp,此文件是各種頭文件的集中匯總貼,方便管理。

bsp_led.c位於路徑\User\bsp\src,用於LED驅動。

bsp_key.c位於路徑\User\bsp\src,用於按鍵驅動。

bsp_timer.c位於路徑\User\bsp\src,用於軟件定時器組和微妙級單次延遲。

bsp_fmc_io.c位於路徑\User\bsp\src,用於IO擴展,這里LED要用到。

bsp_uart_fifo.c位於路徑\User\bsp\src,用於8串口FIFO驅動。

stm32h7xx_it.c位於路徑User\bsp,用於部分系統中斷服務程序。

  • 添加MDK-ARM分組需要的內容

 

startup_stm32h743xx.s 位於路徑\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates\arm,主要用於堆和棧空間設置,中斷向量表也在這個文件。

  • 添加HAL_Driver分組需要的內容

 

stm32h7xx_hal_conf.h位於路徑\User\bsp,主要用於HAL庫的配置。

       其它文件路徑:\Libraries\STM32H7xx_HAL_Driver\Src,用到什么外設添加什么驅動文件即可,有些外設驅動跟DMA也有關聯,直接添加進來即可。

  • 添加CMSIS分組需要的內容

 

system_stm32h7xx.c位於路徑\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates,主要用於復位RCC相關寄存器和中斷向量表位置設置。

  • 添加SEGGER/HardFault分組需要的內容

 

這兩個文件位於路徑:\User\segger\HardFaultHandlerMDK,主要用於硬件異常分析。

  • 添加Doc分組需要的內容

 

這兩個文件位於Doc文件夾,主要用於說明例程的功能和更新記錄。

4.6   第5步,Target Options配置

MDK的配置基本都集中在Target Options對話框里面:

  

4.6.1      Device選項

這個選項不用管,因為我們在創建的時候已經選擇了STM32H743XIHx

 

4.6.2      Target選項

 

  1. 因為我們一般不用軟件仿真,這個選項不用管,也不推薦大家用MDK提供的軟件仿真,問題比較多。
  2. 選擇編譯器,使用默認的AC5即可。當前AC6支持的還不夠好,僅MDK自家的軟件都支持了,第三方的問題稍多。
  3. 我們這里使用微庫MicroLib,這個庫針對嵌入式應用,MicroLIB做了深度優化,比使用C標准庫所需的RAM和FLASH空間都大大減小。比如調用:<math.h>,<stdlib.h>,<stdio.h>,<string.h>。

 

更多這方面的信息可以看KEIL官網:http://www.keil.com/arm/microlib.asp

  1. STM32H7支持雙精度浮點,所以這里選擇Double Precision雙精度浮點。
  2. STM32H743XIH的Flash首地址是0x0800 0000,大小0x200000,即2MB。
  3. 默認的RAM空間選擇DTCM,首地址0x2000 0000,大小0x20000,即128KB。

地址0x2400 0000,大小0x80000,即512KB是AXI SRAM的空間。

4.6.3      Output選項

 

  1. 用於存放MDK編譯過程中生成的obj臨時文件路徑,MDK在創建的時候已經幫我們創建好文件夾Objects,這里無需修改,使用默認即可。
  2. Debug Information表示調試信息,選上。
  3. Create HEX File表示是否生成hex文件,選上。
  4. Browse Information表示是需要go to def的支持,使用HAL庫話,推薦先不要選上,因為MDK5使用AC5編譯HAL庫時間比較長.

 

4.6.4      Listing選項

 

  1. 用於存放MDK編譯過程中生成的list臨時文件路徑,MDK在創建的時候已經幫我們創建好文件夾Listings,這里無需修改,使用默認即可。
  2. 是否生成*.lst文件,選上。
  3. 查看MAP文件要用上,全部選上。

4.6.5      User選項

 

這個選項基本用不上,可以不用管,主要是用來指定編譯之前和編譯之后執行的用戶程序。對於本教程配套的例子來說在這里添加了一個批處理功能,用來實現Objects文件夾里面的hex文件復制到路徑Project\MDK-ARM(uV5)里面,方便查找。

 

4.6.6      C/C++選項

 

  1. 預定義宏

    USE_HAL_DRIVER 表示使用HAL庫。

    STM32H743xx 表示使用H743系列。

  2. 選擇0級優化,優化等級低,方便調試。
    • 如何做MDK編譯器的代碼最小優化和性能最佳優化

    MDK之前做的應用筆記:http://www.armbbs.cn/forum.php?mod=viewthread&tid=1794

    選項One ELF Section per Function用於刪除工程中沒有用到的冗余函數。

  3. 使用C99規范,在第9章有介紹。
  4. 添加路徑,把用到的頭文件路徑包含進來,點擊最右側的小按鈕,彈出如下界面進行添加即可:

 

4.6.7      Asm選項

 

這個選項用不到,不用管。

4.6.8      Linker選項

 

這個選項用不到,不用管。

4.6.9      Debug選項

 

  1. 軟件仿真不推薦大家用,問題比較多。
  2. 硬件仿真,這里選擇的STLINK,大家根據自己用的那種調試器選擇相應型號即可。

具體的調試設置在下一章有詳細說明,本章主要是保證創建的工程能夠正常編譯。

4.6.10 Utilities選項

 

這個選項主要用於編程工具選擇,大家根據自己用的那種下載器選擇相應型號即可。

Update Target before Debugging表示調試前更新芯片的程序。

4.7   第6步,最后一步驗證是否創建成功

點擊全編譯:

 

編譯結果:0錯誤,0警告,編譯成功。

 

4.8   MDK的字體,多核並行編譯,語法提示等設置

這里將MDK經常用到的設置做個說明。

4.8.1      Tab Size設置

教程配套例子的Tab size要設置為4,否則代碼顯示不整齊:

選擇此圖標:

 

彈出的窗口里面設置Tab size為4:

 

4.8.2      使能多核並行編譯

電腦有幾個核,都選上,加快編譯速度。

選擇此圖標:

 

我這里是四核:

 

4.8.3      字體設置

推薦大家用下微軟雅黑,而且可以防止復制粘貼的時候出現亂碼問題,字體下載在此貼:http://www.armbbs.cn/forum.php?mod=viewthread&tid=2293

安裝微軟雅黑的時候要注意,電腦端默認自帶了一個微軟雅黑,安裝的時候會出現字體是躺着的。

 

選擇此圖標:

 

選擇中文簡體:

 

選擇安裝微軟雅黑字體:

 

效果如下:

 

4.8.4      語法提示和語法檢測功能

選擇此圖標:

 

MDK的語法提示和語法檢測功能還行,大家可以根據需要開啟:

 

4.9   總結

對於初學者來說,務必要實際動手操作一遍,以后移植其它程序代碼大有裨益。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM