新聞中心

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

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

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

        3  STS
          對一個軟件進行分析優化時,通常會用到profile的功能。但是在運行的的環境中使用profile等效于加入了多個程序斷點。  由于現在的通常具有很深的流水線結構來保證的高運算能力,如的C6000系列的流水線長度為12級,程序斷點需要排空所有已經進入流水線的指令。這樣也就破壞了真正的運行環境。同時profile還必須調用輸出模塊向主機傳遞時間信息。因此在profile的情況下真正的運行環境是沒有辦法得到保護的。針對這種情況引入了一個統計模塊STS。STS對象只有4個數據Previous、Count、Total和Max。調用的方法(API)也只有4個,即STS_add()、  STS_set()、  STS_delta()和STS_reset()。這些API對數據的操作功能如表1所示。

        本文引用地址:http://www.104case.com/article/152540.htm

        如果要對某一段程序進行分析時,只需在其前后調用STS_set和STS_delta就可以了。如例2使用STS測試程序段執行周期如下:
          /*  Header  files  needed  for  DSP    */
          #include ?。約ts.h>
          #include ?。糲lk.h>

          /*  functions  */
          void  func_load();

          /*  Objects  created  by  the  Configuration  Tool  */
          extern  STS_Obj  stsLoad;

          /*
          * ?。剑剑剑剑剑剑剑健 ain  ========
          */
          void  main()
          {

          /*  fall  into    idle  loop  */
           return;
          }

          void  func_load()
          {
          STS_set(stsPrintf、  CLK_gethtime());

          /*  測試程序段    */
          ...
          STS_delta(stsPrintf、  CLK_gethtime());
          }
          func_load()為一個中斷服務程序(ISR)。在C6211,150MHz的情況下,僅插入33個周期,約0.22μs。
        4  任務調度(HWI/SWI/TSK)
          一個的核心永遠都是任務的調度。在中任務的調度是通過HWI、SWI和  TSK  三個模塊來實現的。這三個模塊分別對應于不同的調度方法。HWI即硬件中斷。在  DSP/BIOS中硬件中斷主要負責從外部設備中讀寫數據。由于硬件中斷直接與硬件打交道,所以對應的中斷服務程序ISR應該盡可能地短小精悍。需要注意的是HWI并不引起任務調度,因此在ISR的入口和出口成對地調用_HWI_enter()和_HWI_exit()這兩個宏是必須的。HWI在處理完數據的輸入輸出后調用SWI_post()來調度相應的軟件中斷,SWI來完成數據處理工作。SWI是  DSP/BIOS任務調度的核心,共有14個優先級,每個優先級可以有多個任務。SWI任務是搶斷式的,即高優先級的任務可以搶斷低優先級的任務。但是SWI任務是不可阻塞的。它的運行狀態如圖1所示。

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沂源县| 株洲县| 博乐市| 环江| 古丈县| 屏边| 巴马| 景谷| 迁安市| 林口县| 永安市| 石狮市| 上虞市| 徐汇区| 西乌| 炉霍县| 靖安县| 收藏| 惠水县| 连云港市| 潍坊市| 康乐县| 治县。| 云林县| 厦门市| 宣威市| 垣曲县| 秭归县| 彭山县| 化德县| 永定县| 新宁县| 商南县| 内丘县| 青冈县| 含山县| 黑水县| 平武县| 沙坪坝区| 丹棱县| 郧西县|