日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【STM32H7教程】第4章 STM32H7工程模板建立(MDK5) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

本章教程為大家介紹如何創(chuàng)建MDK5工程,配置方法以及經(jīng)常用到的一些配置項(xiàng)。

4.1 初學(xué)者重要提示

4.2 第1步,創(chuàng)建工程文件夾

4.3 第2步,創(chuàng)建新工程

4.4 第3步,設(shè)置工程名和工程分組名

4.5 第4步,添加工程文件

4.6 第5步,Target Options配置

4.7 第6步,最后一步驗(yàn)證是否創(chuàng)建成功

4.8 MDK的字體,多核并行編譯,語(yǔ)法提示等設(shè)置

4.9 總結(jié)

?

?

4.1?? 初學(xué)者重要提示

  • ?KEIL官方有一個(gè)專門的MDK上手文檔mdk5-getting-started,在MDK的安裝目錄里面,壇友翻譯了整個(gè)文檔:http://forum.armfly.com/forum.php?mod=viewthread&tid=31288 。
  • ?MDK5的工程創(chuàng)建過(guò)程還是比較重要的,務(wù)必實(shí)際上手操作一遍。
  • 4.2?? 第1步,創(chuàng)建工程文件夾

    創(chuàng)建一個(gè)文件夾,里面包含如下文件(直接將跑馬燈例子的Project文件里面內(nèi)容全部刪除,然后整個(gè)工程復(fù)制進(jìn)來(lái)即可)。

    ?

    • Doc文件夾

    用于記錄例程的修改記錄和例子簡(jiǎn)介。

    • Libraries文件夾

    在第一章詳細(xì)介紹從官網(wǎng)的下載方法。

    • ?Project文件夾

    這個(gè)是本章的重點(diǎn),在這個(gè)文件夾里面再建立兩個(gè)文件夾,MDK-ARM(uV5)文件夾里面用于存放MDK工程,EWARMv8文件夾用于存放IAR工程,方便以后創(chuàng)建IAR的工程。

    • User文件夾

    這個(gè)是要用戶提供的,開發(fā)板已經(jīng)都提供好,bsp文件夾里面是開發(fā)板各個(gè)外設(shè)的驅(qū)動(dòng),segger文件夾是硬件異常分析代碼。

    • ?刪除目標(biāo)文件.bat

    這個(gè)是批處理文件,用于刪除MDK和IAR工程編譯后生成的obj和list臨時(shí)文件。

    4.3?? 第2步,創(chuàng)建新工程

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

    ?

    工程名設(shè)置為project:

    ?

    選擇器件:STM32H743XIHx

    ?

    點(diǎn)擊OK后彈出如下界面,點(diǎn)擊Cancel取消,當(dāng)前我們還不使用RTE環(huán)境創(chuàng)建,

    ?

    4.4?? 第3步,設(shè)置工程名和工程分組名

    默認(rèn)新建的工程是下面這樣的:

    ?

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

    ?

    可以看到已經(jīng)修改為Flash:

    ?

    再次打開Manage Project Items,添加如下分組內(nèi)容:

    ?

    可以看到左側(cè)工程列表已經(jīng)更新:

    ?

    4.5?? 第4步,添加工程文件

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

    ?

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

    ?

    • ?添加User分組需要的文件

    ?

    main.c文件位于文件夾User,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的跑馬燈效果。

    • 添加BSP分組需要的內(nèi)容

    ?

    bsp.c 位于路徑\User\bsp,主要用于MPU、Cache、時(shí)鐘和外設(shè)初始化。

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

    bsp_led.c位于路徑\User\bsp\src,用于LED驅(qū)動(dòng)。

    bsp_key.c位于路徑\User\bsp\src,用于按鍵驅(qū)動(dòng)。

    bsp_timer.c位于路徑\User\bsp\src,用于軟件定時(shí)器組和微妙級(jí)單次延遲。

    bsp_fmc_io.c位于路徑\User\bsp\src,用于IO擴(kuò)展,這里L(fēng)ED要用到。

    bsp_uart_fifo.c位于路徑\User\bsp\src,用于8串口FIFO驅(qū)動(dòng)。

    stm32h7xx_it.c位于路徑User\bsp,用于部分系統(tǒng)中斷服務(wù)程序。

    • 添加MDK-ARM分組需要的內(nèi)容

    ?

    startup_stm32h743xx.s 位于路徑\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates\arm,主要用于堆和??臻g設(shè)置,中斷向量表也在這個(gè)文件。

    • 添加HAL_Driver分組需要的內(nèi)容

    ?

    stm32h7xx_hal_conf.h位于路徑\User\bsp,主要用于HAL庫(kù)的配置。

    ?????? 其它文件路徑:\Libraries\STM32H7xx_HAL_Driver\Src,用到什么外設(shè)添加什么驅(qū)動(dòng)文件即可,有些外設(shè)驅(qū)動(dòng)跟DMA也有關(guān)聯(lián),直接添加進(jìn)來(lái)即可。

    • 添加CMSIS分組需要的內(nèi)容

    ?

    system_stm32h7xx.c位于路徑\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates,主要用于復(fù)位RCC相關(guān)寄存器和中斷向量表位置設(shè)置。

    • 添加SEGGER/HardFault分組需要的內(nèi)容

    ?

    這兩個(gè)文件位于路徑:\User\segger\HardFaultHandlerMDK,主要用于硬件異常分析。

    • 添加Doc分組需要的內(nèi)容

    ?

    這兩個(gè)文件位于Doc文件夾,主要用于說(shuō)明例程的功能和更新記錄。

    4.6?? 第5步,Target Options配置

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

    ??

    4.6.1????? Device選項(xiàng)

    這個(gè)選項(xiàng)不用管,因?yàn)槲覀冊(cè)趧?chuàng)建的時(shí)候已經(jīng)選擇了STM32H743XIHx

    ?

    4.6.2????? Target選項(xiàng)

    ?

  • 因?yàn)槲覀円话悴挥密浖抡?#xff0c;這個(gè)選項(xiàng)不用管,也不推薦大家用MDK提供的軟件仿真,問(wèn)題比較多。
  • 選擇編譯器,使用默認(rèn)的AC5即可。當(dāng)前AC6支持的還不夠好,僅MDK自家的軟件都支持了,第三方的問(wèn)題稍多。
  • 我們這里使用微庫(kù)MicroLib,這個(gè)庫(kù)針對(duì)嵌入式應(yīng)用,MicroLIB做了深度優(yōu)化,比使用C標(biāo)準(zhǔn)庫(kù)所需的RAM和FLASH空間都大大減小。比如調(diào)用:<math.h>,<stdlib.h>,<stdio.h>,<string.h>。
  • ?

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

  • STM32H7支持雙精度浮點(diǎn),所以這里選擇Double Precision雙精度浮點(diǎn)。
  • STM32H743XIH的Flash首地址是0x0800 0000,大小0x200000,即2MB。
  • 默認(rèn)的RAM空間選擇DTCM,首地址0x2000 0000,大小0x20000,即128KB。
  • 地址0x2400 0000,大小0x80000,即512KB是AXI SRAM的空間。

    4.6.3????? Output選項(xiàng)

    ?

  • 用于存放MDK編譯過(guò)程中生成的obj臨時(shí)文件路徑,MDK在創(chuàng)建的時(shí)候已經(jīng)幫我們創(chuàng)建好文件夾Objects,這里無(wú)需修改,使用默認(rèn)即可。
  • Debug Information表示調(diào)試信息,選上。
  • Create HEX File表示是否生成hex文件,選上。
  • Browse Information表示是需要go to def的支持,使用HAL庫(kù)話,推薦先不要選上,因?yàn)镸DK5使用AC5編譯HAL庫(kù)時(shí)間比較長(zhǎng).
  • ?

    4.6.4????? Listing選項(xiàng)

    ?

  • 用于存放MDK編譯過(guò)程中生成的list臨時(shí)文件路徑,MDK在創(chuàng)建的時(shí)候已經(jīng)幫我們創(chuàng)建好文件夾Listings,這里無(wú)需修改,使用默認(rèn)即可。
  • 是否生成*.lst文件,選上。
  • 查看MAP文件要用上,全部選上。
  • 4.6.5????? User選項(xiàng)

    ?

    這個(gè)選項(xiàng)基本用不上,可以不用管,主要是用來(lái)指定編譯之前和編譯之后執(zhí)行的用戶程序。對(duì)于本教程配套的例子來(lái)說(shuō)在這里添加了一個(gè)批處理功能,用來(lái)實(shí)現(xiàn)Objects文件夾里面的hex文件復(fù)制到路徑Project\MDK-ARM(uV5)里面,方便查找。

    ?

    4.6.6????? C/C++選項(xiàng)

    ?

  • 預(yù)定義宏

    USE_HAL_DRIVER 表示使用HAL庫(kù)。

    STM32H743xx 表示使用H743系列。

  • 選擇0級(jí)優(yōu)化,優(yōu)化等級(jí)低,方便調(diào)試。
    • 如何做MDK編譯器的代碼最小優(yōu)化和性能最佳優(yōu)化

    MDK之前做的應(yīng)用筆記:http://forum.armfly.com/forum.php?mod=viewthread&tid=1794?。

    選項(xiàng)One ELF Section per Function用于刪除工程中沒有用到的冗余函數(shù)。

  • 使用C99規(guī)范,在第9章有介紹。
  • 添加路徑,把用到的頭文件路徑包含進(jìn)來(lái),點(diǎn)擊最右側(cè)的小按鈕,彈出如下界面進(jìn)行添加即可:
  • ?

    4.6.7????? Asm選項(xiàng)

    ?

    這個(gè)選項(xiàng)用不到,不用管。

    4.6.8????? Linker選項(xiàng)

    ?

    這個(gè)選項(xiàng)用不到,不用管。

    4.6.9????? Debug選項(xiàng)

    ?

  • 軟件仿真不推薦大家用,問(wèn)題比較多。
  • 硬件仿真,這里選擇的STLINK,大家根據(jù)自己用的那種調(diào)試器選擇相應(yīng)型號(hào)即可。
  • 具體的調(diào)試設(shè)置在下一章有詳細(xì)說(shuō)明,本章主要是保證創(chuàng)建的工程能夠正常編譯。

    4.6.10 Utilities選項(xiàng)

    ?

    這個(gè)選項(xiàng)主要用于編程工具選擇,大家根據(jù)自己用的那種下載器選擇相應(yīng)型號(hào)即可。

    Update Target before Debugging表示調(diào)試前更新芯片的程序。

    4.7?? 第6步,最后一步驗(yàn)證是否創(chuàng)建成功

    點(diǎn)擊全編譯:

    ?

    編譯結(jié)果:0錯(cuò)誤,0警告,編譯成功。

    ?

    4.8?? MDK的字體,多核并行編譯,語(yǔ)法提示等設(shè)置

    這里將MDK經(jīng)常用到的設(shè)置做個(gè)說(shuō)明。

    4.8.1????? Tab Size設(shè)置

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

    選擇此圖標(biāo):

    ?

    彈出的窗口里面設(shè)置Tab size為4:

    ?

    4.8.2????? 使能多核并行編譯

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

    選擇此圖標(biāo):

    ?

    我這里是四核:

    ?

    4.8.3????? 字體設(shè)置

    推薦大家用下微軟雅黑,而且可以防止復(fù)制粘貼的時(shí)候出現(xiàn)亂碼問(wèn)題,字體下載在此貼:http://forum.armfly.com/forum.php?mod=viewthread&tid=2293 。

    安裝微軟雅黑的時(shí)候要注意,電腦端默認(rèn)自帶了一個(gè)微軟雅黑,安裝的時(shí)候會(huì)出現(xiàn)字體是躺著的。

    ?

    選擇此圖標(biāo):

    ?

    選擇中文簡(jiǎn)體:

    ?

    選擇安裝微軟雅黑字體:

    ?

    效果如下:

    ?

    4.8.4????? 語(yǔ)法提示和語(yǔ)法檢測(cè)功能

    選擇此圖標(biāo):

    ?

    MDK的語(yǔ)法提示和語(yǔ)法檢測(cè)功能還行,大家可以根據(jù)需要開啟:

    ?

    4.9?? 總結(jié)

    對(duì)于初學(xué)者來(lái)說(shuō),務(wù)必要實(shí)際動(dòng)手操作一遍,以后移植其它程序代碼大有裨益。

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/armfly/p/10699004.html

    總結(jié)

    以上是生活随笔為你收集整理的【STM32H7教程】第4章 STM32H7工程模板建立(MDK5)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。