娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503

發布者:SparklingStar22最新更新時間:2024-11-07 來源: elecfans關鍵字:GD32  MCU  移植  GD32F303 手機看文章 掃描二維碼
隨時隨地手機看文章

1. 前言

GD32E503 系列是 GD 推出的 Cortex_M33 系列產品,該系列資源上與 GD32F303 兼容度非常高,本應用筆記旨在幫助您快速將應用程序從 GD32F303 系列微控制器移植到 GD32E503 系列微控制器。


2. 引腳兼容性

GD32F303 與 GD32E503 在相同封裝下是 Pin To Pin 兼容的。但由于 GD32E503 較 GD32F303多了 SHRTIMER、SQPI 功能,所以兩者引腳定義有細微差別,如下表所示:

表 1 GD32F303 系列和 GD32E503 系列引腳區別

wKgZombScD-AVADbAAQItyqWchA567.png

3. 內部資源兼容性

下表給出了 GD32F303 與 GD32F503 的資源對比總覽(以 GD32F303xE 和 GD32F503xE 對比為例):

表 2 GD32F303 系列和 GD32E503 系列內部資源對比總覽

wKgZombScGGAO95rAACjxR1TvO4027.png

4. 程序移植

由上節可看出 GD32F303 和 GD32F503 的主頻(RCU 系統時鐘)及內核版本都是有差異的,下面將就 RCU 方面闡述程序移植過程。

4.1 GD32F30x_Firmware_Library_V2.0.2 移植步驟

1. 本文將使用 GD32F30x_Firmware_Library_V2.0.2 固件庫文件 Template 里的工程做示例,如下圖 4.1 所示

wKgZombScHyADeDIAABul9ETRUo116.png

2. 電腦安裝 keil5.26 及以上版本 MDK、GD32E50x 插件

wKgaombScJ-AGg13AAAJQdom5Io367.png

3. 原有工程項目可能是 keil4 建立的,直接在 keil4 工程后綴名添加 x,即變成 keil5 項目;

wKgaombScLGAazBDAACngVhEhdE730.png

4. 根據實際情況修改使用的芯片型號以及 C 語言語法改為 C99;

wKgaombScL6AFXzdAAB3qB29TfU800.png


wKgZombScL6AQsbPAABaC8xWYwE333.png


5. 拷貝 Cortex M33 內核支持文件及其他 keil5 所需的文件到:

x: GD32F30x_Firmware_Library_V2.0.2FirmwareCMSIS

wKgZombScOWAcyjcAAC2q2r5REU709.png


6. 修改“gd32f30x.h”頭文件內容:

wKgaombScPOAC_QCAAGbl_yr510645.png

7. 修改“gd32f30x_misc.c”文件內容:

wKgZombScQGAcoWtAADi_9FVUFw096.png

4.2 PMU 文件設置

GD32E503 的 PMU 與 GD32F303 寄存器并不兼容,因此需要把 GD32E503 的 PMU 配置文件及其文件加到 GD32F303 工程中。

1. 把“gd32e50x_pmu.h”復制到“x:GD32F30x_Firmware_Library_V2.0.2FirmwareGD32F30x_standard_peripheralInclude”中:

wKgaombScSGATDjgAAAbXaR9iiA649.png



2. 把“gd32e50x_pmu.c” 復制到“x:GD32F30x_Firmware_Library_V2.0.2FirmwareGD32F30x_standard_peripheralSource”中:

wKgaombScS6AXUQtAAAb2Xj3UeI696.png

3. 工程中的 Peripherals 中添加“gd32e50x_pmu.c”文件,并移去“gd32f30x_pmu.c”文件

wKgZombScTmAdGHcAAAjarDWDjQ996.png


4. 在“gd32f30x_libopt.h”文件中包含“gd32e50x_pmu.h”頭文件。

wKgZombScUaATw1TAAAv-_IKdOc158.png


5. 在“gd32e50x_pmu.h”文件中,把#include 'gd32e50x.h'修改成#include 'gd32f30x.h';

wKgZombScViASMyXAAAT9LYadMI603.png


4.3 RCU 系統時鐘配置

