win10 jungo windriver

article/2025/9/18 16:22:00

目录

前言

1、安装windriver

1.1、disable Secure Boot

1.2、digital driver signing enforcement

2、FPGA 逻辑下载及PCIE驱动安装

2、PCIE PIO通信测试

3、PCIE DMA通信测试

3.1、vs打开BMD工程

3.2、流程演示

3.3、VS2015 PCIE DMA驱动调试程序

3.4、DMA板卡测试流程

总结


 

前言

声明:本文仅适用于学习交流!本文使用的软件平台,请支持正版软件。

本文从FPGA硬件工程师的角度进行测试与记录。

相关博客参考:

         五、Xilinx PCIE CORE学习;

        六、Xilinx PCIE DMA--Sparten6/Kintex-7 BMD

        七、Xilinx PCIE DMA 仿真环境搭建

        八、win10 jungo windriver

 

 

 

 

PC系统:win10 教育版 1809

电脑主板:华硕

FPGA工程:SPARTEN6 (基于xapp1052修改)

visual_studio:2015。

jungo windriver:v14.3.0  x86_64 (本文使用的是30天试用版,试用不收费。30天过后会收费

jungo windriver下载网址:http://www.jungo.com/st/products/windriver/thank-you/

 

1、安装windriver

安装jungo windriver遇到的问题如下图所示:

主要问题为两个:

(1)电脑被Secure Boot保护,需要disable Secure Boot。

(2)digital driver signing enforcement。

 

1.1、disable Secure Boot

首先,确定自己电脑厂家或主板厂家。我的电脑主板是华硕,以华硕为例。其他厂家稍有不同。

详细步骤:

(1)重启电脑,开机按【F2】或【DEL】进去BIOS设置界面。

(2)在顶部菜单栏,点击进入【启动】。

(3)选择【快速启动】,将其设置为【disabled】状态。

(4)点击进入【安全启动菜单】,将【操作系统类型】从原来的windows更改为【其他操作系统】

(5)点击进入【密钥管理】,点击【清除安全启动密钥】,确认清除。

(6)返回安全启动菜单,此时【安全启动状态】即secure boot已关闭。保存设置,退出即可。

 

1.2、digital driver signing enforcement

打开win10 的设置,进入“更新和安全”---恢复----“高级启动”下面的“立即重新启动”,会进入一个重启界面,选择一个选项:“疑难解答”,接着选择“高级选项”,然后选择“查看更多恢复选项”,选择“启动设置”,点击重启,选择“禁用驱动程序强制签名”(就是按数字键7)

若遇到其他Windrive报的错误(具体错误忘记录了),可尝试将下面Base Class设置为Memory controller试试。
 

 

 

2、FPGA 逻辑下载及PCIE驱动安装

测试流程

(1)下载FPGA程序(bit/mcs);

(2)打开windriver,按照下图产生PCIE驱动;

 (3)按照下图所示勾选;

 

(3)打开设备管理器,更新PCIE驱动,选择刚才windrive生成的PCIE驱动即可。

(4)win10系统禁用系统签名:更新--恢复--高级启动--立即重新启动--(后续步骤参考百度百科)

(5)电脑自动开启重启后,可以进行PIO测试和BMD测试。

 

 

2、PCIE PIO通信测试

FPGA测试工程,可以使用PCIE IP自带的example工程即可,添加好对应的约束。

如果自己基于xapp1052搭建的BMD工程,想对其测试PIO操作的话,也可以参考。

测试流程

(1)下载FPGA程序(bit/mcs)。若程序下载好请跳过此步骤。

(2)关机重启,电脑重启过程中对PCIE IP执行复位动作/并分配相应的地址。若程序下载好,请跳过此步骤。

(3)使用chipscope下载cdc观察文件。步骤:file--import--**.cdc,选择对应的cdc文件。下载mcs和bit效果一样,开机后都需要下载cdc文件,用于chipscope观察波形。(mcs文件需要板卡断电,bit需要关机重启)

(4)打开windrive,PIO读写 PCIE,chipscope触发观察波形。

 

图文步骤:

首先,自己基于xapp1052搭建的BMD工程,需要对其进行modelsim PIO仿真通过,以确定该BMD工程的完整性。

之后,打开windrive

在generate pcie IP时,有设置相应的BAR空间,下图可以看到对应的BAR空间以及地址范围。

若进行与modelsim仿真一样的PIO测试,点击read/write memory,offset 值要设置为0x10,因为modelsim进行PIO仿真时,读写测试地址也是该地址。

从下面的测试结果可知,若offset不是0x10,则回读的数据不是写下去的数值。

 

3、PCIE DMA通信测试

软件版本:

windrive:v14.3.0  x86_64

visual_studio:2015。

FPGA工程:SPARTEN6 (基于xapp1052修改)

3.1、vs打开BMD工程

使用visual_studio2015打开windrive目录下的\xilinx\bmd_design\amd64\msdev_2015。(注意VS版本要与BMD程序版本一致)

可见vs工程目录如下图所示。

工程文件介绍():

文件功能
bmd_diag.cBMD测试主文件:用亍用户诊断和调试PCIe的DMA,PCIe的IO寄存器读写,配置空间信息的访问,以及DMA的读写等等。用户可以通过选择需要调试的选项进行FPGA PCIE的调试。
bmd_lib.cBMD测试库:bmd_diag.c相关的库凼数
diag_lib.c公共库:主要负责调试过程中调试信息的输入输出
pci_diag_lib.c公共库:主要负责打印PCI卡的信息以及PCI的配置寄存器信息
print_struct.c公共库:提供打印用户当前选择的PCI卡信息的相关函数
wdc_diag_lib.c公共库:主要是为用户提供WDC的相关底局驱劢凼数

 

3.2、流程演示

下图仅是参考。注意下图的vendor ID和Device ID。

(1)打开工程后,F5进入测试

(2)根据提示,依次输入:

  • 2,回车

  • vendor ID值,回车。(该数值来自PCIE IP CORE生成过程中的配置,根据自己PCIE IP实际值输入

  • Device ID值,回车。(该数值来自PCIE IP CORE生成过程中的配置,根据自己PCIE IP实际值输入

  • 7,回车。(7,是进行DMA读写测试)

 

 (3)设置的DMA TLP COUNT

注意下图中设置的DMA TLP COUNT =1,之后需要对比chipscope的波形。

3.3、VS2015 PCIE DMA驱动调试程序

  1. VS主程序代码925行变量:wTLPNumItems,该变量值表示TLP SIZE。可以通过修改该变量数值大小,来改变传输TLP SIZE的大小。TLP COUNT/TLP PATTERN参数的输入需要在程序运行的时候手动键盘输入;
  2. VS主程序代码925行函数:BMD_DmaDevicePrepare,该函数内部,配置PCIE 板块DMA 传输相关的寄存器,比如:TLP SIZE/TLP COUNT等寄存器都从该函数里发给PCIE 板卡;这里附上xapp1052手册里的访问步骤及配置寄存器数值,便于参考。
  3. VS主程序代码992行函数:将断电设置到下图函数里的992行处。当程序运行到断点时,使用chipscope等待触发;然后VS按F5运行到结束。chipscope触发条件:trn_rsof_n==0。可以观察DMA的传输波形。

 

 

3.4、DMA板卡测试流程

配置DMA传输寄存器:TLP SIZE=2 ;  TLP COUNT=1 ; TLP PATTERN=12345678

首先,传输方向:TO DEVICE,将数据从PC传输给PCIE 板块,并将数据存储在缓存BRAM中;BRAM写使能、写地址、写数据,trn_rx_data、trn_rx_sof、trn_rx_eof如下图所示:

  1. 首先,VS驱动配置DMA传输寄存器,之后PC发送START标志(也是通过PIO方式发送)给PCIE板卡,如RX接收模块时序下图所示;
  2. PCIE 板卡接受到START标志之后,PCIE板卡发送MRD请求事务给PC;
  3. PC接受到PCIE 板卡的WRD事务后,会响应该请求,将PC中的数据以CPLD报文的形式发送给PCIE板卡,时序如下图所示。

通过上面步骤,实现PC将数据传输给PCIE板卡,即 TO DEVICE。

之后,传输方向:FROM DEVICE,将数据从PCIE 板卡 传输给PC,将缓存中的数据读出、发送给PC;BRAM写使能、写地址、写数据,trn_tx_data、trn_tx_sof、trn_tx_eof如下图所示:

  1. 首先,VS驱动配置DMA传输寄存器,之后PC发送START标志(也是通过PIO方式发送)给PCIE板卡,如RX接收模块时序下图所示;
  2. 之后,PCIE 板卡TX发送模块读出缓存数据,并将数据通过MWR事务发给PC。

通过上面步骤,PCIE板卡将数据传输给PC,即FROM DEVICE。

 

总结

本次是以SPARTEN6芯片、基于XAPP1052搭建的工程,传输数据位宽trn_rd/trn_td位宽是32位。使用windrive提供的PCIE驱动,测试了BMD工程的PIO读写访问、DMA读写访问,使用chipscope抓取TLP包。

FPGA的话,需要进一步考虑提高传输速度。同时考虑传输数据位宽是 64/128的时候该如何搭建BMD工程。

 

 


http://chatgpt.dhexx.cn/article/dE4gReii.shtml

相关文章

win10 安装 Phoenix

文章目录 一、前置要求二、安装 Phoenix 一、前置要求 需要 Erlang 18 或更高版本需要 Elixir 1.5 或更高版本需要 Node.js 5.0.0 或更高版本 注意:Phoenix 默认使用 PostgreSQL 作为数据库 ,可以在创建新应用时通过参数 --database mysql 来切换到 MyS…

运行win7计算机需要多长时间,WIN7电脑运行太慢怎么解决

windows系统使用时间越长,系统越臃肿,速度也越来越慢,那么WIN7电脑运行太慢怎么解决呢?今天学习啦小编与大家分享下解决WIN7电脑运行太慢的具体操作步骤,有需要的朋友不妨了解下。 WIN7电脑运行太慢解决方法一 win7系统运行太慢一般有以下几个原因&…

win7硬件要求_九代酷睿平台装Win7的方法!2019年九代i5-9400F配B365装机配置单

九代酷睿平台可以装win7吗?理论上九代平台的主板都是不能安装Win7系统的,当然有九代酷睿平台装Win7的方法,不过需要特定的主板可以安装的,就在近期intel发布了B365主板,支持Win7系统,不过需要搭载独立显卡才可以支持,支持核显装机平台。下面装机之家分享一套针对2019年的…

win10安装Ubuntu16.04

第一次安装双系统,踩了不少坑,花了两三天才装好,因为电脑的不同(本人电脑联想小新i5),网上那些安装过程有些不适用,所以花了好长时间,甚至差点决定去重装系统了,为了以后…

HD2500显卡驱动linux,Intel发布HD Graphics 2500/4000显卡Win10驱动下载

IT之家讯 Intel发布了用于第三代CPU核心显卡HD Graphics 2500/4000的新版Win7/Win8.1/Win10驱动程序,版本号为15.33.39.4276,本次更新最大特点就是加入了对Win10的支持。但需要注意的是,Windows10系统安装该驱动过程中会提示“驱动程序未签名…

华硕u4000u 重装window7 重装win7 重装window10 重装win10 重装系统 戴尔 联想 鸿基 重装系统远程协助

很多人都会遇到华硕U4000或者U4000,window10降级成window7,各种ghost原版镜像都无法安装的问题。 下面就是解决步骤。 可以先参考博客:https://blog.csdn.net/jessical1020/article/details/64906925 boot设置 1.F2进入boot&a…

福利来了!手把手教你Python爬取女神套图

疲惫的生活里总要有些温柔梦想吧 目标URL:http://www.win4000.com/meinvtag4_1.html 爬取美桌网某个标签下的美女壁纸,点进详情页可以发现,里面是一组套图 一、网页分析 翻页查看 URL 变化规律: http://www.win4000.com/meinvt…

小新V4000 UEFI装WIN7系统

2.8、【保存更改】——》点【是】 2.9、然后在ESP分区点击【指派新的驱动器号(盘符)】 2.10、指派盘符之后,可看到ESP分区容量为空,指派的盘符是F盘 3、拷贝下载win7 旗舰版GHO文件进去。如果是虚拟机,你可以关闭虚拟机…

使用win10+RTX4000从零搭建pytorch+CUDA+cudnn的经验之谈

前言 最近有本地部署深度学习模型的需求,故采购了新电脑,以往都是在云端已经搭建好的环境下操作,还从来没有本地从零搭建,所以来总结一下昨天搭建时碰到的障碍和一些经验分享。注:本文不提供具体教程,因为…

(一)Win32进程通信 —— 自定义消息实现

自定义消息 系统定义消息,非用户定义,其范围在[0x0000,0x03ff] 之间,也就是说我们定义的消息的范围不能在这之间, 如果用户自定义的消息,可以使用如下两种方式(其实不止两种)&#x…

WIN7 命令行

查看具体端口占用情况:4000端口被QQ.exe占用了 C:\Users\Administrator>netstat -ano|findstr 4000 UDP 0.0.0.0:4000 : 4860 C:\Users\Administrator>tasklist|findstr 4860 QQ.exe 4860 Console 1 96,744 K ncpa.cpl打开网络设备管理窗口

爬虫实战——批量爬取明星图片(http://www.win4000.com/)

爬取网站 美桌(http://www.win4000.com) 由于该网站并没有robots协议,因此可以任意爬取。 技术路线 requestsre 除此之外用到了pypinyin库用于进行名字到拼音的转换 代码 # -*- coding: utf-8 -*- """ Created on Mon O…

Cleartext HTTP traffic to pic1.win4000.com not permitted

首先理解清楚字面意思: 不允许明文HTTP访问方式 理解字面意思之后,我们可以打开google官网,找到Android的http安全配置说明文档 大概意思是说,所有连接都应该使用安全连接( TLS 和 HTTPS 加密协议)默认均信任预装的…

给大家分享几个不错的高清壁纸网

正文: 很多朋友都在找壁纸,但是又不知道去哪里找,所有今天我给大家分享几个不错的壁纸站,当然不仅限于下面的这些壁纸站,其实壁纸站有非常得多,我只是随便给大家整理了几个。 1.极简壁纸: 网站地址:bz.z…

配置交叉编译工具链和环境变量

配置交叉编译工具链和环境变量 1 设置交叉编译工具链1.1 永久生效1.2 临时生效1.3 手动指定 2 测试交叉编译工具链2.1 测试环境变量2.2 测试交叉编译器 3 如何添加交叉编译工具链(toolchain)到环境变量?(--sysroot路径&#xff09…

配置交叉编译工具链

文章目录 1 配置交叉编译工具链1.1 永久生效1.2 临时生效1.3 手动指定 2 测试交叉编译工具链 简单记录一下配置交叉编译工具链的过程。 1 配置交叉编译工具链 交叉编译工具链存放于/home/book 目录下。设置交叉编译工具主要是设置 PATH, ARCH 和 CROSS_COMPILE 三个…

ARM学习(19)交叉编译工具链的理解

笔者来聊聊交叉编译工具链 1、认识 正常理解的,比如windows下编译出来windows上面运行,visual stdio,等,这是因为windows有能力编译出来,有对应的VC工具链,这是本地编译。 假如一个51板子或者stm32板子&a…

交叉编译工具链配置

第一步, 将文件放在Linux根目录下(目录可以自己选择,记住即可),通过下面命令解压: unzip aarch64-poky-linux-7.3-glibc-2.27.zip第二步: cd aarch64-poky-linux-7.3-glibc-2.27目录下&#…

构建gcc交叉编译工具链

如何构建一个GCC交叉编译工具链 GCC不仅是一个编译器,它是一个开源工程,可以让你建立各种编译器。一些编译器支持多线程,一些支持共享库,一些支持Multilib(典型的应用是在64位机上运行32位应用程序)&#…

ARM交叉编译工具链分类说明

为什么要用交叉编译器? 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不…