1. 程式人生 > >FreeRTOS學習筆記-1-概述

FreeRTOS學習筆記-1-概述

FreeRTOS(讀作”free-arr-toss”)是一個的開源實時嵌入式系統的作業系統,於2002由Richard Barry開發。
* 基本構造*
最小化的FreeRTOS核心只包含在3個與平臺無關的原始碼檔案中——tasks.c、 queue.c 和 list.c(如果使用co-routines會有4個),總共不到9000行程式碼,一個典型的編譯後(二進位制)程式碼映像小於10KB。
檔案結構
公用檔案可以在FreeRTOS/Source資料夾中找到,與平臺相關的檔案可以在FreeRTOS/Source/Portable目錄的子資料夾中找到。
如,這是freeRTOS在crazyflie工程中的目錄結構:
這裡寫圖片描述

FreeRTOS/Portable/GCC/ARM_CM3包含了port.c portmacro.h檔案用於對應的編輯器和硬體相關程式碼。
FreeRTOS/Portable/MemMang包含了記憶體管理部分例子程式。
程式碼結構
FreeRTOS的程式碼可以分解為三個主要區塊:任務,通訊,和硬體介面。

●任務:大約有一半的FreeRTOS的核心程式碼用來處理多數作業系統首要關注的問題:任務。任務是給定優先順序的使用者定義的C函式。task.ctask.h完成了所有有關建立,排程,和維護任務的繁重工作。

●通訊:FreeRTOS的第二項任務:通訊。大約40%的FreeRTOS核心程式碼是用來處理通訊的。queue.c

queue.h是負責處理FreeRTOS的通訊的。任務和中斷使用佇列互相傳送資料,並且使用訊號量和互斥來發送臨界資源的使用情況( to signal the use of critical resources using semaphores and mutexes.)。

●硬體介面:接近9000行的程式碼拼湊起基本的FreeRTOS,是硬體無關的;不論FreeRTOS是執行在不起眼的8051,還是最新、最炫的ARM核心上,這部分程式碼是相同的。剩下的大約有6%的FreeRTOS的核心程式碼,在硬體無關的FreeRTOS核心與硬體相關的程式碼間扮演著墊片的角色。
【參考引用】
http://www.ituring.com.cn/article/4063


http://blog.csdn.net/liyuanbhu/article/details/7853717

相關推薦

FreeRTOS學習筆記-1-概述

FreeRTOS(讀作”free-arr-toss”)是一個的開源實時嵌入式系統的作業系統,於2002由Richard Barry開發。 * 基本構造* 最小化的FreeRTOS核心只包含在3個與平臺無關的原始碼檔案中——tasks.c、 queue.c 和

MySql 基礎學習筆記 1——概述與基本數據類型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差別 圖 浮點型:命令

where float 函數名 src ron 編碼方式 永遠 -m mas 一、CMD中經常使用mysql相關命令 mysql -D, --database=name //打開數據庫 --delimiter=name //指定分隔符 -h, --host=na

資料結構學習筆記1-概述

-------------------一、資料結構-------------------------------------- 1.連結串列 ------遊標       ------一種用來模擬鏈式分配的方法,遊標在不支援指標型別的程式語言中很有用。 ------順序表/

《計算機網路》謝希仁版學習筆記1-概述

1.1計算機網路在資訊時代中的作用              21世紀的一些重要特徵就是數字化、網路化和資訊化,它是一個以網路為核心的資訊時代。 日常所說的三網指電信網路、有線電視網路和計算機網路。而隨著技術發展,電信網路和有線電視網路逐漸融入了現代計算機網路的的技術,即

虛擬化學習筆記1-概述

此筆記來源於對紅帽課程RHCA-kvm虛擬化(RH-318)的學習總結。學習資源主要來源於紅帽的官方教材和趙小明老師的視訊課程以及Google出來的部落格 一、虛擬化產生的背景: 十幾年前,由於微機

Python學習筆記1安裝概述_20170610

lin 教程 linu 學習筆記 python學習 版本 pyc module 選擇 python 的安裝概述: 安裝Python3.6,教程很多 需要安裝的module:(註意選擇版本)  numpy  scipy  matplotlib 以上,在Windows

吳恩達機器學習筆記1-機器學習概述

可能 perf hat 定義 視頻 nbsp 這樣的 spec 學習能力 今天看了視頻的第一章-緒論:初識機器學習(Machine Learning) 1、定義: Arthur Samuel(1959).Machine Learning:Field of study tha

