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
運行的結果: