<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于RTX51 TINY的分析與探討

          關(guān)于RTX51 TINY的分析與探討

          作者: 時(shí)間:2012-04-12 來(lái)源:網(wǎng)絡(luò) 收藏

          有了以上幾個(gè)函數(shù)的定義和實(shí)現(xiàn),就可以應(yīng)用等待信號(hào)量和釋放信號(hào)量來(lái)完成對(duì)共享資源的獨(dú)占。例如:
            void job()_task_ id {
                DDDD用戶代碼DDDD
                wait_sem(task_id);//等待任務(wù)task_id的信號(hào)量
                DDDD對(duì)共享資源使用代碼DDDD
                release_sem(task_id);//釋放任務(wù)task_id的信號(hào)量
                DDDD用戶代碼DDDD
            }

          應(yīng)用信號(hào)量來(lái)實(shí)現(xiàn)共享資源的使用,不用禁止時(shí)間片輪轉(zhuǎn)和關(guān)閉T0中斷,可以有效地實(shí)現(xiàn)對(duì)共享資源的獨(dú)占;但增加了代碼,等待和釋放信號(hào)量花費(fèi)了一定的時(shí)間,在具體應(yīng)用中要視情況而定。

          4 需要注意的問題

          在應(yīng)用 時(shí)應(yīng)注意以下幾點(diǎn):

          ① 盡可能不使用循環(huán)任務(wù)切換。使用循環(huán)任務(wù)切換時(shí)要求有13個(gè)字節(jié)的堆棧區(qū)來(lái)保存任務(wù)內(nèi)容(工作寄存器等)。如果由os_wait()函數(shù)來(lái)進(jìn)行任務(wù)觸發(fā),則不需要保存任務(wù)內(nèi)容。由于正處于等待運(yùn)行的任務(wù)并不需要等待全部循環(huán)切換時(shí)間結(jié)束,因此os_wait()函數(shù)可以產(chǎn)生一種改進(jìn)的系統(tǒng)響應(yīng)時(shí)間。

          ② 不要將時(shí)鐘節(jié)拍中斷速率設(shè)置得太高,設(shè)定為一個(gè)較低的數(shù)值可以增加每秒的時(shí)鐘節(jié)拍個(gè)數(shù)。每次時(shí)鐘節(jié)拍中斷大約需要100~200個(gè)CPU周期,因此應(yīng)將時(shí)鐘節(jié)拍率設(shè)定得足夠高,以便使中斷響應(yīng)時(shí)間達(dá)到最小化。

          ③ 在os_wait()函數(shù)中有3個(gè)參數(shù): K_TMO、K_IVL和K_SIG。其中對(duì)于K_TMO和K_IVL的使用要加以區(qū)別。在使用時(shí),兩者似乎差別不是很大。其實(shí)不然,兩者存在很大的區(qū)別:K_TMO是指等待一個(gè)超時(shí)信號(hào),只有時(shí)間到了,才會(huì)產(chǎn)生一個(gè)信號(hào)。它產(chǎn)生的信號(hào)是不會(huì)累計(jì)的,產(chǎn)生信號(hào)后,任務(wù)進(jìn)入就緒狀態(tài)。而K_IVL是指周期信號(hào),每隔一個(gè)指定的周期,就會(huì)產(chǎn)生一次信號(hào),產(chǎn)生的信號(hào)是可以累計(jì)的。這樣就使得在指定事件內(nèi)沒有響應(yīng)的信號(hào),通過(guò)信號(hào)次數(shù)的疊加,在以后信號(hào)處理時(shí),重新得以響應(yīng),從而保證了信號(hào)不會(huì)被丟失。而通過(guò)K_TMO方式進(jìn)行延時(shí)的任務(wù),由于某種原因信號(hào)沒有得到及時(shí)的響應(yīng),那么這樣就可能會(huì)丟失一部分沒有響應(yīng)的信號(hào)。不過(guò)兩者都是有效的任務(wù)切換方式,在使用時(shí)要根據(jù)應(yīng)用場(chǎng)合來(lái)確定對(duì)兩者的使用。

          結(jié)語(yǔ)

          實(shí)時(shí)操作系統(tǒng)既能保證對(duì)外界的信息以足夠快的速度進(jìn)行相應(yīng)處理,又能并行運(yùn)行多個(gè)任務(wù),具有實(shí)時(shí)性和并行性的特點(diǎn),因此能很好地完成對(duì)多個(gè)信息的實(shí)時(shí)測(cè)量、處理,并進(jìn)行相應(yīng)的多個(gè)實(shí)時(shí)控制。任務(wù)切換是 的一個(gè)基本服務(wù)。本文對(duì)任務(wù)切換做了詳細(xì)的,在實(shí)際應(yīng)用中還要對(duì)任務(wù)切換時(shí)的堆棧管理有一定了解,這樣才能更好地掌握任務(wù)切換的機(jī)制。共享資源的使用在多任務(wù)操作系統(tǒng)中是不可避免的,RTX51 TINY中沒有專門的處理共享資源函數(shù),所以在實(shí)際應(yīng)用中要視情況來(lái)應(yīng)用文中提到的幾種方法。

          參考文獻(xiàn)
          [1] 朱珍民,隋雪青,段斌. 嵌入式實(shí)時(shí)操作系統(tǒng)及其應(yīng)用開發(fā)[M]. 北京: 北京郵電大學(xué)出版社,2006:44-49.
          [2] Keil Software Inc.RTX51 Tiny User’s Guide,2004.
          [3] 徐愛鈞,彭秀華. 單片機(jī)高級(jí)語(yǔ)言C51 Windows環(huán)境編程與應(yīng)用[M]. 北京:電子工業(yè)出版社,2001.


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: 探討 分析 TINY RTX51 關(guān)于

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();