首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
介绍一种实时操作系统DSP/BIOS
来源:本站整理  作者:佚名  2009-04-09 15:35:28



例5  PIP对应的读任务:
  extern  far  PIP_Obj  pip;
  reader()
  {
  Uns  size;
  Ptr  addr;
  if(PIP_getReaderNumFrames(&pip)>0)
  {
  PIP_get(&pip);
  addr=PIP_getReaderAddr(&pip);
  size=PIP_getReaderSize(&pip);

  /*Code  to  empty  the  frame*/
  PIP_free(&pip);
  }
  else{
  LOG_error(″no  frames  available″);
  /*  or  you  could  just  return;*/
  }
  }
  例6  PIP对应的写任务:
  extern  far  PIP_Obj  pip;
  writer()
  {
  Uns  size;
  Ptr  addr;
  if(PIP_getWriterNumFrames(&pip)>0){
   PIP_alloc(&pip);
   addr=PIP_getWriterAddr(&pip);
   size=PIP_getWriterSize(&pip);
   /*  fill  the  frame  up  to  size  */
   PIP_put(&pip);
  }
  else{
   LOG_error(″no  frames  available″);
   /*  or  you  could  just  return;*/
  }
  }
  由逻辑关系可以看到,通过使用PIP应用程序可以保持一个简单统一接口而不必关心具体的硬件操作,因此当该软件移植到不同环境中时,至多只需要改写设备驱动程序。使用PIP的一个具体实例就是HST模块。HST模块在主机和DSP之间建立起一条数据链路,该链路就是一个PIP对象。对HST的操作方式与PIP一致。其差别仅仅在于HST在初始化时指向了预定义的DSP上的HPI接口而已。
  SIO:从PIP的逻辑关系可以看出,读写PIP就是一个数据拷贝的过程。这在某些应用中,如实现网络协议TCP/IP时,不是非常有效。因为数据每向上传递一层就需要进行一次数据拷贝,其效率非常差。如果采用SIO来实现就会有很大的改善。SIO的操作只有get()和  put()两种。与PIP不同的是SIO没有自己的缓冲队列。每次get()  或  put()  操作时都会在应用程序和设备驱动程序之间交换缓冲的指针。所以SIO操作的实质是数据地址的交换。由于没有数据拷贝,其运行效率就很高。SIO的运行逻辑如图4所示。

7 RTDX
  实时数据交换Real-Time-Data-eXhange是DSP/BIOS提供的一个全新的功能。在很多应用中要求DSP不能够停下来,而需要从主机中实时地读取数据或者向主机实时地输出数据。德州仪器的C5000,C6000系列的DSP都可以通过JTAG接口来实现这个功能。其逻辑结构如图5所示。

上一页  [1] [2] [3] [4] [5]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:327,363.30000 毫秒