欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      嵌入式操作系統(tǒng)的發(fā)展歷程、特點(diǎn)及發(fā)展趨勢(shì)

      時(shí)間:2019-05-12 12:21:37下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《嵌入式操作系統(tǒng)的發(fā)展歷程、特點(diǎn)及發(fā)展趨勢(shì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《嵌入式操作系統(tǒng)的發(fā)展歷程、特點(diǎn)及發(fā)展趨勢(shì)》。

      第一篇:嵌入式操作系統(tǒng)的發(fā)展歷程、特點(diǎn)及發(fā)展趨勢(shì)

      嵌 入 式 課 程 作 業(yè)

      嵌入式操作系統(tǒng)的發(fā)展歷程、特點(diǎn)及發(fā)展趨勢(shì)

      摘 要:本文回顧了嵌入式操作系統(tǒng)發(fā)展的歷史,通過(guò)與通用桌面操作系統(tǒng)的比較,分析了嵌入式操作系統(tǒng)的特點(diǎn),并且從嵌入式操作系統(tǒng)市場(chǎng)和技術(shù)的發(fā)展著手,探討了嵌入式系統(tǒng)的未來(lái)發(fā)展趨勢(shì)。

      關(guān)鍵詞:嵌入式系統(tǒng);嵌入式操作系統(tǒng);實(shí)時(shí)性

      1.嵌入式操作系統(tǒng)的發(fā)展歷程

      嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可裁減的,適用于對(duì)功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快等特點(diǎn),特別適合于要求實(shí)時(shí)和多任務(wù)的體系。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件、嵌入式操作系統(tǒng)及應(yīng)用軟件系統(tǒng)等組成,它是可獨(dú)立工作的“器件”。綜觀嵌入式技術(shù)的發(fā)展,大致經(jīng)歷了以下3個(gè)階段:

      第一階段:嵌入技術(shù)的早期階段,以功能簡(jiǎn)單的專(zhuān)用計(jì)算機(jī)或單片機(jī)為核心的可編程控制器形式存在,具有監(jiān)測(cè)、伺服、設(shè)備指示等功能。這種系統(tǒng)大部分應(yīng)用于各類(lèi)工業(yè)控制和飛機(jī)、導(dǎo)彈等武器裝備中。

      第二階段:以嵌入式CPU和嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點(diǎn)是:計(jì)算機(jī)硬件出現(xiàn)了高可靠、低功耗的嵌入式CPU,如Power PC等。

      第三階段:以芯片技術(shù)和Internet技術(shù)為標(biāo)志的嵌入式系統(tǒng)。微電子技術(shù)發(fā)展迅速,SOC(片上系統(tǒng))使嵌入系統(tǒng)越來(lái)越小,功能卻越來(lái)越強(qiáng)。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式技術(shù)與Internet技術(shù)的結(jié)合正推動(dòng)嵌入式技術(shù)的快速發(fā)展。

      嵌入式操作系統(tǒng)是嵌入式系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點(diǎn),如能夠有效管理越來(lái)越復(fù)雜的系統(tǒng)資源;能夠把硬件虛擬化,使得開(kāi)發(fā)人員從繁忙的驅(qū)動(dòng)程序移植和維護(hù)中

      第 1 頁(yè)

      共 5 頁(yè)

      嵌 入 式 課 程 作 業(yè)

      解脫出來(lái);能夠提供庫(kù)函數(shù)、驅(qū)動(dòng)程序、工具集以及應(yīng)用程序。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴(lài)性、軟件固態(tài)化以及應(yīng)用的專(zhuān)用性等方面具有較為突出的特點(diǎn)。嵌入式操作系統(tǒng)伴隨著嵌入式系統(tǒng)的發(fā)展經(jīng)歷了三個(gè)比較明顯的階段:

      第一階段:無(wú)操作系統(tǒng)的嵌入算法階段,通過(guò)匯編語(yǔ)言編程對(duì)系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后清除內(nèi)存。系統(tǒng)結(jié)構(gòu)和功能都相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒(méi)有用戶(hù)接口,比較適合于各類(lèi)專(zhuān)用領(lǐng)域中。

      第二階段:以嵌入式CPU為基礎(chǔ)、簡(jiǎn)單操作系統(tǒng)為核心的嵌入式系統(tǒng)。CPU 種類(lèi)繁多,通用性比較差;系統(tǒng)開(kāi)銷(xiāo)小,效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和擴(kuò)展性;應(yīng)用軟件較專(zhuān)業(yè),用戶(hù)界面不夠友好;系統(tǒng)主要用來(lái)控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序運(yùn)行。

      第三階段:通用的嵌入式實(shí)時(shí)操作系統(tǒng)階段,以嵌入式操作系統(tǒng)為核心的嵌入式系統(tǒng)。能運(yùn)行于各種類(lèi)型的微處理器上,兼容性好;內(nèi)核精小、效率高,具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶(hù)界面等功能;具有大量的應(yīng)用程序接口API;嵌入式應(yīng)用軟件豐富。

      2.嵌入式操作系統(tǒng)的特點(diǎn) 1)實(shí)時(shí)性

      在信息時(shí)代,人們需要在有效的時(shí)間里對(duì)接受的信息進(jìn)行處理,為進(jìn)一步的工作和決策爭(zhēng)取時(shí)間,這就要求工作系統(tǒng)具有很高的實(shí)時(shí)性。所謂實(shí)時(shí)性,其核心含義在于操作系統(tǒng)在規(guī)定時(shí)間內(nèi)準(zhǔn)確完成應(yīng)該做的事情,并且操作系統(tǒng)的執(zhí)行線(xiàn)索是確定的,而不是單純的速度快。

      大多數(shù)嵌入式操作系統(tǒng)工作在對(duì)實(shí)時(shí)性要求很高的場(chǎng)合,主要對(duì)儀器設(shè)備的動(dòng)作進(jìn)行檢測(cè)控制,這種動(dòng)作具有嚴(yán)格的、機(jī)械的時(shí)序;而一般的桌面操作系統(tǒng)基本上是根據(jù)人在鍵盤(pán)和鼠標(biāo)發(fā)出的命令進(jìn)行工作,人的動(dòng)作和反應(yīng)在時(shí)序上并不很?chē)?yán)格。比如,用于控制火箭發(fā)動(dòng)機(jī)的嵌入式系統(tǒng),它所發(fā)出的指令不僅要求速度快,而且多個(gè)發(fā)動(dòng)機(jī)之間的時(shí)序要求非常嚴(yán)格,否則就會(huì)失之毫厘,謬以千里。在這樣的應(yīng)用環(huán)境中,非實(shí)時(shí)的普通操作系統(tǒng)無(wú)論如何是無(wú)法適應(yīng)的。即使

      第 2 頁(yè)

      共 5 頁(yè)

      嵌 入 式 課 程 作 業(yè)

      我們所開(kāi)發(fā)的并不是生命攸關(guān)的或者生產(chǎn)控制那樣的關(guān)鍵任務(wù)系統(tǒng),例如對(duì)嵌入式操作系統(tǒng)應(yīng)用來(lái)說(shuō)很有前途的領(lǐng)域-----消費(fèi)電子產(chǎn)品,設(shè)備的高可靠性可以有效地減低維護(hù)成本,軟件運(yùn)行效率高也會(huì)降低對(duì)CPU的要求,從而降低硬件成本。對(duì)于此類(lèi)價(jià)格十分敏感的產(chǎn)品,實(shí)時(shí)性、可靠性仍然是非常值得重視的問(wèn)題。因此,實(shí)時(shí)性是嵌入式系統(tǒng)最大的優(yōu)點(diǎn),在嵌入式軟件中最核心的莫過(guò)于嵌入式RTOS實(shí)時(shí)操作系統(tǒng)。2)可剪裁性

      能否根據(jù)悠揚(yáng)的樂(lè)曲對(duì)系統(tǒng)的功能模塊進(jìn)行配置是嵌入式系統(tǒng)與普通系統(tǒng)的另一區(qū)別。這可以從以下幾個(gè)方面分析: i.從硬件環(huán)境來(lái)看,普通系統(tǒng)具有標(biāo)準(zhǔn)化的CPU存儲(chǔ)和I/O架構(gòu),而嵌入式環(huán)境的硬件環(huán)境只有標(biāo)準(zhǔn)化的CPU,沒(méi)有標(biāo)準(zhǔn)的存儲(chǔ)、I/O和顯示器單元。

      ii.從應(yīng)用環(huán)境來(lái)看,桌面操作系統(tǒng)面向復(fù)雜多變的應(yīng)用,而嵌入式操作系統(tǒng)面向單一設(shè)備的固定的應(yīng)用。

      iii.從開(kāi)發(fā)界面來(lái)看,桌面操作系統(tǒng)給開(kāi)發(fā)人員提供一個(gè)“黑箱”,讓開(kāi)發(fā)人員通過(guò)一系列標(biāo)準(zhǔn)的系統(tǒng)調(diào)用來(lái)使用操作系統(tǒng)的功能,而嵌入式試圖為開(kāi)發(fā)人員提供一個(gè)“白箱”,讓開(kāi)發(fā)人員可以自主控制系統(tǒng)的所有資源。普通系統(tǒng)的研究開(kāi)發(fā)是盡可能在不改變自身的前途下具有廣泛的適應(yīng)性。也就是說(shuō):不論應(yīng)用環(huán)境怎么改變,都不應(yīng)對(duì)自身做太多的變化。而應(yīng)用于嵌入式環(huán)境的RTOS,在研發(fā)的時(shí)候就必須立足于面向?qū)ο?,改變自身、開(kāi)放自身,讓開(kāi)發(fā)人員可以根據(jù)硬件環(huán)境和應(yīng)用環(huán)境的不同而對(duì)操作系統(tǒng)進(jìn)行靈活的裁剪和配置,因?yàn)閷?duì)于任何一個(gè)具體的嵌入式設(shè)備,它的功能是確定的,因此只要從原有操作系統(tǒng)中把這個(gè)特定應(yīng)用所需的功能拿來(lái)即可以。可剪裁性在軟件工程階段是利用軟件配置方法實(shí)現(xiàn)軟件構(gòu)建的“即插即用”。

      3)可靠性

      一般來(lái)說(shuō),嵌入式系統(tǒng)一旦開(kāi)始運(yùn)行就不需要人的過(guò)多干預(yù)。在這種條件下,要求負(fù)責(zé)系統(tǒng)管理的嵌入式操作系統(tǒng)具有較高的穩(wěn)定性和可靠性。而普通操作系統(tǒng)則不具備這種特點(diǎn)。這導(dǎo)致桌面操作環(huán)境與嵌入式環(huán)境在設(shè)計(jì)思路上有重大的不同。

      第 3 頁(yè)

      共 5 頁(yè)

      嵌 入 式 課 程 作 業(yè)

      i.桌面環(huán)境假定應(yīng)用軟件與操作系統(tǒng)相比而言是不可靠的,而嵌入式環(huán)境假定應(yīng)用軟件與操作系統(tǒng)一樣可靠。運(yùn)行于嵌入式環(huán)境中的RTOS要求應(yīng)用軟件具有與操作系統(tǒng)同樣的可靠性,這種設(shè)計(jì)思路對(duì)應(yīng)用開(kāi)發(fā)人員提出了更高的要求,同時(shí)也要求操作系統(tǒng)自身足夠開(kāi)放。

      ii.桌面操作系統(tǒng)比較龐大復(fù)雜,而嵌入式系統(tǒng)提供的資源有限,由于硬件的限制,嵌入式操作系統(tǒng)必須小巧簡(jiǎn)捷。對(duì)于系統(tǒng)來(lái)說(shuō),組成越簡(jiǎn)單、性能越可靠,組成越復(fù)雜,故障概率越大是一個(gè)常理。局部的不足會(huì)導(dǎo)致整體的缺陷,系統(tǒng)中任何部分的不可靠都會(huì)導(dǎo)致系統(tǒng)整體的不可靠。

      3.嵌入式操作系統(tǒng)的發(fā)展趨勢(shì)

      目前各種嵌入式Linux操作系統(tǒng)正迅速發(fā)展,已經(jīng)形成了能與Windows CE等嵌入式操作系統(tǒng)進(jìn)行有力競(jìng)爭(zhēng)的局面。嵌入式Linux操作系統(tǒng)的迅速崛起,主要由于人們對(duì)自由軟件的渴望與嵌入式系統(tǒng)應(yīng)用的特制性,要求提供系統(tǒng)源碼層次上的支持,而嵌入式Linux正適應(yīng)了這一需求,它不僅具有開(kāi)放源代碼,系統(tǒng)內(nèi)核小、效率高、內(nèi)核網(wǎng)絡(luò)結(jié)構(gòu)完整,裁減后的系統(tǒng)很適于如信息家電等嵌入式系統(tǒng)的開(kāi)發(fā)。嵌入式Linux操作系統(tǒng)的產(chǎn)品化及可靠性是目前受制約的一個(gè)重要因素。

      微軟的Win CE是一個(gè)較具代表性的、由桌面操作系統(tǒng)演變而成的實(shí)時(shí)嵌入式操作系統(tǒng)。雖然提供了較為強(qiáng)大的類(lèi)似于桌面操作系統(tǒng)的功能,但針對(duì)嵌入式系統(tǒng)的特征與特性而言,Win CE顯得笨拙且在內(nèi)核結(jié)構(gòu)的設(shè)計(jì)中并未考慮適應(yīng)系統(tǒng)的高度可裁減性的要求。以VxWorks為代表的傳統(tǒng)嵌入式操作系統(tǒng)是應(yīng)用最廣泛、市場(chǎng)占有率較具優(yōu)勢(shì)的幾個(gè)系統(tǒng),它們是專(zhuān)門(mén)為嵌入式微處理器設(shè)計(jì)的高模塊化、高性能的實(shí)時(shí)操作系統(tǒng),廣泛應(yīng)用于高科技產(chǎn)品中,包括消費(fèi)電子設(shè)備、工業(yè)自動(dòng)化、無(wú)線(xiàn)通信產(chǎn)品、醫(yī)療儀器、數(shù)字電視與多媒體設(shè)備,具有很好的 安全性、容錯(cuò)性以及系統(tǒng)靈活性。雖然它們都提供專(zhuān)有的API接口,但是缺乏應(yīng)用的高效性,網(wǎng)絡(luò)連接功能較差,系統(tǒng)對(duì)應(yīng)用程序開(kāi)發(fā)支持相對(duì)較弱。對(duì)現(xiàn)在復(fù)雜的、網(wǎng)絡(luò)化的、多處理器的嵌入式系統(tǒng)的許多應(yīng)用需要而言,它已顯得力不從心。

      隨著硬件技術(shù)、應(yīng)用需求和開(kāi)發(fā)需求的變化,如,微電子技術(shù)--芯片的集成第 4 頁(yè)

      共 5 頁(yè)

      嵌 入 式 課 程 作 業(yè)

      技術(shù)和片上系統(tǒng);強(qiáng)實(shí)時(shí)、高可靠應(yīng)用需求--飛機(jī)、火箭控制等;開(kāi)發(fā)需求--信息家電需要越來(lái)越多的研究和設(shè)計(jì)人員參與嵌入系統(tǒng)的開(kāi)發(fā),如同臺(tái)式系統(tǒng)一 樣嵌入系統(tǒng)需要使用方便、功能強(qiáng)大的開(kāi)發(fā)系統(tǒng),嵌入操作系統(tǒng)也需要支持面向?qū)ο蠛涂芍赜玫燃夹g(shù)。

      4.結(jié)束語(yǔ)

      嵌入式操作系統(tǒng)與普通系統(tǒng)相比是更為健壯的、低成本的、特性完備的操作系統(tǒng)。它的應(yīng)用將大大提高嵌入式系統(tǒng)開(kāi)發(fā)的效率,改變以往嵌入式軟件設(shè)計(jì)只能針對(duì)具體的應(yīng)用從頭做起的狀況,在嵌入式系統(tǒng)之上開(kāi)發(fā)嵌入式系統(tǒng)將減少系統(tǒng)開(kāi)發(fā)的工作量,增強(qiáng)嵌入式應(yīng)用軟件的可移植性,是嵌入式系統(tǒng)的開(kāi)發(fā)方法更具科學(xué)性。

      參考文獻(xiàn):

      1. 林建明。嵌入式操作系統(tǒng)技術(shù)發(fā)展趨勢(shì)。計(jì)算機(jī)工程,2001年27卷第10期。

      2. 宋延昭。嵌入式操作系統(tǒng)介紹及選型原則。工業(yè)控制計(jì)算機(jī),2005年18卷第7期。

      第 5 頁(yè)

      共 5 頁(yè)

      第二篇:嵌入式操作系統(tǒng)實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)一 嵌入式開(kāi)發(fā)環(huán)境的建立

      一、實(shí)驗(yàn)?zāi)康?/p>

      通過(guò)此實(shí)驗(yàn)系統(tǒng),讀者可以了解嵌入式實(shí)時(shí)操作系統(tǒng) uC/OS-II 的內(nèi)核機(jī)制和運(yùn)行原理。本實(shí)驗(yàn)系統(tǒng)展示了 uC/OS-II 各方面的管理功能,包括信號(hào)量、隊(duì)列、內(nèi)存、時(shí)鐘等。在各個(gè)實(shí)驗(yàn)中具體介紹了 uC/OS-II 的相關(guān)函數(shù)。讀者在做實(shí)驗(yàn)的同時(shí)能夠結(jié)合理論知識(shí)加以分析,了解各個(gè)函數(shù)的作用和嵌入式應(yīng)用程序的設(shè)計(jì)方法,最終對(duì)整個(gè) uC/OS-II 和嵌入式操作系統(tǒng)的應(yīng)用有較為清楚的認(rèn)識(shí)。

      二、實(shí)驗(yàn)步驟

      1.安裝集成開(kāi)發(fā)環(huán)境LambdaEDU 集成開(kāi)發(fā)環(huán)境LambdaEDU 的安裝文件夾為 LambdaEDU,其中有一個(gè)名為“Setup.exe” 的文件,直接雙擊該文件便可啟動(dòng)安裝過(guò)程。具體的安裝指導(dǎo)請(qǐng)看“LambdaEDU 安裝手 冊(cè).doc”文件。

      當(dāng) LambdaEDU 安裝完畢之后,我們看到的是一個(gè)空的界面,現(xiàn)在就開(kāi)始一步一步地將 我們的實(shí)驗(yàn)項(xiàng)目建立并運(yùn)行起來(lái)。

      2.建立項(xiàng)目

      為了我們的實(shí)驗(yàn)運(yùn)行起來(lái),需要建立1 個(gè)項(xiàng)目基于x86 虛擬機(jī)的標(biāo)準(zhǔn)應(yīng)用項(xiàng)目。通過(guò)點(diǎn) 擊“文件”、“新建”、“項(xiàng)目”開(kāi)始根據(jù)向?qū)?chuàng)建一個(gè)項(xiàng)目。

      在隨后出現(xiàn)的對(duì)話(huà)框中選擇“Tool/標(biāo)準(zhǔn)應(yīng)用項(xiàng)目”,點(diǎn)擊下一步,開(kāi)始創(chuàng)建一個(gè)標(biāo)準(zhǔn)的 可執(zhí)行的應(yīng)用程序項(xiàng)目。

      在隨后出現(xiàn)的對(duì)話(huà)框中填入項(xiàng)目名稱(chēng)“ucos_x86_demo”。點(diǎn)擊“下一步”。

      選擇“pc386 uC/OS-II 應(yīng)用(x86)”作為該項(xiàng)目的應(yīng)用框架。點(diǎn)擊“下一步”

      選擇“pc386_elf_tra_debug”作為該項(xiàng)目的基本配置。點(diǎn)擊“完成”。

      新創(chuàng)建的項(xiàng)目“ucos_x86_demo”將會(huì)被添加到項(xiàng)目列表。src 文件夾下保存了該項(xiàng)目中 包含的源文件。ucos2 文件夾中包含了移植到x86 虛擬機(jī)的全部代碼。init.c 文件是基于ucos2 和本虛擬機(jī)的一個(gè)應(yīng)用程序。在進(jìn)行ucos2 內(nèi)核實(shí)驗(yàn)中,只需要替換init.c 文件,即可。文

      件名不限,但是文件名中最好不要使用英文符號(hào)和數(shù)字以外的其他字符,3.構(gòu)建項(xiàng)目

      到這里,項(xiàng)目配置全部完成。接下來(lái)就可以進(jìn)行構(gòu)建項(xiàng)目了。

      第一次構(gòu)建本項(xiàng)目,在此項(xiàng)目上點(diǎn)擊右鍵,選擇“重建BSP 及項(xiàng)目”。即可開(kāi)始構(gòu)建。

      之后彈出的對(duì)話(huà)框顯示了構(gòu)建的進(jìn)度。可以點(diǎn)擊“在后臺(tái)運(yùn)行”,以隱藏該對(duì)話(huà)框

      在構(gòu)建的同時(shí),在右下角的“構(gòu)建信息”視圖輸出構(gòu)建過(guò)程中的詳細(xì)信息:

      注:“重新構(gòu)建”將本項(xiàng)目中的全部源代碼進(jìn)行一次完全的編譯和連接,花費(fèi)時(shí)間較多?!皹?gòu)建項(xiàng)目”則僅僅將新修改過(guò)的源代碼進(jìn)行編譯和連接,花費(fèi)時(shí)間最少?!爸亟˙SP及項(xiàng) 目”,不但要完成“重新構(gòu)建”的全部工作,另外還要編譯與該項(xiàng)目有關(guān)的的LambdaEDU 中內(nèi)置的部分代碼,花費(fèi)時(shí)間最多。但是在項(xiàng)目剛建立后,第一次構(gòu)建時(shí)需要選擇“重建 BSP 及項(xiàng)目”。以后的構(gòu)建中選擇“重新構(gòu)建”或“構(gòu)建項(xiàng)目”即可。另外,在替換了源代 碼中的文件后,需要選擇“重新構(gòu)建”來(lái)完成該項(xiàng)目的構(gòu)建。

      4.配置虛擬機(jī)和目標(biāo)機(jī)代理

      (1)制作X86啟動(dòng)盤(pán)

      在 LambdaEDU 中依次點(diǎn)擊“工具”、“Bochs”、“制作虛擬機(jī)啟動(dòng)映象”。對(duì)啟動(dòng)盤(pán)進(jìn)行一些參數(shù)設(shè)置后(如下圖所示),系統(tǒng)將自動(dòng)為你生成一個(gè)PC 虛擬機(jī)的 啟動(dòng)盤(pán)映像。

      (2)配置虛擬機(jī) 選擇使用的網(wǎng)絡(luò)適配器(網(wǎng)卡)后,點(diǎn)擊“確定”完成配置。

      注意:如果計(jì)算機(jī)上有多網(wǎng)卡,請(qǐng)將其他網(wǎng)卡停用(包括 VMware 虛擬機(jī)添加的虛擬 網(wǎng)卡)。

      (3)創(chuàng)建目標(biāo)機(jī)代理

      配置好虛擬機(jī)后,創(chuàng)建目標(biāo)機(jī)代理:點(diǎn)擊LambdaEDU 左下方窗口中綠色的十字符號(hào),在彈出的窗口中選擇“基于TA 的連接方式”,并點(diǎn)擊“下一步”。

      在彈出的“新目標(biāo)機(jī)連接配置中”的這些參數(shù),應(yīng)該與之前制作啟動(dòng)盤(pán)時(shí)設(shè)置的參數(shù)一致。

      注意:

      名字:輸入目標(biāo)機(jī)的名字(缺省是 default),注意如果和現(xiàn)有目標(biāo)機(jī)重名的話(huà),改個(gè)名 字。

      連接類(lèi)型:默認(rèn)選擇 UDP IP地址:這里輸入目標(biāo)機(jī)(在本實(shí)驗(yàn)系統(tǒng)中是虛擬機(jī))的 IP地址;

      最后點(diǎn)擊“確定”,在目標(biāo)機(jī)管理窗口中,可以看到新增加了一個(gè)名為default 的目標(biāo)機(jī) 節(jié)點(diǎn)

      (4)調(diào)試應(yīng)用 啟動(dòng)虛擬機(jī)。

      虛擬機(jī)啟動(dòng)后的畫(huà)面如下(其中顯示的IP 地址創(chuàng)建虛擬機(jī)啟動(dòng)盤(pán)時(shí)填入的IP 地址)中設(shè)置的IP 地址):

      在成功完成構(gòu)建的項(xiàng)目ucos_x86_demo 中的“pc386_elf_tra_debug”上點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇“調(diào)試”,啟動(dòng)調(diào)試器調(diào)試生成的程序:

      第一次進(jìn)行調(diào)試/運(yùn)行,需要選擇目標(biāo)機(jī),如下圖,選擇“Default”,點(diǎn)擊“確定”,開(kāi) 始向目標(biāo)機(jī)(虛擬機(jī))下載應(yīng)用程序。程序下載完成后,會(huì)彈出一個(gè)“確認(rèn)透視圖切換”對(duì)話(huà)框,選擇“是”,切換到調(diào)試透 視圖。

      調(diào)試的界面如下:

      點(diǎn)擊綠色的按鈕,全速運(yùn)行。

      注意:全速運(yùn)行后,程序不能夠被暫停和停止。

      三、實(shí)驗(yàn)過(guò)程中遇到的問(wèn)題及體會(huì)

      在設(shè)置IP地址時(shí),要求該IP地址與本計(jì)算機(jī)在同一個(gè)子網(wǎng)中,同時(shí)要求該 IP地址沒(méi)有被網(wǎng)絡(luò)上其他計(jì)算機(jī)使用。此外,通過(guò)構(gòu)建開(kāi)發(fā)環(huán)境,處次體驗(yàn)到了嵌入式開(kāi)發(fā)工作的樂(lè)趣。

      實(shí)驗(yàn)二 任務(wù)的基本管理

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.理解任務(wù)管理的基本原理,了解任務(wù)的各個(gè)基本狀態(tài)及其變遷過(guò)程; 2.掌握 uC/OS-II 中任務(wù)管理的基本方法(創(chuàng)建、啟動(dòng)、掛起、解掛任務(wù)); 3.熟練使用 uC/OS-II 任務(wù)管理的基本系統(tǒng)調(diào)用。

      二、實(shí)驗(yàn)原理及程序結(jié)構(gòu)

      1.實(shí)驗(yàn)設(shè)計(jì)

      為了展現(xiàn)任務(wù)的各種基本狀態(tài)及其變遷過(guò)程,本實(shí)驗(yàn)設(shè)計(jì)了 Task0、Task1 兩個(gè)任務(wù): 任務(wù) Task0 不斷地掛起自己,再被任務(wù) Task1 解掛,兩個(gè)任務(wù)不斷地切換執(zhí)行。通過(guò)本實(shí)驗(yàn),讀者可以清晰地了解到任務(wù)在各個(gè)時(shí)刻的狀態(tài)以及狀態(tài)變遷的原因。2.運(yùn)行流程 描述如下:

      (1)系統(tǒng)經(jīng)歷一系列的初始化過(guò)程后進(jìn)入 boot_card()函數(shù),在其中調(diào)用 ucBsp_init()進(jìn) 行板級(jí)初始化后,調(diào)用 main()函數(shù);

      (2)main()函數(shù)調(diào)用 OSInit()函數(shù)對(duì) uC/OS-II 內(nèi)核進(jìn)行初始化,調(diào)用 OSTaskCreate 創(chuàng) 建起始任務(wù) TaskStart;

      (3)main()函數(shù)調(diào)用函數(shù) OSStart()啟動(dòng) uC/OS-II 內(nèi)核的運(yùn)行,開(kāi)始多任務(wù)的調(diào)度,執(zhí) 行當(dāng)前優(yōu)先級(jí)最高的就緒任務(wù) TaskStart;(4)TaskStart 完成如下工作:

      a、安裝時(shí)鐘中斷并初始化時(shí)鐘,創(chuàng)建 2 個(gè)應(yīng)用任務(wù);

      b、掛起自己(不再被其它任務(wù)喚醒),系統(tǒng)切換到當(dāng)前優(yōu)先級(jí)最高的就緒任務(wù)Task0。之后整個(gè)系統(tǒng)的運(yùn)行流程如下:

      ? t1 時(shí)刻,Task0 開(kāi)始執(zhí)行,它運(yùn)行到 t2 時(shí)刻掛起自己;

      ? t2 時(shí)刻,系統(tǒng)調(diào)度處于就緒狀態(tài)的優(yōu)先級(jí)最高任務(wù) Task1 執(zhí)行,它在 t3 時(shí)刻喚醒Task0,后者由于優(yōu)先級(jí)較高而搶占 CPU;

      ? Task0 執(zhí)行到 t4 時(shí)刻又掛起自己,內(nèi)核調(diào)度 Task1 執(zhí)行; ? Task1 運(yùn)行至 t5 時(shí)刻再度喚醒 Task0; ? ……

      3.μC/OS-Ⅱ中的任務(wù)描述

      一個(gè)任務(wù)通常是一個(gè)無(wú)限的循環(huán),由于任務(wù)的執(zhí)行是由操作系統(tǒng)內(nèi)核調(diào)度的,因此任務(wù)是絕不會(huì)返回的,其返回參數(shù)必須定義成 void。在μC/OS-Ⅱ中,當(dāng)一個(gè)運(yùn)行著的任務(wù)使一個(gè)比它優(yōu)先級(jí)高的任務(wù)進(jìn)入了就緒態(tài),當(dāng)前任務(wù)的 CPU 使用權(quán)就會(huì)被搶占,高優(yōu)先級(jí)任務(wù)會(huì)立刻得到 CPU 的控制權(quán)(在系統(tǒng)允許調(diào)度和任務(wù)切換的前提下)。μC/OS-Ⅱ可以管理多達(dá) 64 個(gè)任務(wù),但目前版本的μC/OS-Ⅱ有兩個(gè)任務(wù)已經(jīng)被系統(tǒng)占用了(即空閑任務(wù)和統(tǒng)計(jì)任務(wù))。必須給每個(gè)任務(wù)賦以不同的優(yōu)先級(jí),任務(wù)的優(yōu)先級(jí)號(hào)就是任務(wù)編號(hào)(ID),優(yōu)先級(jí)可以從 0 到 OS_LOWEST_PR10-2。優(yōu)先級(jí)號(hào)越低,任務(wù)的優(yōu)先級(jí)越高。μC/OS-Ⅱ總是運(yùn)行進(jìn)入就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)。4.源程序說(shuō)明(1)TaskStart任務(wù)

      TaskStart 任務(wù)負(fù)責(zé)安裝操作系統(tǒng)的時(shí)鐘中斷服務(wù)例程、初始化操作系統(tǒng)時(shí)鐘,并創(chuàng)建所 有的應(yīng)用任務(wù):

      UCOS_CPU_INIT();/* Install uC/OS-II's clock tick ISR */ UCOS_TIMER_START();/*Timer 初始化*/ TaskStartCreateTasks();/* Create all the application tasks */ OSTaskSuspend(OS_PRIO_SELF);

      具體負(fù)責(zé)應(yīng)用任務(wù)創(chuàng)建的 TaskStartCreateTasks 函數(shù)代碼如下,它創(chuàng)建了兩個(gè)應(yīng)用任務(wù) Task0 和 Task1:

      void TaskStartCreateTasks(void){

      INT8U i;

      for(i = 0;i < N_TASKS;i++)// Create tasks {

      TaskData[i] = i;// Each task will display itsown information }

      OSTaskCreate(Task0,(void *)&TaskData[0], &TaskStk[0][TASK_STK_SIZE1], 6);}

      TaskStart 任務(wù)完成上述操作后將自己掛起,操作系統(tǒng)將調(diào)度當(dāng)前優(yōu)先級(jí)最高的應(yīng)用任務(wù)Task0 運(yùn)行。(2)應(yīng)用任務(wù)

      應(yīng)用任務(wù) Task0 運(yùn)行后將自己掛起,之后操作系統(tǒng)就會(huì)調(diào)度處于就緒狀態(tài)的優(yōu)先級(jí)最高的任務(wù),具體代碼如下: void Task0(void *pdata){

      INT8U i;INT8U err;i=*(int *)pdata;for(;;){

      printf(“Application tasks switched %d times!nr”,++count);

      printf(“TASK_0 IS RUNNING..............................................................nr”);printf(“task_1 is suspended!nr”);

      printf(“**************************************************nr”);err=OSTaskSuspend(5);// suspend itself } }

      應(yīng)用任務(wù) Task1 運(yùn)行后將 Task0 喚醒,使其進(jìn)入到就緒隊(duì)列中: void Task1(void *pdata){

      INT8U i;INT8U err;i=*(int *)pdata;for(;;){

      OSTimeDly(150);

      printf(“Application tasks switched %d times!nr”,++count);printf(“task_0 is suspended!nr”);printf(“TASK_1 IS RUNNING..............................................................nr”);printf(“**************************************************nr”);OSTimeDly(150);

      err=OSTaskResume(5);/* resume task0 */ } }

      三、運(yùn)行及觀察應(yīng)用輸出信息

      按照本實(shí)驗(yàn)手冊(cè)第一部分所描述的方法建立應(yīng)用項(xiàng)目并完成構(gòu)建,當(dāng)我們?cè)?LambdaEDU 調(diào)試器的控制下運(yùn)行構(gòu)建好的程序后,將看到在μC/OS-Ⅱ內(nèi)核的調(diào)度管理下,兩個(gè)應(yīng)用任務(wù)不斷切換執(zhí)行的情形:

      四、本實(shí)驗(yàn)中用到的μC/OS-Ⅱ相關(guān)函數(shù)

      4.1 OSTaskCreate()

      OSTaskCreate()建立一個(gè)新任務(wù)。任務(wù)的建立可以在多任務(wù)環(huán)境啟動(dòng)之前,也可以在 正在運(yùn)行的任務(wù)中建立。中斷處理程序中不能建立任務(wù)。一個(gè)任務(wù)必須為無(wú)限循環(huán)結(jié)構(gòu),且 不能有返回點(diǎn)。

      OSTaskCreate()是為與先前的μC/OS 版本保持兼容,新增的特性在 OSTaskCreateExt()函數(shù)中。

      無(wú)論用戶(hù)程序中是否產(chǎn)生中斷,在初始化任務(wù)堆棧時(shí),堆棧的結(jié)構(gòu)必須與 CPU 中斷后 寄存器入棧的順序結(jié)構(gòu)相同。詳細(xì)說(shuō)明請(qǐng)參考所用處理器的手冊(cè)。函數(shù)原型:

      INT8U OSTaskCreate(void(*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio);

      參數(shù)說(shuō)明:

      task 是指向任務(wù)代碼首地址的指針。

      pdata 指向一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來(lái)在建立任務(wù)時(shí)向任務(wù)傳遞參數(shù)。

      ptos 為指向任務(wù)堆棧棧頂?shù)闹羔?。任?wù)堆棧用來(lái)保存局部變量,函數(shù)參數(shù),返回地址 以及任務(wù)被中斷時(shí)的 CPU 寄存器內(nèi)容。任務(wù)堆棧的大小決定于任務(wù)的需要及預(yù)計(jì)的中斷嵌 套層數(shù)。計(jì)算堆棧的大小,需要知道任務(wù)的局部變量所占的空間,可能產(chǎn)生嵌套調(diào)用的函數(shù),及中斷嵌套所需空間。如果初始化常量 OS_STK_GROWTH 設(shè)為 1,堆棧被設(shè)為從內(nèi)存高地址 向 低 地 址 增 長(zhǎng),此時(shí) ptos 應(yīng) 該 指 向任 務(wù)堆 棧 空 間 的 最 高 地 址。反 之,如 果OS_STK_GROWTH 設(shè)為 0,堆棧將從內(nèi)存的低地址向高地址增長(zhǎng)。prio 為任務(wù)的優(yōu)先級(jí)。每個(gè)任務(wù)必須有一個(gè)唯一的優(yōu)先級(jí)作為標(biāo)識(shí)。數(shù)字越小,優(yōu)先級(jí)越高。返回值:

      OSTaskCreate()的返回值為下述之一: ? OS_NO_ERR:函數(shù)調(diào)用成功。

      ? OS_PRIO_EXIST:具有該優(yōu)先級(jí)的任務(wù)已經(jīng)存在。

      ? OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級(jí)大于 OS_LOWEST_PRIO。? OS_NO_MORE_TCB:系統(tǒng)中沒(méi)有 OS_TCB 可以分配給任務(wù)了。注意:

      任務(wù)堆棧必須聲明為 OS_STK 類(lèi)型。

      在任務(wù)中必須調(diào)用μC/OS 提供的下述過(guò)程之一:延時(shí)等待、任務(wù)掛起、等待事件發(fā)生(等待信號(hào)量,消息郵箱、消息隊(duì)列),以使其他任務(wù)得到 CPU。用 戶(hù) 程 序 中 不 能 使 用 優(yōu) 先 級(jí) 0,1,2,3,以 及 OS_LOWEST_PRIO-3, OS_LOWEST_PRIO-2, OS_LOWEST_PRIO-1, OS_LOWEST_PRIO。這些優(yōu)先級(jí)μC/OS 系統(tǒng)

      保留,其余的 56 個(gè)優(yōu)先級(jí)提供給應(yīng)用程序。4.2 OSTaskSuspend()

      OSTaskSuspend()無(wú)條件掛起一個(gè)任務(wù)。調(diào)用此函數(shù)的任務(wù)也可以傳遞參數(shù)

      OS_PRIO_SELF,掛起調(diào)用任務(wù)本身。當(dāng)前任務(wù)掛起后,只有其他任務(wù)才能喚醒。任務(wù)掛起 后,系統(tǒng)會(huì)重新進(jìn)行任務(wù)調(diào)度,運(yùn)行下一個(gè)優(yōu)先級(jí)最高的就緒任務(wù)。喚醒掛起任務(wù)需要調(diào)用 函數(shù) OSTaskResume()。

      任務(wù)的掛起是可以疊加到其他操作上的。例如,任務(wù)被掛起時(shí)正在進(jìn)行延時(shí)操作,那么 任務(wù)的喚醒就需要兩個(gè)條件:延時(shí)的結(jié)束以及其他任務(wù)的喚醒操作。又如,任務(wù)被掛起時(shí)正 在等待信號(hào)量,當(dāng)任務(wù)從信號(hào)量的等待對(duì)列中清除后也不能立即運(yùn)行,而必須等到被喚醒后。函數(shù)原型:

      INT8U OSTaskSuspend(INT8U prio);參數(shù)說(shuō)明:

      prio 為指定要獲取掛起的任務(wù)優(yōu)先級(jí),也可以指定參數(shù) OS_PRIO_SELF,掛起任務(wù)本 身。此時(shí),下一個(gè)優(yōu)先級(jí)最高的就緒任務(wù)將運(yùn)行。返回值:

      OSTaskSuspend()的返回值為下述之一: ? OS_NO_ERR:函數(shù)調(diào)用成功。

      ? OS_TASK_ SUSPEND_IDLE:試圖掛起 μC/OS-II 中的空閑任務(wù)(Idle task)。此為非法操作。

      ? OS_PRIO_INVALID :參數(shù)指定的優(yōu)先級(jí)大于 OS_LOWEST_PRIO 或沒(méi)有設(shè)定 ? OS_PRIO_SELF 的值。

      ? OS_TASK_ SUSPEND _PRIO:要掛起的任務(wù)不存在。注意:

      在程序中 OSTaskSuspend()和 OSTaskResume()應(yīng)該成對(duì)使用。用 OSTaskSuspend()掛起的任務(wù)只能用 OSTaskResume()喚醒。4.3 OSTaskResume()

      OSTaskResume()喚醒一個(gè)用 OSTaskSuspend()函數(shù)掛起的任務(wù)。OSTaskResume()也是唯一能“解掛”掛起任務(wù)的函數(shù)。函數(shù)原型:

      INT8UOSTaskResume(INT8U prio);參數(shù)說(shuō)明:

      prio 指定要喚醒任務(wù)的優(yōu)先級(jí)。返回值:

      OSTaskResume()的返回值為下述之一: ? OS_NO_ERR:函數(shù)調(diào)用成功。

      ? OS_TASK_RESUME_PRIO:要喚醒的任務(wù)不存在。

      ? OS_TASK_NOT_SUSPENDED:要喚醒的任務(wù)不在掛起狀態(tài)。

      ? OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級(jí)大于或等于 OS_LOWEST_PRIO。

      五、實(shí)驗(yàn)過(guò)程中遇到的問(wèn)題及體會(huì)

      實(shí)驗(yàn)過(guò)程中體會(huì)到了嵌入式開(kāi)發(fā)的樂(lè)趣,對(duì)上課老師所講的內(nèi)容有了進(jìn)一步的認(rèn)識(shí)與理解。17 實(shí)驗(yàn)三 信號(hào)量:哲學(xué)家就餐問(wèn)題的實(shí)現(xiàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      掌握在基于嵌入式實(shí)時(shí)操作系統(tǒng) uC/OS-II 的應(yīng)用中,任務(wù)使用信號(hào)量的一般原理。通 過(guò)經(jīng)典的哲學(xué)家就餐實(shí)驗(yàn),了解如何利用信號(hào)量來(lái)對(duì)共享資源進(jìn)行互斥訪問(wèn)。

      二、實(shí)驗(yàn)原理及程序結(jié)構(gòu)

      1.實(shí)驗(yàn)設(shè)計(jì)

      掌握在基于嵌入式實(shí)時(shí)操作系統(tǒng) uC/OS-II 的應(yīng)用中,任務(wù)使用信號(hào)量的一般原理。通 過(guò)經(jīng)典的哲學(xué)家就餐實(shí)驗(yàn),了解如何利用信號(hào)量來(lái)對(duì)共享資源進(jìn)行互斥訪問(wèn)。2.源程序說(shuō)明

      五個(gè)哲學(xué)家任務(wù)(ph1、ph2、ph3、ph4、ph5)主要有兩種過(guò)程:思考(即睡眠一段時(shí)

      間)和就餐。每個(gè)哲學(xué)家任務(wù)在就餐前必須申請(qǐng)并獲得一左一右兩支筷子,就餐完畢后釋放 這兩支筷子。五個(gè)哲學(xué)家圍成一圈,每?jī)扇酥g有一支筷子。一共有五支筷子,在該實(shí)驗(yàn)中 用了五個(gè)互斥信號(hào)量來(lái)代表。每個(gè)任務(wù)的代碼都一樣,如下所示: void Task(void *pdata){

      INT8U err;INT8U i;INT8U j;

      i=*(int *)pdata;j=(i+1)% 5;

      uC/OS-II 實(shí)驗(yàn)指導(dǎo)書(shū) for(;;){

      TaskThinking2Hungry(i);OSSemPend(fork[i], 0, &err);

      OSSemPend(fork[j], 0, &err);/* Acquire semaphores to eat */ TaskEat(i);

      OSSemPost(fork[j]);

      OSSemPost(fork[i]);/* Release semaphore */ OSTimeDly(200);/* Delay 10 clock tick */ } }

      操作系統(tǒng)配置

      修改 uC_OS-II/OS_CFG.h: :: :

      #define OS_MAX_EVENTS 10 /*最多可以有 10 個(gè)事件*/ #define OS_MAX_FLAGS 5 /*最多可以有 5 個(gè)事件標(biāo)志*/

      #define OS_MAX_MEM_PART 5 /*最多可以劃分 5 個(gè)內(nèi)存塊*/ #define OS_MAX_QS 2 /*最多可以使用 2 個(gè)隊(duì)列*/ #define OS_MAX_TASKS 8 /*最多可以創(chuàng)建 8 個(gè)任務(wù)*/

      #define OS_LOWEST_PRIO 14 /*任務(wù)優(yōu)先級(jí)不可以大于 14*/ #define OS_TASK_IDLE_STK_SIZE 1024 /*空閑任務(wù)堆棧大小*/ #define OS_TASK_STAT_EN 1 /*是否允許使用統(tǒng)計(jì)任務(wù)*/ #define OS_TASK_STAT_STK_SIZE 1024 /*統(tǒng)計(jì)任務(wù)堆棧大小*/ #define OS_FLAG_EN 1 /*是否允許使用事件標(biāo)志功能*/

      #define OS_FLAG_WAIT_CLR_EN 1 /*是否允許等待清除事件標(biāo)志*/ #define OS_FLAG_ACCEPT_EN 1 /*是否允許使用 OSFlagAccept()*/ #define OS_FLAG_DEL_EN 1 /*是否允許使用 OSFlagDel()*/

      #define OS_FLAG_QUERY_EN 1 /*是否允許使用 OSFlagQuery()*/ #define OS_MBOX_EN 0 /*是否允許使用郵箱功能*/

      #define OS_MEM_EN 0 /*是否允許使用內(nèi)存管理的功能*/

      #define OS_MUTEX_EN 0 /*是否允許使用互斥信號(hào)量的功能*/ #define OS_Q_EN 0 /*是否允許使用隊(duì)列功能*/ #define OS_SEM_EN 1 /*是否允許使用信號(hào)量功能*/

      #define OS_SEM_ACCEPT_EN 1 /*是否允許使用 OSSemAccept()*/ #define OS_SEM_DEL_EN 1 /*是否允許使用OSSemDel()*/

      #define OS_SEM_QUERY_EN 1 /*是否允許使用OSSemQuery()*/ #define OS_TASK_CHANGE_PRIO_EN 1 /* 是 否 允 許 使 用 OSTaskChangePrio()*/

      #define OS_TASK_CREATE_EN 1 /*是否允許使用 OSTaskCreate()*/

      #define OS_TASK_CREATE_EXT_EN 1 /*是否允許使用 OSTaskCreateExt()*/ #define OS_TASK_DEL_EN 1 /*是否允許使用 OSTaskDel()*/

      #define OS_TASK_SUSPEND_EN 1 /* 是 否 允 許 使 用 OSTaskSuspend()and OSTaskResume()*/

      #define OS_TASK_QUERY_EN 1 /*是否允許使用 OSTaskQuery()*/ #define OS_TIME_DLY_HMSM_EN 1 /* 是 否 允 許 使 用 OSTimeDlyHMSM()*/

      #define OS_TIME_DLY_RESUME_EN 1 /* 是 否 允 許 使 用 OSTimeDlyResume()*/

      #define OS_TIME_GET_SET_EN 1 /* 是否允許使用 OSTimeGet()和 OSTimeSet()*/

      #define OS_SCHED_LOCK_EN 1 /* 是 否 允 許 使 用 OSSchedLock()和 OSSchedUnlock()*/

      #define OS_TICKS_PER_SEC 200 /*設(shè)置每秒之內(nèi)的時(shí)鐘節(jié)拍數(shù)目*/

      三、運(yùn)行及觀察應(yīng)用輸出信息

      開(kāi)始,所有的哲學(xué)家先處于 thinking 狀態(tài),然后都進(jìn)入 hungry 狀態(tài):

      后首先獲得兩個(gè)信號(hào)量的 1、3 號(hào)哲學(xué)家開(kāi)始 eating,待他們釋放相關(guān)信號(hào)量之后,哲

      學(xué)家 2、5、4 獲得所需的信號(hào)量并 eating: 應(yīng)用如此這般地循環(huán)執(zhí)行程序下去??

      四、本實(shí)驗(yàn)中用到的μC/OS-Ⅱ相關(guān)函數(shù)

      4.1 OSSemCreate()

      OSSemCreate()函數(shù)建立并初始化一個(gè)信號(hào)量。信號(hào)量的作用如下: ? 允許一個(gè)任務(wù)和其他任務(wù)或者中斷同步 ? 取得設(shè)備的使用權(quán) ? 標(biāo)志事件的發(fā)生

      函數(shù)原型:

      OS_EVENT *OSSemCreate((((WORD value))))參數(shù)說(shuō)明:

      value 參數(shù)是所建立的信號(hào)量的初始值,可以取 0 到 65535 之間的任何值。返回值:

      OSSemCreate()函數(shù)返回指向分配給所建立的信號(hào)量的控制塊的指針。如果沒(méi)有可用的 控制塊,OSSemCreate()函數(shù)返回空指針。注意:

      必須先建立信號(hào)量,然后使用。4.2 OSSemPend()

      OSSemPend()函數(shù)用于任務(wù)試圖取得設(shè)備的使用權(quán),任務(wù)需要和其他任務(wù)或中斷同

      步,任務(wù)需要等待特定事件的發(fā)生的場(chǎng)合。如果任務(wù)調(diào)用 OSSemPend()函數(shù)時(shí),信號(hào)量 的值大于零,OSSemPend()函數(shù)遞減該值并返回該值。如果調(diào)用時(shí)信號(hào)量等于零,OSSemPend()函數(shù)函數(shù)將任務(wù)加入該信號(hào)量的等待隊(duì)列。OSSemPend()函數(shù)掛起當(dāng)前 任務(wù)直到其他的任務(wù)或中斷置起信號(hào)量或超出等待的預(yù)期時(shí)間。如果在預(yù)期的時(shí)鐘節(jié)拍內(nèi)信 號(hào)量被置起,μC/OS-Ⅱ默認(rèn)最高優(yōu)先級(jí)的任務(wù)取得信號(hào)量恢復(fù)執(zhí)行。一個(gè)被 OSTaskSuspend()函數(shù)掛起的任務(wù)也可以接受信號(hào)量,但這個(gè)任務(wù)將一直保持掛起狀態(tài)直到通過(guò)調(diào)用 OSTaskResume()函數(shù)恢復(fù)任務(wù)的運(yùn)行。函數(shù)原型: :: :

      Void OSSemPend(OS_EVNNT *pevent, INT16U timeout, int8u *err);參數(shù)說(shuō)明: :: :

      pevent

      是指向信號(hào)量的指針。該指針的值在建立該信號(hào)量時(shí)可以得到。(參考 OSSemCreate()函數(shù))。

      Timeout

      允許一個(gè)任務(wù)在經(jīng)過(guò)了指定數(shù)目的時(shí)鐘節(jié)拍后還沒(méi)有得到需要的信號(hào)量時(shí) 恢復(fù)就緒狀態(tài)。如果該值為零表示任務(wù)將持續(xù)地等待信號(hào)量,最大的等待時(shí)間為 65535 個(gè)時(shí)

      鐘節(jié)拍。這個(gè)時(shí)間長(zhǎng)度并不是非常嚴(yán)格的,可能存在一個(gè)時(shí)鐘節(jié)拍的誤差。

      Err 是指向包含錯(cuò)誤碼的變量的指針。OSSemPend()函數(shù)返回的錯(cuò)誤碼可能為下述幾 種:

      ? OS_NO_ERR :信號(hào)量不為零。

      ? OS_TIMEOUT :信號(hào)量沒(méi)有在指定數(shù)目的時(shí)鐘周期內(nèi)被設(shè)置。

      ? OS_ERR_PEND_ISR :從中斷調(diào)用該函數(shù)。雖然規(guī)定了不允許從中斷調(diào)用該函數(shù),但 μC/OS-Ⅱ仍然包含了檢測(cè)這種情況的功能。

      ?

      OS_ERR_EVENT_TYPE :pevent 不是指向信號(hào)量的指針。返回值: 無(wú) 注意:

      必須先建立信號(hào)量,然后使用。不允許從中斷調(diào)用該函數(shù)。

      4.3 OSSemPost()

      OSSemPost()函數(shù)置起指定的信號(hào)量。如果指定的信號(hào)量是零或大于零,OSSemPost()函數(shù)遞增該信號(hào)量并返回。如果有任何任務(wù)在等待信號(hào)量,最高優(yōu)先級(jí)的任務(wù)將得到信

      號(hào)量并進(jìn)入就緒狀態(tài)。任務(wù)調(diào)度函數(shù)將進(jìn)行任務(wù)調(diào)度,決定當(dāng)前運(yùn)行的任務(wù)是否仍然為最高 優(yōu)先級(jí)的就緒狀態(tài)的任務(wù)。函數(shù)原型:

      INT8U OSSemPost(OS_EVENT *pevent);參數(shù)說(shuō)明:

      pevent

      是指向信號(hào)量的指針。該指針的值在建立該信號(hào)量時(shí)可以得到。(參考 OSSemCreate()函數(shù))。返回值:

      OSSemPost()函數(shù)的返回值為下述之一: ?

      OS_NO_ERR :信號(hào)量被成功地設(shè)置 ?

      OS_SEM_OVF :信號(hào)量的值溢出

      ?

      OS_ERR_EVENT_TYPE :pevent 不是指向信號(hào)量的指針 注意:

      必須先建立信號(hào)量,然后使用。4.4 OSTimeDly()

      OSTimeDly()將一個(gè)任務(wù)延時(shí)若干個(gè)時(shí)鐘節(jié)拍。如果延時(shí)時(shí)間大于 0,系統(tǒng)將立即進(jìn) 行任務(wù)調(diào)度。延時(shí)時(shí)間的長(zhǎng)度可從 0 到 65535 個(gè)時(shí)鐘節(jié)拍。延時(shí)時(shí)間 0 表示不進(jìn)行延時(shí),函

      數(shù)將立即返回調(diào)用者。延時(shí)的具體時(shí)間依賴(lài)于系統(tǒng)每秒鐘有多少時(shí)鐘節(jié)拍(由文件 SO_CFG.H 中的常量 OS_TICKS_PER_SEC 設(shè)定)。函數(shù)原型:

      void OSTimeDly(INT16U ticks);參數(shù)說(shuō)明:

      ticks 為要延時(shí)的時(shí)鐘節(jié)拍數(shù)。返回值:

      無(wú)

      注意:

      注意到延時(shí)時(shí)間 0 表示不進(jìn)行延時(shí)操作,而立即返回調(diào)用者。為了確保設(shè)定的延時(shí)時(shí)間,建議用戶(hù)設(shè)定的時(shí)鐘節(jié)拍數(shù)加 1。例如,希望延時(shí) 10 個(gè)時(shí)鐘節(jié)拍,可設(shè)定參數(shù)為 11。

      五、實(shí)驗(yàn)過(guò)程中遇到的問(wèn)題及體會(huì)

      在實(shí)驗(yàn)前要對(duì)該問(wèn)題進(jìn)行深入的理解,即五個(gè)哲學(xué)家任務(wù)(ph1、ph2、ph3、ph4、ph5)主要有兩種過(guò)程:思考(即睡眠一段時(shí)間)和就餐。每個(gè)哲學(xué)家任務(wù)在就餐前必須申請(qǐng)并獲得一左一右兩支筷子,就餐完畢后釋放這兩支筷子。五個(gè)哲學(xué)家圍成一圈,每?jī)扇酥g有一支筷子。只有理解了,才能更好的進(jìn)行實(shí)驗(yàn)。

      第三篇:嵌入式操作系統(tǒng)課程報(bào)告

      華北水利水電大學(xué)

      North China University of Water Resources and Electric Power

      嵌入式操作系統(tǒng)課程報(bào)告

      題目 嵌入式系統(tǒng)課程綜和論述

      學(xué) 院 物理與電子學(xué)院

      專(zhuān) 業(yè) 電子信息工程

      姓 名 李天澤

      學(xué) 號(hào) 201816516

      組 員

      完成時(shí)間 2020.12.22

      目 錄

      一、嵌入式系統(tǒng)的介紹

      (1)、嵌入式系統(tǒng)的概念……………………………………3

      (2)、嵌入式系統(tǒng)的特點(diǎn)……………………………………4

      二、嵌入式系統(tǒng)的發(fā)展和應(yīng)用……………………………5

      三、總結(jié)和心得……………………………………………7

      參考文獻(xiàn)……………………………………………7

      附錄…………………………………………………8

      摘要:

      如今,嵌入式系統(tǒng)經(jīng)過(guò)半個(gè)多實(shí)際的發(fā)展和革新,在各個(gè)產(chǎn)業(yè)都可以看見(jiàn)它的身影。在電子消費(fèi)領(lǐng)域,它已經(jīng)廣泛應(yīng)用于手機(jī)、VCD、數(shù)字電視和路由器等常見(jiàn)家用電器和電子產(chǎn)品,或許在你的家里有著幾十甚至幾百個(gè)微型嵌入式計(jì)算機(jī)無(wú)時(shí)無(wú)刻地不在為你服務(wù)。

      在工業(yè)控制方面,一輛豪華轎車(chē)的控制系統(tǒng)就包含著至少50個(gè)嵌入式微處理器,它們分布于火花塞、傳動(dòng)軸和安全氣囊等等。而一架先進(jìn)的飛機(jī),一臺(tái)人造衛(wèi)星就可能包含著幾十套嵌入式系統(tǒng)和上百臺(tái)微型嵌入式計(jì)算機(jī),沒(méi)有這些裝載,飛機(jī)和衛(wèi)星的控制系統(tǒng)就不能有效地工作,它們的導(dǎo)航系統(tǒng)就不能滿(mǎn)足嚴(yán)格的要求。

      在通信領(lǐng)域也有著數(shù)不勝數(shù)的嵌入式系統(tǒng)的應(yīng)用,由于帶寬網(wǎng)絡(luò)的發(fā)展,交換機(jī)、路由器和各種傳輸設(shè)備等都逐漸需要更多的嵌入式系統(tǒng)來(lái)滿(mǎn)足它們互聯(lián)的需求,而這些基于32位的嵌入式系統(tǒng)品種多樣,絕大多數(shù)都價(jià)格低廉,能夠?yàn)槠髽I(yè)和家庭的網(wǎng)絡(luò)選擇提供更加廉價(jià)而多樣的方案。

      一、嵌入式系統(tǒng)的介紹

      1、嵌入式系統(tǒng)的概念:

      上世紀(jì)的40年代人類(lèi)社會(huì)誕生了當(dāng)時(shí)最偉大的發(fā)明之一——計(jì)算機(jī)。1946年賓夕法尼亞大學(xué)研制出了世界上第一臺(tái)計(jì)算機(jī)“ENIAC”,吹響了人類(lèi)向信息時(shí)代進(jìn)發(fā)的號(hào)角。如今半個(gè)多世紀(jì)過(guò)去了,總體來(lái)看,計(jì)算機(jī)已經(jīng)經(jīng)歷了兩個(gè)大的發(fā)展階段:大型計(jì)算機(jī)階段和個(gè)人中小型計(jì)算機(jī)階段。而今后,計(jì)算機(jī)技術(shù)將邁入下一個(gè)充滿(mǎn)機(jī)遇和挑戰(zhàn)的新階段—— “無(wú)處不在的計(jì)算機(jī)”階段,即“后PC發(fā)展階段”?!盁o(wú)處不在的計(jì)算機(jī)”是指在數(shù)以千計(jì)乃至萬(wàn)計(jì)的計(jì)算機(jī)之間彼此相互關(guān)聯(lián),其與使用者的比例高達(dá)100%,這些計(jì)算機(jī)中包括有傳統(tǒng)的通用式計(jì)算機(jī)和嵌入式計(jì)算機(jī),而后者占絕大多數(shù),可以達(dá)到95%的比例。

      施樂(lè)公司研究中心的主任Mark Weiser 認(rèn)為:“以長(zhǎng)遠(yuǎn)的發(fā)展來(lái)看,PC和計(jì)算機(jī)工作站將逐漸衰落,因?yàn)橛?jì)算機(jī)將會(huì)變得無(wú)處不在,它們會(huì)在墻上,在手腕上,在口袋里等等,計(jì)算機(jī)將會(huì)像手寫(xiě)紙一樣,隨用隨取,伸手可得?!?/p>

      目前全世界范圍的計(jì)算機(jī)研究者都在逐步形成一種共識(shí),那就是在計(jì)算機(jī)將來(lái)的發(fā)展中,它必然不會(huì)成為像科幻電影中的那種會(huì)背叛人類(lèi),傷害人類(lèi)的機(jī)械怪物,恰恰相反它們將變得小巧玲瓏而且無(wú)處不在。它們會(huì)出現(xiàn)在任何你能看的見(jiàn)、聽(tīng)得到、摸得著的地方,功能強(qiáng)大而且隨處可用,這就是“無(wú)處不在的計(jì)算機(jī)”。

      嵌入式計(jì)算機(jī)系統(tǒng)就是所謂的“看不見(jiàn)的計(jì)算機(jī)”,一般情況下它只是運(yùn)行平臺(tái),并不能作為獨(dú)立的開(kāi)發(fā)平臺(tái)來(lái)使用。而且它不能夠被用戶(hù)編程,對(duì)用戶(hù)的I/O接口是專(zhuān)用的。所以不嚴(yán)謹(jǐn)?shù)卣f(shuō):任意包含可編程計(jì)算機(jī)的設(shè)備而且這種設(shè)備不是作為通用計(jì)算機(jī)而設(shè)計(jì)的都可以稱(chēng)作嵌入式系統(tǒng)。

      時(shí)至今日嵌入式系統(tǒng)已經(jīng)逐漸滲透到人們的日常生活中,但因?yàn)槠洳煌膽?yīng)用形式和相異的名稱(chēng),目前對(duì)嵌入式系統(tǒng)還沒(méi)有一個(gè)統(tǒng)一的定義。但一般認(rèn)為,它有以下概念:

      (1)嵌入式系統(tǒng)的中心是應(yīng)用功能,基礎(chǔ)是計(jì)算機(jī)技術(shù),其軟件和硬件可以裁剪,對(duì)應(yīng)用系統(tǒng)的功能、可靠性、成本、體積大小和功率損耗都有十分嚴(yán)格的要求和指標(biāo)。

      (2)國(guó)際電氣和電子工程師協(xié)會(huì)認(rèn)為嵌入式系統(tǒng)的定義是“Device used to control, monitor, or assist the operation of equipment , machinery or plants.”

      (3)嵌入式系統(tǒng)是計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)等與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,是一個(gè)技術(shù)集中、資源集中、應(yīng)用高度分散、技術(shù)不斷革新的集成系統(tǒng)。

      2、嵌入式系統(tǒng)的特點(diǎn):

      1)嵌入式系統(tǒng)通常都是多樣的有特定應(yīng)用功能的軟硬件綜合體,用于特定的任務(wù),其硬件和軟件設(shè)計(jì)都是高效而簡(jiǎn)潔的。其中嵌入式軟件的應(yīng)用程序和操作程序是一體化的,不同于傳統(tǒng)的通用計(jì)算機(jī)操作系統(tǒng)和應(yīng)用程序有著分明的界限。

      2)嵌入式系統(tǒng)能夠受到多個(gè)處理器和體系結(jié)構(gòu)的支持,不同于通用的計(jì)算機(jī)只能夠使用少數(shù)的處理器類(lèi)型和體系結(jié)構(gòu)。目前已經(jīng)生產(chǎn)有上千種嵌人式微處理器和幾十種微處理器的體系結(jié)構(gòu),其中比較主流常見(jiàn)的有ARM,MIPS, PowerPC,X86和SuperH等。

      4)嵌入式系統(tǒng)有實(shí)時(shí)性和可靠性的特點(diǎn),其主要表現(xiàn)在:目前絕大多數(shù)實(shí)時(shí)操作系統(tǒng)都是嵌人式系統(tǒng);嵌人式系統(tǒng)都有實(shí)時(shí)性的要求,其軟件通常都是固化或直接加載到內(nèi)存中運(yùn)行的,啟動(dòng)十分快速

      另外,嵌人式系統(tǒng)通常都有處錯(cuò)能力和自動(dòng)復(fù)位的功能,目前在絕大多數(shù)嵌式系統(tǒng)中都包含著用于保證系統(tǒng)運(yùn)行可靠性的軟硬件處理機(jī)制,比如看門(mén)狗定時(shí)器和內(nèi)存保護(hù)重啟機(jī)制等。

      5)嵌入式系統(tǒng)通常都使用可以適應(yīng)多種類(lèi)型處理器、可裁剪量輕、實(shí)時(shí)性和可靠性高以及可以固化的。同嵌入式微處理器,嵌入式的操作系統(tǒng)也是多種多樣的,不僅可以支持多種處理器,還可以進(jìn)行裁剪量輕來(lái)匹配應(yīng)用的功能,而且規(guī)模較小,能夠節(jié)省資源等等。

      二、嵌入式系統(tǒng)的發(fā)展和應(yīng)用

      第一代電子計(jì)算機(jī)體積大,耗電快,而且可靠性和實(shí)時(shí)性都無(wú)法滿(mǎn)足嵌入式計(jì)算的要求。到了20世紀(jì)60年代,由晶體管、磁芯存儲(chǔ)制造的第二代計(jì)算機(jī)開(kāi)始用于航海航空等領(lǐng)域,它的CPU能夠處理從電子系統(tǒng)傳來(lái)的信號(hào),具有了數(shù)據(jù)總線(xiàn)的一些基本特性。而與此同時(shí),嵌人式計(jì)算機(jī)也逐步應(yīng)用于工業(yè)和制造等方面。

      至60年代末,采用集成電路的第三代計(jì)算機(jī)問(wèn)世,1965年發(fā)射Gemini3號(hào)是人們第一次使用機(jī)載數(shù)字計(jì)算機(jī)。而后的阿波羅探測(cè)飛船則使用了嵌人式計(jì)算機(jī)系統(tǒng)來(lái)提供和保障人機(jī)的交互功能來(lái)用于引導(dǎo)飛行。1963年DEC公司推廣了第一臺(tái)商用小型機(jī),它具有嵌入式系統(tǒng)的結(jié)構(gòu),具備單總線(xiàn)結(jié)構(gòu)、高速寄存器和實(shí)時(shí)性、可靠性強(qiáng)的中斷系統(tǒng)以及交叉存取功能,標(biāo)志著嵌入式系統(tǒng)的興起。

      1971 年,英特爾公司成功推出了世界上第一片微處理器Intel 4004。它的體積小、質(zhì)量輕、價(jià)格實(shí)惠、使用方便,在當(dāng)時(shí)銷(xiāo)量很好,Intel公司將它進(jìn)一步改進(jìn)后推出了4位的微處理器4040和8位的8008。

      1973-1977 年短短四年之間全球許多廠家推出了各種各樣的8位微處理器,其中比較流行的有英特爾公司的8080/ 8085系列,摩托羅拉公司的6800/6802系列,齊洛格公司的Z80和羅克韋爾公司的6502等。這些微處理器的廣泛應(yīng)用為嵌入式系統(tǒng)開(kāi)辟了廣闊的市場(chǎng),促成了嵌入式系統(tǒng)的快速發(fā)展。計(jì)算機(jī)廠商開(kāi)始以插件的形式為用戶(hù)提供所需的OEM產(chǎn)品,并構(gòu)成符合用戶(hù)要求的微型控制計(jì)算機(jī),嵌入到系統(tǒng)設(shè)備中。

      嵌入式系統(tǒng)的大發(fā)展還要?dú)w功于20世紀(jì)80年代軟件技術(shù)的進(jìn)步。最初的嵌入式計(jì)算機(jī)的軟件都是十分專(zhuān)用的,其程序也只能用匯編語(yǔ)言來(lái)編寫(xiě),因此嵌入式系統(tǒng)的開(kāi)發(fā)周期過(guò)長(zhǎng),效率太低,不利于廣泛地推廣和應(yīng)用。得益于微電子技術(shù)的進(jìn)步,嵌入式計(jì)算機(jī)的軟件開(kāi)發(fā)不再局限于匯編語(yǔ)言,可以使用C或PL等高級(jí)語(yǔ)言,是編程更加多樣和簡(jiǎn)潔化,加快了嵌入式系統(tǒng)的開(kāi)發(fā)效率。時(shí)間步入20世紀(jì)90年代,當(dāng)時(shí)對(duì)分布控制、柔性制造和數(shù)字通信電等技術(shù)有著巨大需求,而這種需求也刺激著嵌人式系統(tǒng)的軟硬技術(shù)的革新和發(fā)展,促進(jìn)了嵌入式系統(tǒng)的應(yīng)用擴(kuò)大化。

      如今,嵌入式系統(tǒng)經(jīng)過(guò)半個(gè)多實(shí)際的發(fā)展和革新,在各個(gè)產(chǎn)業(yè)都可以看見(jiàn)它的身影。在電子消費(fèi)領(lǐng)域,它已經(jīng)廣泛應(yīng)用于手機(jī)、VCD、數(shù)字電視和路由器等常見(jiàn)家用電器和電子產(chǎn)品,或許在你的家里有著幾十甚至幾百個(gè)微型嵌入式計(jì)算機(jī)無(wú)時(shí)無(wú)刻地不在為你服務(wù)。

      在工業(yè)控制方面,一輛豪華轎車(chē)的控制系統(tǒng)就包含著至少50個(gè)嵌入式微處理器,它們分布于火花塞、傳動(dòng)軸和安全氣囊等等。而一架先進(jìn)的飛機(jī),一臺(tái)人造衛(wèi)星就可能包含著幾十套嵌入式系統(tǒng)和上百臺(tái)微型嵌入式計(jì)算機(jī),沒(méi)有這些裝載,飛機(jī)和衛(wèi)星的控制系統(tǒng)就不能有效地工作,它們的導(dǎo)航系統(tǒng)就不能滿(mǎn)足嚴(yán)格的要求。

      在通信領(lǐng)域也有著數(shù)不勝數(shù)的嵌入式系統(tǒng)的應(yīng)用,由于帶寬網(wǎng)絡(luò)的發(fā)展,交換機(jī)、路由器和各種傳輸設(shè)備等都逐漸需要更多的嵌入式系統(tǒng)來(lái)滿(mǎn)足它們互聯(lián)的需求,而這些基于32位的嵌入式系統(tǒng)品種多樣,絕大多數(shù)都價(jià)格低廉,能夠?yàn)槠髽I(yè)和家庭的網(wǎng)絡(luò)選擇提供更加廉價(jià)而多樣的方案。

      時(shí)至今日,嵌入式系統(tǒng)的應(yīng)用已經(jīng)從微至著,廣泛分布。但它還在不斷地更新發(fā)展,其構(gòu)成的計(jì)算機(jī)也會(huì)變得更小巧,更靈敏,更高效,更智能,相信在未來(lái)的某一天,會(huì)如Mark Weiser所說(shuō)的那樣:“它們會(huì)在墻上,在手腕上,在口袋里,就像手寫(xiě)紙一樣,隨用隨取,伸手可得?!?/p>

      三、總結(jié)和心得

      嵌入式系統(tǒng)作為一門(mén)計(jì)算機(jī)開(kāi)發(fā)的學(xué)科,有著不同于傳統(tǒng)通用計(jì)算機(jī)系統(tǒng)的特點(diǎn)和概念,具有獨(dú)特長(zhǎng)處。同時(shí)它的應(yīng)用遍布于電子消費(fèi)、通信工程、工業(yè)控制和軍事國(guó)防等多種領(lǐng)域,其發(fā)展前景是非常廣闊的,是一門(mén)十分值得深入學(xué)習(xí)和研究的學(xué)科。

      通過(guò)一個(gè)學(xué)期的學(xué)習(xí),我了解了許多嵌入式實(shí)時(shí)操作系統(tǒng)的應(yīng)用知識(shí),比如“任務(wù)的管理和調(diào)度”、“同步、互斥與通信”以及“中斷和時(shí)間管理”等全新的理論知識(shí),同時(shí)也通過(guò)多次的實(shí)驗(yàn)操作理解了對(duì)嵌入式系統(tǒng)軟硬件工作方式和應(yīng)用。所謂溫故而知新,通過(guò)撰寫(xiě)課程報(bào)告,我對(duì)嵌入式系統(tǒng)的各個(gè)方面有了新的了解,大大提高了對(duì)這門(mén)學(xué)科的興趣,在今后的學(xué)習(xí)中,我也會(huì)更加深入地去學(xué)習(xí)這門(mén)課程的相關(guān)內(nèi)容,豐富自己的知識(shí)領(lǐng)域,開(kāi)闊眼界,掌握更多的技能,為自己將來(lái)的發(fā)展做好鋪墊。

      參考文獻(xiàn):

      甄鵬------《嵌入式實(shí)時(shí)Linux的移植及應(yīng)用技術(shù)的研究》2008,(02)

      郭軍------《基于Petri網(wǎng)的嵌入式系統(tǒng)高層級(jí)設(shè)計(jì)方法與技術(shù)研究》2007,(04)

      吳敏------《基于嵌入式的家庭網(wǎng)關(guān)控制平臺(tái)的研究與設(shè)計(jì)》2007,(05)

      劉青云;焦鉻-------《嵌入式Web Service模型實(shí)現(xiàn)及應(yīng)用》2019,(01)

      田婧---------《嵌入式μCOSⅡ在DSP中的移植與應(yīng)用研究》2007,(04)

      附錄

      附查重報(bào)告:

      “"

      第四篇:嵌入式系統(tǒng)發(fā)展趨勢(shì)

      未來(lái)嵌入式系統(tǒng)的發(fā)展趨勢(shì) 在網(wǎng)絡(luò)、通信、微電子發(fā)展的基礎(chǔ)上,以及勢(shì)不可擋的數(shù)字化信息產(chǎn)品的強(qiáng)大需求推動(dòng)下,嵌入式技術(shù)具有廣闊的發(fā)展創(chuàng)新空間。

      (1)低功耗、高性能、高可靠性的系統(tǒng)需求對(duì)我國(guó)芯片設(shè)計(jì)是一個(gè)機(jī)遇。以嵌入式處理 器為領(lǐng)頭的國(guó)產(chǎn)CPU、片上系統(tǒng)(SoC)、片上網(wǎng)絡(luò)系統(tǒng)(NoC)將有很大的發(fā)展。

      (2)Linux正逐漸成為嵌入式操作系統(tǒng)的主流;J2ME技術(shù)也將對(duì)嵌入式軟件的發(fā)展產(chǎn)生深遠(yuǎn)影響。目前自由軟件技術(shù)備受青睞,并對(duì)軟件技術(shù)的發(fā)展產(chǎn)生了巨大的推動(dòng)作用。嵌入式操作系統(tǒng)內(nèi)核不僅需要具有微型化、高實(shí)時(shí)性等基本特征,還將向高可信性、自適應(yīng)性、構(gòu)件組件化方向發(fā)展;支撐開(kāi)發(fā)環(huán)境將更加集成化、自動(dòng)化、人性化;系統(tǒng)軟件對(duì)無(wú)線(xiàn)通信和能源管理的功能支持將日益重要。近幾年來(lái),為使嵌入式設(shè)備更有效地支持Web服務(wù)而開(kāi)發(fā)的操作系統(tǒng)不斷推出。這種操作系統(tǒng)在體系結(jié)構(gòu)上采用面向構(gòu)件、中間件技術(shù),為應(yīng)用軟件乃至硬件的動(dòng)態(tài)加載提供支持,即所謂的“即插即用”,在克服以往的嵌入式操作系統(tǒng)的局限性方面顯示出明顯的優(yōu)勢(shì)。

      (3)Java虛擬機(jī)與嵌入式Java將成為開(kāi)發(fā)嵌入式系統(tǒng)的有力工具。嵌入式系統(tǒng)的多媒體化將變成現(xiàn)實(shí)。它在網(wǎng)絡(luò)環(huán)境中的應(yīng)用已是不可抗拒的潮流,并將占領(lǐng)網(wǎng)絡(luò)接入設(shè)備的主導(dǎo)地位。

      (4)嵌入式系統(tǒng)與人工智能、模式識(shí)別技術(shù)的結(jié)合,將開(kāi)發(fā)出各種更具人性化、智能化的實(shí)際系統(tǒng)。智能手機(jī)、數(shù)字電視,以及汽車(chē)電子的嵌入式應(yīng)用,是這次機(jī)遇中的切入點(diǎn)。伴隨網(wǎng)絡(luò)技術(shù)、網(wǎng)格計(jì)算的發(fā)展,以嵌入式移動(dòng)設(shè)備為中心的“無(wú)所不在的計(jì)算”將成為現(xiàn)實(shí)。

      第五篇:嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃

      嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃

      嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃

      ARM+LINUX路線(xiàn),主攻嵌入式Linux操作系統(tǒng)及其上應(yīng)用軟件開(kāi)發(fā)目標(biāo):

      (1)掌握主流嵌入式微處理器的結(jié)構(gòu)與原理(初步定為arm9)

      (2)必須掌握一個(gè)嵌入式操作系統(tǒng)(初步定為uclinux或linux,版本待定)

      (3)必須熟悉嵌入式軟件開(kāi)發(fā)流程并至少做一個(gè)嵌入式軟件項(xiàng)目。

      從事嵌入式軟件開(kāi)發(fā)的好處是:

      (1)目前國(guó)內(nèi)外這方面的人都很稀缺。這一領(lǐng)域入門(mén)門(mén)檻較高,所以非專(zhuān)業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,大多數(shù)人無(wú)條件接觸。

      (2)與企業(yè)計(jì)算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強(qiáng)度通常低一些(但收入不低)。

      (3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,嵌入式不像應(yīng)用軟件那樣容易被盜版。硬件設(shè)計(jì)一般都是請(qǐng)其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計(jì)軟件就變成自己的產(chǎn)品了。

      (4)興趣所在,這是最主要的。

      從事嵌入式軟件開(kāi)發(fā)的缺點(diǎn)是:

      (1)入門(mén)起點(diǎn)較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級(jí)軟件功底不深,則可能不適于此行。

      (2)這方面的企業(yè)數(shù)量要遠(yuǎn)少于企業(yè)計(jì)算類(lèi)企業(yè)。

      (3)有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無(wú)此要求,只要有經(jīng)驗(yàn)即可。

      (4)平臺(tái)依托強(qiáng),換平臺(tái)比較辛苦。

      興趣的由來(lái):

      1、成功觀念不同,不虛度此生,就是我的成功。

      2、喜歡思考,挑戰(zhàn)邏輯思維。

      3、喜歡C

      C是一種能發(fā)揮思維極限的語(yǔ)言。關(guān)于C的精神的一些方面可以被概述成短句如下:相信程序員。

      不要阻止程序員做那些需要去做的。

      保持語(yǔ)言短小精干。

      一種方法做一個(gè)操作。

      使得它運(yùn)行的夠快,盡管它并不能保證將是可移植的。

      4、喜歡底層開(kāi)發(fā),討厭vb類(lèi)開(kāi)發(fā)工具(并不是說(shuō)vb不好)。

      5、發(fā)展前景好,適合創(chuàng)業(yè),不想自己要死了的時(shí)候還是一個(gè)工程師。

      方法步驟:

      1、基礎(chǔ)知識(shí):

      目的:能看懂硬件工作原理,但重點(diǎn)在嵌入式軟件,特別是操作系統(tǒng)級(jí)軟件,那將是我的優(yōu)勢(shì)。

      科目:數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)。

      匯編語(yǔ)言、C/C++、編譯原理、離散數(shù)學(xué)。

      數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)、軟件工程、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)。

      方法:雖科目眾多,但都是較簡(jiǎn)單的基礎(chǔ),且大部分已掌握。不一定全學(xué),可根據(jù)需要選修。主攻書(shū)籍:the c++ programming language(一直沒(méi)時(shí)間讀)、數(shù)據(jù)結(jié)構(gòu)-C2。

      2、學(xué)習(xí)linux:

      目的:深入掌握l(shuí)inux系統(tǒng)。

      方法:使用linux—〉linxu系統(tǒng)編程開(kāi)發(fā)—〉驅(qū)動(dòng)開(kāi)發(fā)和分析linux內(nèi)核。先看深,那主講原理。看幾遍后,看情景分析,對(duì)照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學(xué)習(xí)。最后深入代碼。

      主攻書(shū)籍:linux內(nèi)核完全剖析、unix環(huán)境高級(jí)編程、深入理解linux內(nèi)核、情景分析和源代。

      3、學(xué)習(xí)嵌入式linux:

      目的:掌握嵌入式處理器其及系統(tǒng)。

      方法:(1)嵌入式微處理器結(jié)構(gòu)與應(yīng)用:直接arm原理及匯編即可,不要重復(fù)x86。

      (2)嵌入式操作系統(tǒng)類(lèi):ucOS/II簡(jiǎn)單,開(kāi)源,可供入門(mén)。而后深入研究uClinux。

      (3)必須有塊開(kāi)發(fā)板(arm9以上),有條件可參加培訓(xùn)(進(jìn)步快,能認(rèn)識(shí)些朋友)。主攻書(shū)籍:毛德操的《嵌入式系統(tǒng)》及其他arm9手冊(cè)與arm匯編指令等。

      4、深入學(xué)習(xí):

      A、數(shù)字圖像壓縮技術(shù):主要是應(yīng)掌握MPEG、mp3等編解碼算法和技術(shù)。

      B、通信協(xié)議及編程技術(shù):TCP/IP協(xié)議、802.11,Bluetooth,GPRS、GSM、CDMA等。

      C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書(shū)CA等。

      D、DSP技術(shù):Digital Signal Process,DSP處理器通過(guò)硬件實(shí)現(xiàn)數(shù)字信號(hào)處理算法。說(shuō)明:太多細(xì)節(jié)未說(shuō)明,可根據(jù)實(shí)際情況調(diào)整。重點(diǎn)在于1、3,不必完全按照順序作。對(duì)于學(xué)習(xí)c++,理由是c++不只是一種語(yǔ)言,一種工具,她還是一種藝術(shù),一種文化,一種哲學(xué)理念、但不是拿來(lái)炫耀得東西。對(duì)于linux內(nèi)核,學(xué)習(xí)編程,讀一些優(yōu)秀代碼也是有必要的。

      注意:要學(xué)會(huì)舉一反多,有強(qiáng)大的基礎(chǔ),很多東西簡(jiǎn)單看看就能會(huì)。想成為合格的程序員,前提是必須熟練至少一種編程語(yǔ)言,并具有良好的邏輯思維。一定要理論結(jié)合實(shí)踐。不要一味鉆研技術(shù),雖然擠出時(shí)間是很難做到的,但還是要留點(diǎn)余地去完善其他的愛(ài)好,比如宇宙,素描、機(jī)械、管理,心理學(xué)、游戲、科幻電影。還有一些不愿意做但必須要做的!技術(shù)是通過(guò)編程編程在編程編出來(lái)的。永遠(yuǎn)不要夢(mèng)想一步登天,不要做浮躁的人,不要覺(jué)得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機(jī)會(huì)來(lái)了在創(chuàng)業(yè)(不要相信有奇跡發(fā)生,盲目創(chuàng)業(yè)很難成功,即便成功了發(fā)展空間也不一定很大)。

      嵌入式書(shū)籍推薦

      Linux基礎(chǔ)

      1、《Linux與Unix Shell 編程指南》

      C語(yǔ)言基礎(chǔ)

      1、《C Primer Plus,5th Edition》【美】Stephen Prata著

      2、《The C Programming Language, 2nd Edition》【美】Brian W.Kernighan David M.Rithie(K & R)著

      3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)

      4、《嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解》

      Linux內(nèi)核

      1、《深入理解Linux內(nèi)核》(第三版)

      2、《Linux內(nèi)核源代碼情景分析》毛德操 胡希明著

      研發(fā)方向

      1、《UNIX Network Programming》(UNP)

      2、《TCP/IP詳解》

      3、《Linux內(nèi)核編程》

      4、《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)》(LDD)

      5、《Linux高級(jí)程序設(shè)計(jì)》 楊宗德著

      硬件基礎(chǔ)

      1、《ARM體系結(jié)構(gòu)與編程》杜春雷著

      2、S3C2410 Datasheet

      英語(yǔ)基礎(chǔ)

      1、《計(jì)算機(jī)與通信專(zhuān)業(yè)英語(yǔ)》

      系統(tǒng)教程

      1、《嵌入式系統(tǒng)――體系結(jié)構(gòu)、編程與設(shè)計(jì)》

      2、《嵌入式系統(tǒng)――采用公開(kāi)源代碼和StrongARM/Xscale處理器》毛德操 胡希明著

      3、《Building Embedded Linux Systems》

      4、《嵌入式ARM系統(tǒng)原理與實(shí)例開(kāi)發(fā)》 楊宗德著

      理論基礎(chǔ)

      1、《算法導(dǎo)論》

      2、《數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》

      3、《計(jì)算機(jī)組織與體系結(jié)構(gòu)?性能分析》

      4、《深入理解計(jì)算機(jī)系統(tǒng)》【美】Randal E.Bryant David O''Hallaron著

      5、《操作系統(tǒng):精髓與設(shè)計(jì)原理》

      6、《編譯原理》

      7、《數(shù)據(jù)通信與計(jì)算機(jī)網(wǎng)絡(luò)》

      8、《數(shù)據(jù)壓縮原理與應(yīng)用》

      C語(yǔ)言書(shū)籍推薦

      1.The C programming language 《C程序設(shè)計(jì)語(yǔ)言》

      2.Pointers on C 《C和指針》

      3.C traps and pitfalls 《C陷阱與缺陷》

      4.Expert C Lanuage 《專(zhuān)家C編程》

      5.Writing Clean Code-----Microsoft Techiniques for Developing Bug-free C Programs

      《編程精粹--Microsoft 編寫(xiě)優(yōu)質(zhì)無(wú)錯(cuò)C程序秘訣》

      6.Programming Embedded Systems in C and C++ 《嵌入式系統(tǒng)編程》

      7.《C語(yǔ)言嵌入式系統(tǒng)編程修煉》

      8.《高質(zhì)量C++/C編程指南》林銳

      盡可能多的編碼,要學(xué)好C,不能只注重C本身。算法,架構(gòu)方式等都很重要。

      下載嵌入式操作系統(tǒng)的發(fā)展歷程、特點(diǎn)及發(fā)展趨勢(shì)word格式文檔
      下載嵌入式操作系統(tǒng)的發(fā)展歷程、特點(diǎn)及發(fā)展趨勢(shì).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        七款嵌入式Linux操作系統(tǒng)簡(jiǎn)介

        除了智能數(shù)字終端領(lǐng)域以外,Linux在移動(dòng)計(jì)算平臺(tái)、智能工業(yè)控制、金融業(yè)終端系統(tǒng),甚至軍事領(lǐng)域都有著廣泛的應(yīng)用前景。這些Linux被統(tǒng)稱(chēng)為“嵌入式Linux”。下面就來(lái)看看都有哪......

        嵌入式操作系統(tǒng)程課程設(shè)計(jì)報(bào)告

        目錄 一、 實(shí)習(xí)任務(wù)和目的????????????1 二、實(shí)習(xí)基本要求?????????????1 三、實(shí)習(xí)題目???????????????1 四、實(shí)習(xí)地點(diǎn)???......

        私募基金特點(diǎn)及發(fā)展歷程

        私募基金特點(diǎn)及發(fā)展歷程 私募股權(quán)基金的運(yùn)作方式是股權(quán)投資,即通過(guò)增資擴(kuò)股或股份轉(zhuǎn)讓的方式,獲得非上市公司股份,并通過(guò)股份增值轉(zhuǎn)讓獲利。股權(quán)投資的特點(diǎn)包括: 1.股權(quán)投資的收......

        歸納中國(guó)古代政治制度的發(fā)展歷程和特點(diǎn)

        歸納中國(guó)古代政治制度的發(fā)展歷程和特點(diǎn) 1.發(fā)展歷程: 戰(zhàn)國(guó)時(shí)期初步形成:法家代表韓非子提出建立君主專(zhuān)制中央集權(quán)制國(guó)家的主張;商鞅變法建立縣制,初步確立了君主集權(quán)的政治體制。......

        嵌入式Linux實(shí)時(shí)操作系統(tǒng)習(xí)題總結(jié)

        第1章 1.嵌入式系統(tǒng)是指操作系統(tǒng)和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中。嵌入式系統(tǒng)一般有3個(gè)主要的組成部分:硬件、實(shí)時(shí)操作系統(tǒng)以及應(yīng)用軟件。 2.嵌入式系統(tǒng)的三要素是嵌入、專(zhuān)......

        青島理工嵌入式操作系統(tǒng)重點(diǎn)總結(jié)

        1.磁盤(pán)掛載步驟 命令:mount[選項(xiàng)][類(lèi)型] 步驟:1.確認(rèn)是否為L(zhǎng)inux可以識(shí)別的文件系統(tǒng)。 2.確定設(shè)備的名稱(chēng),可通過(guò)使用命令“fdisk-l”查看。 3.必須確定掛載點(diǎn)已經(jīng)存在,也就是在/......

        嵌入式實(shí)時(shí)操作系統(tǒng) 項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告

        項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告 分 類(lèi):軟件項(xiàng)目計(jì)劃 使用者:E-fanciers Version: 1.0 項(xiàng) 目 承 擔(dān) 隊(duì)伍:煙臺(tái)大學(xué) 計(jì)算機(jī)學(xué)院 E-fanciers小組撰 寫(xiě) 人(簽名): 許超 于歌 完 成 日 期: 2009-7-1......

        各國(guó)動(dòng)漫的發(fā)展歷程及特點(diǎn)(推薦閱讀)

        各國(guó)動(dòng)漫的發(fā)展歷程及特點(diǎn) 論“各國(guó)動(dòng)漫的發(fā)展歷程及特點(diǎn)” 學(xué)院:專(zhuān)業(yè): 姓名:陳默 學(xué)號(hào): 第 1 頁(yè) 共 12 頁(yè) 各國(guó)動(dòng)漫的發(fā)展歷程及特點(diǎn) 目錄一、 摘要--------------------3 二......