嵌入式實時作業系統詳細設計說明書

2021-08-13 13:47:09 字數 4918 閱讀 7575

目錄摘要 abstract

1 緒論 2

1.1 嵌入式系統簡介 2

1.2 嵌入式處理器 2

1.3 嵌入式實時作業系統(rtos) 3

1.4 myrtos的介紹 4

2 硬體體系結構和軟體平台 5

2.1 硬體體系結構 5

2.2 軟體平台 5

3 myrtos詳細設計及編碼實現 7

3.1 myrtos核心結構概述 7

3.1.1 臨界區 7

3.1.2 任務及其任務控制塊 7

3.1.3 任務排程 8

3.1.4 空閒任務 9

3.2 任務管理 9

3.2.1 建立任務 10

3.2.2 任務堆疊 13

3.2.3 改變任務的優先順序 14

3.2.4 掛起任務 15

3.2.5 恢復任務 17

3.2.6 任務休眠 19

3.3 互斥訊號量 20

3.3.1 建立乙個互斥訊號量 20

3.3.2 等待乙個互斥訊號量 21

3.3.3 釋放乙個互斥訊號量 22

總結 25

致謝 26

參考文獻 27

詳細設計說明書

(procedural design specification)

嵌入式系統本身是乙個相對模糊的定義。目前嵌入式系統已經滲透到我們生活中的每個角落,工業、服務業、消費電子……,而恰恰由於這種範圍的擴大,使得「嵌入式系統」更加難於明確定義。

舉個簡單例子:乙個手持的***是否可以叫做是嵌入式系統呢?答案肯定是「是」。

另外乙個pc104的微型工業控制計算機你會認為它是嵌入式系統嗎?當然,也是,工業控制是嵌入式系統技術的乙個典型應用領域。然而比較兩者,你也許會發現二者幾乎完全不同,除了其中都嵌入有微處理器。

那是否可以說嵌入著微處理器的裝置就是嵌入式系統?那滑鼠中也有微控制器,能叫嵌入式系統嘛?

那到底什麼是嵌入式系統?莫非嵌入式系統只是乙個難以定義的抽象概念?

(1)嵌入式系統定義

根據ieee(國際電機工程師協會)的定義,嵌入式系統是「控制、監視或者輔助裝置、機器和裝置執行的裝置」(原文為devices used to control, monitor, or assist the operation of equipment, machinery or plants)。這主要是從應用上加以定義的,從中可以看出嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機械等附屬裝置。

不過上述定義並不能充分體現出嵌入式系統的精髓,目前國內乙個普遍被認同的定義是:以應用為中心、以計算機技術為基礎、軟體硬體可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。

(2)嵌入式系統的特點(與通用pc相比較)

專用性----這是與傳統pc最大的區別。嵌入式系統是面向使用者,面向產品,面向應用的。它只有和具體的應用相結合才能體現出自己的優勢。

高實時性----這是嵌入式系統的基本條件。

嵌入性----嵌入式系統是與具體的環境相結合的,與被控物件緊密連線的。

智慧型性----操作使用人性化、儀表化。一般很少有人直接參與。

(3)嵌入式系統組成

嵌入式系統主要有兩部分組成:嵌入式微處理器等相關硬體和嵌入式作業系統等嵌入式軟體。

嵌入式處理器的體系架構可分為三種形式:

(1)ip(intellectual property)級架構

也就是片上系統soc(system on chip)形式,即是依裝置功能的需求,將不同的ip單元,整合在一塊總片中,它包含有處理器功能,i/o介面功能及嵌入式軟體功能。

(2)晶元級架構

依應用系統要求,選用相應的微處理器,如mcu、mpu、dsp、risc等晶元,並將ram、rom(eprom/eeprom/fash)及i/o介面晶元等組成相應的嵌入式系統,相應的系統軟體、應用軟體是以韌體形式固化在rom中,這是目前常用的嵌入式系統的架構方式。

mcu、mpu屬於微控制器系列,這是大家熟知的。dsp(digita signal processor)數字訊號處理器,它具有數字訊號處理能力強,特別適合於聲音、影象等多**資訊系統,但是其常規處理能力不強、定址範圍有限、i/o功能弱及開發平台問題,較少單獨作為嵌入式系統的處理器,而是與嵌入式處理器相結合,構成更強大的功能。

risc(reduced instruction set computer)型處理器具有結構簡單、處理速度快和處理功能強等優點,因此,新型的嵌入式系統大多數採用risc處理器,主流架構由arm架構處理器、intel的8051處理器、microchip的pic處理器和ziog的z80處理器。目前典型的代表是arm架構處理器,世界上許多公司均基於arm架構開發出相應的微處理器晶元,如:

atme公司:at91系列mcu(採用arm7tdmi核心)。

intel公司:sa-1110微處理器mpu(採用strong arm核)。

cirros公司:ep及cl-ps系列掌上型計算機產品的mpu(採用arm720t核)。

inkup systems公司:l720網際網路處理器(採用arm720t核)。

sharp公司:h77790掌上型產品中的mpu(採用arm 7td核心)。

其它如hyundai公司、oki公司、rohm公司、samsung公司,netsiicom公司等,其產品中均採用arm核心。

另外一種新型的微架構處理器是inte公司的xscale,它是新一代為無線掌上型應用產品開發的嵌入式處理器,是pca開發式平台架構中應用於子系統與通訊子系統中的嵌入式處理器。

(3)x86處理器嵌入到應用系統中

這樣可充分利用pc機的通用性和便利性,採用嵌入式作業系統,並且將作業系統和應用軟體均固化在固態電子盤中,以縮小體積,增加可靠性。典型的產品有研祥公司的嵌入式cpu卡及威盛公司的c3 cpu卡。

