新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 介紹一種實時操作系統(tǒng)DSP/BIOS

介紹一種實時操作系統(tǒng)DSP/BIOS

作者: 時間:2009-04-09 來源:網(wǎng)絡(luò) 收藏

例5  PIP對應(yīng)的讀任務(wù):
  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對應(yīng)的寫任務(wù):
  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;*/
  }
  }
  由邏輯關(guān)系可以看到,通過使用PIP應(yīng)用程序可以保持一個簡單統(tǒng)一接口而不必關(guān)心具體的硬件操作,因此當(dāng)該軟件移植到不同環(huán)境中時,至多只需要改寫設(shè)備驅(qū)動程序。使用PIP的一個具體實例就是HST模塊。HST模塊在主機和之間建立起一條數(shù)據(jù)鏈路,該鏈路就是一個PIP對象。對HST的操作方式與PIP一致。其差別僅僅在于HST在初始化時指向了預(yù)定義的上的HPI接口而已。
  SIO:從PIP的邏輯關(guān)系可以看出,讀寫PIP就是一個數(shù)據(jù)拷貝的過程。這在某些應(yīng)用中,如實現(xiàn)網(wǎng)絡(luò)協(xié)議TCP/IP時,不是非常有效。因為數(shù)據(jù)每向上傳遞一層就需要進行一次數(shù)據(jù)拷貝,其效率非常差。如果采用SIO來實現(xiàn)就會有很大的改善。SIO的操作只有g(shù)et()和  put()兩種。與PIP不同的是SIO沒有自己的緩沖隊列。每次get()  或  put()  操作時都會在應(yīng)用程序和設(shè)備驅(qū)動程序之間交換緩沖的指針。所以SIO操作的實質(zhì)是數(shù)據(jù)地址的交換。由于沒有數(shù)據(jù)拷貝,其運行效率就很高。SIO的運行邏輯如圖4所示。

7 RTDX
  數(shù)據(jù)交換Real-Time-Data-eXhange是/提供的一個全新的功能。在很多應(yīng)用中要求DSP不能夠停下來,而需要從主機中地讀取數(shù)據(jù)或者向主機地輸出數(shù)據(jù)。的C5000,C6000系列的DSP都可以通過JTAG接口來實現(xiàn)這個功能。其邏輯結(jié)構(gòu)如圖5所示。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