STM32H743-ARM例程1-IDE環境搭建與調試下載

目錄

  • 實驗平臺
  • 環境搭建
    • 一、Keil MDK集成開發環境
      • 1.MDK簡介
      • 2.MDK5安裝
      • 3.程序下載與調試
    • 二、STM32CubeMX
      • 1.STM32CubeMX簡介
      • 2.JAVA JRE安裝
      • 3.STM32CubeMX安裝
      • 4.STM32CubeH7庫安裝

實驗平臺

硬件:銀杏科技GT7000雙核心開發板-ARM-STM32H743XIH6,銀杏科技iToolXE仿真器
軟件:最新版本STM32CubeH7固件庫,STM32CubeMX v6.10.0,開發板環境MDK v5.35

環境搭建

一、Keil MDK集成開發環境

??Keil MDK軟件為基于Cortex-M、Cortex-R4、ARM7、ARM9處理器設備提供了一個完整的開發環境。它專為微控制器應用而設計,不僅易學易用,而且功能強大,能夠滿足大多數苛刻的嵌入式應用。
??本實驗向大家介紹 Keil MDK 集成開發環境,利用 MDK5 軟件可以建立一個基于STM32H7xx 系列的 MDK5 工程,同時還將向大家介紹 MDK5 軟件的一些使用技巧,希望大家在本實驗之后,能夠對 MDK5 這個軟件有個比較全面的了解。

1.MDK簡介

??MDK 源自德國的 KEIL 公司,是 RealView MDK 的簡稱。在全球 MDK 被超過 10 萬的嵌入式開發工程師使用。目前最新版本為:MDK5.40,該版本使用 uVision5 IDE 集成開發環境,是目前針對 ARM 處理器,尤其是 Cortex M 內核處理器的最佳開發工具。
??MDK5 向后兼容 MDK4 和 MDK3 等,以前的項目同樣可以在 MDK5 上進行開發,MDK5同時加強了針對 Cortex-M 微控制器開發的支持,并且對傳統的開發模式和界面進行升級,MDK5 由兩個部分組成:MDK Core 和 Software Packs。其中, Software Packs 可以獨立于工具鏈進行新芯片支持和中間庫的升級。如下圖所示:
在這里插入圖片描述
??從上圖可以看出,MDKCore又分成四個部分:uVision IDE with Editor(編輯器),ARM C/C++ Compiler(編譯器),Pack Installer(包安裝器),uVision Debugger with Trace(調試跟蹤器)。uVision IDE從MDK4.7版本開始就加入了代碼提示功能和語法動態檢測等實用功能,相對于以往的IDE改進很大。
??Software Packs又分為:Device(芯片支持),CMSIS(ARM Cortex微控制器軟件接口標準)和Middleware(中間庫)三個小部分,通過包安裝器,我們可以安裝最新的組件,從而支持新的器件、新的設備驅動庫以及最新例程等,加速產品開發進度。MDK5安裝包可以在:https://www.keil.com/download/product/下載到。

2.MDK5安裝

(1) 雙擊從官網下載的安裝包MDK536.exe進行安裝:

在這里插入圖片描述
點擊Next,下一步:
在這里插入圖片描述
勾選I agree…,然后Next,選擇安裝路徑,這里安裝到D盤:
在這里插入圖片描述
填寫用戶信息,這里可以隨意填寫:
在這里插入圖片描述
點擊Next,進入安裝界面:
在這里插入圖片描述
點擊Finish,安裝完成:
在這里插入圖片描述
(2) 安裝完成之后,需要安裝適配STM32H743XIH6的Pack包,MDK會自動彈出Pack Installer界面,后面我們手動下載Pack包,這里我們點擊窗口關閉按鈕即可:

在這里插入圖片描述
點擊菜單欄File,然后點擊License Management選項:
在這里插入圖片描述
輸入產品的授權ID并添加許可完成激活(具體激活方法與注冊機下載請自行百度):
在這里插入圖片描述
(3) 要讓MDK5支持STM32H743的開發,還要安裝STM32H7的器件支持包:Keil.STM32H7xx_DFP2.8.0.pack和ARM CMSIS, 也可以到下面的網址去下載:http://www.keil.com/pack/
在這里插入圖片描述點擊打開Pack Installer:

