新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 介紹一種實時操作系統DSP/BIOS

        介紹一種實時操作系統DSP/BIOS

        作者: 時間:2009-04-09 來源:網絡 收藏

        例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模塊在主機和之間建立起一條數據鏈路,該鏈路就是一個PIP對象。對HST的操作方式與PIP一致。其差別僅僅在于HST在初始化時指向了預定義的上的HPI接口而已。
          SIO:從PIP的邏輯關系可以看出,讀寫PIP就是一個數據拷貝的過程。這在某些應用中,如實現網絡協議TCP/IP時,不是非常有效。因為數據每向上傳遞一層就需要進行一次數據拷貝,其效率非常差。如果采用SIO來實現就會有很大的改善。SIO的操作只有get()和  put()兩種。與PIP不同的是SIO沒有自己的緩沖隊列。每次get()  或  put()  操作時都會在應用程序和設備驅動程序之間交換緩沖的指針。所以SIO操作的實質是數據地址的交換。由于沒有數據拷貝,其運行效率就很高。SIO的運行邏輯如圖4所示。

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

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 枞阳县| 白城市| 庐江县| 河北省| 城固县| 霍林郭勒市| 新疆| 孝义市| 秦安县| 大冶市| 云龙县| 汉中市| 凤翔县| 台南县| 孟连| 岳阳市| 合川市| 合山市| 许昌县| 北安市| 金平| 神农架林区| 万山特区| 武陟县| 霍邱县| 博野县| 南木林县| 江山市| 左贡县| 平顺县| 桐柏县| 正宁县| 介休市| 咸宁市| 聂拉木县| 锡林郭勒盟| 城口县| 峨眉山市| 太仆寺旗| 乐都县| 彝良县|