91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

兆易創(chuàng)新GD32VW553上的UART實(shí)踐 | 技術(shù)集結(jié)

RT-Thread官方賬號(hào) ? 2026-04-06 18:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

兆易創(chuàng)新GD32VW553H-EVAL開發(fā)實(shí)踐指南》電子書正式上線! 本書是RT-Thread工程師團(tuán)隊(duì)與兆易創(chuàng)新聯(lián)合推出的評(píng)測(cè)活動(dòng)產(chǎn)出,系統(tǒng)梳理了UART、WDG、I2C、TIMER、PWM、SPI等基礎(chǔ)外設(shè),到Wi-Fi無線通信的完整驅(qū)動(dòng)開發(fā)實(shí)踐,手把手帶你完成從硬件調(diào)試到無線應(yīng)用部署的完整流程。

本文是《GD32VW553上的UART實(shí)踐》。

目錄


開發(fā)環(huán)境搭建


VSCode軟件調(diào)試環(huán)境搭建


芯片資源 - Uart


UART功能調(diào)試


Git鏈接


開發(fā)者貢獻(xiàn)名單

1 開發(fā)環(huán)境搭建

1.1 軟件下載鏈接

RT-Thread 環(huán)境:https://github.com/RT-Thread/rt-thread/tree/master/bsp/gd32/risc-v/gd32vw553h-eval

方案一:可以使用git工具直接拉取RT-Thread整包:git clone https://github.com/RT-Thread/rt-thread.git

方案二:可以直接從git界面下載zip整包,本地解壓;

8463128c-31a0-11f1-ab55-92fbcf53809c.jpg

RT-Thread ENV工具:https://www.rt-thread.org/download.html#download-rt-thread-env-tool

8472970c-31a0-11f1-ab55-92fbcf53809c.jpg

編譯器工具鏈:https://www.gigadevice.com.cn/product/mcu/mcus-product-selector/gd32vw553hmq6

847c9e46-31a0-11f1-ab55-92fbcf53809c.jpg

固件燒錄工具GD32AllInOneProgrammer:https://www.gd32mcu.com/cn/download?kw=GD32+All-In-One+Programmer&lan=cn

848b59e0-31a0-11f1-ab55-92fbcf53809c.jpg

1.2 環(huán)境配置

1.2.1 RT-Thread ENV工具配置

將1.1->第3小節(jié):鏈接中下載的文件拷貝至工作文件夾(此處為筆者習(xí)慣,僅供參考,可跳過);

8496efa8-31a0-11f1-ab55-92fbcf53809c.jpg

打開路徑中的exe文件運(yùn)行RT-Thread ENV工具,此時(shí)該文件會(huì)自動(dòng)配置Windows下的環(huán)境變量;

84a29344-31a0-11f1-ab55-92fbcf53809c.jpg

此處需要注意輸出文件中包含的環(huán)境變量的設(shè)置,當(dāng)我們解壓并使用后,再次移動(dòng)軟件位置時(shí),記得將環(huán)境變量同步更改,否則可能會(huì)報(bào)錯(cuò),無法找到pkgs指令;若是不會(huì)修改環(huán)境變量,最簡(jiǎn)單的解決方案就是刪除當(dāng)前的ENV整包,然后在需要安裝的位置重新解壓,并運(yùn)行即可;

當(dāng)軟件環(huán)境配置完成后,分別運(yùn)行pkgs —upgrade、pkgs —update,此時(shí)觀察倉(cāng)庫可以發(fā)現(xiàn)倉(cāng)庫中增加了packages文件夾,里面包含了gd32的lib庫;

84acb5ea-31a0-11f1-ab55-92fbcf53809c.jpg84bbcada-31a0-11f1-ab55-92fbcf53809c.jpg

1.2.2 GD32編譯鏈環(huán)境搭建

對(duì)于任意一款芯片的編譯肯定都需要適配交叉編譯工具鏈,一般這部分廠商都有提供,本次需要將交叉編譯工具集成到RT-Thread的環(huán)境中;

由于在第一章1.1已經(jīng)下載好了編譯器工具鏈,首先需要選擇一個(gè)自己想要放置編譯鏈的地方解壓工具鏈;

然后在RT ENV環(huán)境下運(yùn)行下面命令,注意:PTAH=后面跟著的路徑需要改為自己的路徑,下方指令不可直接復(fù)制粘貼使用!下方指令不可直接復(fù)制粘貼使用!下方指令不可直接復(fù)制粘貼使用!

