客戶選擇單板計(jì)算機(jī)的最重要因素不是價(jià)格,性能或可用I/O,而是可用性研究表明,軟件和開發(fā)工具。精心設(shè)計(jì)的電路板支持包是此類支持的關(guān)鍵部分,可能是確保客戶無(wú)縫集成不斷擴(kuò)展的單板計(jì)算機(jī)功能的最重要的單一組件。精心開發(fā)的電路板支持包使客戶能夠?qū)W⒂?a href="http://www.wenjunhu.com/v/tag/527/" target="_blank">操作系統(tǒng)和應(yīng)用程序,有助于縮短學(xué)習(xí)時(shí)間,并有可能縮短產(chǎn)品上市時(shí)間。
除了縮短開發(fā)時(shí)間外,電路板支持包還可以幫助客戶充分利用單板計(jì)算機(jī)的全部?jī)?nèi)置功能。上文引用的研究由EE Times母公司CMP Media Inc.的Jerry Krasner于1999年完成,該研究還表明,選擇板載實(shí)時(shí)操作系統(tǒng)(RTOS)的主要標(biāo)準(zhǔn)是性能。電路板支持包為上層RTOS奠定了基礎(chǔ),有助于確保其整體速度和可靠性。
電路板支持包的想法遠(yuǎn)非新的。其主要目標(biāo)是將OS核心與硬件隔離開來(lái),使其在一個(gè)處理器系列中可移植。創(chuàng)建板支持包的過(guò)程有時(shí)被稱為“移植”。板級(jí)支持包通常由三個(gè)主要組件組成:將單板計(jì)算機(jī)初始化為已知狀態(tài)的固件,基本驅(qū)動(dòng)程序集和所謂的引導(dǎo)監(jiān)視器。
固件組件對(duì)于每個(gè)董事會(huì);它包含初始化處理器和總線,設(shè)置仲裁,設(shè)置配置寄存器等的例程。基本驅(qū)動(dòng)程序集至少包含定時(shí)器驅(qū)動(dòng)程序和串行端口(如果存在),以及以太網(wǎng),小型計(jì)算機(jī)系統(tǒng)接口和其他接口的可選驅(qū)動(dòng)程序。
啟動(dòng)監(jiān)視器是一個(gè)允許的應(yīng)用程序用戶通過(guò)串行或以太網(wǎng)鏈接連接到單板計(jì)算機(jī)并下載系統(tǒng)的其余部分,包括操作系統(tǒng)和應(yīng)用程序。如果操作系統(tǒng)已經(jīng)在板載閃存中,則啟動(dòng)監(jiān)視器可以立即加載并執(zhí)行代碼。引導(dǎo)監(jiān)視器提供了一種將代碼下載到目標(biāo)單板計(jì)算機(jī)的方法,而無(wú)需使用聯(lián)合任務(wù)操作組(JTAG)調(diào)試器等硬件輔助工具。
當(dāng)從裸板開始時(shí),開發(fā)板支持包的過(guò)程應(yīng)該從編寫初始化代碼開始。通常,您需要學(xué)習(xí)和使用匯編語(yǔ)言。但是,重要的是將匯編的范圍限制為基本數(shù)據(jù)和寄存器集初始化,剩余部分用于C語(yǔ)言等高級(jí)語(yǔ)言。編譯器繼續(xù)改進(jìn),生成更有效的代碼,閃存大小現(xiàn)在已經(jīng)非常大了。
在某些體系結(jié)構(gòu)中,您可能對(duì)代碼大小與速度的控制更為嚴(yán)格。例如,ARM Thumb兼容處理器允許在同一文件中為不同的代碼塊選擇16位或32位指令集。作為一般規(guī)則,將程序集限制為板支持包中的單個(gè)文件,并確保為代碼和數(shù)據(jù)提供廣泛的注釋。在開發(fā)的這個(gè)階段,您可以使用能夠直接訪問(wèn)板上硬件的硬件輔助調(diào)試工具(例如JTAG)。最好的工具甚至可以為您的電路板或類似電路板提供預(yù)定義的寄存器組,以備編輯和下載。
如果您計(jì)劃為單板計(jì)算機(jī)使用不同的操作系統(tǒng),則下一個(gè)合乎邏輯的步驟可能是定義和開發(fā)特定的API以及基礎(chǔ)功能,以處理您在船上的大部分或全部組件。這有時(shí)被稱為微代碼庫(kù) - 其目的是為開發(fā)人員提供他們可能使用的任何特定應(yīng)用程序和操作系統(tǒng)的構(gòu)建塊。這種方法提供了更大的靈活性,但消耗更多的時(shí)間和工程工作,因?yàn)锳PI的結(jié)構(gòu),設(shè)計(jì)和有效性成為高優(yōu)先級(jí)。此類API可以在樣本開發(fā)系統(tǒng)中找到,例如ARM Integrator系列或Intel IXP1200。
但是,在大多數(shù)情況下,您將專注于為特定操作系統(tǒng)開發(fā)板級(jí)支持包。在這種情況下,您可以在完成初始化代碼后開始開發(fā)基本驅(qū)動(dòng)程序。這些通常包括定時(shí)器和串行端口的驅(qū)動(dòng)程序。定時(shí)器支持對(duì)于OS功能至關(guān)重要,除非在定時(shí)器內(nèi)置于處理器的情況下,OS核心中包含支持。如果您計(jì)劃使用啟動(dòng)監(jiān)視器,則必須使用串行端口驅(qū)動(dòng)程序。以太網(wǎng)可以用作串行的高速選項(xiàng)。
在開發(fā)驅(qū)動(dòng)程序時(shí),盡量避免靜態(tài)資源配置,尤其是在使用PCI總線時(shí)。支持動(dòng)態(tài)編碼的額外工作可能會(huì)在開發(fā)的后期階段支付紅利,此時(shí)您需要添加對(duì)其他設(shè)備的支持。使代碼盡可能模塊化非常重要 - 不同組件的代碼必須位于不同的文件中,具有清晰的頭文件結(jié)構(gòu),并且必須包含記錄良好的配置文件。
有一些爭(zhēng)論是否必須啟動(dòng)監(jiān)視器。對(duì)于最終用戶來(lái)說(shuō),它可以是一個(gè)方便且有吸引力的選擇。引導(dǎo)監(jiān)視器代表了很大一部分代碼,您應(yīng)該從操作系統(tǒng)方面作為組件進(jìn)行開發(fā)。這意味著您需要決定是否應(yīng)將其編寫為獨(dú)立于硬件。因?yàn)樗鼘⑹褂媚峁┑尿?qū)動(dòng)程序,所以可以編寫一次并為每個(gè)特定處理器系列編譯,而不是針對(duì)特定的板。這消除了將這種支持集成到新設(shè)計(jì)中的負(fù)擔(dān),但是應(yīng)該仔細(xì)測(cè)試引導(dǎo)監(jiān)視器并提供源代碼。
如果您確定自己的話,沒(méi)有必要提供啟動(dòng)監(jiān)視器??蛻魧⑹褂肑TAG調(diào)試器等工具開發(fā)其他驅(qū)動(dòng)程序或組件。這些工具執(zhí)行啟動(dòng)監(jiān)視器的功能,并使用主機(jī)和單板計(jì)算機(jī)之間的相同物理接口捆綁了許多其他功能和選項(xiàng)。
您應(yīng)該選擇基于a的開發(fā)和調(diào)試工具。記錄穩(wěn)定和經(jīng)過(guò)驗(yàn)證的性能,而不是使用最近才發(fā)布的高度復(fù)雜版本。您應(yīng)該仔細(xì)選擇硬件和軟件的混合,以便開發(fā)可靠,緊湊和優(yōu)化的代碼。如果您正在使用新設(shè)計(jì)的單板計(jì)算機(jī)的第一個(gè)原型,用于幫助檢測(cè)硬件錯(cuò)誤的總線分析器可能是一項(xiàng)寶貴的投資。
執(zhí)行新的板級(jí)支持包代碼在一臺(tái)新的單板計(jì)算機(jī)上,即使您認(rèn)為代碼沒(méi)有錯(cuò)誤,也可能并且經(jīng)常會(huì)帶來(lái)意想不到的結(jié)果。掛起,神秘的中斷和數(shù)據(jù)傳輸錯(cuò)誤只是可能困擾新的電路板支持包的令人不快的行為的幾個(gè)例子。
首次測(cè)試
始終使用書面且明確標(biāo)識(shí)的測(cè)試規(guī)范測(cè)試新的電路板支持包。規(guī)范應(yīng)涵蓋系統(tǒng)和總線速度,高速緩存打開和關(guān)閉,數(shù)據(jù)大小和傳輸速度,輪詢和中斷模式以及錯(cuò)誤檢查的所有可能組合。軟件,特別是為新硬件平臺(tái)開發(fā)時(shí),很少?zèng)]有錯(cuò)誤;堅(jiān)實(shí)的測(cè)試規(guī)范將幫助您識(shí)別并及時(shí)解決問(wèn)題。
除了“基本”測(cè)試規(guī)范外,通常建議開發(fā)壓力測(cè)試或應(yīng)用程序,特別是如果該板是用于軍隊(duì)或通信市場(chǎng),可靠性至關(guān)重要。一系列精心設(shè)計(jì)的壓力測(cè)試可以幫助您和您的客戶放心,該板的設(shè)計(jì)具有足夠的安全裕度,能夠承受最惡劣的預(yù)期工作條件。正如本文開頭所指出的,在選擇單板計(jì)算機(jī)供應(yīng)商時(shí),優(yōu)先支持是第1號(hào)標(biāo)準(zhǔn)。新板與測(cè)試規(guī)范(基本和壓力)的一致性是提供此類支持的基本要素。
許多供應(yīng)商和獨(dú)立組織也提供驗(yàn)證服務(wù)。例如,WindRiver提供源代碼形式的驗(yàn)證測(cè)試套件及其Tornado板支持包Developer's Kit。一旦您的電路板支持包成功通過(guò)工具包中的測(cè)試套件,WindRiver將為為VxWorks RTOS編寫的電路板支持包提供付費(fèi)驗(yàn)證和合規(guī)性認(rèn)證。在大多數(shù)情況下,RTOS供應(yīng)商至少提供了一個(gè)移植指南,以及類似于WindRiver提供的工具。
后PC時(shí)代的一個(gè)明顯趨勢(shì)是系統(tǒng)等領(lǐng)域的設(shè)計(jì)復(fù)雜性日益增加片上(SoC),網(wǎng)絡(luò)處理器,便攜式系統(tǒng)以及數(shù)據(jù)通信和電信應(yīng)用。供應(yīng)商正忙于通過(guò)將多種功能集成到一塊電路板上來(lái)提供經(jīng)濟(jì)高效的解決方案。
例如,Cirrus Logic的MSP(市場(chǎng)專用處理器)Maverick EP72111將ARM720T內(nèi)核與音頻接口,LCD控制器集成在一起,DRAM控制器,同步串行,ROM,SDRAM,UART,紅外,通用I/O,以太網(wǎng),鍵盤和PCMCIA。英特爾的IXP1200架構(gòu)將StrongARM內(nèi)核與另外六個(gè)稱為微引擎的特定內(nèi)核相結(jié)合。在諸如此類的系統(tǒng)中,固件的大小與OS加上應(yīng)用程序映像相當(dāng)甚至超過(guò)它并不罕見(jiàn)。
新面孔
在世界范圍內(nèi)SoC設(shè)計(jì),新的接口 - 包括通用串行總線(USB)和FireWire(IEEE 1394) - 正在從PC世界遷移。新PC中包含的USB端口很有可能成為事實(shí)上的首選接口,采用新的USB 2.0規(guī)范,其速度遠(yuǎn)遠(yuǎn)高于目前常用的USB 1.1。
內(nèi)置-in support
許多RTOS供應(yīng)商,包括Microware和WindRiver,已經(jīng)在其操作系統(tǒng)中構(gòu)建了USB支持; Microware聲稱USB 2.0兼容性。在單板計(jì)算機(jī)中USB替換或與以太網(wǎng)共存只是時(shí)間問(wèn)題。當(dāng)然,對(duì)于開發(fā)人員來(lái)說(shuō),這意味著在板級(jí)支持包中增加了USB支持。 FireWire目前提供400-Mbit/秒的實(shí)時(shí)性能,為那些處理視頻信息的應(yīng)用程序提供了極具吸引力的解決方案。
在電信市場(chǎng)中,對(duì)熱插拔應(yīng)用的需求強(qiáng)勁。增加熱插拔支持,特別是對(duì)于CompactPCI系統(tǒng),可以使您的電路板支持包對(duì)服務(wù)于該市場(chǎng)的開發(fā)人員更具吸引力。有幾種工具可以簡(jiǎn)化熱插拔感知驅(qū)動(dòng)程序的開發(fā)。
最靈活,最強(qiáng)大的電路板支持包解決方案將包括一個(gè)能夠與應(yīng)用程序交互的設(shè)備管理器,操作系統(tǒng)核心和用戶,除了提供動(dòng)態(tài)加載和卸載驅(qū)動(dòng)程序,系統(tǒng)模塊或服務(wù)的請(qǐng)求外。
總體信息很明確:現(xiàn)在在板支持包的設(shè)計(jì)概念上進(jìn)行的投資將極大地塑造未來(lái)單板計(jì)算機(jī)。無(wú)論是通過(guò)協(xié)作方式還是由個(gè)別公司制定,此類投資都應(yīng)為在此環(huán)境中工作的所有開發(fā)人員創(chuàng)造優(yōu)勢(shì)。
-
電路板設(shè)計(jì)
+關(guān)注
關(guān)注
1文章
127瀏覽量
16533 -
PCB打樣
+關(guān)注
關(guān)注
17文章
2968瀏覽量
21758 -
華強(qiáng)PCB
+關(guān)注
關(guān)注
8文章
1831瀏覽量
27844 -
華強(qiáng)pcb線路板打樣
+關(guān)注
關(guān)注
5文章
14629瀏覽量
43108
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論