久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

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

STM32之uCOS-II基礎(chǔ)、移植、創(chuàng)建任務(wù)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:763998 發(fā)表于 2020-6-26 19:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

5.1 uCOS-II操作系統(tǒng)

5.1.1 什么是操作系統(tǒng)

              《1》管理軟件硬件的程序集合。

              《2》軟硬件的溝通橋梁。

舉個(gè)栗子:當(dāng)你要播放音樂時(shí),假設(shè)是電腦,裝的是Window操作系統(tǒng),步驟如下:

  • 打開酷狗音樂軟件
  • 找需要播放的歌曲
  • 點(diǎn)擊播放

這時(shí),你就能聽到優(yōu)美動(dòng)聽的歌曲了。但底層操作是如何操作的呢?是誰操作呢?

是操作系統(tǒng)幫你完成了這一切工作。當(dāng)你點(diǎn)擊播放,操作系統(tǒng)工作流程如下:

  • 當(dāng)你點(diǎn)擊播放按鈕,操作系統(tǒng)讀取你需要播放歌曲的源文件(mp3文件)
  • 操作系統(tǒng)調(diào)用音樂解析驅(qū)動(dòng),解析你的mp3文件,轉(zhuǎn)成播放器(喇叭)認(rèn)識(shí)的二進(jìn)制文件。
  • 操作系統(tǒng)把解析好音樂的二進(jìn)制文件,發(fā)送給播放器(硬件設(shè)備),若此時(shí)音樂播放器,一切都準(zhǔn)備就緒了,就可以播放音樂了。

總結(jié),對(duì)硬件的操作,由操作系統(tǒng)來完成,操作系統(tǒng)直接與硬件交互。用戶如果想控制底層硬件,必須經(jīng)過操作系統(tǒng)進(jìn)行間接控制,操作系統(tǒng)提供系統(tǒng)調(diào)用給用戶,用戶就可以與硬件交互了。系統(tǒng)調(diào)用是封裝了操作各部分硬件的API。


5.1.2 為什么要使用操作系統(tǒng)

              《1》屏蔽硬件。使應(yīng)用程序不依賴硬件,提高了程序的可移植性。

              《2》多任務(wù)。因?yàn)橄M(fèi)者想同時(shí)聊QQ、聊、看電視劇等。早期單核CPU想完成這些功能,就需要使用操作系統(tǒng),實(shí)現(xiàn)不同任務(wù)之間高速的切換。


5.1.3 操作系統(tǒng)分類

              《1》分時(shí)操作系統(tǒng):以時(shí)間片為基本調(diào)度原則。給每個(gè)任務(wù)分配一段固定的CPU時(shí)間,時(shí)間到就切換下一個(gè)任務(wù),時(shí)間不到不切換任務(wù)。如:Windows—95/98,Linux內(nèi)核2.6以前。

              《2》實(shí)時(shí)操作系統(tǒng):以優(yōu)先級(jí)為基本調(diào)度原則。不是給每個(gè)任務(wù)分配一段固定的CPU時(shí)間,而是根據(jù)優(yōu)先級(jí)分配CPU執(zhí)行時(shí)間,誰優(yōu)先級(jí)高,先執(zhí)行誰,分配的CPU時(shí)間就多,如uCOS-II。

              《3》半實(shí)時(shí)操作系統(tǒng):部分使用分時(shí)操作系統(tǒng)、部分使用實(shí)時(shí)操作系統(tǒng)。如Windows----7/8/10,Linux內(nèi)核2.6以后。



5.1.3 為何學(xué)uCOS-II

《1》代碼量少,容易上手。

《2》多任務(wù),實(shí)現(xiàn)復(fù)雜功能

《3》提高內(nèi)外功(內(nèi)功:閱讀代碼能力 外功:編程能力)

《4》為學(xué)習(xí)其他操作系統(tǒng)打下基礎(chǔ)


5.1.4 其他補(bǔ)充

學(xué)操作系統(tǒng)的難點(diǎn)

《1》邏輯理解、代碼運(yùn)行流程

《2》術(shù)語的理解、領(lǐng)悟

uCOS-II理解

u---微型

C---控制器

              OS—操作系統(tǒng)

UCOS-II代碼來源

《1》官網(wǎng)

《2》示例代碼


5.2 UCOS操作系統(tǒng)

5.2.1 操作系統(tǒng)的調(diào)度原則

《1》分時(shí)操作系統(tǒng)調(diào)度原則:

以時(shí)間片為基本調(diào)度原則,為每個(gè)任務(wù)分配固定的CPU執(zhí)行時(shí)間,時(shí)間到,切換下一個(gè)任務(wù),時(shí)間不到,不切換任務(wù)。