setRTT_EXEC_PATH=E:\GD32\GD32VW5\GD32EmbeddedBuilder_v1.5.4_Rel\Tools\RISC-V Embedded GCC\8.2.0-2.2-20190521-0004\bin

運(yùn)行完成后,在gd32vw553h-eval的目錄下直接執(zhí)行scons -j128編譯即可;

記得一定要在\rt-thread-master\bsp\gd32\risc-v\gd32vw553h-eval,這個(gè)目錄下執(zhí)行,其中j后面跟著的數(shù)字是指使用幾個(gè)核進(jìn)行編譯,可根據(jù)自己的電腦實(shí)際性能調(diào)整;

編譯完成后既可以看到文件夾中多了rtthread.bin文件,該文件就是后面需要下載到板卡的二進(jìn)制文件;

1.3 固件燒錄(直接按照git中完成)

固件燒錄需要使用上述的第一章1.1中下載的GD32AllInOneProgrammer軟件,燒錄說明位于燒錄軟件下的Doc文件夾,或在線搜索使用方法,下述是燒錄的示例:

84c92950-31a0-11f1-ab55-92fbcf53809c.jpg

需要注意的是使用上述軟件燒錄時(shí)需要將boot1置為高電平,燒錄結(jié)束后重新設(shè)置為低電平,手動(dòng)調(diào)整板載的boot跳線帽。

運(yùn)行結(jié)果:燒錄完畢后,使用串口連接自己的串口終端軟件,即可通過串口與開發(fā)板交互;

1.4. 測(cè)評(píng)結(jié)論

GD32這款板子在環(huán)境搭建上相對(duì)還是比較簡(jiǎn)單的,基本可以無腦跟著Git中的指引一步步完成開發(fā)環(huán)境的搭建,無需開發(fā)者到處尋找資料;同時(shí)搭建開發(fā)環(huán)境所需的軟件包也比較集中,且容易獲?。?/p>

2 VSCode軟件調(diào)試環(huán)境搭建

2.1 調(diào)試環(huán)境搭建

配置VSCode調(diào)試環(huán)境,首先在第一章中已經(jīng)下載好了《GD32EmbeddedBuilder》,調(diào)試環(huán)境配置時(shí)需要用到該文件夾中的Tools;

84d2fbec-31a0-11f1-ab55-92fbcf53809c.jpg

其次在BSP根目錄下執(zhí)行下述命令,生成VSCode工程所需文件。

scons —target=vs

在VSCode安裝擴(kuò)展插件Cortex-Debug,版本v1.4.4。

完成上述工作后,點(diǎn)擊運(yùn)行和調(diào)試選項(xiàng),創(chuàng)建一個(gè)launch.json配置文件,配置文件示例如下:

{"version":"0.2.0","configurations":[ { "name":"Cortex Debug", "cwd":"${workspaceFolder}", "executable":"${workspaceFolder}/rtthread.elf", "request":"launch", "type":"cortex-debug", "servertype":"openocd", "serverpath":"E:/GD32/GD32VW5/Tools/GD32EmbeddedBuilder_v1.5.2.30854/Tools/OpenOCD/xpack-openocd-0.11.0-3/bin/openocd", "configFiles": [ "${workspaceFolder}/openocd_gdlink.cfg" ], "runToEntryPoint":"main", "showDevDebugOutput":"raw", "toolchainPrefix":"E:/GD32/GD32VW5/Tools/GD32EmbeddedBuilder_v1.5.2.30854/Tools/RISC-V Embedded GCC/8.2.0-2.2-20190521-0004/bin/riscv-none-embed" }]}

這里需要注意如果你的${workspaceFolder}工作空間不是當(dāng)前的路徑,可以自行將${workspaceFolder}相關(guān)的路徑改為自己launch.json的絕對(duì)路徑/相對(duì)路徑使用;

上述文件中的部分字段需要根據(jù)用戶環(huán)境進(jìn)行修改,格式需與示例一致:

“serverpath”:該字段需要改為用戶的openocd所在路徑,openocd工具位于GD32EmbeddedBuilder工具包中。

“toolchainPrefix”:該字段需修改為用戶的工具鏈所在路徑,工具鏈位于GD32EmbeddedBuilder工具包中。

完成上述配置后即可點(diǎn)擊調(diào)試選項(xiàng)進(jìn)行調(diào)試,調(diào)試時(shí)boot管腳均置為低電平即可,調(diào)試時(shí)同樣會(huì)進(jìn)行固件下載。

2.2 調(diào)試環(huán)境測(cè)試

在工程界面點(diǎn)擊Cortex Debug,即可進(jìn)入調(diào)節(jié)界面;

84ddb2f8-31a0-11f1-ab55-92fbcf53809c.jpg

在調(diào)試界面可以查看變量值、暫停后可以查看當(dāng)前任務(wù)的調(diào)用棧情況,同時(shí)也支持在vscode界面進(jìn)行斷點(diǎn)操作、單步調(diào)試、Reset等;

84ec3760-31a0-11f1-ab55-92fbcf53809c.jpg

2.3 測(cè)評(píng)結(jié)論

整體來說調(diào)試環(huán)境搭建非常簡(jiǎn)單,但是調(diào)試界面相對(duì)于keil、esp-idf、勞德巴赫等其他環(huán)境較為簡(jiǎn)陋,不過功能完全足夠開發(fā)者使用;

3 芯片資源 - Uart

芯片采用RISC-V架構(gòu)處理器,適用于低能耗、小面積的嵌入式應(yīng)用,具有簡(jiǎn)單的動(dòng)態(tài)分支預(yù)測(cè)、指令預(yù)取緩沖區(qū)和I-cache等多種高效微架構(gòu)特點(diǎn)。

3.1 Uart分布

84f6a254-31a0-11f1-ab55-92fbcf53809c.jpg

根據(jù)芯片架構(gòu)示意圖可以看到,芯片共有三路串口,其中UART2掛載在APB2總線上,USART0和UART1掛載在APB1上;這里需要注意我們?cè)谑褂貌煌琔art時(shí),需要初始化對(duì)應(yīng)的總線時(shí)鐘;

3.2 存儲(chǔ)

RISC-V處理器采用哈弗架構(gòu),可以使用單獨(dú)的總線來提取指令和加載/存儲(chǔ)數(shù)據(jù)。程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,寄存器和I/O端口組織在同一線性4GB(32位芯片)地址空間內(nèi)。具體的存儲(chǔ)器映射表可以查看《GD32VW55x_用戶手冊(cè)_Rev1.4.pdf》第1.3節(jié);

Uart地址空間

USART0:0x4000 4800 - 0x4000 4BFF

UART1:0x4000 4400 - 0x4000 47FF

UART2:0x4001 1000 - 0x4001 13FF

Ram段

85011216-31a0-11f1-ab55-92fbcf53809c.jpg

代碼段

850c7fde-31a0-11f1-ab55-92fbcf53809c.jpg851ba4e6-31a0-11f1-ab55-92fbcf53809c.jpg

其中我們主要關(guān)注和使用較多的就是主存儲(chǔ)0x0800 0000 - 0x083F FFFF和0x0BF4 0000 - 0x0BF7 FFFF ROM區(qū)間;

根據(jù)芯片的引導(dǎo)配置章節(jié)可以看出,該芯片將Bootload、secure boot分別放在了ROM段0x0BF40000、0x0BF46000作為起始地址,本地代碼一般放在了起始地址0x08000000的主存儲(chǔ)區(qū);

3.3 USART 模塊內(nèi)部框圖

85248a2a-31a0-11f1-ab55-92fbcf53809c.jpg

從模塊內(nèi)部框圖可以看出,Uart的讀寫操作主要都是在讀/寫緩沖區(qū)完成,用戶可以通過CPU在串口傳輸完成后直接讀取讀緩沖區(qū)的內(nèi)容,或像寫緩沖區(qū)寫入數(shù)據(jù),配置控制/狀態(tài)寄存器及中斷完成Uart的讀寫操作;

從圖中同樣可以看到該芯片Uart支持DMA直接將緩沖區(qū)數(shù)據(jù)搬入/出;

讀寫緩沖區(qū)分別對(duì)應(yīng)Uart的數(shù)據(jù)接受/發(fā)送寄存器,同時(shí)FIFO的控制/狀態(tài)獲取,主要依賴于FIFO控制和狀態(tài)寄存器;

同時(shí)芯片支持硬件流控功能,可通過nCTS和nRTS引腳來實(shí)現(xiàn)。通過將USART_CTL2寄存器中RTSEN位置1來使能RTS流控,將USART_CTL2寄存器中CTSEN位置1來使能CTS流控。

8531e832-31a0-11f1-ab55-92fbcf53809c.jpg

GD32vw553 引腳映射關(guān)系

853f17aa-31a0-11f1-ab55-92fbcf53809c.jpg

