新聞中心

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

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

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

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

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

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


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