99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

教你怎樣在主控芯片GD32V上運(yùn)行RT-Thread?

FPGA之家 ? 來(lái)源:HackforFun ? 作者:HackforFun ? 2021-06-17 09:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

去年九月份的時(shí)候 RT-Thread 的 Andy Chen 組織定做了一塊 GD32V 開發(fā)板,托 Andy 的福,我也搭車買了一塊。

這塊開發(fā)板小巧精美,供電、燒錄、調(diào)試信息打印都是通過(guò)一個(gè) Type-C USB 接口進(jìn)行,更重要的是它所搭載的主控芯片 GD32VF103 是一顆采用 RISC-V 內(nèi)核設(shè)計(jì)的 MCU,這對(duì)于對(duì) RISC-V 感興趣的同學(xué)來(lái)說(shuō),具有十足的吸引力。

GD32VF103 系列 SOC 是兆易創(chuàng)新與芯來(lái)科技合作,基于 RISC-V 架構(gòu)設(shè)計(jì)的一款面向 IOT 領(lǐng)域的 MCU,主頻最高 108 MHZ,根據(jù)定位差異,片內(nèi) Flash 16~128 KB,片上 SRAM 8~32 KB。

pYYBAGDKooyAXCgvAAF-8mLWKCg026.jpg

在定制這塊板子的時(shí)候,陳老大為我們選了 Flash 和 SRAM 容量最大的那顆,所以在選擇上大家不用糾結(jié)。

更加難能可貴的是兆易開放了完整的用戶手冊(cè),有 500 多頁(yè)。這顆芯片采用的 RISC-V 內(nèi)核是芯來(lái)科技設(shè)計(jì)的,代號(hào) Bumblebee,芯來(lái)科技也開放了一份關(guān)于 Bumblebee 的指令架構(gòu)手冊(cè),詳細(xì)描述了這顆芯片采用的 RISC-V 指令集、內(nèi)核特權(quán)架構(gòu)、中斷異常、Timer 以及低功耗相關(guān)的機(jī)制,總的來(lái)說(shuō),用這顆芯片來(lái)做 RISC-V 相關(guān)的研究學(xué)習(xí),還是很合適的。

SDK

隨開發(fā)板配套了一份 RT-Thread Nano SDK,里面還包含有開發(fā)板的原理圖和簡(jiǎn)單的使用手冊(cè)以及代碼燒寫工具 GigaDevice MCU ISP Programmer ,整套 SDK 可以在 https://realthread.cowtransfer.com/s/8350a2c039b740 下載。

由于當(dāng)時(shí)為了讓大家盡快拿到開發(fā)板,所以倉(cāng)促中板子上的 JTAG 口留下了一點(diǎn)小瑕疵——如果要連 JTAG 的話,需要做一點(diǎn)小修改,這個(gè)在開發(fā)板原理圖《GD32VF_EVB_V1_20190901》中有說(shuō)明。

參考配套文檔《GD32VF使用說(shuō)明_20190919》 即可完成 RT-Thread 代碼的編譯,然后根據(jù)該文檔描述的固件燒錄方法,按著板子的 BOOT0 按鍵,再按 RESET 按鍵使板子進(jìn)入燒寫模式,然后通過(guò)GigaDevice MCU ISP Programmer 燒錄固件到板子上。

需要注意的是,板子燒錄固件是通過(guò)板子上的 UART 轉(zhuǎn) USB 燒寫的,燒錄時(shí)串口波特率需要設(shè)置為 256000,系統(tǒng)啟動(dòng)后,RT-Thread 也通過(guò)這個(gè) UART 打印調(diào)試信息,打印調(diào)試信息的波特率為 115200,注意不要搞錯(cuò)了。

另外,同一時(shí)刻,串口調(diào)試工具和 GigaDevice MCU ISP Programmer 燒錄軟件,只有一個(gè)能占用串口,所以在燒錄固件之前要記得關(guān)閉串口調(diào)試工具,否則有可能會(huì)無(wú)法正常進(jìn)入燒錄模式。

運(yùn)行 RT-Thread mainline

如果是做產(chǎn)品的話,使用芯片供應(yīng)商提供的 SDK 是最靠譜的,如果是學(xué)習(xí)研究的話,我一向喜歡嘗試最新的代碼,所以 RT-Thread mainline 是一定要試一試的。

安裝 ENV 工具 和 risc-v toolchain

