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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3465|回復: 4
打印 上一主題 下一主題
收起左側

STM32之uCOS-II基礎、移植、創建任務

  [復制鏈接]
跳轉到指定樓層
樓主
ID:763998 發表于 2020-6-26 19:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

5.1 uCOS-II操作系統

5.1.1 什么是操作系統

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

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

舉個栗子:當你要播放音樂時,假設是電腦,裝的是Window操作系統,步驟如下:

  • 打開酷狗音樂軟件
  • 找需要播放的歌曲
  • 點擊播放

這時,你就能聽到優美動聽的歌曲了。但底層操作是如何操作的呢?是誰操作呢?

是操作系統幫你完成了這一切工作。當你點擊播放,操作系統工作流程如下:

  • 你點擊播放按鈕,操作系統讀取你需要播放歌曲的源文件(mp3文件)
  • 操作系統調用音樂解析驅動,解析你的mp3文件,轉成播放器(喇叭)認識的二進制文件。
  • 操作系統把解析好音樂的二進制文件,發送給播放器(硬件設備),若此時音樂播放器,一切都準備就緒了,就可以播放音樂了。

總結,對硬件的操作,由操作系統來完成,操作系統直接與硬件交互。用戶如果想控制底層硬件,必須經過操作系統進行間接控制,操作系統提供系統調用給用戶,用戶就可以與硬件交互了。系統調用是封裝了操作各部分硬件的API。


5.1.2 為什么要使用操作系統

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

              《2》多任務。因為消費者想同時聊QQ、聊、看電視劇等。早期單核CPU想完成這些功能,就需要使用操作系統,實現不同任務之間高速的切換。


5.1.3 操作系統分類

              《1》分時操作系統:以時間片為基本調度原則。給每個任務分配一段固定的CPU時間,時間到就切換下一個任務,時間不到不切換任務。如:Windows—95/98,Linux內核2.6以前。

              《2》實時操作系統:以優先級為基本調度原則。不是給每個任務分配一段固定的CPU時間,而是根據優先級分配CPU執行時間,誰優先級高,先執行誰,分配的CPU時間就多,如uCOS-II。

              《3》半實時操作系統:部分使用分時操作系統、部分使用實時操作系統。如Windows----7/8/10,Linux內核2.6以后。



5.1.3 為何學uCOS-II

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

《2》多任務,實現復雜功能

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

《4》為學習其他操作系統打下基礎


5.1.4 其他補充

學操作系統的難點

《1》邏輯理解、代碼運行流程

《2》術語的理解、領悟

uCOS-II理解

u---微型

C---控制器

              OS—操作系統

UCOS-II代碼來源

《1》官網

《2》示例代碼


5.2 UCOS操作系統

5.2.1 操作系統的調度原則

《1》分時操作系統調度原則:

以時間片為基本調度原則,為每個任務分配固定的CPU執行時間,時間到,切換下一個任務,時間不到,不切換任務。

《2》實時操作系統調度原則

以優先級為基本調度原則,不是固定為每個任務分配CPU執行時間,而是根據優先級高低分配CPU時間,優先級低的分配CPU執行時間就短,優先級高的分配的CPU時間就長。



5.2.2 操作系統程序結構

《1》裸機代碼

整個工程只有一個main函數,在main函數執行中只有一個真正意義上死循環其他死循環都是有退出條件或永遠不會執行了的死循環。

《2》操作系統代碼

整個工程只有一個main函數,在mian函數中,至少創建一個任務,每個任務都有一個死循環。操作系統要切換任務需要高優先級任務釋放CPU使用權。


5.2.3操作系統的任務結構

《1》任務的構成:任務控制塊,任務函數、任務優先級、任務棧。

《2》 任務控制塊:任務先內存空間申請的一塊內存空間,用于執行任務使用的,任務控制塊包含、任務函數、任務優先級、任務棧。

《3》任務函數:任務的執行入口,任務的具體功能在這里實現。

《4》任務優先級:任務的能執行的唯一標識。用來規定任務的執行先后順序。

《5》任務棧:保存任務在切換過程中的現場信息。任務在切換前,把當前執行任務的現在信息保存在棧中,該過程稱為壓棧,當執行完其他任務完后,又切換回來,讀取棧里面保存的現場信息,繼續執行任務,該過程稱為彈棧。

