1. 程式人生 > >uCOS-II原始碼下載及原始碼目錄結構

uCOS-II原始碼下載及原始碼目錄結構

  攻克RTOS之旅,揚帆起航!

  RTOS有眾多種,個人感覺,用得最火的是FreeRTOS,因為它即使用於商業途徑,也是開源免費的;其次是就是uCOS-II和uCOS-III。uCOS-II用於商業途徑是需要付費的,但是對於學習研究卻是免費的。它們同是嵌入式實時作業系統,很多東西都是共通的,熟悉其一,其它都非難題了。

  RTOS的學習,我選擇的是uCOS-II。學習該作業系統的流程,主要分為原始碼閱讀以及移植到STM32F10x單板上,並進行簡單任務執行測試。過程中參考的資料有:

uCOS-II原始碼
正點原子MiniSTM32開發板配套資料
秉火ISO_V2開發板配套資料
《Cortex-M3權威指南.pdf》
《嵌入式實時作業系統μC\OS-Ⅱ原理及應用(第4版)》(任哲、房紅徵)

  文章記錄的是我在學習過程中的筆記,可能比較粗淺。請高手包含,歡迎批評指教。

1. 原始碼下載

  uCOS-II是Micrium公司開發的一款嵌入式實時作業系統,要下載原始碼自然去該公司的官網下載,下載的時候需要賬號登入。我下載過多個版本,最後發現這個版本的uCOS-II原始碼比較符合我手上的硬體平臺,即STM32F10x。

  uCOS-II是一個作業系統,其實也可以理解成一個軟體庫,它可以移植到多種硬體平臺,如M4核心的STM32,或者ARM9等等其他晶片。核心程式碼肯定是一致的,但是針對不同的處理器肯定要不同的實現部分。這裡選擇最為接近的版本,目的也在於少花費工夫。要知道,若要從0開始移植ucos-ii到目標硬體平臺,需要極大的精力和軟體水平。

2. 原始碼目錄結構

  下載下來後:
這裡寫圖片描述

  將其解壓後目錄如下:
這裡寫圖片描述

EvalBoards:評估板相關檔案,移植時提取部分
uC-CPU:這是和CPU緊密相關的檔案,我們不需要使用
uC-LIB:Micrium公司提供的官方庫,諸如字串操作、記憶體操作等介面,可用可不用
uCOS-II:這是關鍵目錄,我們下來著重分析的檔案位於此目錄下

uCOS-II的目錄結構為:
這裡寫圖片描述
  這裡並沒有基於MDK平臺的程式碼版本,然而IAR跟MDK最為相近,所以我們先主要看以此目錄為例。

  在IAR目錄下有如下4個檔案:
這裡寫圖片描述
(1) os_cpu.h:定義資料型別、處理器相關程式碼、宣告函式原型
(2) oc_cpu_a.asm:與處理器相關的彙編程式碼,主要是與任務切換相關
(3) os_cpu_c.c:定義使用者鉤子函式,提供擴充軟體功能的的介面
(4) os_dbg.c:核心除錯相關資料和相關函式

  在uCOS-II下的頂級目錄還有Source目錄,下面的檔案為:
這裡寫圖片描述

(1) os_core.c:核心資料結構管理,ucos-ii的核心,涵蓋核心的初始化,任務切換,事件塊管理、事件標誌組管理等功能
(2) os_flag.c:事件標誌組
(3) os_mbox.c:訊息郵箱
(4) os_mem.c:記憶體管理
(5) os_q.c:佇列
(6) os_sem.c:訊號量
(7) os_task.c:任務管理
(8) os_time.c:時間管理,主要實現延時
(9) os_tmr.c:定時器管理,設定定時時間,超時則呼叫超時函式
(10) ucos_ii.h:內部函式引數設定

  用下面一張圖片可以概括,uCOS-II的原始碼目錄結構
這裡寫圖片描述

相關推薦

uCOS-II原始碼下載原始碼目錄結構

  攻克RTOS之旅,揚帆起航!   RTOS有眾多種,個人感覺,用得最火的是FreeRTOS,因為它即使用於商業途徑,也是開源免費的;其次是就是uCOS-II和uCOS-III。uCOS-II用於商業途徑是需要付費的,但是對於學習研究卻是免費的。它們同是嵌入

探索ucos-ii之路 一 --核心目錄結構和核心組成

                UCOS-ii2.5.2核心目錄結構和組成  1.uCOS-II Source->source:(與處理器型別無關的程式碼)**************************************************************************

Spring1:Spring簡介、環境搭建、原始碼下載匯入MyEclipse

框架學習前言 這個模組是面向Spring的,Spring的學習我是這麼想的: 1、簡單介紹Spring,主要是從網上借鑑一些重點 2、儘量說明清楚Spring的使用方法以及細節點 3、儘量以自己的理解講清楚Spring中的一些原始碼 Spring是什麼 Spr

cocos2d-x遊戲開發 跑酷(九) 原始碼下載小結

這個東西零零碎碎寫了一個禮拜吧。其實也沒多少東西在裡面。文章後附下載地址 因為我沒用過chipmunk,而且它是面向過程的東西,情感上又不太願意去研究,所以我用box2d來做了物理模擬。個人感覺bo

