这个是国人出品的超便宜BL702开发板,引脚基本都接出来了,可以说是非常紧张了,在这么点的引脚下,这个芯片居然用的是JTAG(4线)标准,那如果要JTAG调试,再连接下载口,这个板子上就没IO可用啦~
这个芯片的MJPEG和无线功能暂时是废物,其实两年多前就有人催官方维护了,但是似乎从来没人关心这个,这也是国产公司典型了,PPT重要,技术是次要,文档是不必要.
具体支持情况.
原理图其实已经不太需要看了,主要看引脚引出.除了GPIO17是ADC输入麦克风的模拟量,其他都标注了.
平头哥的内核都有点奇怪,如果你用第三方编译器,性能就很难发挥,所以我还是用官方提供的.
cd ~
git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_linux.git
echo "export PATH=\"$PATH:~/toolchain_gcc_t-head_linux/bin\"" >> ~/.bashrc
source ~/.bashrc
具体配置文档在这里,我就不搬运了.
https://bl-mcu-sdk.readthedocs.io/zh-cn/latest/get_started/get_started.html#sdk
JTAG调试引脚在哪里我一开始看着手册也很懵逼,看起来每个IO都可能是JTAG,后来看了看才知道,有上电默认的JTAG接口,真是奇怪的设计,比如这个板子是BL702,JTAG刚好就在左边四个IO.
CKLink的话可以DIY可以自己做,JLink经常丢目标,暂时还没知道具体原因,默认串口又要接到IO14(TXD),IO15(RXD)来下载,当然用官方默认的UF2拖拽方式也行,我这里就是想看看原生配置.
结果我跑的第一个例子就挂了,毕竟我要用的是JTAG调试,默认GPIO程序居然占用了JTAG,只能稍微修改了.
烧录要进BOOT模式,就是IO28接3V3,这里也接了个线出来方便处理.
下载完成.
必须恢复到运行模式,才能运行程序,但是这时候程序已经开始运行了,JTAG连接后已经是运行一段时间了,还不能复位.
而且我不管怎么运行,他都是不会继续的,实际LED也不会变,所以我就试试是不是Eclipse调用问题,但是他是官方推荐方法,之前我也试了VSC也是,那么,我就直接使用GDB命令.
riscv64-unknown-elf-gdb -tui build/build_out/gpio_input_output_bl702.elf
还不能按复位,按一下复位GDB就掉了,居然是调试内核没单独复位啊.
看来是GDB调用问题.
难道是因为这个GDB不太标准?
好吧,这样的调试还不如像51单片机那样,下载观察结果算了,够失望的.而且还会一大堆IO没法用,为什么不用Sipeed开发的Bootloader呢,因为这个Bootloader有点病,一旦USB不插在电脑上,程序不会运行.
也不要说买了板子什么都不跑吧.
参考补丁:https://github.com/nickfox-taterli/bouffalo_sdk/commit/75a8291f7592ef7430e57875a0938a7954d92eb2
两年前用博流最新款的芯片,提供的API根本不能用,踩坑后向官方提交,一天后才会更新git,还不保证能用。简单的ADC使用硬拖了两三天。。。被坑惨了