在這里插入圖片描述
點擊菜單欄File,然后點擊Import選項:
在這里插入圖片描述
選中下載的文件,并點擊打開,耐心等待文件安裝:
在這里插入圖片描述

3.程序下載與調試

??STM32H7的代碼下載以及調試。這里的調試包括了軟件仿真和硬件調試(在線調試)。
??CMSIS-DAP、JLINK、ULINK、STLINK等工具不僅可以下載代碼還可以實時跟蹤程序,從而找到你程序中的bug,使開發事半功倍,這里我們以CMSIS-DAP為例,講解如何下載程序。
??CMSIS-DAP支持JTAG和SWD,同時STM32也支持JTAG和SWD。所以,我們有2種方式可以用來調試,JTAG調試的時候,占用的IO線比較多,而SW調試的時候占用的IO線很少,只需要兩根即可。這里我們采用SWD調試。
??首先,用CMSIS-DAP進行下載與調試,大家要在硬件上,把CMSIS-DAP用USB線連接到電腦USB和板子的SWD接口上。CMSIS-DAP的驅動安裝比較簡單,安裝驅動可以在網上直接下載。在安裝了CMSIS-DAP的驅動之后,我們接上CMSIS-DAP,并把SWD口插到STM32開發板上,打開工程,點擊打開Options for Target選項卡,在Debug欄選擇仿真工具為CMSIS-DAP Debugger,如下圖所示。

在這里插入圖片描述上圖中我們還勾選了Run to main(),該選項選中后,只要點擊仿真就會直接運行到main函數。
然后我們點擊Settings,設置CMSIS-DAP的一些參數,如下圖所示:

在這里插入圖片描述
我們使用CMSIS-DAP的SW模式調試,設置SWD的調試速度為10MHz或者5MHz,這里,如果你的USB數據線比較差,那么可能會出問題,此時,你可以通過降低這里的速率來試試。單擊確定,完成此部分設置,接下來我們還需要在Utilities選項卡里面設置下載時的目標編程器,如下圖所示:
在這里插入圖片描述

上圖中,我們直接勾選Use Debug Driver,即和調試一樣,選擇CMSIS-DAP來給目標器件的FLASH編程,然后點擊Settings,這里MDK5會根據我們新建工程時選擇的目標器件,自動設置flash算法。我們使用的是STM32F407IGTx,FLASH容量為1M字節,所以Programming Algorithm里面默認會有1M型號的STM32F4xx FLASH算法。特別提醒:這里的1M flash算法,不僅僅針對1M容量的STM32F4,對于小于1M FLASH的型號,也是采用這個flash算法的。最后,選中Reset and Run選項,以實現在編程后自動運行,其他默認設置即可。設置完成之后,如下圖所示。
在這里插入圖片描述
在設置完之后,點擊OK,然后再點擊OK,回到IDE界面,編譯一下工程。接下來我們就可以通過CMSIS-DAP下載代碼和調試代碼。配置好CMSIS-DAP之后,使用CMSIS-DAP下載代碼就非常簡單,只需要點擊LOAD按鈕就可以進行程序下載。下載完成之后程序就可以直接在開發板執行。如下圖所示。
在這里插入圖片描述
注:實驗中采用的仿真器是銀杏科技研發的iTool XE仿真器,程序下載時,在Keil MDK的Debug欄選擇仿真工具為CMSIS-DAP Debugger(如使用其他仿真器請自行更改),如下圖所示。
在這里插入圖片描述
在這里插入圖片描述

二、STM32CubeMX

??STM32CubeMX是一個圖形化的軟件配置工具,使用圖形向導可以生成STM32初始化代碼工程。STM32CubeMX這個工具是ST目前重點打造的工具,目的就是為了方便開發者,節約時間,提高開發效率。
??利用STM32CubeMX軟件可以建立一個基于STM32H7系列的工程,同時還介紹STM32CubeMX軟件的一些使用技巧,希望在本實驗之后,能夠對STM32CubeMX這個軟件有個比較全面的了解。

