最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Linux 環(huán)境下配置CH32V系列單片機(jī)開發(fā)環(huán)境

2022-04-05 18:05 作者:神棍技術(shù)宅Leo  | 我要投稿

0. 準(zhǔn)備工作

0.1 CH32V 介紹

CH32V系列芯片是南京沁恒微電子推出的基于RISC-V架構(gòu)的MCU。

其中 CH32V103系列為RISC-V3A架構(gòu)

CH32V203,CH32V208,CH32V303,CH32V305,CH32V307系列為RISC-V4F架構(gòu)

0.2 開發(fā)庫與開發(fā)工具鏈

本教程使用的開發(fā)庫與開發(fā)工具鏈如下

  • 沁恒提供的硬件庫(包含基本啟動(dòng)文件和鏈接腳本,下文簡稱庫)

  • RISC-V Embedded GNUC工具鏈

  • 沁恒提供的定制版openocd

  • VSCode

官方提供了MRS_Toolchain_Linux的工具包,其中包含了RISCV Embedded GNUC工具鏈和定制版openocd,Leo醬沒有使用其提供的CNUC工具鏈,是自己去官網(wǎng)下載的最新版。鏈接如下

https://gnu-mcu-eclipse.github.io/toolchain/riscv/

下載后,請(qǐng)自行組織目錄結(jié)構(gòu)安裝相應(yīng)工具鏈(其實(shí)就是復(fù)制到一個(gè)地方放好)并添加環(huán)境變量。(對(duì)于openocd建議建立鏈接并起別名以使其與系統(tǒng)環(huán)境的openocd分離,Leo醬鏈接到了/usr/bin/rvopenocd)

1. 項(xiàng)目建立

1.1 建立項(xiàng)目目錄并復(fù)制庫文件

按照統(tǒng)一結(jié)構(gòu)來構(gòu)建目錄。如下

  • Drivers :硬件庫和板級(jí)支持包

  • Core :核心業(yè)務(wù)

  • System :系統(tǒng)級(jí)軟件包(如果使用操作系統(tǒng)等)

  • Makefile :Make自動(dòng)構(gòu)建腳本

  • link.ld :鏈接腳本 (庫中包含)

  • startup_ch32v10x.S :啟動(dòng)文件(以CH32V103為例,庫中包含)

將庫中的外設(shè)相關(guān)放到Peripheral中,將riscv架構(gòu)相關(guān)文件core_riscv.h和core_riscv.c放置到Platforrm 中。將debug.h和debug.c放到Core中。并將Link.ld和啟動(dòng)文件放到頂層目錄。在頂層目錄新建Makefile。

并用VSCode打開項(xiàng)目目錄。

建立后的項(xiàng)目目錄結(jié)構(gòu)如下

1.2 編寫中斷和系統(tǒng)時(shí)鐘配置

在Core中新建ch32v10x_it.c,system_ch32v10x.c,ch32v10x_conf.h和system_ch32v10x.h并編寫其中內(nèi)容如下注:這四個(gè)文件在庫提供的模板里能夠找到,可以直接復(fù)制使用(另外包含了一個(gè)ch32v10x_it.h)

ch32v140x_it.c

system_ch32v10x.c

system_ch32v10x.h

ch32v10x_conf.h

2. 編寫測(cè)試程序

2.1 編寫主函數(shù)

建立main.c驅(qū)動(dòng)LED閃爍

2.2 編寫Makefile

編寫Makefile內(nèi)容如下

3.編譯與燒錄

3.1 編譯

編譯的過程很簡單,在終端中執(zhí)行make便可以完成編譯,編譯鏈接后會(huì)在項(xiàng)目頂層目錄生成一個(gè)build目錄,其中存在用于調(diào)試燒錄的.elf,.hex,.bin文件。

3.2 燒錄

燒錄這一點(diǎn)就需要多說幾嘴了,首先需要使用官方提供的WCH-LINK進(jìn)行燒錄,需要從官方提供的支持包中將相關(guān)的驅(qū)動(dòng)程序和依賴庫進(jìn)行安裝,從官方提供的MRS_Toolchain_Linux工具包的beforeinstall目錄中的start.sh中我們可以發(fā)現(xiàn)其實(shí)就是對(duì)beforeinstall 目錄中的幾個(gè)庫進(jìn)行拷貝,并且把udev規(guī)則文件給添加到了系統(tǒng)中。

Leo醬對(duì)于其中的libusb使用了官方提供的最新版本進(jìn)行編譯安裝。

另外,對(duì)于WCH-LINK的固件需要進(jìn)行更新,否則在調(diào)用openocd時(shí)會(huì)提示libusb溢出錯(cuò)誤。最新版的固件,需要下載Windows版本的MounRiver并且從其中的目錄中扒出來。

路徑為 {InstallDir}/update/firmware/firmware.bin,扒出來以后使用WCH-ISP Tool進(jìn)行下載,很抱歉這還是Window平臺(tái)的軟件,不過升級(jí)固件后就一勞永逸(只要官方別再給整幺蛾子)了,Leo醬用的虛擬機(jī)進(jìn)行的固件升級(jí)。哎,筆鋒至此,聲淚俱下,由衷感受到國產(chǎn)化進(jìn)程的艱難和Linux平臺(tái)硬件開發(fā)者的艱辛。

弄完這個(gè)以后就可以直接使用openocd 進(jìn)行下載了,官方文檔里提供了清除,燒錄,驗(yàn)證,復(fù)位的操作,在這里,Leo醬給整理成了一個(gè)Shell腳本,使用時(shí)只需要跟隨要下載的文件即可,如下:

由此,編譯和燒錄就完成了。

3.3 調(diào)試

可以通過gdb結(jié)合vscode進(jìn)行調(diào)試,然而,暫時(shí)無法實(shí)現(xiàn)編譯,下載,調(diào)試一條龍服務(wù)。需要先手動(dòng)編譯下載后,啟動(dòng)openocd Server然后使用gdb鏈接調(diào)試,調(diào)試前,配置.

vscode/launch.json文件如下

以上。

Linux 環(huán)境下配置CH32V系列單片機(jī)開發(fā)環(huán)境的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
阿拉尔市| 乌海市| 五常市| 沅江市| 晋城| 皋兰县| 习水县| 临西县| 丹阳市| 公主岭市| 清河县| 扎鲁特旗| 泸西县| 新巴尔虎右旗| 平武县| 苏尼特右旗| 儋州市| 中江县| 应城市| 天等县| 刚察县| 工布江达县| 筠连县| 汕尾市| 水城县| 宝兴县| 香格里拉县| 马鞍山市| 临夏市| 攀枝花市| 舟曲县| 巴彦县| 余庆县| 云浮市| 巨野县| 梓潼县| 澄城县| 延长县| 北流市| 缙云县| 井冈山市|