一 GD32 MCU 開發環境搭建

GD32 系列為通用型 MCU ,所以開發環境也可以使用通用型的 IDE ,目前使用較多的是 KEIL、 IAR
GCC Embedded Builder ,客戶可以根據個人喜好來選擇相應的開發環境。

目錄

1、使用 Keil 開發 GD32


目前市面通用的MDK for ARM版本有Keil 4Keil 5:使用Keil 4建議安裝4.74及以上;使用Keil 5建議安裝5.25以上版本(注意:GD32E23x系列和GD32W515x系列必須使用Keil5開發)。

1.1 在Keil4中添加GD32 MCU Device

1.1.1 從GD32官網下載相關系列插件。 下面以GD32F30x為例,在官網上下載MDK-ARM_AddOn_GD32F30x_V1.0.0.rar,如圖所示

1.1.2 雙擊解壓安裝至Keil 4的目錄,一般都會默認選擇,如若同時安裝了Keil 4和Keil 5才需要手動選擇。

1.1.3 安裝成功后,重新打開Keil 4,則可以在File->Device Database中出現Gigadevice的下拉選項,點擊可以查看到相應的型號。

1.1.4 為了后續debug工作的順利進行,建議檢查一下安裝路徑下是否有下載算法,可以通過如下方式查看:打開一個工程,將型號選為GD32F30x的型號,然后Options for Target -> Debug ->Settings -> Flash Download-> Add,如果下拉選項中有GD32F30x的下載算法則完全安裝成功。

1.2 在Keil 5中添加GD32 MCU Device

1.2.1 從GD32官網下載相關系列插件。 下面以GD32F30x為例,在官網上下載MDK-ARM_AddOn_GD32F30x_V1.0.0.rar。

1.2.2 解壓并安裝至Keil 5的目錄,一般都會默認選擇。

1.2.3 安裝完后重新打開keil5工程,即可在Device->Database中出現Gigadevice的型號。

1.2.4 在Options for Target -> Debug ->Settings ->Flash Download 中添加flash算法,會出現GD32F30X的算法,即說明安裝成功。根據相應的芯片選擇合適的算法,即可下載仿真。

1.2.5 用Keil 5打開Keil 4工程,如果報找不到器件信息等錯誤,將Keil 4的插件安裝在Keil 5的目錄下,具體操作方式參考Keil 4插件相關內容。

1.3 使用GD-Link開發GD32

GD32部分開發板自帶GD-link,可以用電路板上的GD-link調試仿真代碼,不帶的可外接GD-link模塊,具體操作方法如下。

1.3.1 第一次使用GD-link插入電腦后,會自動安裝驅動。 在Options for Target -> Debug 中選擇“CMSIS-DAP Debugger”,部分客戶反饋找不到這一驅動器選項,那是因為MDK版本過低,只有Keil4.74以上的版本和Keil5才支持CMSIS-DAP Debugger選項。

1.3.2 在Options for Target -> Utilities,也要選擇“CMSIS-DAP Debugger”。

1.3.3 在Options for Target -> Debug ->Settings勾選SWJ、Port選擇 SW。右框IDcode會出現”0xXBAXXXXX”。

1.3.4 在Options for Target -> Debug ->Settings -> Flash Download中添加GD32的flash算法。

1.3.5 單擊下圖的快捷方式“debug”,即可使用GD-Link進行仿真。

1.4 使用J-Link開發GD32

使用J-Link來debug GD MCU,具體配置如下:

1.4.1 在Options for Target -> Debug中選擇“J-LINK/J-Trace Cortex“

1.4.2 在Options for Target -> Debug ->Utilities,也要選擇“J-LINK/J-Trace Cortex”。

1.4.3 在Options for Target -> Debug ->Settings勾選SWJ,Port選擇 SW。右框IDcode會出現“0xXBAXXXXX”。?

1.4.4 在Options for Target -> Debug ->Settings -> Flash Download中添加GD32的flash算法。

1.4.5 單擊下圖的快捷方式“debug”,即可使用J-Link進行仿真。

1.5 使用ULink2開發GD32

使用ULink2來debug GD MCU,具體配置如下:

1.5.1 在Options for Target -> Debug中選擇“ULINK2/ME Cortex Debugger”

1.5.2 在Options for Target -> Debug ->Settings勾選SWJ,Port選擇 SW。右框IDcode會出現“0xXBAXXXXX”。

