Efinity RISC-V IDE入门使用-5

描述

一、Efinity工程

io_memoryClk是与存储器接口共用的时钟,需要连接正确。

UART

由于钛金系列是有片上晶振的,所以有些客户可能会选择片上晶振作为SOC的系统时钟或者选择片上晶振作为PLL的参考时钟,再由该PLL的输出时钟作为SOC的系统时钟,但是由于片上晶振频率偏差比较大,所以UART的波特率是不准确的,这也是为什么UART出问题的原因。

FLASH

flash管脚interface设置。

flash出问题也是一个很常见的问题,

之前遇到有客户反馈riscv 烧写到flash启动不了,原因是 riscv 必须要控制flash,因为bootloader会读取flash中的数据用于加载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发布之后,这直没有时间操作一下,它为RISC-V ' C '和' c++ '软件开发提供了一个完整、无缝的环境;今天终于安装了,但安装自不必多说,一路点击下去就可以了。来体验一把。

2.1 打开IDE自带工程。
(1)首先打开软件。

step1:选择工程的工作空间。如果工作空间长时间不变可以勾选Use this as the default and do not ask agin。

与老版本的区别是,新版本可以将该选择到任何地方。

IDE

step2:生成sapphire的example。

 

step2: Import工程。选择Import Projectes... 或者在Project Explorer中右击,然后选择Import... 或者File -> Import.

IDEIDE

step3:在打开的Import对话框中选择Efinix Projects-> Efinix Makefile Project可以导入。

IDE

 

step4:选择bsp位置,这里我选择

D:FPGA_Prj9_T120F3241_RISCV_DEMOT120F324_devkitembedded_swefx_socbsp

如果是FreeRTOS的话,两个都要输入。

IDE

setp5:选择下一步,然后勾选相应工程前面的方框,点击finish即可以导入相应的demo工程。

IDE

step6:右键选择build Project.

step7:run或者debug。

从2022版本之后,只要把路径转换到soc之后,不需要再设置debug路径

IDE

这里以gpioDemo为例。

IDE

进入debug调试界面。

IDE

查看串口打印信息,在Window->Show View ->Terminal-> open the termianl。选择Serial Terminal设置相关的串口信息。

IDEIDE

 

2.2 Debug优化设置

OpenOCD有三个环境变量,DEBUG,BENCH,DEBUG_OG.

IDE

在IP生成时,可以通过Application Debug Mode设置Debug开关状态,在/embedded_sw/bsp/efinix/EfxSapphireSoc/include/soc.mk

IDE

下面是osc.mk关于DEBUG与DEBUG_OG的设置。

 

IDE

当然也可以在Window -> Preferences进行修改。

IDE

或者在工程的makefile中修改

IDE

在调试完成后推荐的设置是

DEBUG = NO

DEBUG_OG = NO

BENCH = no/yes[-O3生成的文件会比-Os大,速度会快一点,但是也是个位数百分比的]

 

2.3 debug问题补充

 

其实在Debug时经常会报出以下问题:
 

Error: no device found

Error: unable to open ftdi device with vid 0403, pid 6014, description 'ELITES-232DL', serial '*' at bus location '*'

IDE

这个错误其实并不陌生,文档也有一个相关的记录.

    目前易灵思的下载器使用的是FTDI的 FT232,FT2232和FT4232方案。下图是FT2232和FT4232芯片的原理图,FT2232有channel 0,1两个通道,在下图已经标出。FT4234有channel 0,1,2,3共4个通道;而ELITES-232DL使用的是FT232,它只有channel 0.所以在使用不同的下载噐方案时,尤其是在对RISCV进行debug时就是使用不同的配置参数;否则就会报上面的错误。

 

IDEIDE

那么怎么区别下载器使用的是什么芯片方案及对应的JTAG channel号呢?这个在打开programmer之后,就可以看到相应的ID.位置如下图所示。而channel号是由易灵思的驱动来指定的,下表中列出JTAG使用的channel号。

IDE
FTDI器件 ID JTAG channel
FT232 0403:6014 0
FT2232 0403:6010 1
FT4232 0403:6011 1

在上面的图中我们还把USB Target用红色框框了出来,因为不同的下载器名字是不一样的,也是要修改的。

 

知道了上面的信息之后,我们就可以很清楚的知道我们的下载器使用的器件情况。

到现在我们可以对上面的报错进行修改了,出现上面的报错时应该怎么样修改呢?这里还要分两种情况,一种是hard jtag,另一种是soft的JTAG。区别在于修改的文件不同。

 

对于hard jtag,我们需要把embedded_swsoc_xxbspefinixEfxSapphireSocopenocdftdi.cfg(或者ftdi_ti.cfg,其中ftdi.cfg用于trion系列,而ftdi_ti.cfg 用于钛金系列)修改成下载器读出来的名字,这里包括ftdi_device_descftdi_vid_pidftdi_channel三个参数,只需要按照上面的说明配置即可。

IDE

 

比如以YLS_DL下载器为例,

IDE它使用的是FT2232的方案。修改结果如图。

IDE

对于soft jtag,老版本的EFinity修改的是c232hm_ddhsl_0.cfg文件,而在2023.1版本的RISCV中已经没有c232hm_ddhsl_0.cfg文件了。代之的是一个external.cfg文件。里面的内部与上面的是一样的。

 

 

另外也遇到过修改了上面的问题还是存在问题的,经过确认客户安装的驱动是libusb-win32,可以用zadig的libusbk试试。

IDE

 

 

2.4、新建工程

File -> New -> Project...

IDE

可以选择Standalone也可以选择FreeRTOS

IDE

 

三、接口操作

 

APB3接口

请在公众号中搜索"APB3接口应用"

GPIO 

请在公从号中搜索"SOC GPIO操作”

 

四、逻辑文件与RISCV工程文件合并烧写

在programmer中点击Combine Multiple Image Files。打开Combine Multiple Image Files对话框,

IDE

选择Generic Image Combination.并选择右侧的“*”添加文件,逻辑文件是生成的hex文件,RISCV工程生成的是bin文件。

IDE

输入output file 文件名。指定地址,逻辑文件地址为0,

 

软核的起始地址是大工程中指定的起始文件,最后点击Aplly。

IDE

把合成的文件烧写到flash。

 

最后:

我们会为各种应用提供相应的demo,欢迎关注我们的硬件平台

IDE


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分