亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多任務(wù)機(jī)制的STM32系統(tǒng)程序設(shè)計(jì)

        2019-11-21 05:37:50飛,楊
        關(guān)鍵詞:程序運(yùn)行多任務(wù)單片機(jī)

        唐 飛,楊 偉

        (安慶師范大學(xué)物理與電氣工程學(xué)院,安徽安慶246133)

        在工業(yè)控制領(lǐng)域,單片機(jī)作為一種微型化、低成本、高可靠性的微型計(jì)算機(jī),有著廣泛的應(yīng)用。隨著現(xiàn)代控制系統(tǒng)的復(fù)雜程度不斷提升,要求控制系統(tǒng)的計(jì)算機(jī)對(duì)其控制的多個(gè)任務(wù)能有效地進(jìn)行管理。傳統(tǒng)的單片機(jī)系統(tǒng)程序基于單任務(wù)機(jī)制的前后臺(tái)模式運(yùn)行,程序各功能模塊按一定的順序構(gòu)成整體,并且按順序一個(gè)個(gè)循環(huán)執(zhí)行。對(duì)外設(shè)的響應(yīng)一般采用中斷機(jī)制,外部設(shè)備提出中斷請(qǐng)求,系統(tǒng)響應(yīng)中斷,在中斷服務(wù)程序中完成外設(shè)的處理工作。系統(tǒng)的各模塊之間是一種線性關(guān)系,這種程序的單任務(wù)運(yùn)行機(jī)制流程簡(jiǎn)潔、易于控制。然而程序只能按單一的順序執(zhí)行,缺乏靈活性,各模塊的時(shí)間協(xié)調(diào)也比較復(fù)雜,難以動(dòng)態(tài)地調(diào)整執(zhí)行順序或頻率,對(duì)于復(fù)雜的任務(wù)難以勝任[1-2]。為此,需要將多任務(wù)運(yùn)行機(jī)制引入單片機(jī)的程序設(shè)計(jì)中,對(duì)比人們進(jìn)行了很多相關(guān)的研究和實(shí)驗(yàn)。

        劉玉宏詳細(xì)研究了51單片機(jī)的實(shí)時(shí)內(nèi)核的任務(wù)管理、任務(wù)同步機(jī)制、存儲(chǔ)器管理和時(shí)鐘控制的設(shè)計(jì)[3];趙虎通過分析單片機(jī)控制系統(tǒng)的功能結(jié)構(gòu)及軟硬件組成,將時(shí)間片輪轉(zhuǎn)技術(shù)運(yùn)用于單片機(jī)控制系統(tǒng)的設(shè)計(jì)中,實(shí)現(xiàn)了多任務(wù)、多優(yōu)先級(jí)并發(fā)運(yùn)行[4];高國(guó)勝針對(duì)目前單片機(jī)系統(tǒng)應(yīng)用的實(shí)際需求,提出了單片機(jī)系統(tǒng)實(shí)時(shí)多任務(wù)機(jī)制3種實(shí)現(xiàn)方式:基于定時(shí)中斷、任務(wù)狀態(tài)和外部中斷[5];阿占文通過時(shí)間片輪詢方式,實(shí)現(xiàn)了單片機(jī)數(shù)據(jù)采集的串口通信、頻率信號(hào)采集和A/D轉(zhuǎn)換、D/A和開關(guān)量輸出的多任務(wù)操作[6];張利軍研究了小型實(shí)時(shí)操作系統(tǒng)RTX51的基本功能及其在單片機(jī)系統(tǒng)中的應(yīng)用方法,并給出了一個(gè)RTX51的應(yīng)用實(shí)例[7-11]。這些研究工作對(duì)多任務(wù)機(jī)制在單片機(jī)上的應(yīng)用進(jìn)行了一系列的探討,但是也存在著一定的局限性。很多研究使用匯編語言進(jìn)行程序設(shè)計(jì),繁瑣冗雜,移植性差;有的研究將單片機(jī)中的多個(gè)定時(shí)器都用于時(shí)間片輪換任務(wù),占用系統(tǒng)資源過多,影響了單片機(jī)的任務(wù)執(zhí)行能力;有的研究在單片機(jī)上引入商業(yè)性的實(shí)時(shí)多任務(wù)操作系統(tǒng),不僅需要繳納高額的版權(quán)費(fèi),而且由于單片機(jī)本身的片上資源十分有限,操作系統(tǒng)內(nèi)核占用其資源過多,嚴(yán)重?cái)D占了應(yīng)用程序的運(yùn)行空間。

        STM32系列是一類高性能、低成本、低功耗的為嵌入式應(yīng)用設(shè)計(jì)的基于ARM架構(gòu)的32位單片機(jī)的總稱,具有強(qiáng)大的軟件支持,特別適合應(yīng)用于復(fù)雜的嵌入式系統(tǒng)。因此,尋求一種簡(jiǎn)單的辦法在STM32系統(tǒng)上實(shí)現(xiàn)程序的多任務(wù)機(jī)制運(yùn)行,具有十分重要的意義[12]。

        1 多任務(wù)機(jī)制的實(shí)現(xiàn)原理

        程序單任務(wù)運(yùn)行機(jī)制中,程序按任務(wù)的順序執(zhí)行,而在多任務(wù)運(yùn)行機(jī)制下,宏觀上允許在同一時(shí)間內(nèi)運(yùn)行多個(gè)程序模塊。多任務(wù)機(jī)制使用了一定的任務(wù)調(diào)度策略,宏觀上允許多個(gè)任務(wù)共享單個(gè)CPU,實(shí)際微觀上CPU某一時(shí)刻只為單個(gè)任務(wù)提供服務(wù)。任務(wù)調(diào)度機(jī)制保證CPU在不同任務(wù)之間的切換速度十分迅速,普通用戶在宏觀上難以察覺,認(rèn)為CPU可以同時(shí)運(yùn)行多個(gè)任務(wù)。兩者的運(yùn)行機(jī)制如圖1和圖2所示。

        圖1 單任務(wù)機(jī)制程序流程圖

        圖2 多任務(wù)機(jī)制程序流程圖

        基于CPU的分時(shí)技術(shù)可以實(shí)現(xiàn)多任務(wù)運(yùn)行機(jī)制。分時(shí)技術(shù)將系統(tǒng)的各個(gè)功能分解為多個(gè)相對(duì)獨(dú)立的任務(wù)模塊,并將CPU的運(yùn)行時(shí)間劃分成很多的微小的時(shí)間片,由一定的調(diào)度算法按不同的優(yōu)先級(jí)分別分配給各個(gè)任務(wù)模塊運(yùn)行,造成任務(wù)模塊在微觀上輪流運(yùn)行、宏觀上多個(gè)并行的運(yùn)行效果。各個(gè)任務(wù)模塊被限制在各自的時(shí)間片內(nèi)使用CPU,若某個(gè)任務(wù)模塊在分配給它的時(shí)間片內(nèi)尚未完成,該任務(wù)模塊將被暫時(shí)停止,CPU被分配給下一個(gè)任務(wù)模塊使用,如此循環(huán),當(dāng)下一輪歸屬自己的時(shí)間片到來時(shí)該任務(wù)模塊再繼續(xù)工作。由于CPU的運(yùn)行速度很快,只要時(shí)間片的間隔分配得當(dāng),那么某個(gè)任務(wù)從掛起到獲得下一個(gè)工作時(shí)間片的時(shí)間很短,用戶不會(huì)察覺到任務(wù)運(yùn)行有所“停頓”,而是感到整個(gè)系統(tǒng)為其“獨(dú)占”。

        基于分時(shí)技術(shù)的多任務(wù)程序運(yùn)行機(jī)制主要具有以下特點(diǎn):(1)多路性,用戶通過各自的設(shè)備,可以同時(shí)訪問同一個(gè)系統(tǒng);(2)及時(shí)性,用戶的需求能在較短的時(shí)間內(nèi)得到及時(shí)響應(yīng);(3)獨(dú)占性,用戶之間的操作相互獨(dú)立,不會(huì)互相影響。因此,將基于分時(shí)技術(shù)的多任務(wù)程序運(yùn)行機(jī)制引入單片機(jī)后,可以有效地改善單片機(jī)系統(tǒng)的程序運(yùn)行方式,滿足復(fù)雜控制系統(tǒng)的需求。

        2 多任務(wù)機(jī)制的實(shí)現(xiàn)方法

        單片機(jī)系統(tǒng)的程序運(yùn)行機(jī)制是按單任務(wù)設(shè)計(jì)的,即程序只能按單一的順序執(zhí)行,而多任務(wù)機(jī)制要求在同一時(shí)間執(zhí)行多個(gè)任務(wù),對(duì)于單個(gè)CPU,只能在各個(gè)任務(wù)間快速切換來完成多任務(wù)需求。單片機(jī)內(nèi)部都提供了定時(shí)/計(jì)數(shù)器,可以實(shí)現(xiàn)毫秒級(jí)的定時(shí),將定時(shí)器的中斷系統(tǒng)用于多任務(wù)系統(tǒng)中的時(shí)間片的分配,設(shè)定好相應(yīng)的定時(shí)時(shí)間,定時(shí)時(shí)間到后產(chǎn)生中斷,利用中斷機(jī)制進(jìn)行多個(gè)任務(wù)的分時(shí)切換。因此,單片機(jī)具備了實(shí)現(xiàn)時(shí)分多任務(wù)機(jī)制的硬件條件。又由于單片機(jī)運(yùn)算能力有限,多任務(wù)調(diào)度的算法必須簡(jiǎn)潔明了,因此采用時(shí)分式的程序控制機(jī)制也是較為合適的。

        實(shí)現(xiàn)多任務(wù)分時(shí)控制的關(guān)鍵在于將系統(tǒng)的功能細(xì)分成多個(gè)任務(wù)模塊,并合理地劃分各模塊運(yùn)行所占用的時(shí)間片。時(shí)間片劃分的越小,系統(tǒng)的實(shí)時(shí)性就越好,但是任務(wù)切換會(huì)比較頻繁,降低CPU的運(yùn)行效率,程序模塊的運(yùn)行會(huì)被分割得較為破碎;時(shí)間片劃分的較長(zhǎng),CPU運(yùn)行效率將會(huì)升高,但系統(tǒng)的實(shí)時(shí)性將會(huì)降低。因此,在設(shè)計(jì)時(shí)間片的大小時(shí),需要根據(jù)系統(tǒng)任務(wù)的執(zhí)行、采樣時(shí)間、A/D轉(zhuǎn)換、本機(jī)頻率等因素,合理地確定時(shí)間片的大小。

        采用時(shí)分式的多任務(wù)程序運(yùn)行機(jī)制后,程序不再是按單任務(wù)的順序執(zhí)行,而是在相應(yīng)的時(shí)間片內(nèi),執(zhí)行對(duì)應(yīng)的程序模塊。每個(gè)程序模塊都相互獨(dú)立,并設(shè)置了運(yùn)行標(biāo)志位。進(jìn)入功能模塊后,先根據(jù)標(biāo)志位判斷是否需要執(zhí)行該模塊,如滿足要求則執(zhí)行,否則,跳過并進(jìn)入下一個(gè)功能模塊。類似延時(shí)這樣的功能模塊,不再使用循環(huán)等待,而是以時(shí)間片設(shè)置的時(shí)間為基準(zhǔn),轉(zhuǎn)換為對(duì)模塊執(zhí)行頻率的需求。如果時(shí)間片足夠短,任務(wù)切換及時(shí),程序的運(yùn)行中等同于所有的模塊同時(shí)工作,滿足多任務(wù)的實(shí)時(shí)需求。

        3 多任務(wù)機(jī)制的實(shí)現(xiàn)策略及實(shí)例

        在單片機(jī)程序設(shè)計(jì)中,按系統(tǒng)的功能設(shè)置各個(gè)任務(wù),每個(gè)任務(wù)細(xì)分為各個(gè)過程,按時(shí)間片管理各過程的運(yùn)行。因此單片機(jī)多任務(wù)處理程序原理如下:(1)系統(tǒng)將各任務(wù)依次排成隊(duì)列,CPU依次執(zhí)行各任務(wù),在執(zhí)行結(jié)束后返回首個(gè)任務(wù)執(zhí)行并循環(huán);(2)在執(zhí)行單個(gè)任務(wù)時(shí),如該任務(wù)無法在一個(gè)時(shí)間片內(nèi)完成,就執(zhí)行該任務(wù)的一個(gè)過程,其他過程等下一輪時(shí)間片到來時(shí)再執(zhí)行;(3)循環(huán)延時(shí)等消耗CPU時(shí)間的程序,轉(zhuǎn)換為對(duì)任務(wù)執(zhí)行頻率的需求;(4)任務(wù)和過程間通過變量共享和交換數(shù)據(jù),任務(wù)切換時(shí)不保留現(xiàn)場(chǎng)數(shù)據(jù)和傳遞參數(shù)。

        程序多任務(wù)運(yùn)行機(jī)制中,關(guān)鍵在于合理地將系統(tǒng)功能分解為多個(gè)任務(wù)功能模塊,每個(gè)任務(wù)還可以按具體需求細(xì)分為過程。任務(wù)模塊的劃分與系統(tǒng)功能密切相關(guān),劃分時(shí)應(yīng)注意:(1)各任務(wù)模塊應(yīng)盡量短小精悍,保證在一個(gè)系統(tǒng)時(shí)間片內(nèi)執(zhí)行完畢。對(duì)于傳統(tǒng)的循環(huán)延時(shí)類消耗CPU時(shí)間的程序,應(yīng)盡量將其轉(zhuǎn)化為對(duì)模塊執(zhí)行頻率的需求。例如,在數(shù)碼管動(dòng)態(tài)顯示時(shí),每位數(shù)碼管需要有3~5 ms的延時(shí)來保證顯示穩(wěn)定,傳統(tǒng)的程序設(shè)計(jì)采用循環(huán)延時(shí)的方案,執(zhí)行時(shí)需要消耗CPU較長(zhǎng)時(shí)間,影響其他任務(wù)的執(zhí)行;在多任務(wù)機(jī)制下,改變程序設(shè)計(jì)方法,數(shù)碼管位顯之間的切換由模塊執(zhí)行頻率來決定,讓出CPU時(shí)間給其他任務(wù)。(2)各任務(wù)模塊運(yùn)行時(shí)會(huì)出現(xiàn)某一任務(wù)運(yùn)行時(shí)間過長(zhǎng)而不能在單個(gè)系統(tǒng)時(shí)間片內(nèi)完成的情況,可以將模塊分解為多個(gè)過程,分散到多個(gè)時(shí)間片內(nèi)執(zhí)行,通過變量產(chǎn)生消息聯(lián)結(jié)。(3)各任務(wù)模塊功能上應(yīng)相互獨(dú)立,便于程序的調(diào)試和維護(hù)。(4)模塊之間需要相互配合工作時(shí),采用一些公共單元進(jìn)行通信以保持同步,合理地劃分任務(wù)模塊可以充分發(fā)揮多任務(wù)機(jī)制的優(yōu)越性。

        綜上所述,在單片機(jī)系統(tǒng)中實(shí)現(xiàn)多任務(wù)程序運(yùn)行機(jī)制,需要由定時(shí)器定時(shí)產(chǎn)生時(shí)間片,由調(diào)度程序?qū)r(shí)間片分配給各任務(wù)模塊使用。單片機(jī)內(nèi)部提供了定時(shí)/計(jì)數(shù)器,可以實(shí)現(xiàn)毫秒級(jí)的定時(shí),把定時(shí)中斷用于控制時(shí)間片的分配,可實(shí)現(xiàn)多個(gè)任務(wù)的分時(shí)輪換執(zhí)行;同時(shí),單片機(jī)的通用I/O口使用中斷可以實(shí)現(xiàn)對(duì)任務(wù)的控制。以定時(shí)器中斷為核心的軟件和硬件相互配合實(shí)現(xiàn)任務(wù)切換,任務(wù)中還可以設(shè)置若干個(gè)狀態(tài),若干個(gè)優(yōu)先級(jí),CPU通過循環(huán)查詢各個(gè)任務(wù),根據(jù)任務(wù)的不同狀態(tài)和優(yōu)先級(jí),決定該任務(wù)的執(zhí)行策略。

        在多任務(wù)機(jī)制中,需要根據(jù)系統(tǒng)運(yùn)行的實(shí)際需求,合理地劃分出時(shí)間片,按照一定的策略分配給各個(gè)任務(wù)運(yùn)行。系統(tǒng)時(shí)間片的大小取決于各個(gè)任務(wù)執(zhí)行所需最小時(shí)間,通常應(yīng)保證大多數(shù)任務(wù)在其規(guī)定的時(shí)間片內(nèi)能夠執(zhí)行完畢。對(duì)于一些耗時(shí)較長(zhǎng)的任務(wù),如按鍵掃描、串口通信和A/D等,需要進(jìn)行任務(wù)細(xì)分,將任務(wù)分解為若干模塊,每個(gè)模塊分配到不同階段的時(shí)間片中去完成,經(jīng)歷多個(gè)時(shí)間片之后綜合完成整個(gè)任務(wù)。實(shí)踐中,還必須多次反復(fù)試驗(yàn),才能選定最佳的時(shí)間片劃分方案。

        對(duì)于典型的STM32控制系統(tǒng),一般包括數(shù)據(jù)輸入、輸出、處理、顯示等模塊。顯示模塊一般采用8位LED數(shù)碼管,工作在動(dòng)態(tài)顯示方式下,每位數(shù)碼管輪流顯示數(shù)據(jù),為使數(shù)字顯示穩(wěn)定,每一位數(shù)碼管的數(shù)據(jù)需要保持2~5 ms的時(shí)間,整個(gè)數(shù)碼管的顯示時(shí)間約為24~40 ms,無法在一個(gè)時(shí)間片內(nèi)執(zhí)行完畢,因此考慮將整個(gè)的顯示任務(wù)劃分為每個(gè)數(shù)碼管單獨(dú)顯示的模塊,每個(gè)模塊分散放入單個(gè)時(shí)間片內(nèi)執(zhí)行,通過時(shí)間片控制顯示的切換;輸入模塊一般采用4×4的矩陣鍵盤,整個(gè)鍵盤的識(shí)別需要經(jīng)歷按鍵按下、防抖、判斷鍵值、判斷按鍵彈起等過程,往往需要300 ms甚至更長(zhǎng)時(shí)間,因此也需要將任務(wù)劃分為多個(gè)階段,分散到各個(gè)時(shí)間片內(nèi)執(zhí)行;串行口模塊需要定時(shí)發(fā)送和接收數(shù)據(jù),收發(fā)數(shù)據(jù)的時(shí)間很短,可以在單個(gè)時(shí)間片內(nèi)執(zhí)行完畢,因此主要考慮其執(zhí)行頻率的需求。根據(jù)上述模塊的工作特點(diǎn),將各模塊的工作頻率分配如下:顯示模塊,每個(gè)數(shù)碼管顯示保持4 ms,8個(gè)數(shù)碼顯示完成共需32 ms;鍵盤掃描任務(wù)每50 ms掃描一次,如果有按鍵按下,整個(gè)按鍵處理完成的時(shí)間約耗時(shí)500 ms;串行口每100 ms發(fā)送一次數(shù)據(jù)。因此,根據(jù)系統(tǒng)需求,系統(tǒng)任務(wù)的最高執(zhí)行頻率為250,系統(tǒng)時(shí)間片設(shè)置為4 ms,由此計(jì)算出各子任務(wù)執(zhí)行時(shí)的所需的計(jì)數(shù)器的值。

        STM32系統(tǒng)使用定時(shí)器SysTick進(jìn)行定時(shí),設(shè)置定時(shí)時(shí)間為4 ms,即為系統(tǒng)的時(shí)間片,定時(shí)時(shí)間到產(chǎn)生中斷,同時(shí)設(shè)置計(jì)數(shù)變量進(jìn)行計(jì)數(shù)。當(dāng)每個(gè)時(shí)間片到來時(shí),就執(zhí)行其對(duì)應(yīng)的任務(wù)函數(shù),處理相應(yīng)的任務(wù)。例如:計(jì)數(shù)值每到達(dá)1的倍數(shù)時(shí),表明時(shí)間過去了4 ms,此時(shí)切換數(shù)碼管的顯示數(shù)據(jù);計(jì)數(shù)值每到達(dá)10的倍數(shù)時(shí),表明時(shí)間過去了40 ms,需要執(zhí)行按鍵掃描任務(wù);計(jì)數(shù)值每到達(dá)25的倍數(shù)時(shí),表明時(shí)間過去了100 ms,此時(shí)應(yīng)開始進(jìn)行串行口的數(shù)據(jù)發(fā)送和接收。

        對(duì)于各個(gè)模塊任務(wù),在進(jìn)行程序設(shè)計(jì)時(shí),要使用任務(wù)處理函數(shù)、任務(wù)執(zhí)行狀態(tài)、任務(wù)優(yōu)先級(jí)等多個(gè)函數(shù)及參數(shù),需要定義大量的變量來存儲(chǔ)和傳遞這些參數(shù)。隨著處理任務(wù)數(shù)量的增加,參數(shù)數(shù)量也隨之大規(guī)模增長(zhǎng),程序設(shè)計(jì)時(shí)極易產(chǎn)生混亂,且程序可讀性差,執(zhí)行效率低??紤]到這些數(shù)據(jù)同屬于模塊任務(wù)運(yùn)行時(shí)所需要的參數(shù),嵌入式CPU一般不支持C++語言,無法使用C++語言的數(shù)據(jù)結(jié)構(gòu),可以采用C語言中類似的數(shù)據(jù)結(jié)構(gòu)——結(jié)構(gòu)體來組織封裝這些參數(shù),使它們有機(jī)地組合成一個(gè)整體,程序結(jié)構(gòu)清晰,不易出錯(cuò)。STM32系統(tǒng)的運(yùn)算能力很強(qiáng),即使在程序設(shè)計(jì)時(shí)加入了一些較為復(fù)雜的數(shù)據(jù)結(jié)構(gòu),采用一些復(fù)雜的算法,并不會(huì)降低系統(tǒng)的性能,反而能夠清晰地描述算法,提高程序設(shè)計(jì)的效率。

        因控制系統(tǒng)中處理的任務(wù)較多,且不同任務(wù)的處理方法又有所不同,為了在程序設(shè)計(jì)中有效地管理任務(wù)處理函數(shù),定義了一個(gè)結(jié)構(gòu)體,作為管理任務(wù)處理函數(shù)的核心。

        上述結(jié)構(gòu)體中,變量IsRunning標(biāo)明任務(wù)的運(yùn)行狀態(tài),0表示尚未運(yùn)行,1表示正在運(yùn)行;變量Priotity標(biāo)明任務(wù)的優(yōu)先級(jí)(0~9),任務(wù)運(yùn)行時(shí)判斷該標(biāo)志按優(yōu)先級(jí)先后依次執(zhí)行;變量TaskRun為需要執(zhí)行的任務(wù)處理函數(shù)的指針,通過指針對(duì)任務(wù)處理函數(shù)進(jìn)行調(diào)用。

        程序運(yùn)行時(shí),需要先將結(jié)構(gòu)體其初始化,因此定義一個(gè)結(jié)構(gòu)體數(shù)組,用于管理任務(wù)處理函數(shù):

        其中的TaskDisplay、TaskKeyScan、TaskSerial等均為系統(tǒng)的任務(wù)處理函數(shù),由于使用數(shù)組進(jìn)行管理,可以根據(jù)需求方便地進(jìn)行增加和刪減,而無需對(duì)主程序做較大的改動(dòng)。

        程序執(zhí)行時(shí),通過循環(huán)遍歷整個(gè)數(shù)組,調(diào)用函數(shù)指針,執(zhí)行相應(yīng)的任務(wù)處理程序。根據(jù)相應(yīng)的時(shí)間片分配,使得每個(gè)任務(wù)處理函數(shù)分時(shí)間片按頻率要求得到循環(huán)執(zhí)行。在任務(wù)處理函數(shù)內(nèi)部,根據(jù)運(yùn)行狀態(tài)、優(yōu)先級(jí)等參數(shù)的要求,再設(shè)計(jì)具體的實(shí)現(xiàn)算法。

        上述程序在STM32系統(tǒng)上正確運(yùn)行,顯示模塊、鍵盤控制、串行口通信等子任務(wù)在調(diào)度程序的控制之下正確工作,互不沖突,且所處理的任務(wù)可以方便地增加和刪減,程序設(shè)計(jì)方便。在單片機(jī)系統(tǒng)上已經(jīng)初步實(shí)現(xiàn)了多任務(wù)的程序運(yùn)行機(jī)制。

        4 總 結(jié)

        隨著控制系統(tǒng)復(fù)雜程度的不斷提升,現(xiàn)有單片機(jī)的程序運(yùn)行機(jī)制不支持實(shí)時(shí)多任務(wù)運(yùn)行,極大地限制了其在控制系統(tǒng)中的應(yīng)用。針對(duì)這種程序運(yùn)行機(jī)制的局限性,文章研究了嵌入式系統(tǒng)中多任務(wù)機(jī)制的實(shí)施原理,分析了實(shí)現(xiàn)多任務(wù)機(jī)制的基本條件,提出了實(shí)施多任務(wù)機(jī)制的策略,然后將多任務(wù)程序運(yùn)行機(jī)制引入單片機(jī)系統(tǒng),設(shè)計(jì)了一個(gè)基于分時(shí)機(jī)制的且具有一定優(yōu)先級(jí)規(guī)則的多任務(wù)程序運(yùn)行系統(tǒng),并使用C語言編寫了程序。該程序使用C語言的結(jié)構(gòu)體管理系統(tǒng)模塊的任務(wù)處理函數(shù)及其各類參數(shù),程序可讀性好,編程效率高,通過數(shù)組調(diào)用函數(shù)指針執(zhí)行相應(yīng)的任務(wù)處理函數(shù),可以根據(jù)需求方便的進(jìn)行增加和刪減。程序合理地分配了任務(wù)地切換時(shí)間,大大增加了程序的運(yùn)行效率,提升了單片機(jī)系統(tǒng)的工作效率,且編譯程序和構(gòu)造算法具有快捷、簡(jiǎn)便、開發(fā)周期短、容易調(diào)試和維護(hù)等特點(diǎn),滿足了多任務(wù)系統(tǒng)的運(yùn)行需求,程序也真正得以實(shí)用化。

        猜你喜歡
        程序運(yùn)行多任務(wù)單片機(jī)
        行政公益訴訟訴前程序運(yùn)行檢視
        法大研究生(2020年2期)2020-01-19 01:43:04
        基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機(jī)的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于中心化自動(dòng)加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
        基于單片機(jī)的便捷式LCF測(cè)量?jī)x
        電子制作(2019年9期)2019-05-30 09:42:02
        基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
        電測(cè)與儀表(2016年5期)2016-04-22 01:13:46
        論刑事錯(cuò)案的成因
        Microchip推出兩個(gè)全新PIC單片機(jī)系列
        《刑事訴訟法》修改背景下刑事和解制度淺析
        丝袜美腿亚洲综合久久| 亚洲精品无码久久久久| 国内揄拍国内精品| 国产视频嗯啊啊啊| 国产精品女同一区二区免| 亚洲av无码一区二区三区天堂| 无遮无挡爽爽免费毛片| 久久频道毛片免费不卡片| 久久激情人妻中文字幕| 一区二区三区在线视频观看| aa片在线观看视频在线播放| 超薄肉色丝袜一区二区| 国产精品国产午夜免费福利看| 久久国产精品免费一区二区三区| 给你免费播放的视频| 日韩成人大屁股内射喷水| 亚洲人成人一区二区三区| 亚洲国产综合一区二区| 揄拍成人国产精品视频| 亚洲精品久久久久久久久av无码| 国产乱子伦精品免费女| 久久亚洲av熟女国产| 小妖精又紧又湿高潮h视频69| 欧美jizzhd精品欧美| 成人无码区免费AⅤ片WWW| 日韩国产自拍视频在线观看 | 亚洲精品无码永久在线观看你懂的 | 一本大道综合久久丝袜精品| 亚洲天堂精品成人影院| 日韩欧美人妻一区二区三区| 久久亚洲道色宗和久久| 午夜国产在线精彩自拍视频| 红桃av一区二区三区在线无码av| 丁香花在线影院观看在线播放 | 在线一区二区三区视频观看| 一区二区三区日韩亚洲中文视频| 激性欧美激情在线| 国产内射XXXXX在线| 国产精品人成在线观看不卡| 色欲人妻aaaaaaa无码| 少妇高潮惨叫久久久久久|