最近Sipeed上线了一款调试器RV-Debugger Plus,这个调试器是模拟FT2232D,本身没啥好玩的;不过呢,这个调试器使用的MCU比较有意思,是博流智能的BL702,支持二次开发并且提供SDK,值得玩玩。
先列一下我觉得比较有趣的配置:
RISC-V(准确说是SiFive E24,四舍五入算是年轻人的第一个SiFive),指令集为RV32IMAFC,支持FPU(单精度),可以跑到144MHz
132KB RAM+192KB ROM,并且手头这个版本SiP了512KB的Flash,在QFN32的封装下算是不错了
2.4G,支持BLE 5.0和Zigbee 3.0,集成balun和PA/LNA
USB 2.0 FullSpeed Device
集成了DC-DC和LDO,只需要5V和3.3V两路供电即可
另外还有SiP PSRAM,EMAC和DVP的选项,但是和BL702无缘
拍一张图康康:
离线
整理一下目前找到的资料:
Sipeed提供的资料(包括原理图、BSP和已经开发好的固件):sipeed/RV-Debugger-BL702
Bouffalo的GitLab:Bouffalo Lab
Bouffalo的Gitee:博流智能科技(南京)有限公司
官方文档:BL MCU SDK 开发指南
开发者社区(包括文档、论坛等):博流智能开发者社区
SiFive E24的相关文档:
离线
接下来是尝试连接BL702的JTAG。虽然BL702的JTAG可以映射到任意引脚(经典IOMUX),但在上电时默认有4个引脚是使能为JTAG功能,因此调试时最好还是使用这几个引脚比较合适。
经过一番研究(还跑去官方论坛确认了一下😅),连接方式如下:
GPIO0 -> TMS
GPIO1 -> TDI
GPIO2 -> TCK
GPIO9 -> TDO
需要注意的是,RV-Debugger Plus的默认固件将这几个引脚复用了,因此需要在上电时按住Boot按键进入ISP模式才行(此时设备管理器可以发现一个虚拟串口设备);另外,由于RV-Debugger Plus将GPIO9用作LED,因此需要断开链接并且手动飞线。
首先用J-Link连接。J-Link更新到最新版本后是支持SiFive E24的,因此使用起来很方便,直接可以识别。
接下来使用OpenOCD搭配FT232H连接。最新的OpenOCD v0.11.0支持RISC-V,因此只需要为SiFive E24添加配置文件即可,当然你也可以使用SDK里面的配置。这里我贴一份从sifive-e31arty.cfg改过来的配置,使用方法见注释:
#
# Be sure you include the speed and interface before this file
# Example:
# -c "adapter speed 5000" -f "interface/ftdi/olimex-arm-usb-tiny-h.cfg" -f "board/sifive-e31arty.cfg"
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000E05
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
$_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
# flash bank spi0 fespi 0x40000000 0 0 0 $_TARGETNAME.0 0x20004000
init
# if {[ info exists pulse_srst]} {
# ftdi_set_signal nSRST 0
# ftdi_set_signal nSRST z
# }
halt
# flash protect 0 64 last off
echo "Ready for Remote Connections"
经过一番操作,OpenOCD也能正确连接上BL702了:
最后提一下,在SDK里面是有SVD文件的,虽然只有BL602,估计还需要等待进一步更新。
离线
开发板在哪买的,价格如何,看到rt-thread在推中科蓝汛的芯片,开发板AB32VG1配置比这个好点,只要4块钱,这个价格如何
现在能买到的貌似只有RV-Debugger Plus,不过这个其实是个调试器,意味着要当开发板用还是有点别扭。
如果想玩芯片的话。。建议直接问问@泽畔无材 老板。
离线