經過上訴的步驟后,我們的 GD32F303 已經完成了基本的 keil5 工程配置,下面將開始 RCU時鐘的配置,GD32F303 系列和 GD32E503 系列的時鐘配置過程基本相同,但是 GD32E503的 PMU 寄存器及 FMC 時鐘配置有差異,另外 GD32E503 支持更高的系統時鐘。用戶在配置的時候可以按以下步驟進行程序修改(以 GD32F303 移植到 GD32E503、使用外部 8MHz高速晶振 HXTAL 為例,其他對應型號、使用內部晶振的移植過程類似):

1. 在 system_gd32f30x.c 文件中增加宏定義:

#define __SYSTEM_CLOCK_180M_PLL_HXTAL (uint32_t)(180000000)

如圖 4.13 所示:

wKgaombScZ6AG8k-AAA018Ye9EA028.png

圖 4.13 在 system_gd32f30x.c 文件中增加宏定義

2. 在 system_gd32f30x.c 文件中增加使用 180MHz 頻率函數的聲明,如圖 4.14 所示:

wKgZombScb6Af5-iAACZZU_gqJU987.png

3. 在 system_gd32f30x.c 文件中增加使用 180MHz 頻率函數的定義:

wKgZombScdCAQcjdAAEOmn2KLa0298.png

4. 在 system_gd32f30x.c 文件中增加使用 180MHz 頻率函數的調用,如圖 4.15 所示:

wKgaombSceSAS80oAAA4pfM904o068.png


5. 外設差異性

GD32E503 與 GD32F303 在外設上都是兼容的,但 GD32E503 作為更高級的 MCU,較GD32F303 在很多外設上增加了部分功能,用戶可根據以下羅列出的外設差異性選擇是否使用這些功能。

5.1 電源管理單元(PMU)

GD32F303 的電源管理單元只提供了三種省電模式,而 GD32E503 的電源管理單元提供了五種省電模式,包括睡眠模式,深度睡眠模式,深度睡眠模式1,深度睡眠模式 2 和待機模式。下表為節電模式總結,具體功能以及寄存器設置,請用戶參考 GD32E50x 用戶手冊。

wKgaombScgeAeFMVAAFHXmcKHLg661.png

5.2 通用和備用輸入/輸出接口歐(GPIO 和 AFIO)

wKgZombSchaAWMfvAACVdfRXfoA109.png圖 5.1 GD32E503 GPIO 口


GD32E503 相對于 GD32F303,GPIO 口的功能更豐富了,除了重映射功能外,AFIO 功能也分為 Alternate1、Alternate2(如上截圖 5.1 所示),Alternate2 的功能使用方法與 GD32F303 一樣:配置 IO 口為復用模式,再使能相應外設即可,在使用 Alternate1 的復用功能的時候需要設置還需要多設置 AFIO 端口配置寄存器,以下以 I2C 的 IO 口設置為例。

wKgZombScjeAXCqJAAAzL-ApGP0659.png圖 5.2 GD32F303 GPIO 口設置為 I2C 功能設置


wKgZombScl2AcmQIAABIfR0_kdo602.png圖 5.3 GD32F503 GPIO 口設置為 I2C 功能設置

5.3 模數轉換器(ADC)

1. 供電范圍

GD32F303 的 VDDA 供電范圍為 2.6~3.6V。GD32E503 的 VDDA 供電范圍為 1.62~3.6V,GD32E503 的供電范圍更寬。

2. 時鐘頻率

GD32F303 的 ADC 最大時鐘頻率可達 40MHz。GD32E503 在不同的供電范圍內,ADC的最大可達的時鐘頻率是不一樣的:1.62V 到 2.4V,ADC 最大時鐘頻率可達 14MHz;2.4V到 3.6V,ADC 最大時鐘頻率可達 35MHz。

3. 框圖

GD32F303 ADC0、ADC1、ADC2 共用一個模塊框圖,而 GD32E503 ADC0、ADC1 共用一個模塊框圖,ADC2 則是一個模塊框圖。

4. 模擬看門狗

GD32F303 支持一個模擬看門狗功能,GD32E503 支持三個模擬看門狗 0/1/2。

5. 觸發源

GD32E503 的 ADC 外部觸發相對于 GD32F303 新增了超高精度 TIEMR 的觸發源。

6. 單端和差分輸入通道

GD32F303 只支持單端輸入模式。GD32E503 可通過配置 ADC_DIFCTL 寄存器中的DIFCTL[14:0]位域,可以配置 ADC 通道為單端輸入模式或差分輸入模式。只有在 ADC 禁能(ADCON = 0)的情況下才能進行該配置。

