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.c和task.h完成了所有有關建立,排程,和維護任務的繁重工作。
●通訊:FreeRTOS的第二項任務:通訊。大約40%的FreeRTOS核心程式碼是用來處理通訊的。queue.c
●硬體介面:接近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的項目