簡單理解:在棧中進入一個元素,稱為壓棧或入棧,出來一個元素稱為彈棧或出棧。

5.2.4 操作系統的任務切換

在哪些情況下,會進行任務切換?

  • 心跳節拍到達的時候會進行切換。心跳節拍來源于系統滴答時間,所以用Tick表示心跳節拍。
  • 調用任務調度函數。用操作系統內核進行調用。

5.2.5 操作系統的任務中斷

與裸機編程中斷基本一致,但需要注意兩點

  • 在操作系統的中斷服務函數的第一句代碼,調用一個函數,目的是告訴操作系統當前進入中斷功能。
  • 在操作系統的中斷服務函數的最后一句代碼,調用一個函數,目的是告訴操作系統當前退出了中斷功能。

裸機中斷與ucos中斷的深入理解

  • 裸機中斷,中斷后會返回原點,原點就是主棧。從中斷棧切換回到主棧。
  • ucos中斷,中斷后不一定返回原點,因為返回前有任務調度,如果中斷完后,有任務優先級高過當前任務,當前任務就失去了CPU的使用權。

5.2.6 操作系統的任務狀態

《1》停止/休眠態:任務創建之前和刪除之后的狀態。

《2》就緒態:任務具有了可執行條件。

《3》運行態:任務得到了CPU的使用權。

《4》等待/掛起態:任務被掛起或等待某件事情發生。

《5》中斷態:正在執行的任務,被中斷了。

任務狀態轉換關系如下圖:

5.3 創建UCOS工程模板

5.3.1 獲取UCOS源碼

官網太卡了,所以給你準備UCOS例程,如下。

5.3.2 UCOS過程文件分析

5.3.3 新建UCOS工程


5.3.4 創建一個任務

5.3.5 補充、小結

移植Ucos-II總結:

配置基本流程:

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

《2》添加到過程文件中,添加對應頭文件

《3》編寫系統滴答定時器,開啟中斷模式

《4》編寫滴答中斷服務函數

《5》編寫主函數

主函數編寫流程:

  • 系統滴答初始化
  • 串口初始化(用于調試)
  • 操作系統初始化
  • 創建任務
  • 啟動操作系統
  • 實現任務函數

關于延時OSTimeDly(100);?

一次系統滴答為5ms,所以寫100,就是500ms。


關于任務函數OSTaskCreate(Task0,NULL,&stack0[TASK0_STK_SIZE-1],TASK0_PRI);?

  • 第一個參數為一個函數的名字(實現任務的函數的名字)
  • 傳給實現任務函數的參數(形參)
  • 任務棧棧頂(高地址、數組最后一個元素)
  • 優先級(0-61中間的選一個,63留給了空閑任務、62留給了統計任務)

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

評分

參與人數 2黑幣 +70 收起 理由
gracture + 20 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

地板
ID:288751 發表于 2020-11-24 18:07 | 只看該作者
馬一下,學習了謝謝/
回復

使用道具 舉報

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

好東東,支持一下。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情欧美日韩一区二区 | 亚洲午夜视频在线观看 | 美女一级a毛片免费观看97 | 一级黄色录像毛片 | 亚洲 欧美 另类 日韩 | 亚洲国产日韩欧美 | 婷婷久久综合 | 日韩电影一区 | 国产精品成人品 | 午夜欧美 | 韩国理论电影在线 | 中文字幕精品一区二区三区在线 | 国产成人精品a视频一区www | 九九热在线精品视频 | 亚洲三级在线观看 | 538在线精品 | 日韩精品一区二区三区在线播放 | 亚洲成人免费av | 日韩精品一区二区三区视频播放 | 日本免费网| 国产免费一区二区三区 | 成人三级网址 | 久久久免费 | 午夜网| 午夜激情影院 | 国产精品观看 | 国产在线观看一区 | 亚洲香蕉 | 久久久久久亚洲 | aaa综合国产 | 亚洲成人一区 | 精品一区在线看 | 免费一区 | 超碰高清 | 九九精品在线 | 偷拍自拍网址 | 久久久久久久久久久一区二区 | 天天射色综合 | 成人欧美一区二区三区黑人孕妇 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 午夜影院免费体验区 |