2020年5月份,因为老婆有笔几百块钱的经费,所以买了一块荔枝糖FPGA加调试器玩玩;那就顺便玩玩有人已经跑通的蜂鸟E203软核。
上手后,安陆的TD软件安装很顺利,官方教程上也下载了带有全套工具链和环境的Ubuntu虚拟机。照着群里的教程想搞一个helloworld玩玩,问题来了。
首先是helloworld无法编译的问题,后来知道是中断的问题,在Makefile中把编译选项修改一下,禁用PLIC:
编译成功,运行sudo ./run_upload.sh hello, openocd报错,提示不认识flash,ID=xxx;
辗转查询学习加摸索,发现要修改openocd的源文件,添加flash参数和ID code,重新编译安装openocd。
从github上下载蜂鸟E203 openocd,因为网速太慢,我已经放到了gitee上
cd openocd/LicheeTang_openocd/src/flash/nor, vim spi.c
添加芯天下这款Flash信息,xtx(芯天下)的datasheet可以网上下一个看看,8Mbit容量,sector size=4KByte,听群友说以前荔枝糖的板子用的是w25q80的flash。为什么我知道是这个文件呢,因为我grep了micron关键字。https://ithelp.ithome.com.tw/articles/10197309 这个网站也给了我一些灵感。
然后就是编译安装openocd:
./boostrap; 如果有libtool的问题,就先安装automake;
./configure --prefix=~/openocd --enable-ftdi --enable-openjtag; 可以./configure -h 查看option,如果有libusb缺少,则apt/dnf安装即可,有undefined macro,AC_DEFINE,AC_MSG_WARNING什么的,就安装pkg-config
没有问题了就是make,make install;我安装过程中需要额外安装的依赖如下:
复制安装好的openocd到蜂鸟的工具链环境中去:
重新sudo ./run_upload hello
运行的结果: