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

QQ登錄

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

搜索
查看: 5449|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于UC/OS 操作系統(tǒng)應(yīng)用開(kāi)發(fā)的一點(diǎn)經(jīng)驗(yàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:140343 發(fā)表于 2016-9-24 18:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
        從單片機(jī)“裸奔”程序,到基于時(shí)間片輪轉(zhuǎn)調(diào)度器程序,到UC/OS操作系統(tǒng)開(kāi)發(fā),本人算是積累了一些經(jīng)驗(yàn);通過(guò)大量實(shí)踐還是覺(jué)得基于UC/OS 操作系統(tǒng)程序最簡(jiǎn)單,效率最高。從一般應(yīng)用角度來(lái)說(shuō),UC/OS_II比UC/OS_III更簡(jiǎn)單,程序更容易調(diào)試。后者,主要是在同優(yōu)先級(jí)任務(wù)出現(xiàn)時(shí)提供了時(shí)間片輪轉(zhuǎn)法調(diào)度器和中斷程序管理,多了一些可剪裁的便于程序調(diào)試和優(yōu)化的宏定義。UC/OS_III可堪稱(chēng)作為程序員學(xué)習(xí)C語(yǔ)言編程的經(jīng)典之作。以下所說(shuō)是基于已經(jīng)移植好了UC/OS 操作系統(tǒng)工程模板。這里不說(shuō)移植的事,因?yàn)樽约哼沒(méi)有十分整明白。不過(guò),各種風(fēng)格的工程模板很多,拿來(lái)做些修改就能用。

       基于UC/OS 操作系統(tǒng)應(yīng)用中出現(xiàn)錯(cuò)誤最多的是:1,死機(jī);有時(shí)候是一開(kāi)機(jī)就直接死機(jī),有時(shí)候是跑幾分鐘之后死機(jī)。這種情況一般是:a),任務(wù)優(yōu)先級(jí)沒(méi)有設(shè)置合理;b),任務(wù)堆棧過(guò)小,導(dǎo)致內(nèi)存泄漏;c),時(shí)鐘節(jié)拍頻率過(guò)高,導(dǎo)致CPU負(fù)荷過(guò)重死機(jī);可以通過(guò),#define OS_TICKS_PER_SEC               200u   /* Set the number of ticks in one second節(jié)拍:5ms 調(diào)整;d),每個(gè)任務(wù)都必須有合理的延時(shí),以便交出CPU使用權(quán),讓低優(yōu)先級(jí)任務(wù)有機(jī)會(huì)使用CPU。

      注意:每個(gè)任務(wù)中不能有過(guò)長(zhǎng)時(shí)間的延時(shí),否則會(huì)造成嚴(yán)重后果。比如,控制一臺(tái)電動(dòng)機(jī)Y-△啟動(dòng),工作流程是先電動(dòng)機(jī)星型運(yùn)行8-12秒,再延時(shí)1s,再切換到電動(dòng)機(jī)三角形運(yùn)行。就這么個(gè)簡(jiǎn)單玩意要真正做到控制自如,任意時(shí)刻可以操作啟停電機(jī),還不是那么簡(jiǎn)單的事。這個(gè)任務(wù)中就有如何處理長(zhǎng)時(shí)間延時(shí)的問(wèn)題。


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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