1.STM32CubeMX簡介

??STM32CubeMX是ST意法半導體的一個圖形化的工具,也是配置和初始化C代碼生成器(STM32 configuration and initialization C code generation),也就是自動生成開發初期關于芯片相關的一些初始化代碼。
??從下圖可以看得出,它包含了STM32所有系列的芯片,包含示例和樣本(Examples and demos)、中間組件(Middleware Components)、硬件抽象層(Hardwaree abstraction layer)。
在這里插入圖片描述
??TM32CubeMX的特性如下:1.直觀的選擇 STM32 微控制器。2.微控制器圖形化配置:自動處理引腳沖突,動態設置確定的時鐘樹,可以動態確定參數設置的外圍和中間件模式和初始化,功耗預測。3.C代碼工程生成器覆蓋了STM32 微控制器初始化編譯軟件,如IAR、KEIL、GCC。4.可獨立使用或作為 Eclipse 插件使用。
??STM32CubeMX集成了一個全面的軟件平臺,支持STM32每一個系列的MCU開發。這個平臺包括 STM32Cube HAL(一個 STM32 的抽象層集成軟件,確保STM32 系列最大的移植性)。再加上兼容的一套中間件(RTOS、USB、TCP/IP 和圖形),所有內嵌軟件組件附帶了全套例程。
STM32CubeMX安裝包可以在:https://www.st.com.cn/content/st_com/zh/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html下載到。

2.JAVA JRE安裝

??由于STM32CubeMX軟件是基于JAVA環境運行的,所以需要安裝JRE才能使用。STM32CubeMX要求JRE最低版本是1.7.0_45,如果你電腦已安裝JRE版本大于1.7.0_45,則可以不用再下載安裝。JAVA JRE安裝包可以在:https://www.java.com/en/download/#xd_co_f=NmY4MDY2ZDAtZGI4Ni00ZWMyLTk1OTMtZTc3NDdlMmJiMTE2~下載到,如下圖所示。
在這里插入圖片描述
雙擊下載的JAVA JRE文件進行安裝,得到如下對話框,點擊安裝,如下圖示。
在這里插入圖片描述
進入安裝界面, 等待安裝完成,如下圖所示:
在這里插入圖片描述
安裝完成,點擊“關閉”,如下圖示:
在這里插入圖片描述

3.STM32CubeMX安裝

雙擊下載的STM32CubeMX文件進行安裝,點擊”Next”進入下一步,如下圖所示:
在這里插入圖片描述
選擇”I accept the terms of this license agreement.”,點擊”Next”,如圖下圖所示:
在這里插入圖片描述
選擇安裝路徑,點擊”Next”,如下圖所示。
在這里插入圖片描述
提示創建安裝目錄,點擊“確定”,如下圖所示。
在這里插入圖片描述
在這里插入圖片描述
等待安裝進度完成,點擊“Next”,如下圖所示。
在這里插入圖片描述
至此已經完成STM32CubeMX的安裝。

4.STM32CubeH7庫安裝

??STMCube?是意法半導體的獨創計劃,旨在通過減少開發工作量、時間和成本,讓開發人員的工作更輕松。STM32Cube是STMCube的實現,覆蓋了整個STM32產品組合。
??STM32CubeH7將開發STM32H7微控制器應用所需的所有通用嵌入式軟件組件聚集在一個軟件包中。根據STM32Cube計劃,這套組件具有高度可移植性,不僅適用于STM32H7系列包含的微控制器,還適用于其他STM32系列器件。
??STM32的相關庫文件可在https://www.st.com.cn/zh/embedded-software/stm32cubeh7.html下載到,如下圖所示。
在這里插入圖片描述
下載好需要安裝的離線包,點擊下圖按鈕(Help -> Manage embedded software packages)或按快捷鍵”Alt+U”進入庫文件管理界面,如下圖所示。
在這里插入圖片描述
在這里插入圖片描述
選擇下載的離線包文件,點擊“打開”,進入解壓安裝過程,直到安裝完成,如下圖所示。
在這里插入圖片描述
庫安裝完成,如下圖所示。
在這里插入圖片描述
注:截圖中的版本號可能不是最新版本,下載最新版本即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/97871.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/97871.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/97871.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FPGA學習篇——Verilog學習MUX的實現

