一、Efinity工程
io_memoryClk是與存儲(chǔ)器接口共用的時(shí)鐘,需要連接正確。
由于鈦金系列是有片上晶振的,所以有些客戶可能會(huì)選擇片上晶振作為SOC的系統(tǒng)時(shí)鐘或者選擇片上晶振作為PLL的參考時(shí)鐘,再由該P(yáng)LL的輸出時(shí)鐘作為SOC的系統(tǒng)時(shí)鐘,但是由于片上晶振頻率偏差比較大,所以UART的波特率是不準(zhǔn)確的,這也是為什么UART出問題的原因。
FLASH
flash管腳interface設(shè)置。
flash出問題也是一個(gè)很常見的問題,
之前遇到有客戶反饋riscv 燒寫到flash啟動(dòng)不了,原因是riscv必須要控制flash,因?yàn)閎ootloader會(huì)讀取flash中的數(shù)據(jù)用于加載APP;
(2)flash的IO輸入輸出都要添加IO寄存器,之前遇到有客戶不能讀寫flash的情況。
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ā)布之后,這直沒有時(shí)間操作一下,它為RISC-V ' C '和' c++ '軟件開發(fā)提供了一個(gè)完整、無縫的環(huán)境;今天終于安裝了,但安裝自不必多說,一路點(diǎn)擊下去就可以了。來體驗(yàn)一把。
2.1 打開IDE自帶工程。
(1)首先打開軟件。
step1:選擇工程的工作空間。如果工作空間長(zhǎng)時(shí)間不變可以勾選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對(duì)話框中選擇Efinix Projects-> Efinix Makefile Project可以導(dǎo)入。
step4:選擇bsp位置,這里我選擇
D:\FPGA_Prj\09_T120F324\01_RISCV_DEMO\T120F324_devkit\embedded_sw\efx_soc\bsp
如果是FreeRTOS的話,兩個(gè)都要輸入。
setp5:選擇下一步,然后勾選相應(yīng)工程前面的方框,點(diǎn)擊finish即可以導(dǎo)入相應(yīng)的demo工程。
step6:右鍵選擇build Project.
step7:run或者debug。
從2022版本之后,只要把路徑轉(zhuǎn)換到soc之后,不需要再設(shè)置debug路徑
這里以gpioDemo為例。
進(jìn)入debug調(diào)試界面。
查看串口打印信息,在Window->Show View ->Terminal-> open the termianl。選擇Serial Terminal設(shè)置相關(guān)的串口信息。
其實(shí)在Debug時(shí)經(jīng)常會(huì)報(bào)出以下問題:
Error:nodevicefound
Error:unabletoopenftdidevicewithvid0403,pid6014,description'ELITES-232DL',serial'*'atbuslocation'*'
這個(gè)錯(cuò)誤其實(shí)并不陌生,文檔也有一個(gè)相關(guān)的記錄.
目前易靈思的下載器主要使用的是FTDI的 FT232,FT2232和FT4232方案。下圖是FT2232和FT4232芯片的原理圖,F(xiàn)T2232有channel 0,1兩個(gè)通道,在下圖已經(jīng)標(biāo)出。FT4234有channel 0,1,2,3共4個(gè)通道;而ELITES-232DL使用的是FT232,它只有channel 0.所以在使用不同的下載噐方案時(shí),尤其是在對(duì)RISCV進(jìn)行debug時(shí)就是使用不同的配置參數(shù);否則就會(huì)報(bào)上面的錯(cuò)誤。
那么怎么區(qū)別下載器使用的是什么芯片方案及對(duì)應(yīng)的JTAG channel號(hào)呢?這個(gè)在打開programmer之后,就可以看到相應(yīng)的ID.位置如下圖所示。而channel號(hào)是由易靈思的驅(qū)動(dòng)來指定的,下表中列出JTAG使用的channel號(hào)。
FTDI器件 | ID | JTAG channel |
FT232 | 0403:6014 | 0 |
FT2232 | 0403:6010 | 1 |
FT4232 | 0403:6011 | 1 |
在上面的圖中我們還把USB Target用紅色框框了出來,因?yàn)椴煌南螺d器名字是不一樣的,也是要修改的。
知道了上面的信息之后,我們就可以很清楚的知道我們的下載器使用的器件情況。
到現(xiàn)在我們可以對(duì)上面的報(bào)錯(cuò)進(jìn)行修改了,出現(xiàn)上面的報(bào)錯(cuò)時(shí)應(yīng)該怎么樣修改呢?這里還要分兩種情況,一種是hard jtag,另一種是soft的JTAG。區(qū)別在于修改的文件不同。
對(duì)于hard jtag,我們需要把embedded_sw\soc_xx\bsp\efinix\EfxSapphireSoc\openocd\ftdi.cfg(或者ftdi_ti.cfg,其中ftdi.cfg用于trion系列,而ftdi_ti.cfg 用于鈦金系列)修改成下載器讀出來的名字,這里包括ftdi_device_desc,ftdi_vid_pid及ftdi_channel三個(gè)參數(shù),只需要按照上面的說明配置即可。
比如以YLS_DL下載器為例,
它使用的是FT2232的方案。修改結(jié)果如圖。
對(duì)于soft jtag,老版本的EFinity修改的是c232hm_ddhsl_0.cfg文件,而在2023.1版本的RISCV中已經(jīng)沒有c232hm_ddhsl_0.cfg文件了。代之的是一個(gè)external.cfg文件。里面的內(nèi)部與上面的是一樣的。
另外也遇到過修改了上面的問題還是存在問題的,經(jīng)過確認(rèn)客戶安裝的驅(qū)動(dòng)是libusb-win32,可以用zadig的libusbk試試。
2.2、新建工程
File -> New -> Project...
可以選擇Standalone也可以選擇FreeRTOS
三、接口操作
APB3接口
請(qǐng)?jiān)诠娞?hào)中搜索"APB3接口應(yīng)用"
GPIO
請(qǐng)?jiān)诠珡奶?hào)中搜索"SOC GPIO操作”
四、邏輯文件與RISCV工程文件合并燒寫
在programmer中點(diǎn)擊Combine Multiple Image Files。打開Combine Multiple Image Files對(duì)話框,
選擇Generic Image Combination.并選擇右側(cè)的“*”添加文件,邏輯文件是生成的hex文件,RISCV工程生成的是bin文件。
輸入output file 文件名。指定地址,邏輯文件地址為0,
軟核的起始地址是大工程中指定的起始文件,最后點(diǎn)擊Aplly。
把合成的文件燒寫到flash。
最后:
我們會(huì)為各種應(yīng)用提供相應(yīng)的demo,歡迎關(guān)注我們的硬件平臺(tái)
原文標(biāo)題:Efinity RISC-V IDE入門使用-4
文章出處:【微信公眾號(hào):易靈思FPGA技術(shù)交流】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
FPGA
+關(guān)注
關(guān)注
1624文章
21616瀏覽量
601108
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論