新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 嵌入式系統(tǒng)及如何開(kāi)發(fā)自己的嵌入式系統(tǒng)

嵌入式系統(tǒng)及如何開(kāi)發(fā)自己的嵌入式系統(tǒng)

——
作者: 時(shí)間:2007-03-07 來(lái)源:電子產(chǎn)品世界 收藏

多數(shù)系統(tǒng)是在PC平臺(tái)上運(yùn)行,然而作為也是非常穩(wěn)定的。本文描繪了一個(gè)的概覽,并展示產(chǎn)品是如何使用的。

    嵌入式系統(tǒng)比摩西還老的故事

    電腦用于控制設(shè)備或嵌入系統(tǒng)的歷史幾乎電腦自身的歷史一樣長(zhǎng)。在通訊領(lǐng)域,六十年代晚期,電腦被用于電子電話(huà)交換機(jī),稱(chēng)為“存儲(chǔ)程序控制”系統(tǒng)?!半娔X”這詞那時(shí)并不普遍,存儲(chǔ)程序指內(nèi)存裝有程序和例程信息。存儲(chǔ)控制邏輯,而不是將其固化在硬件中,在當(dāng)時(shí)確實(shí)是突破性的。今天,我們認(rèn)為它本來(lái)就應(yīng)如此。

    那時(shí)的電腦是為每一個(gè)應(yīng)用而定制的,按今天的標(biāo)準(zhǔn),它們是一些不正常的、由奇怪的特殊指令和I/O設(shè)備集成在一部電腦中。

    微處理器通過(guò)提供構(gòu)建大系統(tǒng)模塊的小型、低成本、CPU引擎改變了這一切。它提出了外設(shè)通過(guò)總線(xiàn)聯(lián)接的固定硬件架構(gòu)及稱(chēng)為編程的一般編程模型。

    軟件也隨著硬件提出。最初,編寫(xiě)和測(cè)試軟件只有簡(jiǎn)單的編程開(kāi)發(fā)工具。每個(gè)項(xiàng)目實(shí)際運(yùn)行的軟件通常來(lái)自于草稿的修改。編程常用匯編語(yǔ)言或宏語(yǔ)言,因?yàn)榫幾g器常常有缺陷和缺乏完善的調(diào)試工具。軟件構(gòu)建模塊和標(biāo)準(zhǔn)化庫(kù)只是到了七十年代才流行起來(lái)的概念。

    嵌入式系統(tǒng)的商品化操作系統(tǒng)在1970年代后期才出現(xiàn),許多是用匯編語(yǔ)言寫(xiě)成的,并且只能用于特定的微處理器,當(dāng)微處理器被淘汰時(shí),它的操作系統(tǒng)除非為新處理器重寫(xiě),否則也要被淘汰。今天,許多這類(lèi)早期的系統(tǒng)成了些模糊的記憶;還有誰(shuí)記得MTOS嗎?當(dāng)C語(yǔ)言出現(xiàn)時(shí),操作系統(tǒng)編寫(xiě)的效率、穩(wěn)定性、可移植性都提高了很多。這一點(diǎn)在管理上立刻表現(xiàn)出來(lái),它為微處理器被淘汰時(shí)保護(hù)軟件投資帶來(lái)了希望。對(duì)于市場(chǎng)來(lái)說(shuō)這是一個(gè)好消息。用C語(yǔ)言寫(xiě)成的操作系統(tǒng)今天越來(lái)越普遍。一般來(lái)說(shuō),可重復(fù)使用的軟件已經(jīng)占主導(dǎo)并越做越好。

    在八十年代早期,我最喜歡的操作系統(tǒng)是Wendon操作系統(tǒng),大約150美元就可以得到一個(gè)C源碼庫(kù)。它是一個(gè)包,你可以通過(guò)選擇部件建立自己的操作系統(tǒng),類(lèi)似在菜單上點(diǎn)菜。例如,你可以在庫(kù)清單上點(diǎn)工作排程安排和內(nèi)存管理方案。 很多嵌入式系統(tǒng)的商品化操作系統(tǒng)是在八十年代出現(xiàn)的。這一熱潮持續(xù)到現(xiàn)在,今天,有很多可行的商品化操作系統(tǒng)可供選擇。一些大佬出現(xiàn)了,如VxWorks, pSOS, Neculeus和Windows CE.

    許多嵌入式系統(tǒng)根本沒(méi)有操作系統(tǒng),只有循環(huán)控制。對(duì)于一些簡(jiǎn)單設(shè)備這是足夠的,但是隨著系統(tǒng)越來(lái)越復(fù)雜,操作系統(tǒng)就很必要了或軟件變得不可思議的復(fù)雜。不幸的是,有些復(fù)雜得可怕的嵌入式系統(tǒng)只因?yàn)樵O(shè)計(jì)者堅(jiān)持不要操作系統(tǒng)才那么復(fù)雜。

    漸漸地,更多嵌入式系統(tǒng)需要與各類(lèi)網(wǎng)絡(luò)聯(lián)接,因此需要網(wǎng)絡(luò)功能。即便是酒店的門(mén)把手也嵌入了微處理器與網(wǎng)絡(luò)相聯(lián)。 對(duì)于僅僅是編碼控制循環(huán)的嵌入式系統(tǒng),增加網(wǎng)絡(luò)功能將導(dǎo)致系統(tǒng)復(fù)雜程度提高以致要求操作系統(tǒng)。

    除了商品化操作系統(tǒng),還有大量專(zhuān)用操作系統(tǒng)。其中大部分來(lái)自于草案,如CISCO的IOS;還有是從其他操作系統(tǒng)中派生出來(lái)的。例如,許多操作系統(tǒng)是從同一版本的Berkeley   Unix系統(tǒng)派生,因?yàn)樗型暾木W(wǎng)絡(luò)功能。其他是基于主要操作系統(tǒng)的如KA9Q來(lái)自Phil Karn。

    Linux作為嵌入式系統(tǒng)是一個(gè)帶有很多優(yōu)勢(shì)的新成員。它對(duì)許多CPU和硬件平臺(tái)都是可移植的、穩(wěn)定、功能強(qiáng)大、易于開(kāi)發(fā)。