PS:目前手上仍然沒有板子,按照野火視頻的講解,目前我們只能做到前面六步(其實第一步設計規劃也是需要看板子的硬件的,但是現在沒有板子就完全與野火傳授的板子一致來看) 首先我們以最簡單的2路選擇器MUX2_1…

OpenStack 學習筆記

OpenStack 1. 什么是 OpenStack 1.1 OpenStack 發展史 2006 年亞馬遜推出 AWS,正式開啟云計算的新紀元 2010 年 7 月美國國家航空航天局(NASA)與 Rackspace 合作,共同宣布 OpenStack 開放源碼計劃,由此開啟了屬于 Open…

mysql小數取整

1 向下取整 SELECT FLOOR(123.456); -- 結果: 1232 向上取整 SELECT CEIL(123.001); -- 結果: 1243 四舍五入 SELECT ROUND(123.456); -- 結果: 123 SELECT ROUND(123.556); -- 結果: 1244 截斷(不四舍五入,直接截斷小數位) SELECT …

Day43 PHP(mysql不同注入類型、mysql不同注入點、mysql傳輸不同數據類型 )

一、不同注入類型實際:我們未知sql是哪種類型,只能靠試/使用sql工具原理:閉合程序員寫的sql語句,并且執行我們所需要的sql語句,最后將閉合后多余的 用-- 或者#注釋掉。 總結一下就是先閉合,后注釋。共四種…

Linux應用開發(君正T23):三網智能切換及配網功能

前段時間接手了一個監控項目,其中甲方對于設備的要求有一條就是實現網口eth、WiFi、4G三種手段的聯網方式并且當某一個網絡不好的時候就去切換到下一個能用的網絡,讓監控設備持續不斷的有網絡,保證監控數據的上傳。這個部分的功能就交由我來實…

IvorySQL 4.6:DocumentDB+FerretDB 實現 MongoDB 兼容部署指南

背景 MongoDB 誕生之初,便以出色的易用性與詳盡的驅動程序文檔脫穎而出,堪稱對傳統關系型數據庫的一次重要革新,也正因如此,它迅速成為開發者社區的熱門之選。 然而,隨著其許可模式從開源轉向 SSPL 許可證&#xff0…

論文閱讀:arixv 2025 One Token to Fool LLM-as-a-Judge

總目錄 大模型相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 https://arxiv.org/pdf/2507.08794 https://www.doubao.com/chat/20698287584991234 速覽 這篇文檔主要講了一個關于“大語言模型當裁判”的重要發現——很多我們以為靠譜的AI裁…

webrtc弱網-AlrDetector類源碼分析與算法原理

AlrDetector(應用受限區域檢測器)是WebRTC中用于檢測發送端是否處于應用層限速狀態的核心組件。它通過維護一個基于時間間隔的預算系統,監控實際發送數據量與網絡容量之間的關系。當發送速率持續低于網絡容量的設定比例(如65%&…

ABP + Verify(快照) 驅動的 PDF/Excel 導出回歸

ABP + Verify(快照) 驅動的 PDF/Excel 導出回歸 ?? ?? 目錄 ABP + Verify(快照) 驅動的 PDF/Excel 導出回歸 ?? 0) TL;DR ? 1) 背景與目標 ?? 2) 架構與職責(解耦渲染器) ?? 3) “確定性”前置條件(去偽差異) ?? 4) PDF 回歸策略(以 QuestPDF 為例) ?? 4.…

SIFT特征匹配實戰:KNN算法實現指紋認證

這個利用了前面學到的SIFT特征檢測來實現的,然后這里主要就是引入了一個新的匹配器。這里匹配是用KNN算法進行匹配的。下面來看下細節。介紹函數由于要頻繁展示,所以這里定義了一個函數。def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)導入…