測(cè)試階段暫時(shí)將PA2/3作為UART1的收發(fā)引腳,PA6/7作為UART2的收發(fā)引腳;

4 UART功能調(diào)試

4.1 測(cè)試環(huán)境

Demo中僅使能了UART0一路串口,首先需要測(cè)試3路串口是否均可使用,可以在RTT的menuconfig中將UART1/2使能;

使能后會(huì)出現(xiàn)宏定義相關(guān)的報(bào)錯(cuò),此時(shí)需要修改drv_usart.c文件,由于GD32vw55x的另外兩路都是UART,drv中寫死的USART宏并不適用,臨時(shí)改為UART1/UART2,重新編譯可成功編譯;

85496a70-31a0-11f1-ab55-92fbcf53809c.jpg

單步調(diào)試查看調(diào)用棧,可以發(fā)現(xiàn)在程序啟動(dòng)后會(huì)首先調(diào)用board.c中的rt_hw_board_init,另外在rt_hw_board_init中已經(jīng)初始化了board.c UART數(shù)組中的所有串口,我們可以在后續(xù)直接測(cè)試UART1/2的功能;

8555d044-31a0-11f1-ab55-92fbcf53809c.jpg

RTT中main其實(shí)只是一個(gè)Task,并不像裸機(jī)開發(fā)那樣時(shí)start.s跳轉(zhuǎn)出的首個(gè)函數(shù);

855fde90-31a0-11f1-ab55-92fbcf53809c.jpg

我們可以在main task中調(diào)用uart API發(fā)送/接收數(shù)據(jù);

856d0692-31a0-11f1-ab55-92fbcf53809c.jpg

4.3 Tx/Rx 功能測(cè)試結(jié)果

由下圖可以看到UART1/2均可正常使用,且中斷可被正常觸發(fā);

857a0590-31a0-11f1-ab55-92fbcf53809c.jpg

依然是上述代碼,將Uart2的Tx接入U(xiǎn)art1的Rx,可以看到打印如下:

8582dbb6-31a0-11f1-ab55-92fbcf53809c.jpg

同理可測(cè)Uart2的接收功能;

5 Git鏈接

https://gitee.com/zhang-haitao-1/gd32vw553h-test

6 開發(fā)者貢獻(xiàn)名單

《兆易創(chuàng)新GD32VW553H-EVAL開發(fā)實(shí)踐指南》包含的內(nèi)容以及對(duì)應(yīng)的貢獻(xiàn)者如下,感謝各位小伙伴的支持與貢獻(xiàn)!