《2》實(shí)時(shí)操作系統(tǒng)調(diào)度原則

以優(yōu)先級(jí)為基本調(diào)度原則,不是固定為每個(gè)任務(wù)分配CPU執(zhí)行時(shí)間,而是根據(jù)優(yōu)先級(jí)高低分配CPU時(shí)間,優(yōu)先級(jí)低的分配CPU執(zhí)行時(shí)間就短,優(yōu)先級(jí)高的分配的CPU時(shí)間就長(zhǎng)。



5.2.2 操作系統(tǒng)程序結(jié)構(gòu)

《1》裸機(jī)代碼

整個(gè)工程只有一個(gè)main函數(shù),在main函數(shù)執(zhí)行中只有一個(gè)真正意義上死循環(huán)其他死循環(huán)都是有退出條件或永遠(yuǎn)不會(huì)執(zhí)行了的死循環(huán)。

《2》操作系統(tǒng)代碼

整個(gè)工程只有一個(gè)main函數(shù),在mian函數(shù)中,至少創(chuàng)建一個(gè)任務(wù),每個(gè)任務(wù)都有一個(gè)死循環(huán)。操作系統(tǒng)要切換任務(wù)需要高優(yōu)先級(jí)任務(wù)釋放CPU使用權(quán)。


5.2.3操作系統(tǒng)的任務(wù)結(jié)構(gòu)

《1》任務(wù)的構(gòu)成:任務(wù)控制塊,任務(wù)函數(shù)、任務(wù)優(yōu)先級(jí)、任務(wù)棧。

《2》 任務(wù)控制塊:任務(wù)先內(nèi)存空間申請(qǐng)的一塊內(nèi)存空間,用于執(zhí)行任務(wù)使用的,任務(wù)控制塊包含、任務(wù)函數(shù)、任務(wù)優(yōu)先級(jí)、任務(wù)棧。

《3》任務(wù)函數(shù):任務(wù)的執(zhí)行入口,任務(wù)的具體功能在這里實(shí)現(xiàn)。

《4》任務(wù)優(yōu)先級(jí):任務(wù)的能執(zhí)行的唯一標(biāo)識(shí)。用來規(guī)定任務(wù)的執(zhí)行先后順序。

《5》任務(wù)棧:保存任務(wù)在切換過程中的現(xiàn)場(chǎng)信息。任務(wù)在切換前,把當(dāng)前執(zhí)行任務(wù)的現(xiàn)在信息保存在棧中,該過程稱為壓棧,當(dāng)執(zhí)行完其他任務(wù)完后,又切換回來,讀取棧里面保存的現(xiàn)場(chǎng)信息,繼續(xù)執(zhí)行任務(wù),該過程稱為彈棧。

簡(jiǎn)單理解:在棧中進(jìn)入一個(gè)元素,稱為壓棧或入棧,出來一個(gè)元素稱為彈棧或出棧。

5.2.4 操作系統(tǒng)的任務(wù)切換

在哪些情況下,會(huì)進(jìn)行任務(wù)切換?

  • 心跳節(jié)拍到達(dá)的時(shí)候會(huì)進(jìn)行切換。心跳節(jié)拍來源于系統(tǒng)滴答時(shí)間,所以用Tick表示心跳節(jié)拍。
  • 調(diào)用任務(wù)調(diào)度函數(shù)。用操作系統(tǒng)內(nèi)核進(jìn)行調(diào)用。

5.2.5 操作系統(tǒng)的任務(wù)中斷

與裸機(jī)編程中斷基本一致,但需要注意兩點(diǎn)

  • 在操作系統(tǒng)的中斷服務(wù)函數(shù)的第一句代碼,調(diào)用一個(gè)函數(shù),目的是告訴操作系統(tǒng)當(dāng)前進(jìn)入中斷功能。
  • 在操作系統(tǒng)的中斷服務(wù)函數(shù)的最后一句代碼,調(diào)用一個(gè)函數(shù),目的是告訴操作系統(tǒng)當(dāng)前退出了中斷功能。

裸機(jī)中斷與ucos中斷的深入理解

  • 裸機(jī)中斷,中斷后會(huì)返回原點(diǎn),原點(diǎn)就是主棧。從中斷棧切換回到主棧。
  • ucos中斷,中斷后不一定返回原點(diǎn),因?yàn)榉祷厍坝腥蝿?wù)調(diào)度,如果中斷完后,有任務(wù)優(yōu)先級(jí)高過當(dāng)前任務(wù),當(dāng)前任務(wù)就失去了CPU的使用權(quán)。

5.2.6 操作系統(tǒng)的任務(wù)狀態(tài)