網絡安全滲透測試第一步信息收集

信息收集是滲透測試中最基礎且關鍵的一步,它直接影響后續漏洞發現和利用的成功率。本文將系統介紹信息收集的常用方法、工具和技巧,幫助你在實戰中高效定位目標弱點。 一、搜索引擎利用 1. Google Hacking 通過Google搜索語法快速定位敏感信息、后臺地…

C++——類和對象1

1.類的定義1.1 類定義格式class為定義類的關鍵字,Stack為類的名字,{ }中的內容是類的主題為了,注意類定義結束時后面的分號不能省略。類體中的內容稱為類的成員:類中的變量稱為類的屬性或成員變量;類中的函數稱為類的方…

動手學Agent:Agent設計模式——構建有效Agent的7種模型

Agent本身的定義也不是絕對的,從LLM到最高等級的Agent,中間是有大量灰度地帶的,在Anthropic看來,Agent可以以多種方式定義,有些人將完全自主系統定義為Agent,而另一些團隊則將預定義的工作流程定義為Agent。…

Windows 下 .venv 激活腳本深度定制:同時注入 PyTorch 調試日志與國內網絡加速通道——從“能跑”到“好調”的完整工程化方案

Windows 下 .venv 激活腳本深度定制:同時注入 PyTorch 調試日志與國內網絡加速通道 ——從“能跑”到“好調”的完整工程化方案 一、為什么非得改激活腳本? 重復勞動最耗時 每次打開終端都要敲四五行 set/export,人腦就是不可靠的剪貼板。 環…

[BX]和loop指令,debug和masm匯編編譯器對指令的不同處理,循環,大小寄存器的包含關系,操作數據長度與寄存器的關系,段前綴

[bx]是什么[bx]這個表達方式和[0]很像,他們倆的功能也很像。之前就提到了,[0]表示一個內存單元,他的偏移地址是0。從這邊我們可以引出內存單元的定義:要有內存單元的地址,要有內存單元的長度(類型&#xff…

域格YM310 X09移芯CAT1模組HTTPS連接服務器

HTTPS連接服務器 本文檔介紹了HTTPS連接服務器的大致流程&#xff0c;測試服務器為httpbin.org。 HTTPS連接服務器流程 創建證書文件 創建一個文件 ATFSCREATE<filename>參數&#xff1a;<filename> 文件名 寫入CA證書 ATFSWRITE<filename>,<mode&…

【ManiSkill】常見envs學習筆記

1. StackCube-v1 用于模擬機器人在桌面場景中將紅色立方體&#xff08;cubeA&#xff09;堆疊到綠色立方體&#xff08;cubeB&#xff09;上的操作。該任務強調精確抓取、放置和穩定性控制。成功條件包括紅色立方體穩定堆疊在綠色立方體上且不被機器人抓取。 參數 (Arguments…

Java 網絡編程全解析

前言&#xff1a;網絡編程的意義與價值 前言&#xff1a;網絡編程的意義與價值 在當今互聯網時代&#xff0c;網絡編程是軟件開發的核心技能之一。無論是桌面應用、移動應用還是企業級系統&#xff0c;幾乎都需要與網絡交互。Java 作為一門跨平臺的編程語言&#xff0c;提供了完…

HarmonyOS應用拉起系列(三):如何直接拉起騰訊/百度/高德地圖進行導航

在鴻蒙應用開發中&#xff0c;經常需要跳轉第三方地圖應用&#xff08;如 騰訊地圖、百度地圖、高德地圖&#xff09;進行導航。無論是出行類 App、物流類 App&#xff0c;還是線下活動類應用&#xff0c;都存在“跳轉地圖導航”的實際需求。寫完HarmonyOS應用拉起系列一和二后…

PCGrad解決多任務沖突

論文解讀&#xff1a;"Gradient Surgery for Multi-Task Learning" 1. 論文標題直譯 Gradient Surgery: 梯度手術for Multi-Task Learning: 應用于多任務學習 合在一起就是&#xff1a;為多任務學習量身定制的梯度手術。這個名字非常形象地概括了它的核心思想。 …