工具包突破ICE的障礙

    開(kāi)發(fā)嵌入式系統(tǒng)的關(guān)鍵的是可用的工具包。像任何工作一樣,好的工具使得工作更快更好。開(kāi)發(fā)的不同階段需要不同的工具。

    傳統(tǒng)上,首先用于開(kāi)發(fā)嵌入式系統(tǒng)工具是內(nèi)部電路仿真器(ICE),它是一個(gè)相對(duì)昂貴的部件,用于植入微處理器與總線(xiàn)之間的電路中,允許使用者監(jiān)視和控制微處理器所有信號(hào)的進(jìn)出。這有點(diǎn)難做,因?yàn)樗钱愺w,可能會(huì)引起不穩(wěn)定。但是它提供了總線(xiàn)工作的清晰狀況,免了許多對(duì)硬件軟件底層工作狀況的猜測(cè)。

    過(guò)去,一些工作依賴(lài)ICE為主要調(diào)試工具,用于整個(gè)開(kāi)發(fā)過(guò)程。但是,一旦初始化軟件對(duì)串口支持良好的話(huà),多數(shù)的調(diào)試可以不用ICE而用其他方法進(jìn)行。較新的嵌入式系統(tǒng)利用非常清晰的微處理器設(shè)計(jì)。有時(shí),相應(yīng)工作初始碼已經(jīng)有了能夠快速獲得串口工作。這意味著沒(méi)有ICE人們也能夠方便地工作。省去ICE降低了開(kāi)發(fā)的成本。一旦串口開(kāi)始工作,它可以支持各種專(zhuān)業(yè)開(kāi)發(fā)工具。

    Linux是基于GNU的C編譯器,作為GNU工具鏈的一部分,與gdb源調(diào)試器一起工作。它提供了開(kāi)發(fā)嵌入式Linux系統(tǒng)的所有軟件工具。這有些典型的、用于在新硬件上開(kāi)發(fā)嵌入式Linux系統(tǒng)的調(diào)試工具。{{分頁(yè)}}

1. 寫(xiě)入或植入引導(dǎo)碼

2. 向串口打印字符串的編碼,如“Hello World”(事實(shí)上我更喜歡“Watson,Come hre I need you”,電話(huà)上常用的第一個(gè)詞。)

3. 將gdb目標(biāo)碼植入工作串口,這可與另一臺(tái)運(yùn)行g(shù)db程序的Linux主機(jī)系統(tǒng)對(duì)話(huà)。只要簡(jiǎn)單地告訴gdb通過(guò)串口調(diào)試程序。它通過(guò)串口與測(cè)試機(jī)的gdb目標(biāo)碼對(duì)話(huà),你可以進(jìn)行C源代碼調(diào)試,也可以用這個(gè)功能將更多的碼載入RAM或Flash Memory中。

4. 利用gdb讓硬件和軟件初始化碼在Linux內(nèi)核啟動(dòng)時(shí)工作。

5. 一旦Linux內(nèi)核啟動(dòng),串口成為L(zhǎng)inux控制口并可用于后續(xù)開(kāi)發(fā)。利用kgdb,內(nèi)核調(diào)試版的gdb,這步常常不作要求,如果你與網(wǎng)絡(luò)聯(lián)接,如10BaseT,下一步你可能要啟動(dòng)它。

6. 如果在你的目標(biāo)硬件上運(yùn)行了完整的Linux內(nèi)核,你可以調(diào)試你的應(yīng)用進(jìn)程。利用其他的gdb或覆蓋gdb的圖形如xgdb。

什么是實(shí)時(shí)系統(tǒng)?

    嵌入式系統(tǒng)常常被錯(cuò)誤地分為實(shí)時(shí)系統(tǒng),盡管多數(shù)系統(tǒng)一般并不要求實(shí)時(shí)功能。實(shí)時(shí)是一個(gè)相對(duì)的詞,純化論者常常嚴(yán)格地定義實(shí)時(shí)為對(duì)一事件以預(yù)定的方式在極短的時(shí)間如微秒作出響應(yīng)漸漸地,在如此短暫時(shí)間間隔內(nèi)的嚴(yán)格實(shí)時(shí)功能在專(zhuān)用DSP芯片或ASIC上實(shí)現(xiàn)了。只有在設(shè)計(jì)低層硬件FIFO、分散/聚集DMA引擎和定制硬件時(shí)才會(huì)有這樣的要求。

    許多設(shè)計(jì)人員因?yàn)閷?duì)真實(shí)的要求設(shè)有清晰的理解而對(duì)實(shí)時(shí)的要求焦慮不安。對(duì)于大多數(shù)的系統(tǒng),在一至五微秒的近似實(shí)時(shí)響應(yīng)已經(jīng)足夠。同樣軟需求也是可以接受的。如 Windows 98 已經(jīng)崩潰的中斷必須在4毫秒內(nèi)(

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: Linux 嵌入式系統(tǒng)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