五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)遵守國家法律
航空| 井研县| 靖边县| 海南省| 巴楚县| 宁陕县| 屏山县| 临高县| 宝丰县| 绍兴县| 黄平县| 灌阳县| 曲阳县| 高雄市| 霍城县| 桑植县| 西华县| 石家庄市| 清河县| 通渭县| 澎湖县| 阿图什市| 漳浦县| 全南县| 晴隆县| 丽江市| 鄄城县| 大石桥市| 安多县| 太仓市| 万盛区| 东安县| 蓝田县| 九台市| 屏东市| 隆尧县| 绥中县| 卓资县| 仁寿县| 邛崃市| 潞城市|