• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    DSP多任務(wù)實(shí)時(shí)操作系統(tǒng)內(nèi)核設(shè)計(jì)

    2016-03-22 14:20:11張健李躍鵬劉威鵬曾麗麗
    電腦知識(shí)與技術(shù) 2016年2期
    關(guān)鍵詞:多任務(wù)

    張健 李躍鵬 劉威鵬 曾麗麗

    摘要:針對(duì)廣泛使用的DSP處理器,分析TI公司實(shí)時(shí)操作系統(tǒng)DSP/BIOS的特點(diǎn),論述DSP多任務(wù)實(shí)時(shí)操作系統(tǒng)架構(gòu)?;贒SP/BIOS完成任務(wù)創(chuàng)建與堆棧檢測(cè)、中斷管理、時(shí)鐘管理、多任務(wù)調(diào)度策略及任務(wù)間通訊等內(nèi)核關(guān)鍵部分的設(shè)計(jì),實(shí)現(xiàn)一個(gè)具有基本功能的DSP多任務(wù)實(shí)時(shí)操作系統(tǒng)內(nèi)核。并給出所設(shè)計(jì)的內(nèi)核軟件在TI的 DSP TMS320C6655上的應(yīng)用實(shí)例,通過實(shí)驗(yàn)驗(yàn)證內(nèi)核的一些關(guān)鍵功能(定時(shí)器、任務(wù)調(diào)度策略)。所設(shè)計(jì)的多任務(wù)操作系統(tǒng)內(nèi)核,架構(gòu)簡(jiǎn)潔,實(shí)時(shí)性強(qiáng),便于進(jìn)行二次開發(fā)。

    關(guān)鍵詞:實(shí)時(shí)操作系統(tǒng);DSP/BIOS;多任務(wù);操作系統(tǒng)內(nèi)核

    中圖分類號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)02-0077-03

    Abstract: In view of the widespread use of DSP processor, Analysis of the characteristics of TI company real-time operating system DSP/BIOS,DSP real-time multitasking operating system architecture is also discussed. The key part of the kernel design is based on DSP/BIOS to complete the task to create and stack detection, interrupt management, clock management, task scheduling strategy and intertask communication.All of the implement a basic function of DSP real-time multitasking operating system kernel. the design of kernel software is used on DSP TMS320C6655 application and through the experiment verify the kernel' s some key function (timer, task scheduling strategy). The designed multitasking operating system kernel architecture is simple, it has strong real-time performance,and is convenient for secondary develop-ment.

    Key words: real-time operating system; DSP/BIOS; multitasking; OS kernel

    如今,DSP芯片的片上資源的不斷增加,DSP芯片的軟件設(shè)計(jì)也開始更多的關(guān)注如何更好地進(jìn)行控制資源和任務(wù)管理[1]。同時(shí),DSP 處理器以運(yùn)算速度高效著稱,在 “實(shí)時(shí)性”和“并行性”具有優(yōu)勢(shì)。DSP 芯片在系統(tǒng)結(jié)構(gòu)和指令算法方面進(jìn)行了特殊設(shè)計(jì)(如采用哈弗結(jié)構(gòu)體系[2],集成的硬件加速器,功能單元并行操作,匯編指令軟件流水等),具有很高的編譯效率和指令執(zhí)行速度。這些特點(diǎn)為其在嵌入式操作系統(tǒng)領(lǐng)域的應(yīng)用提供了基礎(chǔ)。

    1 DSP實(shí)時(shí)操作系統(tǒng)內(nèi)核

    DSP/BIOS是德州儀器基于TMS320系列DSP平臺(tái)提供的一個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核[3]。DSP/BIOS是一個(gè)可升級(jí)的實(shí)時(shí)內(nèi)核,它提供的底層應(yīng)用函數(shù)接口,可用于支持系統(tǒng)實(shí)時(shí)分析、線程管理、調(diào)度軟件中斷、周期函數(shù)、外部硬件中斷及各種外設(shè)管理。DSP/BIOS 支持4種不同優(yōu)先級(jí)的線程:硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)(TSK )、后臺(tái)線程(IDL )[4]。

    如圖1 所示,DSP操作系統(tǒng)內(nèi)核界于BOOT區(qū)和應(yīng)用程序接口層之間, 它主要實(shí)現(xiàn)任務(wù)管理;系統(tǒng)時(shí)鐘管理;任務(wù)間通信與同步和中斷管理。并利用信號(hào)、定時(shí)器、優(yōu)先級(jí)、中斷、任務(wù)調(diào)度等機(jī)制為應(yīng)用層提供支撐[5]。向下主要與BIOS初始化接續(xù)。

    接口1中,當(dāng)BIOS初始化完成后,調(diào)用系統(tǒng)main()函數(shù)后,操作系統(tǒng)先執(zhí)行初始化操作,信號(hào)量和任務(wù)創(chuàng)建,應(yīng)用程序上電自啟動(dòng)等。接口2中,內(nèi)核通過DSP系統(tǒng)提供的API函數(shù)與應(yīng)用層間實(shí)現(xiàn)交互,實(shí)現(xiàn)定時(shí)器、任務(wù)、優(yōu)先級(jí)等功能的使用。

    2 DSP實(shí)時(shí)操作系統(tǒng)內(nèi)核設(shè)計(jì)

    本方案設(shè)計(jì)的DSP實(shí)時(shí)操作系統(tǒng)內(nèi)核將應(yīng)用程序分為若干任務(wù)進(jìn)行管理,并且負(fù)責(zé)任務(wù)間的通信,可以極大地簡(jiǎn)化應(yīng)用系統(tǒng)的設(shè)計(jì)。任務(wù)調(diào)度采用基于優(yōu)先級(jí)的搶占式調(diào)度策略,該策略中賦予每個(gè)任務(wù)一個(gè)優(yōu)先級(jí),任務(wù)越重要,賦予的優(yōu)先級(jí)就越高[6],內(nèi)核總是將CPU分配給處于就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)運(yùn)行,保證重要的突發(fā)事件及時(shí)得到處理[7]。

    2.1 任務(wù)堆棧檢測(cè)與狀態(tài)轉(zhuǎn)換

    采用動(dòng)態(tài)方法向內(nèi)核創(chuàng)建任務(wù),首先由Task_Params_init(&taskParamsTemp)函數(shù)初始化任務(wù)控制塊結(jié)構(gòu)體Task_Params,配置任務(wù)優(yōu)先級(jí)、堆棧大小、任務(wù)狀態(tài)字等參數(shù),然后,調(diào)用函數(shù)Task_create創(chuàng)建任務(wù)。

    2.2 中斷管理

    系統(tǒng)內(nèi)核采用中斷服務(wù)和任務(wù)切換結(jié)合的機(jī)制:每當(dāng)中斷發(fā)生后,系統(tǒng)及時(shí)進(jìn)行中斷響應(yīng), 將全部CPU 寄存器推入當(dāng)前任務(wù)棧,執(zhí)行中斷服務(wù)程序,再恢復(fù)現(xiàn)場(chǎng), 調(diào)用脫離中斷函數(shù),執(zhí)行中斷返回。如果中斷服務(wù)子程序使一個(gè)高優(yōu)先級(jí)的任務(wù)進(jìn)入了就緒態(tài),則在中斷恢復(fù)過程中完成新任務(wù)的寄存器內(nèi)容恢復(fù),中斷返回后,通過任務(wù)切換函數(shù)完成任務(wù)切換。為減少任務(wù)響應(yīng)時(shí)間,中斷服務(wù)程序中要做的事應(yīng)盡可能少。其大部分工作由中斷服務(wù)程序中就緒的高優(yōu)先級(jí)任務(wù)完成。中斷任務(wù)調(diào)度流程圖如圖3所示:

    由于任務(wù)切換需要把目標(biāo)寄存器文件以及控制寄存器文件(CSR、IER、IRP 和 AMR)這些斷點(diǎn)數(shù)據(jù)入棧保護(hù),因此,任務(wù)切換所需要的時(shí)間取決于CPU 中入棧寄存器的數(shù)量。CPU的寄存器越多,任務(wù)切換時(shí)間越久。由于C編譯器不能從C語(yǔ)言中直接處理CPU寄存器,任務(wù)切換需要由匯編語(yǔ)言編寫,現(xiàn)給出任務(wù)切換示意性代碼:

    為確保T0任務(wù)的調(diào)度函數(shù)執(zhí)行的完整性,當(dāng)T0任務(wù)通過信號(hào)量調(diào)度獲取CPU使用權(quán)后,由函數(shù)Task_disable()禁止任務(wù)切換,等調(diào)度函數(shù)執(zhí)行結(jié)束后,再由Task_restore(key)重新使能任務(wù)切換,繼續(xù)等待下一個(gè)定時(shí)器信號(hào)量的到來(lái)。

    2.4 任務(wù)間通訊

    對(duì)于簡(jiǎn)單的共享變量,系統(tǒng)通過關(guān)中斷、開中斷來(lái)處理,以提高效率。當(dāng)數(shù)據(jù)量比較耗費(fèi)時(shí)間時(shí),引入信號(hào)量進(jìn)行任務(wù)間通訊,并設(shè)計(jì)緩沖區(qū)機(jī)制,保證任務(wù)間傳輸數(shù)據(jù)的一致性。緩沖區(qū)的基本設(shè)計(jì)思路是:為每一個(gè)任務(wù)設(shè)置多個(gè)輸出緩沖區(qū),用以支持與其他任務(wù)的數(shù)據(jù)交互。本輸出任務(wù)總能確保找到一個(gè)空閑的緩沖區(qū)寫入數(shù)據(jù),同時(shí)其他任務(wù)可以從其他的緩沖區(qū)中讀取數(shù)據(jù)。每個(gè)任務(wù)的輸出緩沖區(qū)的個(gè)數(shù)為:N = T + 1,T指比當(dāng)前輸出任務(wù)優(yōu)先級(jí)低的任務(wù)數(shù)量。由于最低優(yōu)先級(jí)任務(wù)最后執(zhí)行,數(shù)據(jù)不會(huì)被其他任務(wù)讀取,故其輸出緩沖區(qū)個(gè)數(shù)只需要1個(gè)。

    3 應(yīng)用實(shí)例驗(yàn)證

    本設(shè)計(jì)的內(nèi)核是一個(gè)通用的DSP多任務(wù)實(shí)時(shí)操作系統(tǒng)內(nèi)核,在 TI 的 DSP TMS320C6655上由CCS5.1調(diào)試。并通過實(shí)驗(yàn)測(cè)試該內(nèi)核的一些關(guān)鍵功能。

    在系統(tǒng)main函數(shù)中除T0定時(shí)器任務(wù)之外,再創(chuàng)建4個(gè)時(shí)鐘周期任務(wù)taskT1、taskT2、taskT3和taskT4,各任務(wù)的優(yōu)先級(jí)為:

    T0>taskT1>taskT2>taskT3>taskT4。

    首先,驗(yàn)證定時(shí)器中斷間隔:設(shè)定產(chǎn)生1ms的時(shí)鐘中斷任務(wù)。通過許繼自主研發(fā)的VIGET圖形化工程軟件編寫測(cè)試?yán)?,同時(shí),創(chuàng)建以太網(wǎng)任務(wù),建立系統(tǒng)以太網(wǎng)通信,實(shí)現(xiàn)與圖形化工程軟件的通信。如圖5所示,TSTART 和 TSTOP模塊根據(jù)式(1)算出中斷間隔,并由TSTOP模塊輸出實(shí)時(shí)中斷間隔:

    中斷間隔 = 中斷任務(wù)內(nèi)時(shí)鐘滴答數(shù)(N)* 時(shí)間因子(u) (1)

    XSUM模塊的輸出管腳AVG即為中斷間隔的平均值(999.7894us),證明定時(shí)器中斷正常。

    4個(gè)周期任務(wù)的滴答間隔為1,2,4,8。在某些周期(如時(shí)鐘周期4,8,12...4n)超過2個(gè)任務(wù)會(huì)同時(shí)就緒。不滿足多任務(wù)調(diào)度算法原則。因此,需要設(shè)計(jì)調(diào)度算法,使各周期的任務(wù)數(shù)均衡分布。任務(wù)調(diào)度策略基本設(shè)計(jì)思路是:延遲一個(gè)周期釋放task3任務(wù)信號(hào)量,提前一個(gè)周期釋放task4任務(wù)信號(hào)量。

    任務(wù)的調(diào)度信息通過串口實(shí)時(shí)輸出,圖6為依據(jù)串口輸出信息繪出的任務(wù)分布對(duì)比圖形??梢宰C實(shí):執(zhí)行任務(wù)調(diào)度函數(shù)后,任務(wù)的執(zhí)行周期進(jìn)行延遲和提前,但是各任務(wù)執(zhí)行間隔不變,在同一時(shí)鐘周期最多有2個(gè)任務(wù)進(jìn)入就緒態(tài),各個(gè)任務(wù)分布均勻,系統(tǒng)負(fù)荷均衡。

    4 結(jié)束語(yǔ)

    本文所介紹的僅是DSP實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核中一部分的實(shí)現(xiàn)方法,所設(shè)計(jì)的可縮減內(nèi)核簡(jiǎn)化了程序設(shè)計(jì),程序模塊清晰,易于移植,適用于DSP系統(tǒng)??梢愿鶕?jù)實(shí)際需要添加串口通信、TCP /IP協(xié)議棧、動(dòng)態(tài)內(nèi)存管理、故障診斷等功能,使得完整的嵌入式操作系統(tǒng)在該內(nèi)核的基礎(chǔ)上實(shí)現(xiàn)。許繼自主研發(fā)的電力系統(tǒng)控制保護(hù)平臺(tái)的主處理器中,使用了該內(nèi)核,實(shí)際運(yùn)行狀況良好,滿足了強(qiáng)實(shí)時(shí)性要求。最小任務(wù)周期為0.1ms,滿足復(fù)雜多任務(wù)的需求。

    參考文獻(xiàn):

    [1] 易克非, 胡慶鋒. 基于 DSP 的實(shí)時(shí)多任務(wù)調(diào)度內(nèi)核設(shè)計(jì)[J]. 通信技術(shù), 2011, 44(6): 135.

    [2] 鄔可軍, 朱銘鋯, 曹建樹. DSP實(shí)時(shí)多任務(wù)操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M]. 北京: 電子工業(yè)出版社, 2005: 11-12.

    [3] Instruments T. TI SYS/BIOS Real-time Operating System Users Guide[R]. USA: Texas, 2012.

    [4] 王軍寧, 何迪. TIDSP/BIOS用戶手冊(cè)與驅(qū)動(dòng)開發(fā)[M]. 北京: 清華大學(xué)出版社, 2007.

    [5] Texas Instruments Incorporated TMS320C6000系列DSP的CPU與外設(shè)[M]. 北京: 清華大學(xué)出版社, 2007: 15-17.

    [6] 徐亮, 徐中偉. μC/OS-II 實(shí)時(shí)系統(tǒng)任務(wù)調(diào)度優(yōu)化[J]. 計(jì)算機(jī)工程, 2007, 33(19): 57-59.

    [7] 李巖, 王顯山. 實(shí)時(shí)操作系統(tǒng)任務(wù)調(diào)度算法的硬件實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2010, 46(35): 53.

    猜你喜歡
    多任務(wù)
    異構(gòu)混合云服務(wù)下的多任務(wù)算力度量方法
    數(shù)字時(shí)代的注意困境:媒體多任務(wù)的視角*
    小型無(wú)人艇編隊(duì)的多任務(wù)協(xié)同控制方法
    結(jié)合自監(jiān)督學(xué)習(xí)的多任務(wù)文本語(yǔ)義匹配方法
    面向多任務(wù)的無(wú)人系統(tǒng)通信及控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    基于中心化自動(dòng)加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
    基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
    電測(cè)與儀表(2016年5期)2016-04-22 01:13:46
    一類完全由內(nèi)積構(gòu)造的多任務(wù)核的幾個(gè)性質(zhì)
    基于單片機(jī)應(yīng)用系統(tǒng)的多任務(wù)程序結(jié)構(gòu)設(shè)計(jì)
    辉南县| 赞皇县| 凤山市| 临猗县| 湘乡市| 林西县| 运城市| 宿迁市| 安远县| 福安市| 饶平县| 左权县| 额济纳旗| 上犹县| 屏南县| 泉州市| 淮阳县| 定远县| 三门峡市| 贡觉县| 拉孜县| 蒲江县| 汉寿县| 浪卡子县| 凯里市| 西乌| 靖远县| 长顺县| 漯河市| 赤壁市| 茶陵县| 普格县| 青浦区| 泾源县| 胶州市| 中宁县| 伊宁市| 泌阳县| 开平市| 绥芬河市| 文山县|