找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 5985|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

分享心得:uCOS2的開(kāi)發(fā)注意事項(xiàng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:48898 發(fā)表于 2013-4-7 12:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
 1.       緊急的任務(wù)優(yōu)先,反應(yīng)速度要求快速的,如警報(bào)。

2.       完成的快的優(yōu)先

3.       系統(tǒng)中不要經(jīng)常動(dòng)態(tài)創(chuàng)建和刪除任務(wù),所有任務(wù)在初始化時(shí)創(chuàng)建,且優(yōu)先級(jí)固定不要?jiǎng)討B(tài)的改變。

4.       系統(tǒng)中不要出現(xiàn)同一個(gè)優(yōu)先級(jí)的多個(gè)任務(wù),uCosII不支持round robin 時(shí)間輪片調(diào)度。

5.       用信號(hào)燈(semaphore)對(duì)設(shè)備進(jìn)行訪問(wèn)時(shí),OSSemPost(), OSSemPend()要成對(duì)出現(xiàn)在同一任務(wù)中,OSSemCreat()創(chuàng)建時(shí)初始值要為1。用信號(hào)實(shí)現(xiàn)任務(wù)同步則不是成對(duì)出現(xiàn),而是出現(xiàn)在不同的任務(wù)中。

6.       在中斷中不能用導(dǎo)致任務(wù)阻塞的函數(shù),如OSSemPend, OSMboxPend,OSQPend

而要用OSSemAccept,OSMboxAccept,OSQAccept.

7.       在系統(tǒng)中有大批量數(shù)據(jù)要傳送時(shí),可有消息傳送內(nèi)存指針和數(shù)據(jù)長(zhǎng)度,這樣效率更高。

8.       中斷處理函數(shù)的時(shí)間要短,一般要小于100微秒,如果中斷處理的時(shí)間超過(guò)1毫秒就要用很高優(yōu)先級(jí)的任務(wù)來(lái)處理。
9.       中斷的入口要屏蔽同一中斷,防止再次進(jìn)入。

10.   系統(tǒng)用多任務(wù)的方式來(lái)提升系統(tǒng)速度,任務(wù)分得越細(xì)并行的速度越快,但是任務(wù)越多系統(tǒng)越復(fù)雜,系統(tǒng)堆棧的消耗也越大。
11.   要注意代碼臨界的段的保護(hù)。如關(guān)中斷系統(tǒng)服務(wù)OS_ENTER_CRITICAL()&    OS_EXIT_CRITICAL(),OSSchedLock ()&OSSchedUnlock ().
12.   當(dāng)系統(tǒng)中有多個(gè)任務(wù)要對(duì)全局變量進(jìn)行訪問(wèn),就要對(duì)全局變量進(jìn)行保護(hù),在修改前后要用信號(hào)燈(Semaphore)或開(kāi)關(guān)中斷的方法來(lái)保護(hù)。

13.   Volatile 對(duì)全局就是保護(hù)。如果在一個(gè)任務(wù)中要不斷的檢查全局變量的值是否變化,而至少一個(gè)任務(wù)或中斷會(huì)改變?nèi)肿兞康闹�,那就要用C語(yǔ)言關(guān)鍵字Volatile進(jìn) 行申明,防止編譯器對(duì)變量?jī)?yōu)化。在檢查全局變量的值時(shí)編譯優(yōu)化會(huì)使用變量的一個(gè)備份,變量值MOV到了寄存器中。

14.   所有對(duì)外部設(shè)備寄存器映射的內(nèi)存地址的訪問(wèn)都要用C語(yǔ)言關(guān)鍵字Volatile進(jìn)行保護(hù),防止編譯器進(jìn)行優(yōu)化處理。

15.   在系統(tǒng)中推薦用中斷的方式作為控制面板和外部設(shè)備的控制方法,這樣系統(tǒng)反應(yīng)速度最快,效率最高。

16.   對(duì)系統(tǒng)控制模塊進(jìn)行分層設(shè)計(jì),把與硬件相關(guān)的內(nèi)容封裝起來(lái),通常統(tǒng)一的接口函數(shù)包括:create(), remove(), open(), close(), read(), write(), ioctrl().

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:66364 發(fā)表于 2017-3-3 16:54 | 只看該作者
總結(jié)德不錯(cuò)
回復(fù)

使用道具 舉報(bào)

板凳
ID:184629 發(fā)表于 2018-9-4 11:07 | 只看該作者
感謝總結(jié)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表