易灵思软核sapphire烧录运行配置

1、引导文件的介绍

4f6ef6944a454dff996e4fda3e391433.png

打开相对应的目录会看见bootloader.ld和default.ld文件,这两个文件就是软核的引导文件。

2、bootloader工程介绍

bootloader.ld专用于bootloader工程,default.ld用于其他工程,bootloader工程及其他工程路径如下:

ba883aee3892426c8df9e29be3fec306.png

打开bootloadeConfig.h文件,看看参数就知道bootloader工程的作用

95eeef2b4c5d4e28bdfab916405263af.png

USER_SOFTWARE_MEMORY 是软核程序搬运到ddr的起始地址,USER_SOFTWARE_FLASH是软核程序在flash中的起始地址,USER_SOFTWARE_SIZE是软核程序的大小。bootloader工程的作用就是从flash中搬运软核程序到ddr中。

注:由于软核生成ram太大,会占用资源;ram太小,程序跑不起来。很多项目会使用ddr代替软核生成的ram,程序保存在flash中掉电不丢失,但是上电后就需要把flash中的程序搬运到ddr中运行,这就需要bootloader工程。首先,要定位软核程序在的flash的位置,这就需要知道软核程序在flash中的起始位置和程序的大小,也是bootloadeConfig.h文件中的USER_SOFTWARE_FLASH和USER_SOFTWARE_SIZE。搬运到ddr后,我们也要定位到软核程序的位置,所以还需要知道软核在ddr中的起始位置,这对应USER_SOFTWARE_MEMORY参数。

3、不需要ddr运行软核程序的工程,软核程序烧录

当我们不需要把程序放在ddr上运行时,自然就不需要用到bootloader工程。

需要通过cmd指令生成4个ram初始化文件,打开README-binGen.txt文件

可以看到如下内容:

c3bab2e6fcad454eb28967396903ca7c.png

这是生成ram初始化文件的步骤。

把编译软核工程生成的.bin文件复制粘贴到tool文件夹下

在cmd中运行Efinity软件安装路径下的Efinity\2021.2\bin>setup.bat脚本,再运行python3 binGen.py -b <application.bin> -f <fpu> -s <ram size>指令。

注:-s <RAM size>为设置的片上ram的大小,-f <FPU>为是否打开浮点,FPU设置为1打开生成8个bin;FPU设置为0不打开生成4个bin。如下:

74e0046aaff24cdd96854f7e8955df1e.png

The RAM memory initialization files have been successfully generated!初始化文件成功生成。

打开tool文件夹下的rom可以看到4个文件。

e543d36aa97f4e5bb0421cfaf5b966bd.png

把4个文件复制贴到工程的根目录下,再次编译工程

 

e6698025cb8e4959836938b91a5520c6.png

编译成功后把outflow中的.bin或.hex文件下载到FPGA中即可。

4、需要ddr运行软核程序的工程,软核程序烧录

软核的程序太大,需要用ddr来跑软核的程序时,就是bootloader工程大显身手的时候。

首先编译bootloader工程,不出意外的话编译会失败,原因是ram太小。这时就需要改动引导文件。打开bootloader.ld文件

b3efde1b5fea4a6ba8b18e264acf3054.png

可以看到如下信息:

2e17ed5c0d2e4715a443a08b9b50438b.png

我们需要注意origin和length,origin要等于bootloaderConfig.h头文件中USER_SOFTWARE_MEMORY的值,改大两个length值,两个length加起来要小于等于软核生成的ram。软核生成的ram有多大,可以重配置软核IP看到。

cea8ebd1d81641248466ed29fa64d50a.png

如上所示,on-chip RAM Size是8K。

之后,重新编译bootloader工程

cb3310f84eb54729990f074f65ab5856.png

编译成功后,把生成的.bin文件bootloader.bin复制到tool文件夹下

25899ff185a542c7927d6c0b085321a3.png

然后运行cmd指令生成初始化文件。

在cmd中运行Efinity软件安装路径下的Efinity\2021.2\bin>setup.bat脚本,再运行python3 binGen.py -b <application.bin> -f <fpu> -s <ram size>指令

注意: <application.bin>是改成bootloader.bin。

初始化文件成功生成。打开tool文件夹下的rom可以看到4个文件。把4个文件复制贴到工程的根目录下,再次编译工程。接下来就是合并逻辑端的.hex文件和软核的应用程序。

bbf27a8f1f864009b572b0b04a0f2a7f.png

然后把生成.hex文件烧进FPGA就行。

 

 

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值