在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DSP實時多任務調度的解決方案

電子工程師 ? 來源:網絡整理 ? 作者:佚名 ? 2021-03-24 15:22 ? 次閱讀

DSP處理器是一種嵌入式處理器(embedded microprocessor),它專門用于數(shù)字信號處理,其在系統(tǒng)結構和指令算法方面進行了特殊設計,具有很高的編譯效率和指令執(zhí)行速度。

嵌入式系統(tǒng)在當今是一種非常活躍的應用,在工業(yè)、服務業(yè)、消費電子等領域的應用范圍都不斷擴大。為了方便嵌入式系統(tǒng)的開發(fā),人們研發(fā)了許多嵌入式操作系統(tǒng),如WinCE、uc/OS、嵌入式LinuxVxWorks、pSOS、QNX、Palm OS等,由于嵌入式系統(tǒng)往往用于一些較為實時性的用途,這些操作系統(tǒng)也往往被稱為實時多任務操作系統(tǒng)(RTOS, Real Time Operation System)。這些系統(tǒng)往往被用在通用嵌入式處理器上(如ARM等)。

DSP系統(tǒng)和通用嵌入式系統(tǒng)的區(qū)別

雖然說DSP也是一種嵌入式系統(tǒng),但是由于其“專用于數(shù)字信號處理”的特點,其系統(tǒng)架構也會同通用嵌入式系統(tǒng)略有區(qū)別(當然,只是“略有區(qū)別”而已)。DSP往往用來跑高速的數(shù)學算法,而不牽涉到人機界面、數(shù)據(jù)庫、高層應用等功能(從PC角度來理解的話,DSP在一個嵌入式系統(tǒng)中的功能類似于底層驅動,例如3D圖象的演算、環(huán)繞聲的演算、網絡協(xié)議處理等)。

因此,從這樣的認識角度來看,DSP中的各種任務的調度在過程上相對“單純”些。DSP中的任務更加側重于“實時性”和“并行性”。實際上,對于單核的DSP芯片來說,并不可能存在真正的“并行計算”,所謂的并行只不過是通過高速切換幾個“串行的線程”來實現(xiàn)。而對于“實時性”,則要求盡可能多的將CPU時間用于計算,并且不同的線程間不能有阻塞的現(xiàn)象發(fā)生(從軟件角度看,就是執(zhí)行任務的代碼執(zhí)行時間要短,如果是復雜的算法,就需要對算法進行優(yōu)化使得算法可以“分步執(zhí)行”)。

DSP實時多任務調度的解決方案

根據(jù)以上的分析,我們可以大致的得出一個簡單的DSP RTOS的雛形,它的核心就是創(chuàng)建一種可以實時執(zhí)行的線程。這種線程被稱為“PRD Task”(period task),指的是這種線程一旦創(chuàng)建,就由系統(tǒng)內核自動的周期性調用,而調度周期可以保證相當高的時間精度。管理這個機制的部件叫做“PRD模塊”。

創(chuàng)建PRD任務的方法是在初始化的時候向內核注冊一個PRD任務。

int Thread_PRD_Append(long TimeSlinceCount/*執(zhí)行周期

*/,void (*CallBackHandle)()/* 函數(shù)句柄*/)

返回值: TRUE / FALSE

函數(shù)功能:向系統(tǒng)注冊一個新的線程,指定執(zhí)行周期以及需要調度的函數(shù)句柄,系統(tǒng)便會在指定的時間間隔自動調用這個函數(shù)。

這個注冊任務等待執(zhí)行的方式叫做“回調”,注冊的時候向內核提交一個指定的執(zhí)行周期和任務函數(shù)的入口函數(shù)指針。內核在通過計時,在達到執(zhí)行周期的時候通過函數(shù)指針調用任務函數(shù)。

內核為了管理這個功能,需要一張“PRD任務表”。它的定義如下:

typedef struct {

long TimeSlice_Current; //當前時間片

long TimeSlice_Count; //總時間片

void (*Callback_Handle)(); //調用句柄

} Type_PRD_Table;

Type_PRD_Table PRD_Table[SYS__THREAD_PRD_TABLE_SIZE];//PRD表

int PRD_Table_ItemCount=0;//當前的PRD表最大項目數(shù)

TimeSlice_Current和TimeSlice_Count兩個變量構成了一個軟件定時器,內核通過對于TimeSlice_Current的操作即可知道何時可以調用相關的任務函數(shù)。

相關的代碼如下。這是一個典型的減法計時器的代碼。

for(i=0;i 0)