858e7ee4-31a0-11f1-ab55-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5206

    文章

    20567

    瀏覽量

    336114
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1318

    瀏覽量

    106880
  • 兆易創(chuàng)新
    +關(guān)注

    關(guān)注

    24

    文章

    725

    瀏覽量

    84020
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    434

    瀏覽量

    27507
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于RISC-V的創(chuàng)新GD32VW553系列全新WiFi6 MCU亮相

    基于RISC-V的創(chuàng)新GD32VW553系列全新WiFi 6 MCU亮相 2023年10月17日業(yè)界領(lǐng)先的半導(dǎo)體器件供應(yīng)商
    發(fā)表于 10-17 18:31 ?1631次閱讀
    基于RISC-V的<b class='flag-5'>兆</b><b class='flag-5'>易</b><b class='flag-5'>創(chuàng)新</b><b class='flag-5'>GD32VW553</b>系列全新WiFi6 MCU亮相

    創(chuàng)新推出GD32VW553系列Wi-Fi 6 MCU

    業(yè)界領(lǐng)先的半導(dǎo)體器件供應(yīng)商創(chuàng)新GigaDevice(股票代碼603986)宣布,正式推出基于RISC-V內(nèi)核的GD32VW553系列雙模無線微控制器。
    的頭像 發(fā)表于 10-27 08:24 ?1454次閱讀
    <b class='flag-5'>兆</b><b class='flag-5'>易</b><b class='flag-5'>創(chuàng)新</b>推出<b class='flag-5'>GD32VW553</b>系列Wi-Fi 6 MCU

    GD32VW553認(rèn)證測(cè)試指南應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《GD32VW553認(rèn)證測(cè)試指南應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 10:10 ?0次下載
    <b class='flag-5'>GD32VW553</b>認(rèn)證測(cè)試指南應(yīng)用說明

    GD32VW553系列的研制射頻硬件指南應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《GD32VW553系列的研制射頻硬件指南應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 10:13 ?0次下載
    <b class='flag-5'>GD32VW553</b>系列的研制射頻硬件指南應(yīng)用說明

    GD32VW553 AT命令用戶指南

    電子發(fā)燒友網(wǎng)站提供《GD32VW553 AT命令用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 09:53 ?0次下載
    <b class='flag-5'>GD32VW553</b> AT命令用戶指南

    GD32VW553 BLE開發(fā)指南應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《GD32VW553 BLE開發(fā)指南應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 09:55 ?0次下載
    <b class='flag-5'>GD32VW553</b> BLE開發(fā)指南應(yīng)用說明

    GD32VW553基本命令用戶指南應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《GD32VW553基本命令用戶指南應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 09:56 ?0次下載
    <b class='flag-5'>GD32VW553</b>基本命令用戶指南應(yīng)用說明

    GD32VW553快速開發(fā)指南應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《GD32VW553快速開發(fā)指南應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 09:58 ?2次下載
    <b class='flag-5'>GD32VW553</b>快速開發(fā)指南應(yīng)用說明

    AN154 GD32VW553快速開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《AN154 GD32VW553快速開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-17 15:39 ?15次下載
    AN154 <b class='flag-5'>GD32VW553</b>快速開發(fā)指南

    AN151 GD32VW553 AT指令用戶指南

    電子發(fā)燒友網(wǎng)站提供《AN151 GD32VW553 AT指令用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-17 15:26 ?1次下載
    AN151 <b class='flag-5'>GD32VW553</b> AT指令用戶指南

    AN153 GD32VW553基本指令用戶指南

    電子發(fā)燒友網(wǎng)站提供《AN153 GD32VW553基本指令用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-17 15:22 ?0次下載
    AN153 <b class='flag-5'>GD32VW553</b>基本指令用戶指南

    AN152 GD32VW553 BLE開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《AN152 GD32VW553 BLE開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-17 15:19 ?2次下載
    AN152 <b class='flag-5'>GD32VW553</b> BLE開發(fā)指南

    嘗鮮體驗(yàn),創(chuàng)新GD32VW553 無線MCU評(píng)測(cè)活動(dòng)開啟!技術(shù)解決方案深度評(píng)測(cè),直播預(yù)約中 | 社區(qū)活動(dòng)

    創(chuàng)新已對(duì)GD32VW553系列MCU進(jìn)行了RT-Thread的適配。為助力開發(fā)者快速上手,社區(qū)聯(lián)合
    的頭像 發(fā)表于 12-25 14:58 ?1540次閱讀
    嘗鮮體驗(yàn),<b class='flag-5'>兆</b><b class='flag-5'>易</b><b class='flag-5'>創(chuàng)新</b><b class='flag-5'>GD32VW553</b> 無線MCU評(píng)測(cè)活動(dòng)開啟!<b class='flag-5'>技術(shù)</b>解決方案深度評(píng)測(cè),直播預(yù)約中 | 社區(qū)活動(dòng)

    【直播預(yù)告】創(chuàng)新 GD32VW553 系列產(chǎn)品直播解讀,重磅來襲! | 問學(xué)直播

    創(chuàng)新已基于RT-Thread操作系統(tǒng),完成對(duì)GD32VW553系列芯片的適配!為了讓開發(fā)者掌握其強(qiáng)大的無線連接能力與開發(fā)實(shí)戰(zhàn)技巧,RT-Thread聯(lián)合
    的頭像 發(fā)表于 12-30 16:59 ?784次閱讀
    【直播預(yù)告】<b class='flag-5'>兆</b><b class='flag-5'>易</b><b class='flag-5'>創(chuàng)新</b> <b class='flag-5'>GD32VW553</b> 系列產(chǎn)品直播解讀,重磅來襲! | 問學(xué)直播

    基于 RT-Thread 和創(chuàng)新GD32F527的CAN總線監(jiān)視器 | 技術(shù)集結(jié)

    【適配新進(jìn)展】創(chuàng)新與RT-Thread的適配大家庭又添新成員啦!GD32VW553現(xiàn)已正式完成適配,并在社區(qū)開發(fā)者的協(xié)作下完成了電子書《GD32
    的頭像 發(fā)表于 03-05 10:04 ?180次閱讀
    基于 RT-Thread 和<b class='flag-5'>兆</b><b class='flag-5'>易</b><b class='flag-5'>創(chuàng)新</b><b class='flag-5'>GD</b>32F527的CAN總線監(jiān)視器 | <b class='flag-5'>技術(shù)</b><b class='flag-5'>集結(jié)</b>