嵌入式計(jì)算系統(tǒng)將必須緊密工作的硬件和軟件相結(jié)合。早期的硬件/軟件協(xié)同設(shè)計(jì)領(lǐng)域的研究人員強(qiáng)調(diào)同時(shí)進(jìn)行設(shè)計(jì)的重要性。圖115硬件/軟件協(xié)同設(shè)計(jì)的設(shè)計(jì)流基于平臺的設(shè)計(jì)是片上系統(tǒng)通常采用的方法。平臺開發(fā)人員必須提供工具使得軟件開發(fā)人員能夠使用平臺。還的軟件設(shè)計(jì)將為軟件程序編寫打下良好的基礎(chǔ)。
嵌入式系統(tǒng)的設(shè)計(jì)流程是什么?
嵌入式計(jì)算系統(tǒng)結(jié)合了必須緊密工作的硬件和軟件。嵌入式系統(tǒng)的設(shè)計(jì)者已經(jīng)發(fā)展出他們良好的設(shè)計(jì)方法,利用軟件來體現(xiàn)系統(tǒng)的某些功能。硬件/軟件協(xié)同設(shè)計(jì)領(lǐng)域的早期研究人員強(qiáng)調(diào)了同步設(shè)計(jì)的重要性。一旦確定了系統(tǒng)架構(gòu),就可以相對獨(dú)立地設(shè)計(jì)硬件和軟件。協(xié)同設(shè)計(jì)的目標(biāo)是做出適當(dāng)?shù)募軜?gòu)決策,這些決策可以在后面的實(shí)現(xiàn)階段獨(dú)立完成。好的架構(gòu)決策需要適當(dāng)?shù)姆治龇椒ǎ驗(yàn)樗鼈儽仨殱M足嚴(yán)格的指標(biāo),如實(shí)時(shí)性能和功耗。圖1-15顯示了一般的協(xié)同設(shè)計(jì)方法。給定一個(gè)可行的規(guī)范,大多數(shù)方法進(jìn)行初始系統(tǒng)分析,以確定并行設(shè)計(jì)的可能性,并可能將規(guī)范分解為過程。硬件/軟件部門選擇架構(gòu),其中一些操作直接由硬件執(zhí)行,而另一些操作由運(yùn)行在可編程平臺上的軟件執(zhí)行。硬件/軟件劃分產(chǎn)生可以獨(dú)立實(shí)現(xiàn)的模塊設(shè)計(jì)。然后將這些模塊組合起來,測試性能或功耗,并進(jìn)行調(diào)試,以創(chuàng)建最終的系統(tǒng)。(點(diǎn)擊查看大圖)圖1-15軟硬件協(xié)同設(shè)計(jì)的設(shè)計(jì)流程基于平臺的設(shè)計(jì)是SOC普遍采用的方法。平臺允許多個(gè)用戶將同一個(gè)基礎(chǔ)平臺定制成不同的產(chǎn)品。該平臺對于基于標(biāo)準(zhǔn)的市場尤其有用,在這種市場中,產(chǎn)品必須支持一些基本功能,而其他功能則必須進(jìn)行定制。如圖1-16所示,基于平臺的設(shè)計(jì)是一個(gè)兩階段的過程。首先,平臺的設(shè)計(jì)必須基于系統(tǒng)的整體需求(比如某個(gè)標(biāo)準(zhǔn))以及平臺應(yīng)該如何定制。平臺設(shè)計(jì)好了,就可以用來設(shè)計(jì)產(chǎn)品了。產(chǎn)品利用平臺的功能,添加自己的功能。圖1-16基于平臺的設(shè)計(jì)平臺設(shè)計(jì)需要幾個(gè)設(shè)計(jì)階段。應(yīng)用功能分析,根據(jù)平臺硬件架構(gòu)將系統(tǒng)需求和軟件模型轉(zhuǎn)化為更清晰的需求。設(shè)計(jì)空間搜索以評估硬件選項(xiàng)。建筑模擬有助于評估和優(yōu)化建筑的細(xì)節(jié)。必須為平臺開發(fā)基礎(chǔ)軟件(硬件抽象層、操作系統(tǒng)端口、通信、應(yīng)用程序庫、調(diào)試)。平臺的使用是復(fù)雜的,因?yàn)槠脚_需要一個(gè)用戶編程環(huán)境。程序員習(xí)慣了標(biāo)準(zhǔn)平臺上豐富的開發(fā)環(huán)境。這些環(huán)境以圖形用戶界面的形式提供了許多工具——編譯器、編輯器、調(diào)試器、模擬器。然而,富編程環(huán)境通常只支持單處理器。多處理器編程更困難,而異構(gòu)多處理器比同構(gòu)多處理器更復(fù)雜。平臺開發(fā)人員必須提供工具,使軟件開發(fā)人員能夠使用平臺。有些工具來自CPU組件,有些工具必須從頭開始開發(fā)。因?yàn)檎{(diào)試訪問依賴于硬件,所以尤為重要和困難。進(jìn)程間通信也很復(fù)雜,但它是應(yīng)用程序開發(fā)人員的重要工具。
嵌入式軟件的運(yùn)行流程一般分幾個(gè)階段?每個(gè)階段完成的主要工作是什么?
軟件開發(fā)一般分為五個(gè)階段。1.問題的定義和規(guī)劃。這個(gè)階段是軟件開發(fā)和需求的共同討論,主要是確定軟件的開發(fā)目標(biāo)和可行性。2.需求分析。在確定軟件開發(fā)可行性的條件下,對軟件需要實(shí)現(xiàn)的每個(gè)功能進(jìn)行詳細(xì)的需求分析。需求分析階段是一個(gè)非常重要的階段。如果這個(gè)階段做得好,會為整個(gè)軟件項(xiàng)目的開發(fā)打下良好的基礎(chǔ)。“唯一不變的是變化本身?!蓖瑯?,軟件需求在軟件開發(fā)過程中也是不斷變化和深化的。因此,我們必須定制需求變更計(jì)劃來應(yīng)對這種變更,以保障整個(gè)項(xiàng)目的正常進(jìn)行。3.軟件設(shè)計(jì)在這個(gè)階段,要根據(jù)需求分析的結(jié)果對整個(gè)軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)等。軟件設(shè)計(jì)一般分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。軟件設(shè)計(jì)將為軟件編程打下良好的基礎(chǔ)。4.程序編碼這個(gè)階段是將軟件設(shè)計(jì)的結(jié)果轉(zhuǎn)化為計(jì)算機(jī)可執(zhí)行的程序代碼。在程序編碼中,需要制定統(tǒng)一規(guī)范的編寫標(biāo)準(zhǔn)。以確保