{ PRD_Table[i].TimeSlice_Current --; //遞減時間片 }}

而在另外一處,需要判斷時間片計數(shù)器是否已經計到0。

if((PRD_Table[i].TimeSlice_Current) == 0) {//調用相應的句柄

PRD_Table[i].TimeSlice_Current=PRD_Table[i].TimeSlice_Count;//恢復時間片

(*(PRD_Table[i].Callback_Handle))();//調用任務入口函數(shù)指針 }

接著,需要將減法計時器的代碼放入一個硬件定時器中斷中,這樣便能保證這個減法計時的高度精確性。這個硬件定時器依賴于硬件,因此要求DSP芯片硬件上必須提供這樣一個定時器,否則這個DSP內核便無法在這個DSP芯片上執(zhí)行(幸好基本上不太會存在沒有硬件定時器的DSP)。

而對于第二段代碼,判別時間片計數(shù)是否“已經到點”的代碼則應

當放在一個死循環(huán)中。例如在main函數(shù)中放置一個死循環(huán)。

Void Main() {

for(;;) { …。。判斷時間片計數(shù)器是否已經計到0的代碼}

…}

顯然,除了計時是對“到點”的判別以外,我們還需要初始化和添加任務的函數(shù)。

int Thread_PRD_Append(long TimeSlinceCount,void *CallbackHandle)

{//給PRD表添加任務

if(PRD_Table_ItemCount

責任編輯:lq6

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • DSP處理器
    +關注

    關注

    0

    文章

    26

    瀏覽量

    11709
  • 計時器
    +關注

    關注

    1

    文章

    421

    瀏覽量

    32735
收藏 人收藏

    評論

    相關推薦

    航電實時測試系統(tǒng)解決方案

    航電實時測試系統(tǒng)主要應用于航空座艙的實時測試。座艙測試過程中,輸入和輸出信號的實時性至關重要,尤其是在多任務操作時,必須保證系統(tǒng)穩(wěn)定的loop時間。為了滿足這一需求,客戶選擇了基于Li
    的頭像 發(fā)表于 10-23 15:34 ?273次閱讀
    航電<b class='flag-5'>實時</b>測試系統(tǒng)<b class='flag-5'>解決方案</b>

    解決方案丨EasyGo新能源系統(tǒng)實時仿真應用

    。二、新能源實時仿真技術新能源實時仿真技術作為一種高效、低成本的研發(fā)手段,已經成為新能源技術發(fā)展的重要支撐。新能源實時仿真解決方案可以幫助設計者更好地了解新能源產品和系統(tǒng)的性能和特性,
    發(fā)表于 10-18 09:37

    雙電源電壓DSP的電源時序控制解決方案

    電子發(fā)燒友網站提供《雙電源電壓DSP的電源時序控制解決方案.pdf》資料免費下載
    發(fā)表于 10-11 11:33 ?0次下載
    雙電源電壓<b class='flag-5'>DSP</b>的電源時序控制<b class='flag-5'>解決方案</b>

    MES系統(tǒng)如何實現(xiàn)生產車間的實時監(jiān)控、精準調度

    MES系統(tǒng)通過數(shù)據(jù)采集、傳輸、處理和展示等技術手段,實現(xiàn)了生產過程的實時監(jiān)控;同時,通過生產計劃優(yōu)化、生產任務分配、動態(tài)調度、資源優(yōu)化和協(xié)同管理等功能模塊,實現(xiàn)了生產過程的精準調度
    的頭像 發(fā)表于 10-07 12:51 ?428次閱讀
    MES系統(tǒng)如何實現(xiàn)生產車間的<b class='flag-5'>實時</b>監(jiān)控、精準<b class='flag-5'>調度</b>

    鴻蒙開發(fā)接口資源調度:【@ohos.workScheduler (延遲任務調度)】

    開發(fā)者在開發(fā)應用時,通過調用延遲任務注冊接口,注冊對實時性要求不高的延遲任務,該任務默認由系統(tǒng)安排,在系統(tǒng)空閑時根據(jù)性能、功耗、熱等情況進行調度
    的頭像 發(fā)表于 06-04 10:01 ?931次閱讀
    鴻蒙開發(fā)接口資源<b class='flag-5'>調度</b>:【@ohos.workScheduler (延遲<b class='flag-5'>任務</b><b class='flag-5'>調度</b>)】

    請問CMSIS-RTOS RTX的任務調度鎖在哪里?

    請問一下,CMSIS-RTOS RTX的任務調度鎖在哪里?謝謝!
    發(fā)表于 05-13 08:28

    淺析FreeRTOS任務調度器的三種調度算法和應用

    FreeRTOS在MCU領域應用非常廣泛,今天就給大家講解一下FreeRTOS調度器中的三種調度算法,以及在瑞薩RZ/T2L MPU中的應用。
    的頭像 發(fā)表于 05-10 14:02 ?7532次閱讀
    淺析FreeRTOS<b class='flag-5'>任務</b><b class='flag-5'>調度</b>器的三種<b class='flag-5'>調度</b>算法和應用

    多端口能量路由實時控制仿真系統(tǒng)解決方案

    RCP多端口設備電力電子教學產品結合CBox設備,通過MATLAB及相關硬件的模塊化設計,為解決教學內容復雜、理論與實際脫節(jié)等問題提供了一種創(chuàng)新的解決方案。 RCP多端口設備可實現(xiàn)幾乎大部分經典電力
    發(fā)表于 05-10 11:05

    ETAS推出Time-Triggered Scheduling (TTS)的確定性調度解決方案

    在2024年2月26日,ETAS推出了名為“Time-Triggered Scheduling (TTS)”的確定性調度解決方案
    的頭像 發(fā)表于 04-25 16:56 ?2718次閱讀
    ETAS推出Time-Triggered Scheduling (TTS)的確定性<b class='flag-5'>調度</b><b class='flag-5'>解決方案</b>

    STM32F103 FreeRTOS任務調度異常的原因?

    ) { vTaskDelay(500); //延時函數(shù)(任務調度) printf(\"Task1rn\");//串口打印 } } void Task2_Task(void
    發(fā)表于 04-16 06:24

    開放式高實時高性能PLC控制器解決方案-基于米爾電子STM32MP135

    實時高性能需求尤其突出。面對以上挑戰(zhàn),合作伙伴翌控科技基于米爾STM32MP135開發(fā)板發(fā)布開放式高實時高性能PLC控制器解決方案,將高精準數(shù)據(jù)采集、預處理、存儲、通信與高實時控制融為
    發(fā)表于 03-07 20:06

    介紹一種基于核集的多核嵌入式實時調度方法

    多任務環(huán)境下,嵌入式系統(tǒng)中通常運行著多于處理機數(shù)目的任務,這就要求操作系統(tǒng)能夠按照某種算法為處于就緒狀態(tài)的任務動態(tài)地分配處理機,處理機調度的實質是對處理器資源進行分配。
    的頭像 發(fā)表于 03-05 11:31 ?891次閱讀
    介紹一種基于核集的多核嵌入式<b class='flag-5'>實時調度</b>方法

    鴻蒙OS 分布式任務調度

    鴻蒙OS 分布式任務調度概述 在 HarmonyO S中,分布式任務調度平臺對搭載 HarmonyOS 的多設備構筑的“超級虛擬終端”提供統(tǒng)一的組件管理能力,為應用定義統(tǒng)一的能力基線、
    的頭像 發(fā)表于 01-29 16:50 ?506次閱讀

    Linux的Deadline實時調度算法

    每個任務都有一個高精度定時器(sched_dl_entity 結構的 dl_timer 字段),其超時時間為任務調度周期。當定時器觸發(fā)時,便會調用 dl_task_timer() 函數(shù)來處理定時器事件。
    發(fā)表于 01-24 13:44 ?910次閱讀
    Linux的Deadline<b class='flag-5'>實時調度</b>算法

    請教:有SPC560B的多任務實時系統(tǒng)的例程嗎(freertos)

    請教:有SPC560B的多任務實時系統(tǒng)的例程嗎(freertos)
    發(fā)表于 01-15 17:04
    主站蜘蛛池模板: 狠狠干天天色| 色黄视频| 免费鲁丝片一级观看| 深夜免费在线视频| 他也色在线| 一本到卡二卡三卡视频| 亚洲人成人| 上海一级毛片| 欧美亚洲天堂| 九色在线看| 欧美专区一区二区三区| 欧美成人性色xxxxx视频大| 久久全国免费久久青青小草| 国内亚州视频在线观看| 大尺度视频在线观看| 九九美剧| 爱爱免费网址| 天天摸天天操天天干| 国产最好的精华液网站| 手机在线免费观看视频| 一级特黄aaa大片在线观看视频| 天天做天天爱夜夜想毛片| 免费看美女毛片| 黄色午夜| 中文字幕亚洲天堂| 色老头影视| 精品卡1卡2卡三卡免费网站视频| 琪琪午夜伦埋大全影院| 黄 色 录像成 人播放免费| 一级片免费观看视频| 久久精品免费观看| 日本夜夜操| 天堂网在线.www天堂在线资源| 国产天美| 男人j桶进女人j的视频| 五月婷婷色视频| 性在线视频| 男人天堂网在线播放| 免费a级毛片出奶水| 操女网站| 精品视频在线观看视频免费视频|