1.5.3 在Options for Target -> Debug ->Settings -> Flash Download中添加GD32的flash算法。

1.5.4 單擊下圖的快捷方式“debug”,即可使用ULink2進行仿真。

1.6 MDK使用常見問題解答

1.6.1 Keil4打開Keil5工程

如果沒有安裝Keil 5,也是能夠使用Keil 4來編譯Keil 5的工程,具體做法就是修改工程的后綴名,將Keil5工程的后綴名xxxx.uvprojx修改為xxxx.uvproj,即可使用Keil 4來查看編譯了。

1.6.2 Keil5打開Keil4工程

如果使用Keil 5打開Keil 4工程,打開時會遇到找不到MCU器件的情況,這種可以直接將Keil4工程的后綴名xxxx.uvproj修改為xxxx.uvprojx,即可正常使用Keil 5來查看編譯了。

1.6.3 Keil5打開Keil4工程,編譯報錯

錯誤原因是core_cmInstr.h文件的路徑在Keil5和Keil4中不同,可在Option for Target的C/C++中添加core_cmInstr.h的文件路徑,如圖文件路徑添加示意圖所示:

2. 使用 IAR 開發 GD32

IAR版本眾多,版本之間的兼容性并不好,如果初次使用建議安裝7.3以上的版本,安裝好IAR以后再根據該文檔來添加GD的器件型號,進行相關的debug工作。

2.1 在IAR中添加GD32 MCU Device

2.1.1 從官網上下載相應的GD32系列插件。

下面以GD32F30x系列為例,下載插件IAR_GD32F30x_ADDON.1.0.0.exe:

2.1.2 運行IAR_GD32F30x_ADDON.1.0.0.exe,單擊start開始安裝插件。

2.1.3 安裝成功后單擊Finish,結束插件安裝。

2.2 在IAR中編譯調試GD32

在上一小節中我們已經添加了GD32F30x系列的插件,這一小節我們介紹應如何使用它。 使用 IAR 編譯 GD 的型號,有兩個辦法,一種是使用現有的工程進行修改,還有就是重新建立工程,這里就不細說具體工程應該如何建立,GD 的工程建立和別的平臺都一致,建立工程時選擇GD的相應型號。

6.1以后的IAR不需要添加CMSIS文件(core_cm4.c和core_cm4.h),但是需要勾選General Options->Library Configuration的Use CMSIS,如果軟件代碼有使用到printf函數,還需要修改Library為FULL。

芯片的Link文件建立工程時會默認根據型號選定,但是編譯前還是要有檢查的習慣,檢查一下ICF文件是否有配置,是否正確。

配置Debugger->Setup選項,新建立的工程默認是Simulator模擬,如果需要調試那么需要根據實際情況來選擇:

1.使用GD-Link選擇CMSIS DAP(兼容性不好,不建議在IAR下使用);

2.使用J-Link選擇J-Link/J-Trace;

3.使用ULink2選擇CMSIS DAP。

配置Debugger->Download選項,新建的工程有可能沒有配置download選項,如果我們需要調試代碼那么務必要勾選User flash loader選項,且保證board file準確,否則程序無法正常下載至芯片內部。

如果選擇了Debugger選項,那么還需要根據Debugger選項設定對應的調試選項;如果選擇的是GD的型號,在IAR下面已經固定將所有的調試接口都配置為SWD接口,可以忽略該選項配置,直接進行相關的代碼debug工作。

3. 使用 Embedded Builder 開發 GD32

3.1 安裝 JAVA 環境

Embedded Builder 是一款基于 Eclipse 和 Java 平臺的軟件,需要安裝 java 環境,在 Oracle 官 網下載?Java Downloads | Oracle, 以 jdk-8u152-windows-x64.exe 為例,下載后管理員身份打開并安裝,記住安裝路徑,如“D:\Program Files\Java\jdk1.8.0_351”。

編輯系統變量,將 Java 環境添加到系統環境中。首先在系統變量中添加JAVA_HOME 這個變量。

編輯系統變量中的 Path 變量,單擊新建,添加如下兩個變量。

在系統變量中新建 CLASSPATH 變量

至此,Java環境便配置完了。Windows+R 鍵,輸入cmd并點擊確認,打開 dos 窗口。分別輸入java和javac,如果能正常輸出java提示信息則說明配置成功。

3.2 創建一個新的工程

