1、FVID_control

作用:发送一个控制命令到mini_driver

语法: status = FVID_control(fvidChan, cmd, args);

参数:

FVID_HandlefvidChan

Intcmd

Ptrargs

Return Value Int status

参数说明:

fvidChan是FVID_create()创建的指向通道的句柄.

cmd有两个值: IOM_ABORT----作用是中止所以的未定的I/O工作

IOM_FLUSH----作用是所以采集口的工作被丢弃,所以显示I/O的工作正常进行.

返回值:

   如果调用成功,FVID_control返回IOM_COMPLETED .如果有错误产生,这个调用会返回一个负值.

Example:

FVID_control(fvidChan,IOM_ABORT, NULL);

2、FVID_create()

作用:分配并初始化FVID通道对象;

 语法:fvidChan = FVID_create(name, mode, *status, optArgs, *attrs);

Stringname

Intmode

Int*status

PtroptArgs

FVID_Attrs*attrs

其中:name是设备实例的句柄,是一个字符串

mode 是选择的模式,只有两个值:IOM_INPUT设置采集模式,IOM_OUTPUT设置显示模式.

status是The status argument isan out parameter that this function fills with a pointer to thestatus that was returned by the mini-driver.

attrs 是指向FVID_Attrs结构的指针:

FVID_Attrs的定义如下:typedefstruct FVID_Attrs

              {

Uns timeout;

} FVID_Attrs;

timeout成员用来指定旗语同步,它的值可以是:

1.     >SYS_FOREVER:会让FVID_alloc, FVID_free andFVID_exchange的调用不确定的等待到这个调用完成.

2.     >数字的timeout值会让这些APIs阻塞一段指定的时间(以系统时钟).

3.     >0值会让APIs不阻塞,他们会立刻返回,这种情况下,应用程序会检查返回的status值来保证调用已经成功完成.

备注:FVID_alloc, FVID_free andFVID_exchange 的调用只能在 DSP/BIOS task (TSK).

·        FVID_create的返回值:

如果通道成功的打开了,那么FVID_create返回一个指向通道的句柄.这个句柄可以用来让后来的模块调用这个通道.

Example

FVID_ATTRS dispAttrs =FVID_ATTRS;

chan-

Handle =FVID_create(“\display0”, IOM_INPUT, NULL, NULL,

&dispAttrs);

3、FVID.h的定义

#defineFVID_BASE      IOM_USER

#defineFVID_ALLOC     (FVID_BASE + 0)
  #defineFVID_FREE      (FVID_BASE + 1)
  #define FVID_EXCHANGE  (FVID_BASE + 2)

typedef GIO_HandleFVID_Handle;

typedef struct FVID_IFrame{
    Char*y1;
    Char*cb1;
    Char*cr1;
    Char*y2;
    Char*cb2;
    Char*cr2;
}FVID_IFrame;

typedef struct FVID_PFrame {
    Char*y;
    Char*cb;
    Char*cr;
} FVID_PFrame;

typedef struct FVID_RawIFrame{
    Char*buf1;   
    Char*buf2;   
} FVID_RawIFrame;

typedef structFVID_RawPFrame{
    Char*buf;   
} FVID_RawPFrame;

typedef struct FVID_Frame {
   QUE_Elem       queElement;
    union{
       FVID_IFrame    iFrm;    
       FVID_PFrame    pFrm;    
       FVID_RawIFrame riFrm;   
       FVID_RawPFrame rpFrm;   
    }frame;   
} FVID_Frame;

#define FVID_alloc(gioChan, bufp) \
       GIO_submit(gioChan, FVID_ALLOC, bufp, NULL, NULL)

#define FVID_control(gioChan, cmd, args) \
       GIO_control(gioChan, cmd, args)

#define  FVID_create(name, mode, status, optArgs,attrs) \
       GIO_create(name, mode, status, optArgs, attrs)

#define FVID_delete(gioChan) \
       GIO_delete(gioChan)

#define FVID_exchange(gioChan, bufp) \
       GIO_submit(gioChan, FVID_EXCHANGE, bufp, NULL, NULL)

#define FVID_free(gioChan, bufp) \
       GIO_submit(gioChan, FVID_FREE, bufp, NULL, NULL)

#ifdef __cplusplus
}
#endif

#endif

【DM642学习笔记五】FVID驱动模型 API函数的更多相关文章

  1. Struts2学习笔记(五)——Action访问Servlet API

    在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...

  2. input子系统学习笔记六 按键驱动实例分析下【转】

    转自:http://blog.chinaunix.net/uid-20776117-id-3212095.html 本文接着input子系统学习笔记五 按键驱动实例分析上接续分析这个按键驱动实例! i ...

  3. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  4. Java学习笔记之---单例模型

    Java学习笔记之---单例模型 单例模型分为:饿汉式,懒汉式 (一)要点 1.某个类只能有一个实例 2.必须自行创建实例 3.必须自行向整个系统提供这个实例 (二)实现 1.只提供私有的构造方法 2 ...

  5. Java IO学习笔记五:BIO到NIO

    作者:Grey 原文地址: Java IO学习笔记五:BIO到NIO 准备环境 准备一个CentOS7的Linux实例: 实例的IP: 192.168.205.138 我们这次实验的目的就是直观感受一 ...

  6. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  7. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. MR 原理

    MapReduce的执行步骤: 1.Map任务处理 1.1 读取HDFS中的文件.每一行解析成一个<k,v>.每一个键值对调用一次map函数.                <0,h ...

  2. js中一个标签在按顺序执行没有被读取到时可以用window.onload

    <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> <!DOCTYPE html PUBLIC " ...

  3. selenium基础(窗口截图)

    窗口截图 目的:当脚本执行出错时对当前窗口进行截图 方法:get_screenshot_as_file() #打开百度首页,搜索“selenium",完成后进行截图,并将结果保存至D:/te ...

  4. Lua 协程和线程区别

    协程就是协程,不是线程. CPU执行单位是线程,不是什么协程. 协程,是同步执行,不是并行,只是切了一个上下文了,为你保存原来的上下文而已. 切到第二个协程时,原来的协程处于挂起状态. 这个特指lua ...

  5. DataV教你如何给可视化应用一键美颜

    视频观看地址:https://yunqivedio.alicdn.com/user-upload/T4WEb4C5Fc.mp4 如果你平时经常接触数据统计.数据展示和决策分析,相信你对DataV一定有 ...

  6. 使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置

    1.使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置 2.上代码:在resources目录下新建:generatorConfiguration.xml文 ...

  7. opencv-图像类型、深度、通道

    转自:图像类型   与  opencv中图像基础(大小,深度,通道) 一.图像基本类型 在计算机中,按照颜色和灰度的多少可以将图像分为四种基本类型. 1. 二值图像 2. 灰度图像 3. 索引图像 4 ...

  8. PAT甲级——A1071 Speech Patterns

    People often have a preference among synonyms of the same word. For example, some may prefer "t ...

  9. Java室内最短路径搜索(支持多楼层)

    修改了上次的代码,现在支持室内的多楼层情况下的最短路径搜索,还是使用A*算法,把在GraphAdjList中VNode没有利用起来的data字段作为我们存储楼层属性的位置. 实际上是我偷懒了,正常情况 ...

  10. 最新二进制安装部署kubernetes1.15.6集群---超详细教程

    00.组件版本和配置策略 00-01.组件版本 Kubernetes 1.15.6 Docker docker-ce-18.06.1.ce-3.el7 Etcd v3.3.13 Flanneld v0 ...