RT-Thread 支持 Windows 和 Linux 兩種編譯開發(fā)環(huán)境,這里我打算在 Windows 下編譯開發(fā),所以需要先去 RT-Thread 官網(wǎng)下載一個(gè) ENV 工具:https://www.rt-thread.org/page/download.html

工具下載下來(lái)后解壓到任何你喜歡的地方,但是記住路徑里面不要有中文字符,雙擊 env.exe 可執(zhí)行程序就可以啟動(dòng)進(jìn)入命令行模式,還可以通過(guò)右鍵把它添加到 Windows 的開始工具欄。

關(guān)于 ENV 的詳細(xì)使用說(shuō)明可以參考《Env用戶手冊(cè)》和 《RT-Thread 編程指南》,這兩份文檔在 RT-Thread 官網(wǎng)都可以下載:https://www.rt-thread.org/document/site/

我發(fā)現(xiàn)工具里面默認(rèn)只帶了 arm_gcc 的 toolchain,這里要編譯 RISC-V,所以還需要下載 RISC-V 的 toolchain,RISC-V 官方的 toolchain 在 Github 上,地址如下:https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases :

poYBAGDKooWAPt3nAACORnvKy_w750.jpg

選擇對(duì)應(yīng)的版本,下載后解壓到 ENV 工具的 /tools/gnu_gcc/risc-v/目錄下。

poYBAGDKonyADI0UAADBGgGOpQ0671.jpg

為了能在 ENV 命令行里面認(rèn)到 riscv-none-embed-gcc 相關(guān)的命令,還需要做如下修改:

poYBAGDKonSALHKoAAHfkQAOY8M544.jpg

即在 env 的 tools/ConEmu/ConEmu/CmdInit.cmd 文件里重新設(shè)置 RTT_EXEC_PATH 環(huán)境變量,把原來(lái)的 arm_gcc 路徑替換成剛才下載的 risc-v toolchain 的安裝路徑。

我查閱了前面提到的兩份RT-Thread 文檔和官網(wǎng)論壇上關(guān)于 ENV 的常見問(wèn)題問(wèn)答貼,沒(méi)找到關(guān)于在 ENV 里面添加 命令的修改說(shuō)明,所以上面這個(gè)修改方法是我嘗試出來(lái)的,不一定科學(xué),如果有人知道更科學(xué)的修改方法,請(qǐng)告訴我。

當(dāng)然,前面的 SDK 包里也提供了 env 和 risc-v toolchain,但是在這里我想用最新的工具和代碼從頭開始嘗試下整個(gè)過(guò)程。

修改 RT-Thread mainline 代碼

RT-Thread 的官方代碼托管在 Github 上,可以通過(guò) git 下載:

git clone https://github.com/RT-Thread/rt-thread.git

其實(shí) RT-Thread mainline 已經(jīng)支持了 GD32VF103 ,不過(guò)對(duì)應(yīng)的開發(fā)板是 GigaDevice 官方的 gd32vf103-eval。

這塊開發(fā)板和我手上的開發(fā)板有個(gè)很重要的區(qū)別——這塊開發(fā)板上面有貼一顆外部高速晶振,而我手上的板子沒(méi)有貼,芯片是依靠?jī)?nèi)部的 8M RC 振蕩時(shí)鐘工作的,內(nèi)部振蕩時(shí)鐘的精度要低一些,但是對(duì)于不使用以太網(wǎng)的場(chǎng)合,基本是夠用的。

所以在系統(tǒng)時(shí)鐘配置部分需要做如下修改:

pYYBAGDKom2AcqzkAAFvKIPonbQ775.jpg

即把 __SYSTEM_CLOCK_108M_PLL_IRC8M 這個(gè)宏打開, __SYSTEM_CLOCK_108M_PLL_HXTAL 這個(gè)宏屏蔽。

我們板子上有帶 三個(gè) LED、所以流水燈這種經(jīng)典項(xiàng)目必須加上:

在 bsp/gd32vf103v-eval/applications/main.c 文件的 main 函數(shù)中加入如下內(nèi)容:

rt_kprintf(“Hello GD32VF103VBT6! build %s %s

”, __DATE__, __TIME__);

// gpio clk rcu_periph_clock_enable(RCU_GPIOE); // gpio init gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_3); gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_4); gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_5);

