在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 用uc/OS-2操作系統(tǒng)實(shí)現(xiàn)省電模式

            用uc/OS-2操作系統(tǒng)實(shí)現(xiàn)省電模式

            ——
            作者:北京大學(xué)信息科學(xué)技術(shù)學(xué)院 閆曄 王志軍 時(shí)間:2005-12-23 來源:電子產(chǎn)品世界 收藏

            摘  要:本文介紹了基于ARM7內(nèi)核的Philips lpc2214 MCU在uc/OS-2實(shí)時(shí)多任務(wù)中的低功耗設(shè)計(jì)與實(shí)現(xiàn),該方法可以推廣到其它的嵌入式系統(tǒng)應(yīng)用中。

            關(guān)鍵詞:  低功耗;uc/OS-2 RTOS;Philips lpc2214

            引言

                嵌入式系統(tǒng)的低功耗設(shè)計(jì)越來越成為人們關(guān)心的焦點(diǎn)。一般的嵌入式MCU都有空閑和掉電兩種省電模式,但如何在嵌入式中實(shí)現(xiàn)這兩種模式則是開發(fā)者面臨的一個(gè)難題。本文將給出這個(gè)問題的一種解決方案,它使用Philips lpc2214 MCU作為處理器構(gòu)建硬件平臺(tái),并在其上運(yùn)行uc/OS-2實(shí)時(shí),通過合理地設(shè)置處理器的相關(guān)寄存器和在uc/OS-2上建立相應(yīng)的任務(wù),來實(shí)現(xiàn)MCU的掉電模式。

            lpc2214簡(jiǎn)介   

              lpc2214是Philips公司的一款嵌入式微控制器(MCU),它采用ARM7TDMI內(nèi)核,片上資源十分豐富,擁有16K RAM,256K Flash,兩個(gè)標(biāo)準(zhǔn)串行端口,兩個(gè)SPI端口,一個(gè)I2C端口,內(nèi)部實(shí)時(shí)時(shí)鐘,看門狗,A/D轉(zhuǎn)換,外部存儲(chǔ)器接口(最大支持64M)等。這樣,只需一片lpc2214,加上少許外圍電路,就可以輕松地組成一個(gè)嵌入式系統(tǒng)。

              lpc2214具備兩種省電模式:空閑(IDLE)和掉電(POWER-DOWN)。通過配置相應(yīng)的寄存器,就可以使其進(jìn)入相應(yīng)的省電模式。空閑模式時(shí),系統(tǒng)時(shí)鐘一直有效,處理器,存儲(chǔ)器系統(tǒng)和相關(guān)控制器及內(nèi)部總線不再消耗功率,可通過中斷使處理器恢復(fù)運(yùn)行;掉電模式時(shí),振蕩器關(guān)閉,片內(nèi)外設(shè)不再消耗功率,復(fù)位或者外部中斷可以喚醒掉電模式。典型條件下,MCU的工作電流大概在60mA,而掉電模式下的靜態(tài)電流只有10uA左右。

            uc/OS-2簡(jiǎn)介

              uc/OS-2屬實(shí)時(shí)多任務(wù)操作系統(tǒng),用ANSI C編寫,含小部分匯編代碼,可通過移植用于不同架構(gòu)的微處理器。至今,從8位到64位,uc/OS-2已在超過40種不同架構(gòu)的微處理器上運(yùn)行,其應(yīng)用領(lǐng)域廣泛。

              uc/OS-2是可搶占的實(shí)時(shí)操作系統(tǒng),即當(dāng)前正在運(yùn)行的任務(wù)會(huì)被后來進(jìn)入就緒態(tài)下的更高優(yōu)先級(jí)的任務(wù)所搶占。這項(xiàng)工作是由調(diào)度器(scheduler)完成的。每當(dāng)正在運(yùn)行的任務(wù)結(jié)束自己對(duì)CPU的占用,或者一個(gè)新的任務(wù)建立時(shí),調(diào)度器都會(huì)進(jìn)行一次新的調(diào)度保證當(dāng)前任務(wù)及就緒態(tài)任務(wù)中的最高優(yōu)先級(jí)任務(wù)獲得到CPU的使用權(quán)。

            在操作系統(tǒng)中實(shí)現(xiàn)掉電功能
             

              空閑和掉電這兩種省電模式的實(shí)現(xiàn)方法幾乎是相同的,只有寄存器和喚醒方式的不同,故本文只介紹掉電模式的實(shí)現(xiàn)。
             

            lpc2214中的相關(guān)寄存器
             

              lpc2214中控制MCU進(jìn)入空閑模式和掉電模式相關(guān)的寄存器是:
             
              PCON:功率控制寄存器;
             
              PCONP:外設(shè)功率控制寄存器;

              掉電模式的喚醒是通過外部中斷實(shí)現(xiàn)的,與外部中斷相關(guān)的寄存器是: 

              EXTINT:  外部中斷標(biāo)志寄存器;
             
              EXTWAKE: 外部中斷喚醒寄存器;
             
              EXTMODE: 外部中斷方式寄存器;
             
              EXTPOLAR:外部中斷極性寄存器
             
            lpc2214掉電功能的具體實(shí)現(xiàn)

                在這里通過一個(gè)簡(jiǎn)單的例子說明:系統(tǒng)復(fù)位后創(chuàng)建一個(gè)任務(wù)TaskStart(),它負(fù)責(zé)初始化與外部中斷相關(guān)的寄存器,同時(shí)在該任務(wù)中建立N個(gè)用戶任務(wù)Task1(), Task2(),...TaskN()和1個(gè)用于進(jìn)入掉電模式的任務(wù)Task_Powerdown()。 uc/OS-2開始運(yùn)行后,Task1()至TaskN()模擬N個(gè)實(shí)際任務(wù)的運(yùn)行,Task_Powerdown()則負(fù)責(zé)在N個(gè)任務(wù)都空閑時(shí)將處理器切換進(jìn)掉電模式。當(dāng)有外部中斷時(shí),則在中斷服務(wù)程序中將處理器喚醒。要說明的是,Task1()至TaskN()的優(yōu)先級(jí)都必須高于Task_Powerdown()的優(yōu)先級(jí),且N+1不應(yīng)大于系統(tǒng)最大任務(wù)數(shù)。主要代碼及注釋如下: 

            int main (void)  //主函數(shù),系統(tǒng)執(zhí)行入口

            OSInit(); //初始化

            OSTaskCreate(TaskStart,(void*)0, &TaskStartStk[TASK_STK_SIZE-1],0);

            //建立第一個(gè)任務(wù),優(yōu)先級(jí)最高為0

            OSStart(); //開始運(yùn)行uc/OS-2             

            return 0;  //其實(shí)永遠(yuǎn)不會(huì)返回

             }

            void  TaskStart(void *pdata)  //創(chuàng)建N個(gè)用戶任務(wù)和1個(gè)掉電任務(wù)

            {

            pdata = pdata;

            OSTaskCreate(Task1,(void*)0,&TaskStk1[TASK_STK_SIZE - 1], 1); //創(chuàng)建任務(wù)Task1()

            OSTaskCreate(Task2,(void*)0,&TaskStk2[TASK_STK_SIZE - 1], 2);//創(chuàng)建任務(wù)Task2()

                     ... ... 

            OSTaskCreate(TaskN,(void*)0,&TaskStkN[TASK_STK_SIZE - 1], N);//創(chuàng)建任務(wù)TaskN()

            OSTaskCreate(Task_Powerdown,(void*)0, &TaskStk[TASK_STK_SIZE - 1], N+1);

            //創(chuàng)建掉電任務(wù)Task_Powerdown()

            PCONP = 0x0000;//禁止所有片內(nèi)外設(shè)

            ... ... //設(shè)置外部中斷的相應(yīng)寄存器

            for(;;)

                     {

                        ... ... 

            //任務(wù)代碼,結(jié)束后釋放CPU的使用權(quán)

                      }

            void  Task1(void *pdata)  //用戶任務(wù)1

            {

                  pdata = pdata;

                     for(;;) 

                     {

                       ... ... //任務(wù)代碼

                      }

            }
             

             void  Task_Powerdown (void *pdata)   //MCU掉電任務(wù),等待外部中斷喚醒
             

            {
             

                 pdata = pdata;
             

                    for(;;)
             

                    {
             

            PCON = 2; //使MCU進(jìn)入掉電模式
             

            ... ...  //外部中斷喚醒后,CPU交給用戶任務(wù)

                     }
             

            }

            void __irq IRQ_EINT1(void)  //外部中斷的中斷處理程序
             

            {
             

            while((EXTINT & 0x02)!=0)  //清除中斷標(biāo)志
             

            {
             

                        EXTINT = 0x02;
             

            }
             

                   VICVectAddr = 0x00; //中斷處理結(jié)束
             

            }  
             

            流程圖見圖1

             

            圖1    掉電模式流程圖

            結(jié)語


              本文介紹了在lpc2214微控制器上運(yùn)行實(shí)現(xiàn)掉電的方法,簡(jiǎn)單明了。從中不難看出,這種方法有普遍意義,可以廣泛地應(yīng)用于各種嵌入式系統(tǒng)設(shè)計(jì)中。

            參考文獻(xiàn):

            1. 邵貝貝譯,‘嵌入式實(shí)時(shí)操作系統(tǒng)uc/OS-2’(第2版),北京航空航天大學(xué)出版社,2004.5.

            2. 周立功等,‘ARM嵌入式系統(tǒng)實(shí)驗(yàn)教程’,北京航空航天大學(xué)出版社,2004.12.

            3.  lpc2212/lpc2214 Product Data, Philips Inc.,2004.



            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