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. day17_内置函数_文件处理

    20180729    修改部分代码 更新:# # 5.max与列表指定参数 20180728    初次上传 #!/usr/bin/env python # -*- coding:utf-8 -*- ...

  2. layui表格监听开关并获取改行id

    ,{field:'sex', title:'性别', width:85, templet: '#switchTpl', unresize: true} <script type="te ...

  3. echars前端处理数据、pyechars后端处理数据

    echars -- 后端给数据,前端根据数据做渲染 - echarts:https://www.echartsjs.com/zh/index.htmlhtml文件 <!DOCTYPE html& ...

  4. USACO 2012 March Silver Tractor /// 优先队列BFS oj21567

    题目大意: 输入n,(x,y):n为阻挡的草堆数量,(x,y)为开始时拖拉机所在的位置 接下来n行每行一个坐标(a,b):为各个草堆的坐标 输出拖拉机要回到原点(0,0)需要移动的草堆数量 Sampl ...

  5. 13-2-return

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 编写Reduce处理逻辑

  7. [Baltic2009]beetle【区间Dp】

    Online Judge:Bzoj1761 Label:区间Dp 题目描述 在一条直线上有N个点,每个点M升水. 一个虫子在坐标轴0点上,它每个单位时间移动一格,每个点的水每单位时间消失1升. 问虫子 ...

  8. js '' ""的嵌套使用

    1.我需要拼接一个字符串,但是其中 单引号内包含了双引号,双引号内又包含了单引号变量 这时我们想到了可以用到HTML特殊转义字符 2.如下拼接 return '<input type=" ...

  9. Python-线程(2)

    目录 GIL全局解释器锁 GIL 与 Lock 多进程 VS 多线程 死锁现象 递归锁 信号量 Semaphore 线程队列 GIL全局解释器锁 在Cpython解释器中,同一个进程下开启的多线程,同 ...

  10. iOS之CAEmitterLayer粒子引擎

    1.CAEmitterCell粒子发射器的相关属性: /* CoreAnimation - CAEmitterLayer.h Copyright (c) 2007-2017, Apple Inc. A ...