while (1) { gpio_bit_reset(GPIOE, GPIO_PIN_3);rt_thread_mdelay(300);

gpio_bit_reset(GPIOE, GPIO_PIN_4);rt_thread_mdelay(300);

gpio_bit_reset(GPIOE, GPIO_PIN_5);rt_thread_mdelay(300);

gpio_bit_set(GPIOE, GPIO_PIN_3);rt_thread_mdelay(30);

gpio_bit_set(GPIOE, GPIO_PIN_4);rt_thread_mdelay(30);

gpio_bit_set(GPIOE, GPIO_PIN_5);rt_thread_mdelay(30); }

修改后的代碼我推送到了Gitee 上,如果有同學(xué)感興趣,可以直接 clone 下來(lái) have a try:

git clone https://gitee.com/andyshrk/rt-thread.git

編譯

打開 ENV 工具,進(jìn)入 RT-Thread 源碼的 /bsp/gd32vf103v-eva/ 目錄下運(yùn)行 scons 命令進(jìn)行編譯:

poYBAGDKomWAGcmuAAB28IT8zHg504.jpg

編譯成功會(huì)生成 rtthread.bin 文件,參考提到的文檔使用 GigaDevice MCU ISP Programmer 燒寫到開發(fā)板上。

系統(tǒng)成功啟動(dòng)后在串口中會(huì)看到如下打印,并且板子上的 3 個(gè) LED 燈會(huì)輪流閃爍:

poYBAGDKol-ADfT0AAKfXuypns8145.jpg

這個(gè) warning 似乎是因?yàn)槟硞€(gè)堆棧設(shè)置的太小了,等我后面具體看下代碼再處理掉。

責(zé)任編輯:lq6

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

    關(guān)注

    2

    文章

    208

    瀏覽量

    25197
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1403

    瀏覽量

    41893

