一、Efinity工程
io_memoryClk是與存儲器接口共用的時鐘,需要連接正確。
由于鈦金系列是有片上晶振的,所以有些客戶可能會選擇片上晶振作為SOC的系統(tǒng)時鐘或者選擇片上晶振作為PLL的參考時鐘,再由該PLL的輸出時鐘作為SOC的系統(tǒng)時鐘,但是由于片上晶振頻率偏差比較大,所以UART的波特率是不準確的,這也是為什么UART出問題的原因。
FLASH
flash管腳interface設置。
flash出問題也是一個很常見的問題,
之前遇到有客戶反饋riscv 燒寫到flash啟動不了,原因是 riscv 必須要控制flash,因為bootloader會讀取flash中的數(shù)據(jù)用于加載APP;
(2)flash的IO輸入輸出都要添加IO寄存器,之前遇到有客戶不能讀寫flash的情況。
Instance Name |
Ext_flash_clk
|
Ext_flash_cs
|
Mode
|
output
|
output
|
I/O Standard
|
1.8V LVCMOS
|
1.8V LVCMOS
|
Connection Type
|
--
|
--
|
Register Option
|
register
|
register
|
Double Data
I/O Option
|
none
|
none
|
Enable Serialization
|
No
|
No
|
Clock Pin Name
|
soc_clk
|
soc_clk
|
Pull Option
|
-
|
-
|
Drive Strenght
|
4
|
4
|
Instance Name
|
Ext_falsh_dx
|
||
Base
|
Output
|
||
Mode
|
inout
|
Constant Output
|
none
|
I/O Standard
|
1.8V lvcmos
|
Register Option
|
register
|
Input
|
Double Dat
|
none
|
|
Connection Type
|
normal
|
Enable Serialization
|
No
|
Register Option
|
register
|
Drive Strength
|
4
|
Clock
|
Clk
|
Enable Slew Rate
|
No
|
Double data
|
None
|
Static Delay Setting
|
0
|
Pull Option
|
None
|
Output Enable
|
|
Enable Schmitt
|
No
|
Register Option
|
Register
|
Enable bus hold
|
No
|
Oputput Clock
|
|
Static Delay setting
|
0
|
Pin Name
|
Clk
|
Inverted
|
No
|
二、RISCV 工程
自從新版本的Efinity RISC-V IDE發(fā)布之后,這直沒有時間操作一下,它為RISC-V ' C '和' c++ '軟件開發(fā)提供了一個完整、無縫的環(huán)境;今天終于安裝了,但安裝自不必多說,一路點擊下去就可以了。來體驗一把。
2.1 打開IDE自帶工程。
(1)首先打開軟件。
step1:選擇工程的工作空間。如果工作空間長時間不變可以勾選Use this as the default and do not ask agin。
與老版本的區(qū)別是,新版本可以將該選擇到任何地方。

step2:生成sapphire的example。
step2: Import工程。選擇Import Projectes... 或者在Project Explorer中右擊,然后選擇Import... 或者File -> Import.


step3:在打開的Import對話框中選擇Efinix Projects-> Efinix Makefile Project可以導入。

step4:選擇bsp位置,這里我選擇
D:FPGA_Prj9_T120F3241_RISCV_DEMOT120F324_devkitembedded_swefx_socbsp
如果是FreeRTOS的話,兩個都要輸入。

setp5:選擇下一步,然后勾選相應工程前面的方框,點擊finish即可以導入相應的demo工程。

step6:右鍵選擇build Project.
step7:run或者debug。
從2022版本之后,只要把路徑轉換到soc之后,不需要再設置debug路徑

這里以gpioDemo為例。

進入debug調試界面。

查看串口打印信息,在Window->Show View ->Terminal-> open the termianl。選擇Serial Terminal設置相關的串口信息。


2.2 Debug優(yōu)化設置
OpenOCD有三個環(huán)境變量,DEBUG,BENCH,DEBUG_OG.

在IP生成時,可以通過Application Debug Mode設置Debug開關狀態(tài),在/embedded_sw/bsp/efinix/EfxSapphireSoc/include/soc.mk

下面是osc.mk關于DEBUG與DEBUG_OG的設置。

當然也可以在Window -> Preferences進行修改。

或者在工程的makefile中修改