上訴幾點為 GD32F303 和 GD32E503 的 ADC 的差異,具體功能以及寄存器設置,請用戶參考 GD32E50x 用戶手冊。

5.4 數模轉換器(DAC)

GD32E503 較 GD32F303 的 DAC 觸發源增加了高精度定時器 SHRTIMER 提供的觸發源。GD32E503 在數據保持寄存器和輸出寄存器之間有一個 4 位深度的數據 FIFO,如果設置了相應的中斷使能位,則在發生過載或欠載時將產生中斷。具體功能以及寄存器設置,請用戶參考 GD32E50x 用戶手冊。

5.5 通用同步異步收發器(USART)

USARTx(0~4):

GD32E503 與 GD32F303 一樣,有 USART0~2,UART3~4,其中 GD32F303 僅支持 16 倍過采樣,最高速度可到 7.5MBits/s;GD32E503 支持 8 或 16 倍過采樣,最高速度可到22.5MBits/s。USART 中斷事件,GD32E503 較 GD32F303 多增加了 “檢測到沖突”事件。

GD32E503 所有的 USART 都支持 DMA 功能。GD32F303 的 UART4 不支持 DMA 功能。

USART5:

GD32E503 還增設了 USART5,對比 USART0~4 這幾個串口的功能,多加了半雙工單線通信,接收 FIFO 功能,雙時鐘域,可互換 TX/RX 引腳,可配置的數據極性,自動檢測波特率,支持 RS485 驅動使能,支持 ModBus 通信,從深度睡眠模式,深度睡眠模式 1 和深度睡眠模式 2 喚醒,奇偶校驗位控制,具體功能以及寄存器設置,請用戶參考 GD32E50x 用戶手冊。

5.6 內部集成電路總線接口(I2C)

I2C0~I2C1:

GD32E503 較 GD32F303 多支持了 SAM_V 模式。

I2C2:

GD32E503 還增設了 I2C2,I2C2 除了部分特征與 I2C0、I2C1 一樣外,還具有如下的特征:

支持多個 7 位從機地址,可編程的建立時間和保持時間,兼容 SMBus 3.0 和 PMBus 1.3,可選擇的 PEC(報文錯誤校驗)生產和校驗;地址匹配時,可由深度睡眠模式,深度睡眠模式1 和深度睡眠模式 2 喚醒;獨立于 PCLK 的時鐘,可以獨立操作 I2C。

GD32F303 的 I2C 寄存器可以按半字(16 位)或字(32 位)訪問。GD32E503 的 I2C 寄存器只能按字(32 位)訪問,具體的功能及寄存器設置,請用戶參考 GD32E50x 用戶手冊。

5.7 串行外設接口/片上音頻接口(SPI/I2S)

GD32E503 較 GD32F303,I2S 支持全雙工模式,I2S1 和 I2S2 為了支持全雙工運行模式,需要兩個額外的片上I2S模塊:I2S_ADD1 和 I2S_ADD2。I2S_ADD_SD引腳是I2S_ADD模塊的數據引腳,具體功能以及寄存器設置,請用戶參考GD32E50x用戶手冊。

5.8 控制器局域網絡 (CAN)

GD32F303 系列產品中只有一個 CAN0 功能,具有 14 個過濾器,GD32E503 具有兩個 CAN,CAN0 和 CAN1,他們共享 28 個過濾器,GD32E503 較 GD32F303 還支持支持 CAN-FD幀,CAN-FD 幀通信波特率最大為 6Mbit/s,支持傳輸延遲補償機制,具體功能以及寄存器設置,請用戶參考 GD32E50x 用戶手冊。

5.9 閃存控制器(FMC)

GD32F303 bank0 的閃存頁大小為 2KB,bank1 的閃存頁大小為 4KB;GD32E503 的閃存頁大小為 8KB。GD32F303 在閃存的前 256K 字節空間內,CPU 執行指令零等待,在此范圍外,CPU 讀取指令存在較長延時;而 GD32E503 在閃存的前 512K 字節空間內,CPU 執行指令需要少量等待時間。另外 GD32E503 增加了 2K 字節 OTP 塊(一次性編程),用于存儲用戶數據;具體功能以及寄存器設置,請用戶參考 GD32E50x 用戶手冊。

5.10 其他

GD32E503 還增加了 SHRTIMER、TMU 和 SQPI 等功能,具體功能以及寄存器設置,請用戶參考 GD32E50x 用戶手冊。


關鍵字:GD32  MCU  移植  GD32F303 引用地址:【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503

上一篇:【GD32 MCU 移植教程】1、從 GD32F10x 移植到 GD32F30x
下一篇:關于GD32開發平臺現已支持Huawei LiteOS操作系統的介紹和分享

推薦閱讀最新更新時間:2025-06-16 11:29

GD32F303紅楓派開發板使用手冊】第四講 GEXTI-按鍵中斷檢測實驗
4.1實驗內容 通過本實驗主要學習以下內容: EXTI中斷原理; 按鍵中斷檢測原理; 4.2實驗原理 4.2.1NVIC中斷向量控制器 介紹EXTI之前,首先為各位讀者介紹NVIC中斷向量控制器,NVIC為M4內核組件,用于實現高效的異常和中斷處理。NVIC可以支持搶占以及咬尾中斷,具有多達68種外設中斷以及4位中斷優先等級配置(最多支持16個中斷有限等級),當中斷或異常產生時,系統自動將當前處理器工作狀態壓棧,在執行完中斷服務子程序(ISR) 后自動將其出棧。 GD32F303系列MCU的中斷向量表如下表所示(包含異常中斷)。 有關NVIC中斷相關配置函數可參考gd32f30x_misc.c,其中主要有以下幾個函數
[單片機]
【<font color='red'>GD32F303</font>紅楓派開發板使用手冊】第四講 GEXTI-按鍵中斷檢測實驗
如何調試GD32虛擬串口的兩個BUG?
最近魚鷹在搞調試器,折騰了好多天終于理解了 MDK 、下載算法、調試器、MCU 之間的關系。 簡單來說,就是,調試器作為 USB 轉 SWD 協議的轉換工具,MDK 通過 USB 驅動這個工具,下載算法包含了一些 MCU 內部 FLASH 擦除、編程代碼,和普通代碼不同的是,該代碼可以下載在任意位置運行。如果需要校驗,還會加入 CRC 校驗代碼,扇區檢測代碼。 MDK 首先通過調試器將算法寫入內部 RAM,然后把需要寫入的固件程序寫入 RAM,再由 MDK 控制(通過調試器) MCU 執行相應代碼(擦除或寫入扇區),通過 MCU 的寄存器和設定軟件斷點得到執行結果,如此來回搬運,就可完成固件下載。 說起來簡單,做起來很麻煩
[單片機]
如何調試<font color='red'>GD32</font>虛擬串口的兩個BUG?
FFmpeg移植-迅為IMX6ULL開發板
FFmpeg(Fast Forward Mpeg)是一種可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的多媒體視頻處理工具,擁有視頻采集功能、視頻格式轉換、視頻抓圖等功能。本文介紹如何將ffmpeg移植到 ARM 平臺。 開發板使用迅為i.MX6ULL終結者和 USB 免驅攝像頭,交叉編譯工具為arm-linux-gnueabihf,yocto Qt5文件系統。 1.編譯x264獲取x264源碼,可以從網站 http://www.videolan.org/developers/x264.htm 下載,進入如圖1.1界面,點擊下載;或者用我們已經下載壓縮包(與文檔同一目錄下的x264-master.tar.bz2); 將壓縮包
[單片機]
FFmpeg<font color='red'>移植</font>-迅為IMX6ULL開發板
迅為i.MX6ULL開發板-移植OpenCv2.4.9-QT程序編譯
1.將提供的 QT 文件下載完成后,放到 /home/topeet/opencv2.4.9/opencvinstall/文件夾下。進入/QT/demo 目錄下。我們打開 opencv_pic.pro 工程來看。 Ubuntu# vi opencv_pic.pro 注意 INCLUDEPATH 需要修改為自己 OpenCV 安裝文件夾下的 include 路徑!lib 的目錄必須是/QT/demo 目錄的上兩級目錄。 2.搭建完成后。在 Ubuntu 終端執行下面的指令來使能 Qt 交叉編譯的環境變量。 Ubuntu# source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-c
[單片機]
迅為i.MX6ULL開發板-<font color='red'>移植</font>OpenCv2.4.9-QT程序編譯
openharmony:hilog_lite組件移植
kernel:litoes_m MCU:stm32f407zgt6 本文僅介紹HiLog_Lite組件的移植過程,HiLog_Lite原理介紹請移步zh-cn/device-dev/subsystems/subsys-dfx-hilog-lite.md · OpenHarmony/docs - Gitee.com。 概述 HiLog_Lite是針對輕量系統類設備(參考內存≥128KiB)、小型系統類設備(參考內存≥1MiB)的hilog框架,實現了日志的打印、輸出和流控功能。 1. 源碼位置 hilog_lite組件的源碼在路徑base/hiviewdfx/hilog_lite/frameworks/mini/hivi
[單片機]
rt_thread hc32f460開發五:wdt驅動移植
看門狗驅動的代碼結構和原理 參考STM32的看門狗驅動,RT-Thread中的看門狗驅動主要有兩個函數組成wdt_init和wdt_control。 其中wdt_init提供看門狗初始化,主要就是初始化看門狗依賴的時鐘,不過看門狗的功能比較簡單,init函數一般空置。wdt_control根據命令字提供喂狗、設置超時時間、獲取超時時間、啟動看門狗的功能。由于大部分的處理器對于看門狗的設置是一次性的,因此大多數工作再start的時候一次做完就OK了。 hc32f460看門狗的時鐘來自PLCK3,根據自己的頻率設置分頻系數和計數器的數值就可以了。hc32f60的計數器是16bit的,所以把看門狗的時鐘分頻道xKHZ的級別,一般就
[單片機]
MultiButton事件驅動型按鍵驅動移植測試
前言 剛收到開發板,發現社區朋友收到的開發板是GD32F310K,也就是封裝為QFN32,但是我自己收到的是QFN28,芯片面積約為上面的1/4(QAQ),在參考demo時需要注意兩者開發板IO口有些許差異,參考工程需要參考:GD32330G_START_Demo_Suites文件夾中的project文件夾。 GD32F3作為一個小而美的MCU,小容量的RAM,確實不適合跑系統或者過于冗余性的東西,作為一個協處理器,用作常用外設控制,當為其用武之地。 MultiButton MultiButton 是一個小巧簡單易用的事件驅動型按鍵驅動模塊,可無限量擴展按鍵,按鍵事件的回調異步處理方式可以簡化你的程序結構,去除冗余的按鍵處理硬
[單片機]
MultiButton事件驅動型按鍵驅動<font color='red'>移植</font>測試
將ASIC IP核移植到FPGA上——更新概念并推動改變以完成充滿挑戰的任務!
數字芯片設計驗證經驗分享: 將ASIC IP核移植到FPGA上——更新概念并推動改變以完成充滿挑戰的任務! 本系列文章從數字芯片設計項目技術總監的角度出發,介紹了如何將芯片的產品定義與設計和驗證規劃進行結合,詳細講述了在FPGA上使用IP核來開發ASIC原型項目時,必須認真考慮的一些問題。文章從介紹使用預先定制功能即IP核的必要性開始,通過闡述開發ASIC原型設計時需要考慮到的IP核相關因素, 用八個重要主題詳細分享了利用ASIC所用IP來在FPGA上開發原型驗證系統設計時需要考量的因素 。 在上篇文章中,我們介紹了將ASIC IP移植到FPGA原型平臺上的必要性,并對原型設計中各種考量因素進行了總體概述,分析開發A
[嵌入式]
將ASIC IP核<font color='red'>移植</font>到FPGA上——更新概念并推動改變以完成充滿挑戰的任務!
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 西青区| 河北区| 宾川县| 凌云县| 长春市| 赤城县| 渝北区| 肃宁县| 柞水县| 什邡市| 饶平县| 黄石市| 离岛区| 鄱阳县| 通道| 乌恰县| 奉新县| 宜良县| 革吉县| 土默特右旗| 邮箱| 汕尾市| 上饶县| 雅江县| 柯坪县| 衡阳市| 安丘市| 长沙县| 上犹县| 界首市| 准格尔旗| 濉溪县| 白山市| 卢湾区| 哈巴河县| 金秀| 瓦房店市| 伊春市| 西平县| 庆元县| 静乐县|