原文標(biāo)題:在 RISC-V 芯片 GD32V 上運(yùn)行 RT-Thread

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    RT-Thread BSP全面支持玄鐵全系列RISC-V 處理器 | 技術(shù)集結(jié)

    ,RT-Thread標(biāo)準(zhǔn)版已全面適配玄鐵E、R、C系列內(nèi)核,并在C906內(nèi)核支持RT-Smart微內(nèi)核操作系統(tǒng)。本文將以E906運(yùn)行RT-Thre
    的頭像 發(fā)表于 07-03 18:03 ?1522次閱讀
    <b class='flag-5'>RT-Thread</b> BSP全面支持玄鐵全系列RISC-<b class='flag-5'>V</b> 處理器 | 技術(shù)集結(jié)

    揭秘RT-Thread的AUTOSAR CP系統(tǒng)

    本文探討了RT-Thread與AUTOSARCP的融合,解決車載ECU開發(fā)中實(shí)時(shí)性、安全性與靈活性的平衡問(wèn)題。通過(guò)分層安全內(nèi)核(rt-safetyos/autoos)和工具鏈整合,兼容AUTOSAR
    的頭像 發(fā)表于 06-23 20:22 ?2296次閱讀
    揭秘<b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>的AUTOSAR CP系統(tǒng)

    如何在rt-thread studio開發(fā)STM32H747IIT6?

    如題,我希望rt-thread studio開發(fā)STM32H747IIT6這款雙核單片機(jī),keil里兩個(gè)核的代碼是完全隔離的,分別在兩個(gè)工程中編寫。 但是
    發(fā)表于 06-11 06:24

    RT-Thread 如何實(shí)現(xiàn) SLAAC?

    大佬們,本菜鳥有一些網(wǎng)絡(luò)的問(wèn)題需要幫助: RT-Thread 如何實(shí)現(xiàn) SLAAC(無(wú)狀態(tài)地址自動(dòng)分配),給連接到我的板子的設(shè)備分配 IPv6 地址; RT-Thread 如何發(fā)
    發(fā)表于 05-27 07:21

    如何將RT-Thread移植到NXP MCUXPressoIDE

    RT-Thread默認(rèn)支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE呢?本文內(nèi)容比較簡(jiǎn)單但稍有瑣碎,希望對(duì)有需要的小伙伴有所幫助。
    的頭像 發(fā)表于 02-13 10:37 ?1898次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE<b class='flag-5'>上</b>

    Deepseek單片機(jī)?RT-Thread跑通大語(yǔ)言模型

    前言單片機(jī)也能聊天?RT-Thread跑通大語(yǔ)言模型RT-Thread論壇忽然看到了單片機(jī)和大模型對(duì)話的文章,想著春節(jié)期間看到大語(yǔ)言模
    的頭像 發(fā)表于 02-07 18:59 ?1431次閱讀
    Deepseek<b class='flag-5'>上</b>單片機(jī)?<b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>跑通大語(yǔ)言模型

    RT-ThreadCAN實(shí)踐

    開箱測(cè)試RT-Thread官方已完成了對(duì)英飛凌XMC7200EVK的移植,通過(guò)shell可以看到做好了uart3的console。本文將介紹如何進(jìn)行RT-ThreadCan移植。接下來(lái)我們要完成CAN_FD的驅(qū)動(dòng)移植,并正常啟動(dòng)RT-T
    的頭像 發(fā)表于 11-13 01:03 ?2098次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>CAN實(shí)踐

    混合部署 | 迅為RK3568同時(shí)部署RT-Thread和Linux系統(tǒng)

    的任務(wù),則可以獨(dú)立的 RT-Thread 分區(qū)中運(yùn)行,與 Linux 系統(tǒng)相隔離,以確保系統(tǒng)的安全性和關(guān)鍵任務(wù)的穩(wěn)定執(zhí)行。 燒寫支持RT-Thread的AMP系統(tǒng)后,通過(guò)串口終端可以
    發(fā)表于 11-01 10:31

    開源共生 商業(yè)共贏 | RT-Thread 2024開發(fā)者大會(huì)報(bào)名啟動(dòng)!

    親愛(ài)的RT-Thread開發(fā)者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發(fā)者大會(huì))正式啟動(dòng)報(bào)名!2024RT-Threa
    的頭像 發(fā)表于 10-29 08:06 ?953次閱讀
    開源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024開發(fā)者大會(huì)報(bào)名啟動(dòng)!

    為什么rt-thread studio創(chuàng)建不了gd32的項(xiàng)目?

    為什么rt-thread studio中創(chuàng)建一個(gè)gd32項(xiàng)目時(shí)候,他打開的那個(gè)選型芯片型號(hào)是,安裝好了,沒(méi)有確認(rèn)鍵啊,只有退出sdk管理器,然后就卡在那里了,創(chuàng)建不了
    發(fā)表于 09-27 09:52

    混合部署 | 迅為RK3568同時(shí)部署RT-Thread和Linux系統(tǒng)

    的任務(wù),則可以獨(dú)立的 RT-Thread 分區(qū)中運(yùn)行,與 Linux 系統(tǒng)相隔離,以確保系統(tǒng)的安全性和關(guān)鍵任務(wù)的穩(wěn)定執(zhí)行。 燒寫支持RT-Thread的AMP系統(tǒng)后,通過(guò)串口終端可以
    發(fā)表于 09-18 10:54

    混合部署 | RK3568同時(shí)部署RT-Thread和Linux系統(tǒng)-迅為電子

    混合部署 | RK3568同時(shí)部署RT-Thread和Linux系統(tǒng)-迅為電子
    的頭像 發(fā)表于 09-06 15:32 ?782次閱讀
    混合部署 | <b class='flag-5'>在</b>RK3568<b class='flag-5'>上</b>同時(shí)部署<b class='flag-5'>RT-Thread</b>和Linux系統(tǒng)-迅為電子

    【QEMU系列】不用開發(fā)板運(yùn)行RT-Thread指南-ARM架構(gòu)

    成為一個(gè)門檻。本文將詳細(xì)介紹如何在QEMU虛擬機(jī)的Vexpress-A9平臺(tái)運(yùn)行RT-Thread,幫助開發(fā)者沒(méi)有實(shí)際硬件開發(fā)板的情況下,輕松體驗(yàn)和學(xué)習(xí)
    的頭像 發(fā)表于 08-09 08:35 ?1600次閱讀
    【QEMU系列】不用開發(fā)板<b class='flag-5'>運(yùn)行</b><b class='flag-5'>RT-Thread</b>指南-ARM架構(gòu)

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來(lái)襲!

    親愛(ài)的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓(xùn)即將拉開帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開發(fā)的絕佳機(jī)會(huì)。
    的頭像 發(fā)表于 08-07 08:35 ?2904次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來(lái)襲!

    【好書推薦】RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南

    強(qiáng)烈,他們迫切地希望有一本可以指導(dǎo)他們RT-Thread開發(fā)驅(qū)動(dòng)的指南。為了解決開發(fā)者的燃眉之急,《RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》來(lái)了!希望幫助
    的頭像 發(fā)表于 08-01 08:35 ?1321次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)開發(fā)指南