在調試完成后推薦的設置是
DEBUG = NO
DEBUG_OG = NO
BENCH = no/yes[-O3生成的文件會比-Os大,速度會快一點,但是也是個位數(shù)百分比的]
2.3 debug問題補充
其實在Debug時經(jīng)常會報出以下問題:
Error: no device found
Error: unable to open ftdi device with vid 0403, pid 6014, description 'ELITES-232DL', serial '*' at bus location '*'
這個錯誤其實并不陌生,文檔也有一個相關的記錄.
目前易靈思的下載器主要使用的是FTDI的 FT232,FT2232和FT4232方案。下圖是FT2232和FT4232芯片的原理圖,F(xiàn)T2232有channel 0,1兩個通道,在下圖已經(jīng)標出。FT4234有channel 0,1,2,3共4個通道;而ELITES-232DL使用的是FT232,它只有channel 0.所以在使用不同的下載噐方案時,尤其是在對RISCV進行debug時就是使用不同的配置參數(shù);否則就會報上面的錯誤。


那么怎么區(qū)別下載器使用的是什么芯片方案及對應的JTAG channel號呢?這個在打開programmer之后,就可以看到相應的ID.位置如下圖所示。而channel號是由易靈思的驅動來指定的,下表中列出JTAG使用的channel號。

FTDI器件 | ID | JTAG channel |
FT232 | 0403:6014 | 0 |
FT2232 | 0403:6010 | 1 |
FT4232 | 0403:6011 | 1 |
在上面的圖中我們還把USB Target用紅色框框了出來,因為不同的下載器名字是不一樣的,也是要修改的。
知道了上面的信息之后,我們就可以很清楚的知道我們的下載器使用的器件情況。
到現(xiàn)在我們可以對上面的報錯進行修改了,出現(xiàn)上面的報錯時應該怎么樣修改呢?這里還要分兩種情況,一種是hard jtag,另一種是soft的JTAG。區(qū)別在于修改的文件不同。
對于hard jtag,我們需要把embedded_swsoc_xxbspefinixEfxSapphireSocopenocdftdi.cfg(或者ftdi_ti.cfg,其中ftdi.cfg用于trion系列,而ftdi_ti.cfg 用于鈦金系列)修改成下載器讀出來的名字,這里包括ftdi_device_desc,ftdi_vid_pid及ftdi_channel三個參數(shù),只需要按照上面的說明配置即可。
比如以YLS_DL下載器為例,
它使用的是FT2232的方案。修改結果如圖。

對于soft jtag,老版本的EFinity修改的是c232hm_ddhsl_0.cfg文件,而在2023.1版本的RISCV中已經(jīng)沒有c232hm_ddhsl_0.cfg文件了。代之的是一個external.cfg文件。里面的內部與上面的是一樣的。
另外也遇到過修改了上面的問題還是存在問題的,經(jīng)過確認客戶安裝的驅動是libusb-win32,可以用zadig的libusbk試試。

2.4、新建工程
File -> New -> Project...

可以選擇Standalone也可以選擇FreeRTOS

三、接口操作
APB3接口
請在公眾號中搜索"APB3接口應用"
GPIO
請在公從號中搜索"SOC GPIO操作”
四、邏輯文件與RISCV工程文件合并燒寫
在programmer中點擊Combine Multiple Image Files。打開Combine Multiple Image Files對話框,

選擇Generic Image Combination.并選擇右側的“*”添加文件,邏輯文件是生成的hex文件,RISCV工程生成的是bin文件。
輸入output file 文件名。指定地址,邏輯文件地址為0,
軟核的起始地址是大工程中指定的起始文件,最后點擊Aplly。

把合成的文件燒寫到flash。
最后:
我們會為各種應用提供相應的demo,歡迎關注我們的硬件平臺
-
IDE
+關注
關注
0文章
358瀏覽量
48491 -
RISC-V
+關注
關注
47文章
2694瀏覽量
50787
發(fā)布評論請先 登錄
FPGA與RISC-V淺談

芯來科技亮相RISC-V Day Tokyo 2025
關于RISC-V芯片的應用學習總結
RISC-V MCU技術
RISC-V 與 ARM 架構的區(qū)別 RISC-V與機器學習的關系
如何使用 RISC-V 進行嵌入式開發(fā)
關于RISC-V學習路線圖推薦
《RISC-V能否復制Linux 的成功?》
什么是RISC-V?以及RISC-V和ARM、X86的區(qū)別
RISC-V發(fā)展及FPGA廠商為什么選擇RISC-V

評論