LINUX SHELL下利用SYSFS加载PL侧bitstream

xlnx-linux2017.4版本。
首先,make menuconfig
我们需要选择
device driver --> char device --> xilinx devcfg
选中这个选项后,才会编译生成.o文件。
然后make all
然后make uImage

替换掉ZED上的内核,
进入SHELL,首先
# ls -l /dev
我们会在下面发现设备文件xdevcfg。
说明已经系统已经有了这个CDEV设备。

写一个脚本,取名load_pl。放在/usr/bin下面。
# chomod 777 ./load_pl
# vi load_pl
在vi下,加入
echo “starting load pl…”
echo “bitstream file is : $1”
cat $1 > /dev/xdevcfg
echo “load pl completed…”
保存退出。

注意:
必须用cat,不能用echo。否则会报告丢失若干字节的错误。

在/lib/firmware下,
# load_pl mytest.bit
DONE灯亮起来后,bitstream就开始运行了。
注意:
如果屏幕停留在
bitstream file is : mytest.bit
说明PL侧加载完成后,PS侧挂掉了。

如果屏幕打印出
load pl completed…
说明PL侧加载完成后,PS侧没有挂掉。

另外一种方法是,利用FPGA MANAGER。
前提是,make menuconfig时,选中了FPGA MANAGER的支持。
如果启动加载fpga manager成功,那么可以在
/sys/class/fpga_manager下面,找到fpga0文件夹。
否则,没有fpga0这个文件夹。
在fpga0文件夹下面,
可以看到有个文件flags。
# echo 0 > flags
配置为FULLSTREAM模式。
#vi /etc/profile
修改profile启动环境配置脚本。加入一句
export PL="/sys/class/fpga_manager/fpga0/firmware"
配置一个环境变量,方便使用。
回到SHELL,
# echo mytest.bit > $PL
开始加载PL。

当然,我们仍然可以写成脚本,这样更方便,也更符合使用规范。
对于临时使用的命令,我们在shell中直接敲命令,可以。
对于已经固化的操作流程,建议一律写成脚本执行。这符合LINUX系统应用规范,而且大大减少了人工输入的工作量,提高效率。

在/usr/bin下,新建一个脚本,取名fpgam。
# chmod 777 fpgam
# vi fpgam
加入如下内容:
echo “starting fpga manager load pl…”
echo “bitstream file is : $1”
echo 0 > ${PL}/…/flags
echo $1 > $PL
echo “fpga manager load pl completed…”
保存退出。

在shell下测试。
# fpgam mytest.bit
DONE灯亮起来,说明PL加载成功并运行起来了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值