
Windriver
文章平均质量分 93
YFJYJFY
这个作者很懒,什么都没留下…
展开
-
驱动程序(9) 利用Windriver修改代码实现DMA传输定制功能的驱动程序
前言前一篇文章讲到了利用windriver来生成一个对应使用的板卡的驱动程序,并且有相对应的INF文件给板卡安装上。这个生成的驱动程序代码包含了基本的访问板卡的功能,甚至可以实现DMA传输等功能(需要你的板卡支持DMA操作),但是这个驱动程序是基于交互式的,将程序编译生成exe文件运行后,还需要操作者输入访问的寄存器偏移地址或者数据等,没法做到自动执行。所以,我们在得到这份驱动代码后,基于这个框...原创 2018-12-21 15:13:53 · 4637 阅读 · 9 评论 -
驱动程序(8) Windriver初步使用和快速生成驱动程序代码
Windriver简介之前使用微软WDF框架下的WDK开发Windows驱动程序,使用起来调试速度太慢了,同时需要对内核态驱动程序有一定了解,就转到使用Windriver来开发驱动程序。就我个人而言,这款软件最大好处就在于它屏蔽了内核态下驱动程序的细节,所有的开发工作都建立在用户态下,你不必担心因为某些操作导致电脑蓝屏死机(当然有些特殊操作同样会蓝屏);开发代码也像写C语言一样,调试起来非常方...原创 2018-12-17 11:34:33 · 3910 阅读 · 7 评论 -
驱动程序(10) Windriver实现DMA传输时分配超大内存Buffer的办法
前言利用windriver做DMA传输的时候,尤其是将数据从板卡传输到PC端时,往往需要分配内存buffer。windriver给了两种方法,Contiguous buffer模式(WDC_DNAContigBufLock)和Scatter/Gather(WDC_DMASGBufLock)模式。PC内存比较小的情况下可以使用Scatter/Gather模式,分配到的内存buffer就是每页固定、...原创 2018-12-24 15:06:09 · 4662 阅读 · 14 评论 -
驱动程序(11) Windriver下读写外部设备BAR内存资源的方法
前言在利用windriver生成外部设备的驱动程序的时候,我们往往需要去访问外部设备上的内存资源,windriver提供了几种API接口(以下都以32位来介绍),只需要提供一些参数就可以访问到外部设备的内存资源了。WDC_WriteAddr32/WDC_ReadAddr32这两个API函数的定义如下:hDev:被访问的外部设备的句柄dwAddrSpace:外部设备上的某个地址空间段,也就...原创 2019-01-16 14:32:42 · 2409 阅读 · 0 评论 -
驱动程序(12) Windriver下访问虚拟设备内存资源的方法
前言在驱动程序(10)里曾经讲过有一种方法,可以把电脑端的一部分内存保留下来制成类似于虚拟设备,只提供给windriver使用,从而作为DMA传输的目的地址。现在讲一下当DMA传输完成之后,如何去访问这块内存资源。实际上,我们就可以将这部分内存资源看成挂载在了虚拟设备上,可以通过访问真实外部设备一样去访问虚拟设备。虚拟设备制作#define ReservedMemBase 0x42f0000...原创 2019-01-16 15:35:52 · 1651 阅读 · 5 评论 -
驱动程序(13) 将Windriver编写的程序制成DLL供其他程序调用
制作动态链接库(DLL)之前的操作里,我通常是将写好的程序生成exe文件,运行来看结果如何;但是实际中往往驱动程序需要被上层软件调用,比如我现在利用windriver来完成DMA传输后,传输好的数据需要提供给上层软件继续使用,这时候将我们写好的程序做成DLL就会方便很多。1. 改变主程序的配置类型第一步我们需要改变主程序的配置类型,选择主程序的“项目->配置属性->常规->...原创 2019-05-21 11:27:05 · 1869 阅读 · 9 评论