雙擊壓縮包下面的 Embedded Builder.exe 打開 IDE,選擇一個路徑作為 workspace 的存放位置,確認之后即可進入 IDE 頁面。在導航欄依次單擊“File->New->Project…”開始新建項目。在 New Project 頁面 C/C++ 選項卡下選擇 C Project,并單擊 Next >。

C 工程選項頁面中,在可執行文件“Executable”選項卡下選擇“GigaDevice ARM C Project”,填好項目名字之后選擇下一步,在下一步中選擇對應的芯片,剩余的配置模塊即可。

3.3 導入工程

在導航欄處依次選擇“File->Import”,開始導入工程。在導入頁面的 General 選項卡下選擇Existing Projects into Workspace,開始導入現有工程。

在彈出的頁面中選擇原有工程的路徑,IDE 會自動檢索該路徑下的工程配置文件并列出存在的 Embedded Builder 項目。勾選需要導入的項目后單擊 Finish 即可完成工程的導入。

3.4 在 Embedded Builder IDE 中編譯調試 GD32

右鍵工程打開工程選項,選擇“Build Project”開始編譯工程,編譯的 Log 信息會在下方的 console窗口打印,編譯效果如下圖所示。

單擊導航欄上的 debug configuration,可以進入 Debug 配置頁面。

單擊 Debugger 選項卡,可以選擇需要的調試器,默認為 GD-Link,這里切換為 J-Link。單擊Debug 按鈕進入 Debug 頁面。

Debug頁面如下,左側為文件導航欄,中間為文件編輯器,右側包含寄存器、內存、斷點及其他調試信息,下方是終端提示信息,Debug信息及其他提示信息。

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

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

相關文章

華為OD機試真題2024版-路口最短時間問題

題目描述 假定街道是棋盤型的,每格距離相等,車輛通過每格街道需要時間均為 timePerRoad; 街道的街口(交叉點)有交通燈,燈的周期 T(lights[row][col]) 各不相同; 車輛可直行、左轉和右轉&…

企業網三層架構

企業網三層架構:是一種層次化模型設計,旨在將復雜的網絡設計分成三個層次,每個層次都著重于某些特定的功能,以提高效率和穩定性。 企業網三層架構層次: 接入層:使終端設備接入到網絡中來,提供…

Python爬蟲教程第二篇:進階技巧與實戰案例

Python爬蟲教程第二篇:進階技巧與實戰案例 在上一篇教程中,我們學習了Python爬蟲的基礎概念、基本流程以及一個簡單的入門實踐案例。本篇教程將帶領大家進一步探索Python爬蟲的進階技巧,并提供一個實戰案例,幫助大家提升爬蟲技能…

Android12 MultiMedia框架之GenericSource extractor

前面兩節學習到了各種Source的創建和extractor service的啟動,本節將以本地播放為例記錄下GenericSource是如何創建一個extractor的。extractor是在PrepareAsync()方法中被創建出來的,為了不過多贅述,我們直接從GenericSource的onPrepareAsyn…

Mojolicious命令行工具:自動化Web開發的瑞士軍刀

Mojolicious是一個高性能的、基于Perl的Web開發框架,它提供了一整套工具來簡化Web開發流程。其中,Mojolicious的命令行工具集是其強大功能的一部分,允許開發者快速生成項目模板、運行開發服務器、執行各種開發任務等。本文將詳細介紹Mojolici…

qt 自定義信號號槽 簡單舉例

在Qt中,自定義信號和槽是一種非常靈活的方式來處理對象之間的通信。以下是一個簡單的例子,展示了如何定義和使用自定義的信號和槽。 首先,我們定義一個名為MyClass的類,該類繼承自QObject,并聲明一個自定義信號和一個…

13_Shell系統函數

13_Shell系統函數和自定義函數 一、系統函數 basename 獲取文件名 #!/bin/bash#basename 相對路徑文件名 basename ./1.sh#basename 絕對路徑文件名 basename /tmp/1.sh#basename 去除文件后綴名 basename /tmp/1.sh .shdirname 獲取文件所在目錄名 #!/bin/bash#dirname 相對路…

Redis持久化RDB,AOF

目 錄 CONFIG動態修改配置 慢查詢 持久化 在上一篇主要對redis的了解入門,安裝,以及基礎配置,多實例的實現:redis的安裝看我上一篇: Redis安裝部署與使用,多實例 redis是擋在MySQL前面的,運行在內存…