CentOS7下核心原始碼下載編譯步驟

驗證網路情況: yum install 安裝需要的軟體: yum install setools-console yum install httpd yum install policycoreutil

codeigniter原始碼分析之框架目錄結構

原始碼SVN地址     https://svn.sinaapp.com/ci123/ codeigniter 目錄如下 CodeIgniter 根目錄 │ ├─application 應用程式 │ ├─cache 快取檔案 │ ├─config 配置檔案

linphone原始碼下載下載失敗解決方法

linphone是一款跨平臺的給予SIP協議網路電話開源框架支援Android、IOS、Windows等平臺。 一、linphone原始碼下載 原始碼有多平臺版本可供下載,官方網址: linphone-desktop: git clone git:

文件Linux目錄結構

module 最好 win 對待 行修改 fstab size idc .html 什麽是文件 在linux系統上,所有的資源都是文件,Linux系統下的文件類型包括 普通文件(-) 目錄(d) 符號鏈接(l) 字符設備文件(c) 塊設備文件(b) 套接字(s) 命令管道

JDK類載入機制原始碼分析原始碼分析

JVM的類載入機制主要有如下三種機制: 1.全盤負責:所謂全盤負責,就是說當一個類載入器載入個個Class的時候,該Class所依賴和引用的其他Class也將由該類載入 器負責載入,除非使用另外一個類載入器來載入。 2.雙親委託:所謂雙親委託則是先讓parent(父)類載入器

2048小遊戲(Java)原始碼解析原始碼打包

資料結構課程設計寫的2048小遊戲,答辯完了就開源了,因為這次的技術文件任性地寫成了傻瓜式教程了,就乾脆也放出來了,供參考,原始碼打包在最後面會附上。 一、 實現方案 本遊戲採用Java語言編寫,使用Eclipse編譯器, jdk1.7.0_51編

【安卓本卓】Android系統原始碼篇之(一)原始碼獲取、原始碼目錄結構原始碼閱讀工具簡介

前言 古人常說,“熟讀唐詩三百首,不會作詩也會吟”,說明了大量閱讀詩歌名篇對學習作詩有非常大的幫助。做開發也一樣,Android原始碼是全世界最優秀的Android工程師編寫的程式碼,也是Android開發中絕對的權威所在。Android系統開源,且佔據了當今手機系統世界的絕大部分江山,各大手機廠商要做手機系

Android原始碼目錄結構分析淺談OS體系結構:

附上自己工作平臺程式碼目錄結構圖: Android原始碼結構: Android 2.1 |– Makefile       (全域性的Makefile) |– bionic (bionic C庫,Bion

MySQL原始碼分析核心內幕之1 -- 原始碼目錄結構

        一直以來都在使用MySQL來做資料庫開發,但是MySQL底層是如何實現大資料量的儲存對我來說一直是個未知數,並且現在很多公司都會使用MySQL來作為後端資料儲存工具,其簡單強大的特點深受廣大公司青睞。現在在公司開始接觸效能優化方面的任務,由於MySQL資料量

Caffe的依賴庫原始碼目錄結構

1. Boost庫:它是一個可移植、跨平臺,提供原始碼的C++庫,作為標準庫的後備。 在Caffe中用到的Boost標頭檔案包括: (1)、shared_ptr.hpp:智慧指標,使用它可以不需要考慮記憶體釋放的問題; (2)、date_time/posix_tim

Android原始碼目錄結構詳解

轉自:http://blog.csdn.net/xiangjai/article/details/9012387 在學習Android的過程中,學習寫應用還好,一開始不用管太多程式碼,直接呼叫函式就可以了,但是工作中卻需要修改到framework之類的東東 所以感覺開始糾結了,又是

最新最簡的(改版的) java程式設計思想第四版中net.mindview.util包下載原始碼簡單匯入使用

在學習  《java程式設計思想》的時候當時苦於無法使用    import static net.mindview.util.Print.*;   用   print  做輸出,就查了網上別人的做法,後來按照togee

java程式設計思想第四版中net.mindview.util包下載原始碼簡單匯入使用

今日我發現不能開啟  《java程式設計思想》一書所提供的網站:www.MindView.net 。所以我就找了一下別人的推薦,還是可以的,所以就分享給大家! net.mindview.util包:百度網盤:點選下載  密碼: ggpi   java程式設計思想第四版原始

Collection 結構原始碼解析

這個集合的超類,就是集合的祖宗,是個介面,只提供介面 這個是關係 public interface Collection<E> extends Iterable<E> { /** * Returns the

ConcurrentHashMap JDK1.8中結構原理原始碼分析

注:本文根據網路和部分書籍整理基於JDK1.7書寫,如有雷同敬請諒解  歡迎指正文中的錯誤之處。 資料結構       ConcurrentHashMap 1.8 拋棄了Segment分段鎖機制,採用Node + CAS + Synchronized來保證併發安全進行實現

Android原始碼目錄結構

Android 4.0 |-- Makefile |-- bionic (bionic C庫) |-- bootable (啟動引導相關程式碼) |-- build (存放系統編譯規則及generic等基礎開發包配置) |-- cts (Android相容性測試套件標準) |-- dalvik (dalvik