keras學習筆記1——Keras模組概述

keras學習筆記1——Keras模組概述   Keras主要包括14個模組,本文主要對Models、layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics共計8個模組分別展開介紹

Solr學習筆記(1) —— Solr概述&Solr的安裝

一、概述   使用Solr實現電商網站中商品資訊搜尋功能,可以根據關鍵字、分類、價格搜尋商品資訊,也可以根據價格進行排序。    1.1 實現方法   在一些大型入口網站、電子商務網站等都需要站內搜尋功能,使用傳統的資料庫查詢方式實現搜尋無法滿足一些高階的搜尋需求,比如:搜尋速度要快、搜尋結

Java學習筆記1--Java概述

1.1  JAVA簡介 1.1.1    Java的發展歷史        1991年,Sun公司為進軍家用電子消費市場,成立了名為Green的專案組,Oak(橡樹)系統出現;        1994年,Green專案組用Oak設計了一個成為WebRunner(後被稱為

Java 8 學習筆記1——Java 8 概述

Java 8提供了一個新的API(稱為“流”,Stream),它支援許多處理資料的並行操作,其思路和在資料庫查詢語言中的思路類似——用更高階的方式表達想要的東西,而由“實現”(在這裡是Streams庫)來選擇最佳低階執行機制。這樣就可以避免用synchronized編寫程式碼,這一程式碼不僅

FreeRTOS學習筆記1)---任務建立與刪除API函式(動態函式)

FreeRTOS最基本的功能是任務管理,任務管理有建立與刪除任務 1.函式xTaskCreate()     此函式用來建立一個任務,使用此函式來建立任務所需的RAM(隨機儲存器)會從FreeRTOS的堆中分配,因此必須提供記憶體管理檔案,預設使用heap_4.c這個

從零開始-Machine Learning學習筆記(1)-機器學習概述

​ 機器學習,顧名思義就是機器像人一樣進行“學習”,是近兩年來最為人津津樂道的名詞之一,這一名稱的由來卻鮮為人所提起。在最近閱讀周志華先生的《機器學習》一書之中,在其第一章的小故事中得到這一名詞的由來。 ​ 1952年,阿瑟·薩繆爾在IBM公司研製了一

avalonjs 學習筆記1---checkbox

nod item ack lex server ini npm 學習 define 一、vscode 安裝使用 1.vs code+node.js下載安裝 2.在node.js command prompt 中運行 npm install -g live-server 3

微信小程序學習筆記1

接口 spa class 搭建 name demo title 更新數據 navigate 初步接觸微信小程序開發 微信小程序的開發環境     微信小程序是運行在微信環境中的應用,它只能在微信中運行,不能運行在瀏覽器等其他環境中,微信團隊提供了專門開發工具用於小程

mysql學習筆記(1-安裝簡介)

配置文件 服務器 二進制 mysql 通用 mysql的安裝方式:(1)通過系統提供的默認版本(穩定版,該版本滿足了使用的需求,建議使用,os vendor)(2)mysql官方提供 官方提供的通用rpm安裝包 官方提供的文件,以文件覆蓋的方式安裝 源碼包編譯安裝

Python學習筆記1

bsp 面向對象 解釋型 基本 ges mon xxx str text 一、什麽是Python   Python是面向對象、解釋型的計算機語言;語法簡潔、優雅、易學。   在1989誕生,Guido(龜叔)開發。龜叔非常喜歡一部叫做《Monty Python飛行馬戲團》的

java 學習筆記1

跨平臺原理 所有 com 路徑 運行機制 main 單位 width rtu 、 高級語言運行機制 高級語言按程序的執行方式分為編譯型和解釋型兩種。 java語言比較特殊,Java程序的執行必須經過先編譯後解釋的步驟。 1 編譯生成字節碼,只面向JVM(.class) 2J

Java Web學習筆記-1

根路徑 text .get set 接口 context cat 方法 web應用 1.servlet理論上可以處理多種形式的請求響應形式 ,http只是其中之一 ,所以HttpServletRequest、 HttpServletResponse分別是ServletReq

Redis學習筆記1--入門篇

ase list ica cati ctu apple string replace first 一、Redis簡介: Redis(http://redis.io)是一款開源的、高性能的鍵-值存儲(key-value store),它是用ANSI C來編寫。Redis的項目