Week 6-楊帆-學習總結

- 46 語義分割和數據集 語義分割概念 語義分割是一種計算機視覺任務,其目標是將圖像分割成屬于不同語義類別的區域。與目標檢測不同,語義分割關注的是像素級別的標注和預測,能夠識別并理解圖像中每一個像素的內容。這使得語義分割在理解圖像…

產品經理-研發流程-敏捷開發-迭代-需求評審及產品規劃(15)

敏捷開發是以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發。 通俗來說,敏捷開發是一個軟件開發流程,是一個采用了迭代方法的開發流程 簡單來說,迭代就是把一個大產品拆分出一些最小的實現單位。完成不同的迭代就最…

機器學習筑基篇,Jupyter Notebook 精簡指南

[ 知識是人生的燈塔,只有不斷學習,才能照亮前行的道路 ] 0x00 Jupyter Notebook 簡明指南 描述:前面我們已經在機器學習工作站(Ubuntu 24.04 Desktop Geforce RTX 4070Ti SUPER)中安裝 Anaconda 工具包,其…

老物件線上3D回憶展拓寬了藝術作品的展示空間和時間-深圳華銳視點

在數字技術的浪潮下,3D線上畫展為藝術家們開啟了一個全新的展示與銷售平臺。這一創新形式不僅拓寬了藝術作品的展示空間,還為廣大觀眾帶來了前所未有的觀賞體驗。 3D線上畫展制作以其獨特的互動性,讓藝術不再是單一的視覺享受。在這里&#x…

數據處理-Matplotlib 繪圖展示

文章目錄 1. Matplotlib 簡介2. 安裝3. Matplotlib Pyplot4. 繪制圖表1. 折線圖2. 散點圖3. 柱狀圖4. 餅圖5. 直方圖 5. 中文顯示 1. Matplotlib 簡介 Matplotlib 是 Python 的繪圖庫,它能讓使用者很輕松地將數據圖形化,并且提供多樣化的輸出格式。 Ma…

如何定義版本號--語義化版本

前言 版本號(version number)是版本的標識號。每一個操作系統(或廣義的講,每一個軟件)都有一個版本號。版本號能使用戶了解所使用的操作系統是否為最新的版本以及它所提供的功能與設施。 例如在Python項目依賴中會看到 requires-python &q…

zdppy+onlyoffice實現重命名文件的功能

參考文檔:https://api.onlyoffice.com/zh/editors/rename 步驟圖: 實現步驟: 用戶在 文檔編輯器中為文檔指定一個新名稱。 文檔編輯器 將文檔的新名稱通知給 文檔管理器。 文檔管理器 將文檔的新名稱發送到 文檔存儲服務,在這里…

使用jsencrypt在web前端對字符串進行Ras加密

話不多說&#xff0c;上代碼 實例代碼 下面方法&#xff0c;在網頁中先引入jsencrypt.min.js。然后調用ToEncrypt方法示例輸出加密&#xff0c;解密后的結果。 <script src"/js/jsencrypt.min.js"></script> //加密測試function ToEncrypt(){// 假設…

synchronized關鍵字詳解

文章目錄 synchronized使用示例實現原理鎖的升級synchronized與可見性synchronized與原子性synchronized與有序性 synchronized synchronized是Java提供的關鍵字譯為同步&#xff0c;是Java中用于實現線程同步的一種機制。它可以確保在同一時間只有一個線程能夠執行某段代碼&a…

【Python系列】數字的bool值

&#x1f49d;&#x1f49d;&#x1f49d;歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

泌尿系統疾病病人的護理

一、泌尿系統疾病病人的一般護理要點 對于泌尿系統疾病的病人&#xff0c;護理是至關重要的。首先&#xff0c;要密切觀察病人的生命體征&#xff0c;包括體溫、脈搏、呼吸和血壓。 飲食方面&#xff0c;應根據病人的具體病情進行調整。例如&#xff0c;對于有水腫的病人&#…

js登陸驗證

當開始制作網頁時&#xff0c;就需要做一個判斷&#xff0c;不管在第幾頁進入&#xff0c;都要加一個登陸驗證&#xff0c;只有用戶有賬號&#xff0c;才能進入網頁&#xff0c;瀏覽網頁信息。下面就來看一下&#xff0c;使用JavaScript幾行代碼實現登陸驗證。 首先 登錄頁是i…