《1》停止/休眠態(tài):任務(wù)創(chuàng)建之前和刪除之后的狀態(tài)。

《2》就緒態(tài):任務(wù)具有了可執(zhí)行條件。

《3》運(yùn)行態(tài):任務(wù)得到了CPU的使用權(quán)。

《4》等待/掛起態(tài):任務(wù)被掛起或等待某件事情發(fā)生。

《5》中斷態(tài):正在執(zhí)行的任務(wù),被中斷了。

任務(wù)狀態(tài)轉(zhuǎn)換關(guān)系如下圖:

5.3 創(chuàng)建UCOS工程模板

5.3.1 獲取UCOS源碼

官網(wǎng)太卡了,所以給你準(zhǔn)備UCOS例程,如下。

5.3.2 UCOS過程文件分析

5.3.3 新建UCOS工程


5.3.4 創(chuàng)建一個(gè)任務(wù)

5.3.5 補(bǔ)充、小結(jié)

移植Ucos-II總結(jié):

配置基本流程:

《1》找到Ucos-II源碼(來源:官網(wǎng)、例程、別人的代碼、自己的代碼)

《2》添加到過程文件中,添加對(duì)應(yīng)頭文件

《3》編寫系統(tǒng)滴答定時(shí)器,開啟中斷模式

《4》編寫滴答中斷服務(wù)函數(shù)

《5》編寫主函數(shù)

主函數(shù)編寫流程:

  • 系統(tǒng)滴答初始化
  • 串口初始化(用于調(diào)試)
  • 操作系統(tǒng)初始化
  • 創(chuàng)建任務(wù)
  • 啟動(dòng)操作系統(tǒng)
  • 實(shí)現(xiàn)任務(wù)函數(shù)

關(guān)于延時(shí)OSTimeDly(100);?

一次系統(tǒng)滴答為5ms,所以寫100,就是500ms。


關(guān)于任務(wù)函數(shù)OSTaskCreate(Task0,NULL,&stack0[TASK0_STK_SIZE-1],TASK0_PRI);?

  • 第一個(gè)參數(shù)為一個(gè)函數(shù)的名字(實(shí)現(xiàn)任務(wù)的函數(shù)的名字)
  • 傳給實(shí)現(xiàn)任務(wù)函數(shù)的參數(shù)(形參)
  • 任務(wù)棧棧頂(高地址、數(shù)組最后一個(gè)元素)
  • 優(yōu)先級(jí)(0-61中間的選一個(gè),63留給了空閑任務(wù)、62留給了統(tǒng)計(jì)任務(wù))

全部資料51hei下載地址:
0.新建工程.7z (351.93 KB, 下載次數(shù): 37)
uCOS-II.zip (94.6 KB, 下載次數(shù): 36)
UCOS.docx (1000.62 KB, 下載次數(shù): 30)

評(píng)分

參與人數(shù) 2黑幣 +70 收起 理由
gracture + 20 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-6-28 16:16 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:162136 發(fā)表于 2020-10-10 23:16 | 只看該作者
好東東,支持一下。
回復(fù)

使用道具 舉報(bào)

地板
ID:288751 發(fā)表于 2020-11-24 18:07 | 只看該作者
馬一下,學(xué)習(xí)了謝謝/
回復(fù)

使用道具 舉報(bào)

5#
ID:848719 發(fā)表于 2020-11-24 22:37 | 只看該作者

好東東,支持一下。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情在线精品一区二区三区 | 亚洲女人天堂成人av在线 | 久久福利网站 | 中文字幕一区二区三区在线观看 | av天天澡天天爽天天av | 免费观看一级特黄欧美大片 | 一区二区三区视频在线 | 夜夜操操操 | 日本高清不卡视频 | www.99精品 | 欧美精品网| 欧美大片一区 | 国产日韩欧美在线 | 欧美一级大黄 | 毛片的网址 | 久久伊人精品 | 福利成人| 日韩亚洲视频在线 | 亚洲永久精品国产 | 天天看天天操 | 精品国产乱码一区二区三区a | 午夜精品久久久久久久星辰影院 | 亚洲精品一区二区三区在线 | 精品一区二区三区在线观看国产 | 国产91久久久久蜜臀青青天草二 | 国产综合久久久久久鬼色 | 成人av鲁丝片一区二区小说 | 成人福利| 免费看啪啪网站 | 亚洲国产成人精品女人久久久 | 中文字幕不卡在线88 | 自拍偷拍第一页 | 国产成人精品在线 | 国产成人jvid在线播放 | 男人的天堂视频网站 | 欧美一级免费看 | 国产乱码精品一区二区三区中文 | 91污在线 | 国产乱码精品一品二品 | 午夜色婷婷 | 国产亚洲精品久久久优势 |