嵌入式實時作業系統(embedded real time os,簡稱 rtos)是嵌入式系統應用開發的核心軟體,是嵌入式系統的靈魂,就像我們日常所用計算機桌面系統中,微軟公司的 windows 作業系統一樣重要。市場上有很多著名的商業化嵌入式作業系統,如vxworks、pam os、windows ce、嵌入式 linux和μc/os-ii等上千種rtos。

風河vxworks是非常出色的裝置軟體作業系統平台,適用於從手持電子裝置到大型網路設施的各種裝置。它以其良好的可靠性和卓越的實時性被廣泛的應用在通訊、軍事、航空、航天等高精尖技術及實時性要求很高的領域中,如衛星通訊、軍事演習等。它是目前嵌入式系統領域中使用最廣泛、市場占有率最高的系統。

它支援多種處理器,如x86,i960,strongarm,arm等。

palm os是由palm公司自行開發,在掌上計算機和pda市場上占有很大的市場份額。開放的作業系統應用程式介面(api),開發商可以根據需要自行開發所需的應用程式。

windows ce是微軟開發的乙個嵌入式作業系統,專門用於手持裝置和資訊家電,它的模組化設計允許他對從掌上計算機到專用的工業控制的使用者電子裝置進行定製。它的特點是發展掌上型windows系統,有檔案相容性高、功能多樣化的特點,可以看作是 windows 95的簡化版。

linux是一套免費使用和自由傳播的類unix作業系統,是乙個基於posix和unix的多使用者、多工、支援多執行緒和多cpu的作業系統。linux繼承了unix以網路為核心的設計思想,是乙個效能穩定的多使用者網路作業系統。它以高效性和靈活性著稱。

但是,由於linux是全球各地的成千上萬的程式設計師設計和實現的,因此開發散亂也是它的一大弱點。

μc/os-ii是源**公開的實時嵌入式作業系統,主要有以下特點:

(1)可移植性(portable)強,μc/os-ii絕大部分原始碼使用ansi c編寫的,而與微處理器硬體相關的那部分使用會編寫的。

(2)可固化,可裁減,可確定性。

(3)μc/os-ii完全是佔先式(preemptive)的實時核心。

(4)實時多工,不支援時間片輪轉排程法。

(5)任務棧, μc/os-ii每個任務都有自己的任務棧

(6)系統服務,μc/os-ii提供了很多的系統服務,例如訊號量、互斥訊號量、訊息郵箱、訊息佇列等

現在,市場上有那麼多的嵌入式作業系統,從簡單到複雜,應有盡有。比如μc/os-ii就是乙個簡單易學的rtos,而且他又是開放源**的,免費用於個人學習的。但是,他也還有乙個最大的弱點,就是不支援時間片輪轉排程演算法,這樣帶來的另乙個弱點就是任務的數量是有限。

通過對μc/os-ii的研究,最終實現乙個小型的嵌入式作業系統,取名為myrtos。

myrtos的主要特點:

(1)可移植性強(portable),myrtos絕大部分使用ansi c編寫,而而與微處理器硬體相關的那部分利用了μc/os-ii的函式層,所以myrtos和μc/os-ii一樣有很強的可移植性的

⑵可固化,可裁減,可確定性。

⑶myrtos是佔先式(preemptive)和時間片輪轉共存的實時核心。

⑷實時多工,支援時間片輪轉排程法,任務數可以不確定

(5)任務棧, myrtos每個任務都有自己的任務棧

(6)系統服務,myrtos提供了系統服務,例如互斥訊號量。

硬體平台採用的是easyarm2138開發板, 他是廣州周立功公司設計的easyarm系列開發套件之一,下面簡單介紹一下easyarm2138。

easyarm2138採用了philips公司基於arm7tdmi-s 核、單電源供電、qfp64封裝的lpc2138,lpc2138具有32kb 的片內靜態ram 和512kb 的片內fash 程式儲存器,支援jtag**除錯、isp程式設計等功能,

easyarm2138開發板上還提供了一些鍵盤、ed、蜂鳴器等常用功能部件,還具有rs232介面電路、i2c儲存器電路。另外,靈活的跳線組合(開發板內使用的所有i/o均可斷開連線),還有使用者i/o介面,極大地方便了使用者進行32位arm嵌入式系統的開發實驗。

嵌入式實時作業系統習題集

一 填空題 1 arm advanced risc machines 既可以認為是乙個公司的名字,也可以認為是對一類處理器的通稱,還可以認為是一種技術的名字。1991年arm公司成立於英國劍橋,主要 晶元設計技術的授權,將arm技術智財權ip核的技術轉讓給不同廠商,形成各種晶元,其中ip核是指 是一...

winCE嵌入式作業系統介紹

windows ce 嵌入式系統 windows ce是microsoft公司的嵌入式作業系統產品。它是乙個緊湊 高效和可擴充套件的作業系統,具有多執行緒 多工 確定性的實時和完全搶先式優先順序的作業系統環境,適合於只有有限硬體資源的硬體系統。作業系統的定製採用模組化設計方式,便於使用者的使用。支援...

嵌入式系統設計

課程學習 題目 基於arm嵌入式影象處理系統設計與實現 院系 資訊工程與自動化學院 專業 模式識別與智慧型系統 學生姓名 學號指導老師 2013年08月10日 摘要本文主要設計了一種基於arm的可攜式影象採集處理系統。該系統以arm7 s3c44box 為核心,配上外圍電路以實現影象處理功能,並結合...