Arch Linux 下 sipeed longan-nano 2 rv-link
序 – 起因
某天在群里看到有人發(fā) sipeed2022_spring_competition 的活動宣傳圖,如下:
矽速2022春季AIoT挑戰(zhàn)賽
~~矽速(Sipeed)2022春季AIoT挑戰(zhàn)賽,萬元大獎等你來拿 ~~
賽題信息:https://github.com/sipeed/sipeed2022_spring_competition
轉(zhuǎn)發(fā)比賽信息到1000人以上相關(guān)技術(shù)QQ群,500人專業(yè)微信群,或?qū)I(yè)論壇,
即可到矽速官方店領(lǐng)取 BL702 JTAG+UART 調(diào)試小板一塊~
(截圖給客服,僅限第一次轉(zhuǎn)發(fā)到該群有效, sipeed.taobao.com)
重點是可以白嫖一塊 BL702 JTAG+UART 調(diào)試小板 ,對于電子行業(yè)的用戶來說這是無法拒絕的誘惑;而且還是調(diào)試工具。
于是白嫖了這塊 Sipeed RV debugger plus JTAG+UART BL702 調(diào)試器(有需要的朋友,也可以去白嫖),在他們官方的店鋪看到了 Sipeed Longan Nano RISC-V GD32VF103CBT6 單片機 帶殼開發(fā)板,沒忍住,于是就有這篇 linux 下制作 rv-link 的調(diào)試器的文章。
準(zhǔn)備–初步了解
sipeed 官網(wǎng)關(guān)于Longan nano開發(fā)板的相關(guān)信息、 RV-LINK 介紹信息和 PIO 插件信息。如下:
| Longan nano wiki | https://wiki.sipeed.com/hardware/zh/longan/Nano/Longan_nano.html | Longan Nano是基于兆易創(chuàng)新(GigaDevice)的GD32VF103CBT6(RISC-V架構(gòu))芯片設(shè)計的極簡開發(fā)板。開發(fā)板將芯片所有IO引出,設(shè)計小巧精致,板載Type-C、LCD、SD卡、JTAG等接口,方便廣大學(xué)生、工程師、極客愛好者們接觸學(xué)習(xí)最新一代的 RISC-V處理器。 |
| GD32VF103CBT6 ,基于芯來科技.的Bumblebee內(nèi)核 | http://dl.sipeed.com/LONGAN/Nano/DOC/ | 支持 RV32IMAC 指令集及ECLIC 快速中斷功能。內(nèi)核功耗僅傳統(tǒng) Cortex-M3 的1/3. |
| Longan nano 開發(fā)工具 | https://dl.sipeed.com/LONGAN/Nano/Tools/ | 注:Windows 平臺 |
| Longan nano 相關(guān)手冊 | https://dl.sipeed.com/shareURL/LONGAN/Nano/DOC | 有中英文版本 |
| Longan nano 引腳圖和規(guī)格書 | https://dl.sipeed.com/shareURL/LONGAN/Nano/Spec | 相關(guān)引腳信息 |
| HDK 屏幕資料 | https://dl.sipeed.com/shareURL/LONGAN/Nano/HDK | 0.96 inch 80*160 IPS LCD |
| Blink 閃燈程序 | https://wiki.sipeed.com/soft/longan/zh/get_started/blink.html | 在 vscode 使用 pio 插件開發(fā),使用 jlink/sipeed-rv-debugger 工具調(diào)試,使用 gd32-dfu (僅供 windows)上位機下載調(diào)試,使用 zadig 替換驅(qū)動信息。 |
| RV-LINK 原始倉庫(幾年沒更新了) | https://gitee.com/zoomdy/RV-LINK | 用 RISC-V 開發(fā)板實現(xiàn)的 RISC-V 仿真器。與其它仿真器不同的是:RV-LINK 通過 USB 串口直接與 GDB 交互,不需要 OpenOCD 之類的中介。 |
| rv-link 第三方倉庫(進(jìn)行了大量功能新增和優(yōu)化) | https://github.com/michahoiting/rv-link | This project aims to improve the original RV-LINK firmware with the following features: Support for a newly designed hardware board with specific features, called RVL-Probe Support for JTAG over SPI + DMA; Additional diagnostics of the JTAG interface; Support for a second USB to serial adapter; A CAN bus logger; Easy updating of the RV-Link firmware; Support of running RV-Link on other host platforms (e.g. Linux PC+FT323 / Raspberry Pi); Additional mon commands; Additional NVM configurable items. |
| vscode 的 pio(PlatformIO) 插件 | https://platformio.org/platformio-ide | 打開 VSCode -> 點擊左側(cè)擴(kuò)展 -> 搜索 PlatformIO -> 點擊安裝插件 -> 等待安裝完成 -> 重啟 VSCODE |
| gd32-dfu-utils | https://github.com/riscv-mcu/gd32-dfu-utils | Dfu-utils GD32 fork. Dfu-util - Device Firmware Upgrade Utilities |
| gd32-dfu-utils AUR 包 | https://aur.archlinux.org/packages/gd32-dfu-utils | AUR 的 gd32-dfu-utils 包,做了處理避免和 dfu-utils 包沖突 |
| rv-link-udev-git AUR 包 | https://aur.archlinux.org/packages/rv-link-udev-git | AUR 的 rv-link 的 udev 文件(驅(qū)動文件) |
| RV-Debugger-BL702 | https://github.com/sipeed/RV-Debugger-BL702 | RV-Debugger-BL702 源碼,RV-Debugger-BL702 is an opensource project that implement a JTAG+UART debugger with BL702C-A0. |
| python-bflb-mcu-tool | https://aur.archlinux.org/packages/python-bflb-mcu-tool | BOUFFALOLAB MCU TOOL |
| python-bflb-iot-tool | https://aur.archlinux.org/packages/python-bflb-iot-tool | BOUFFALOLAB IOT TOOL |
| python-bflb-crypto-plus | https://aur.archlinux.org/packages/python-bflb-crypto-plus | PyCryptoPlus is an extension to the Python Crypto module (www.pycrypto.org). |
| Bouffalo Lab Dev Cube For Ubuntu | https://dev.bouffalolab.com/media/upload/download/BouffaloLabDevCube-1.6.8-linux-x86.tar.gz | Dev Cube是博流提供的芯片集成開發(fā)工具,包含IOT程序下載、MCU程序下載和RF性能測試三大功能。工具提供程序固件啟動時的時鐘,電源,Flash參數(shù)等配置,并可根據(jù)用戶需求對程序進(jìn)行加密和簽名,生成應(yīng)用程序啟動信息文件。工具還可燒寫用戶資源文件,分區(qū)表文件以及 EFUSE配置文件等。工具可對Flash進(jìn)行擦、改、寫 |
| bflb-mcu-tool | https://pypi.org/project/bflb-mcu-tool | BOUFFALOLAB MCU TOOL |
根據(jù)上面相關(guān)信息,大致有點了解后,應(yīng)該知道如何安裝 git 、 vscode 和 pio 插件 。以下默認(rèn)已經(jīng)安裝。
編譯 RV-LINK – 踩踩坑
- 克隆 RV-LINK 源碼
- 運行 vscode ,左側(cè)找到 pio,單擊后,選擇 打開本地工程,選擇上面 RV-LINK 所在位置
- 左下角單擊 編譯圖標(biāo)[?] ,不出意外的話會有如下報錯:
原因是 build.ldscript 參數(shù)發(fā)生變化,需要在工程目錄下 plateformio.ini 進(jìn)行如下修改:
; PlatformIO Project Configuration File ; ; Build options: build flags, source filter, extra scripting ; Upload options: custom port, speed and extra flags ; Library options: dependencies, extra library storages ; ; Please visit documentation for the other options and examples ; http://docs.platformio.org/page/projectconf.html[env:sipeed-longan-nano] ; platform = gd32v platform = https://github.com/sipeed/platform-gd32v.git ;framework = gd32vf103-sdk board = sipeed-longan-nano monitor_speed = 115200 upload_protocol = dfu debug_tool = sipeed-rv-debugger board_build.ldscript = GD32VF103xB.lds build_flags = -DGD32VF103C_START-DUSE_STDPERIPH_DRIVER-DUSE_USB_FS-DLINK_LONGAN_NANO-DTARGET_GD32VF103-DAPP_GDB_SERVER-DRVL_ASSERT_EN-MMDextra_scripts = pre:build.py src_filter = +<*>-<.git/>-<.svn/>-<example/>-<examples/>-<test/>-<tests/>-<app/riscv-prober>-<app/test-usb-serial/>-<link/gd32vf103c-start/rvl-link.c>-<link/gd32vf103c-start/rvl-button.c>-<link/gd32vf103c-start/rvl-led.c> -<link/gd32vf103c-start/rvl-jtag.c> -<link/gd32vf103c-start/gd32vf103c_start.c>-<link/gd32vf103c-start/rvl-jtag-inline.h>-<link/rvl-link-stub.c>-<link/gd32vf103c-start/RISCV/gcc/>+<link/gd32vf103c-start/RISCV/gcc/init.c>+<link/gd32vf103c-start/RISCV/gcc/handlers.c>+<link/gd32vf103c-start/RISCV/gcc/entry.S>+<link/gd32vf103c-start/RISCV/gcc/start.S>-<link/gd32vf103c-start/RISCV/stubs>+<link/gd32vf103c-start/RISCV/stubs/sbrk.c>-<link/gd32vf103c-start/GD32VF103_standard_peripheral/>+<link/gd32vf103c-start/GD32VF103_standard_peripheral/system_gd32vf103.c>+<link/gd32vf103c-start/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c>+<link/gd32vf103c-start/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c>+<link/gd32vf103c-start/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c>+<link/gd32vf103c-start/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c>+<link/gd32vf103c-start/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c>+<link/gd32vf103c-start/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c>- 再此編譯即可生成固件。
- 由于此 RV-LINK 停更兩年以上,可以選擇自己二次開發(fā)或使用第三方開發(fā)的其他 RV-LINK
- 克隆 rv-link 源碼
- 運行 vscode ,左側(cè)找到 pio,單擊后,選擇 打開本地工程,選擇上面 RV-LINK 所在位置
- 左下角單擊 編譯圖標(biāo)[?] ,不出意外的話編譯通過
燒錄固件 – gd32-dfu-utils
-
for var in *; do mv "$var" "gd32-${var}"; done 將 dfu 的工具重命名成 gb32-開頭,避免和 dfu 工具沖突,正常來說需要打 patch 暫時還沒寫,后續(xù)和 gd32-dfu-utils 維護(hù)者溝通下,是他那邊修改還是我這邊打包的時候打 patch
-
已經(jīng)上傳到 AUR 倉庫 gd32-dfu-utils
- 準(zhǔn)備操作
- 按住 BOOT0 按鈕,然后按下 RESET 按鈕,釋放 RESET 按鈕,最后釋放 BOOT0 按鈕,進(jìn)入 DFU 模式
- 可能會踩的坑 Ubuntu 等需要將 $USER 加到 串口組(uucp) 里面(新版本一般是 uucp ,舊版本可能是其他的,使用 ls -lsh /dev/ttyUSB* 查看設(shè)備所在組。如果在 Linux 下調(diào)試時遇到串口不通或者提示沒權(quán)限,把用戶加入串口設(shè)備組里面,后重啟電腦試試。示例:
固件燒錄 – RV-Debugger-BL702
-
上傳到 AUR 倉庫:python-bflb-mcu-tool
-
安裝 python-bflb-mcu-tool
yay -S python-bflb-mcu-tool -
博流還有其他 python 包,也一并打包了,需要的話可以自行安裝。
# BOUFFALOLAB IOT TOOL yay -S python-bflb-iot-tool # PyCryptoPlus is an extension to the Python Crypto module (www.pycrypto.org). yay -S python-bflb-crypto-plus
安裝驅(qū)動 – rv-link-udev
-
上傳至 AUR 倉庫:rv-link-udev-git
-
通過 AUR 工具安裝 99-rvlink-jtag.rules
yay -Syu rv-link-udev-git
總結(jié) – 填坑至始
完成 Sipeed Longan Nano RISC-V GD32VF103CBT6
- rv-link 固件的編譯
- rv-link 固件的燒錄
- rv-link 驅(qū)動文件安裝
完成 Sipeed RV-Debugger-BL702
- bflb-mcu-tool 的 python 打包
- bflb-mcu-tool 燒錄固件
剩下的就是填坑之路。
總結(jié)
以上是生活随笔為你收集整理的Arch Linux 下 sipeed longan-nano 2 rv-link的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word双引号间距大_解决Word 20
- 下一篇: java compile方法_Java中