使嵌入式系统调试更容易:有用的硬件和软件提示
使嵌入式系統(tǒng)調(diào)試更容易:有用的硬件和軟件提示
Making embedded system debug easier: useful hardware & software tips
嵌入式系統(tǒng)是硬件和軟件的混合體。兩者必須相輔相成。硬件人員可以使軟件更容易實(shí)現(xiàn)。因此,這里有一些建議,使系統(tǒng)的硬件、軟件和固件更容易調(diào)試。記住一個好的設(shè)計(jì)是可行的;一個好的設(shè)計(jì)也是一個易于調(diào)試的設(shè)計(jì)。
First up: diagnostics
第一步:診斷
在非嵌入的情況下,最受歡迎的調(diào)試技巧是將print語句種子植入代碼中。它們告訴程序員執(zhí)行流是否到達(dá)打印點(diǎn)。但是軟件人很少有這個選擇。
所以,添加一些未分配的并行I/O位。軟件開發(fā)人員迫切需要這些作為一種廉價的方法來檢測他們的代碼。將I/O指令植入驅(qū)動這些輸出的代碼中是查看程序正在執(zhí)行的操作的簡單而快速的方法。
開發(fā)人員可以在進(jìn)入例程或ISR時斷言一點(diǎn),然后在退出時降低它。然后范圍或邏輯分析器會立即顯示代碼段的執(zhí)行時間。
另一個技巧是在系統(tǒng)繁忙時循環(huán)輸出位高,空閑時循環(huán)低輸出位。把電壓表連接到引腳上,這是一種老式的帶有模擬指針的裝置。儀表將集成二進(jìn)制脈沖流,因此顯示的電壓將與系統(tǒng)負(fù)載成比例。
如果空間和成本允許,包括一個連接到一行0.1英寸間隔的過孔或頭的8位寄存器。軟件狀態(tài)機(jī)可以將其當(dāng)前的“狀態(tài)”輸出到此端口。邏輯分析器捕獲數(shù)據(jù)并顯示所有的排序,對代碼的執(zhí)行時間幾乎沒有影響。
至少需要一個LED來向開發(fā)者,甚至是客戶發(fā)出信號,讓他們知道這個系統(tǒng)是正常工作的。它是一個由低優(yōu)先級任務(wù)或空閑循環(huán)驅(qū)動的信心指示器,它表明系統(tǒng)是活動的,并且沒有卡在某個有限的循環(huán)中。很多嵌入式系統(tǒng)都可以有簡單的LED指示燈。
高度集成的CPU現(xiàn)在提供了很多片上外圍設(shè)備,有時比我們在特定系統(tǒng)中需要的還要多。如果有一個額外的通用異步收發(fā)器,把引腳連接到一個RS-232電平轉(zhuǎn)換芯片(例如,MAX232A或類似芯片)。除了原型制作外,沒有必要實(shí)際將芯片加載到電路板上。
軟件開發(fā)人員可能會發(fā)現(xiàn)自己處于一個角落,在那里他們的工具是不夠的,然后會想在代碼中添加一個軟件監(jiān)視器。RS-232端口使這成為可能和容易。
如果PCB不動產(chǎn)是如此的有限,以至于沒有空間來進(jìn)行電平轉(zhuǎn)換,那么至少要將Tx、Rx和接地連接到可訪問的過孔上,這樣就可以在電路板上方的綠色導(dǎo)線上掛起一個MAX232。
(開發(fā)人員請注意:如果您確實(shí)使用此端口,請不要在實(shí)現(xiàn)監(jiān)視器時過于驚慌,以致于使用輪詢I/O實(shí)現(xiàn)RS-232驅(qū)動程序。請花點(diǎn)時間創(chuàng)建合適的中斷驅(qū)動代碼。根據(jù)我們的經(jīng)驗(yàn),監(jiān)視器上的輪詢I/O會導(dǎo)致遺漏字符、不可靠的工具和巨大的挫敗感。)
把復(fù)位線接到開關(guān)或跳線上,這樣工程師就可以獨(dú)立于正常通電復(fù)位來判斷信號。通電問題有時可以通過將reset連接到脈沖發(fā)生器來隔離,從而創(chuàng)建一個易于用示波器研究的可重復(fù)場景。
Connecting Tools
連接工具
調(diào)整CPU芯片的方向,以便在使用模擬器時可以連接模擬器。有時,目標(biāo)板被埋在機(jī)柜內(nèi),訪問最多也受到限制。大多數(shù)仿真器pod都有利于特定插入方向的形狀因子。
也要注意垂直間隙!堆疊在大型SMT適配器上的吊艙可能需要離主板4到6英寸的空間。確保沒有任何東西會干擾吊艙。
不要在SMT封裝上使用“卡夾式”適配器。它們根本不可靠(唯一的例外是PLCC包,它們有很大的潛在客戶)。在巴西,一只黃油飄揚(yáng)著翅膀,產(chǎn)生了足夠的空氣流動,足以把它掀翻。更好的是,卸下CPU,安裝一個焊接的適配器。PCB將永遠(yuǎn)是一個原型,但至少它將是一個可靠的原型。
在系統(tǒng)的時間安排上留有余量。如果每納秒都被計(jì)算在內(nèi),沒有一個模擬器能可靠地工作。在讀寫周期中,尤其是在等待狀態(tài)電路中,額外的5nsec不會影響大多數(shù)設(shè)計(jì)。
如果處理器有BDM或JTAG調(diào)試端口,請確保在PCB上添加適當(dāng)?shù)倪B接器。即使你打算使用一個成熟的仿真器或其他開發(fā)工具,至少要為BDM連接器添加PCB焊盤和布線。連接器的成本接近于零,并且可以節(jié)省一個飽受工具問題困擾的項(xiàng)目。
邏輯分析器是一個非常棒的調(diào)試工具,但它總是讓人大失所望。當(dāng)你完成連接100個夾子引線時,前50個已經(jīng)彈出。
有一個更好的解決方案:用放大器的Mictor連接器環(huán)繞你的CPU。這些是高密度、可控阻抗的部件,可以將系統(tǒng)的地址、數(shù)據(jù)和控制總線傳輸?shù)杰囃狻L┛撕桶步輦惗贾С諱ictor。這兩家公司都出售從邏輯分析儀直接引至微型計(jì)算機(jī)的電纜。沒有夾子引線,無需定制電纜,保證在幾秒鐘內(nèi)可靠連接。從生產(chǎn)版本的電路板上取下連接器,或者只留下PCB板而不加載部件。
當(dāng)我們連接工具時,有些信號特別容易失真。地址鎖存啟用(ALE),也被稱為地址選通(as)在摩托羅拉零件,區(qū)分地址和數(shù)據(jù)多路復(fù)用總線。模擬器或探測器對該信號產(chǎn)生的微小噪聲都會導(dǎo)致系統(tǒng)崩潰。
對于任何邊緣觸發(fā)的中斷輸入(如許多CPU上的NMI),也是如此。用雙電阻網(wǎng)絡(luò)終止這些信號。雖然你的設(shè)計(jì)可能是完美的沒有終端,連接工具和探測信號可能會破壞信號。
添加測試點(diǎn)!除非它的接地連接很短,否則示波器無法準(zhǔn)確顯示我們現(xiàn)代設(shè)計(jì)中特有的高速信號。在過去的好日子里,在邏輯器件的引腳上焊接一點(diǎn)導(dǎo)線,就可以很容易地建立一個即時的接地連接。對于SMT,這要么是困難的,要么是不可能的,所以在電路板周圍分布大量可接近的接地點(diǎn)。
其他的信號我們將探測很多,必須是可訪問的,包括時鐘,讀,寫,和所有的中斷輸入。確保每個測試點(diǎn)都有測試點(diǎn)或足夠大的通孔,顯影劑可以將電線(通常是電阻引線)焊接到信號上。
添加Vcc測試點(diǎn)。邏輯探測器雖然很舊,但仍然是非常有用的工具。大多數(shù)人需要電源連接。
Thoughts about ports
關(guān)于港口的思考
使所有輸出端口可讀。對于asic中的控制寄存器來說尤其如此,因?yàn)闊o法探測這些寄存器。
注意位順序。例如,如果從A/D讀取數(shù)據(jù),那么將位7轉(zhuǎn)換成0位、6位到1位等等的糟糕設(shè)計(jì)是一場噩夢。當(dāng)然,軟件人員可以編寫代碼來修復(fù)混音,但大多數(shù)處理器并不擅長這一點(diǎn)。代碼將是緩慢和丑陋的。
使用許多窄的I/O端口,而不是幾個寬的I/O端口。當(dāng)一個端口控制三個LED、兩個中斷屏蔽和一個步進(jìn)電機(jī)時,改變?nèi)魏屋敵鲆馕吨芾砻總€輸出。代碼變成了一堆錯綜復(fù)雜的ANDs/or。任何小的硬件更改都需要大量的軟件調(diào)整。當(dāng)使用離散邏輯實(shí)現(xiàn)時,寬端口確實(shí)可以最小化部件數(shù)量,但是在PLD或FPGA中沒有成本優(yōu)勢。
避免將未使用的數(shù)字輸入直接連接到Vcc。在過去的日子里,這種做法是禁止的,因?yàn)?4LS輸入比Vcc引腳更容易受到瞬態(tài)的影響。所有未使用的輸入通過電阻上拉連接到Vcc。邏輯設(shè)備不再需要這樣做,但它仍然是一個很好的實(shí)踐。探測和更改一個沒有硬連接到電源的節(jié)點(diǎn)要容易得多。
但是,如果您必須將電源直接連接到這些未使用的輸入端,請非常小心PCB布局。不要通過引腳供電;也就是說,不要將引腳作為一種方便的方式將電源提供給其他引腳或電路板的另一側(cè)。
最好小心地運(yùn)行所有的電源和接地連接,作為PCB外部層上的軌跡輸入信號,這樣當(dāng)IC焊接到位時,它們就會清晰可見。然后開發(fā)人員就可以輕松地用X-Acto刀切割軌跡并進(jìn)行更改。
拉高電阻帶來了他們自己的挑戰(zhàn)。許多調(diào)試工具都有自己的上拉程序,這可能會使節(jié)點(diǎn)產(chǎn)生奇怪的偏差。最好使用較低的值,而不是CMOS允許的高值(比如10k而不是100k)。
PCB絲網(wǎng)是經(jīng)常被忽視的調(diào)試輔助工具。標(biāo)記開關(guān)和跳線。始終表示引腳1,因?yàn)樵赟MT領(lǐng)域沒有標(biāo)準(zhǔn)的引腳1位置。并在大尺寸SMT封裝周圍每隔5或10個管腳添加勾號,并指示管腳數(shù)量是順時針還是逆時針方向增加。否則,找到針139是一場噩夢,尤其是對于患有咖啡因誘發(fā)震顫的雙焦佩戴開發(fā)人員。
關(guān)鍵的連接器,這樣就不需要猜測電纜的走向。
請?jiān)谑疽鈭D中添加注釋!指示頁面上的所有路線。不要隱藏與電源和接地相關(guān)的管腳編號,請明確標(biāo)記這些。
當(dāng)設(shè)計(jì)完成后,檢查每個設(shè)備的每一個輸入,并絕對確保每個輸入都連接到某個東西上,即使它沒有被使用。我見過數(shù)百個系統(tǒng)在現(xiàn)場失敗,因?yàn)橐粋€未使用的輸入漂移到斷言狀態(tài)。您可能希望軟件人員在代碼中屏蔽這些信息,但這并不總是可能的,即使是這樣,也常常被遺忘。
盡量避免使用硬件狀態(tài)機(jī)。它們很難調(diào)試,而且常常與軟件非常接近,這也使得調(diào)試變得不友好。更容易在代碼中完全實(shí)現(xiàn)這些功能。工具(例如,來自IAR的VisualState)可以自動生成狀態(tài)機(jī)代碼。
施工方法
嵌入式控制器可以使用多種技術(shù)中的任何一種來構(gòu)建,但最常見的方法是印刷電路板(PCB)。印刷電路板是由絕緣材料制成的,例如環(huán)氧樹脂浸漬的玻璃布,用薄銅片層壓而成。
多層銅和絕緣材料可以層壓成多層PCB。通過在材料上鉆孔和電鍍孔,可以將層互連并為通孔組件提供安裝位置。
在設(shè)計(jì)PCB的布局或互連模式時,有許多沖突的要求必須加以解決,才能制造出一個可靠、經(jīng)濟(jì)、可生產(chǎn)的設(shè)備。對于低速電路,寄生效應(yīng)可以忽略,通常假設(shè)為理想連接。
不幸的是,實(shí)際電路并不理想,電線和絕緣材料對電路有影響,特別是對于信號上升/下降時間很快的信號。印刷電路板上的線路或?qū)Ь€有雜散電阻、電容和電感。
在高速下,這些雜散效應(yīng)會延遲和扭曲信號。在設(shè)計(jì)PC板時必須特別小心,以避免傳輸線效應(yīng)、噪聲和不必要的電磁輻射問題。
電源和地面飛機(jī)。在可能的情況下,最好使用兩層四層或多層PCB,專門用于Vcc和接地信號。它們被稱為電源和地面。一個優(yōu)點(diǎn)是有一個有益的高頻寄生電源去耦電容,它降低了集成電路的電源噪聲。
功率平面還可以減少產(chǎn)生干擾的電磁輻射,降低電路對外界感應(yīng)噪聲的敏感度。功率平面往往起到屏蔽作用,以降低對外部噪聲和系統(tǒng)噪聲輻射的敏感性。
地面問題。雖然理想電路接地的概念似乎相對簡單,但在實(shí)際應(yīng)用中,許多系統(tǒng)問題都可以直接追溯到接地問題。
至少,這會導(dǎo)致不必要的噪音或錯誤的操作;最壞的情況是,它可能會導(dǎo)致安全問題,甚至可能因觸電死亡。為了避免你過快忽視這種可能性的重要性,作者在測試一個接地不當(dāng)?shù)脑O(shè)備時差點(diǎn)觸電身亡!
這些問題通常由以下問題之一引起:
1) 接地電路中的電感或電阻過大,導(dǎo)致“接地回路”
2) 系統(tǒng)中不同接地之間缺乏或不充分的隔離:接地、安全、數(shù)字和模擬接地
3) 非理想接地路徑,導(dǎo)致一個電路中的電流在另一個電路中產(chǎn)生電壓
這些問題的解決方案各不相同,這取決于問題的類型和它們發(fā)生的頻率范圍。
通常,它們可以簡化為減少電路公共阻抗中的電流,這些電路需要使用單點(diǎn)接地和謹(jǐn)慎應(yīng)用屏蔽和絕緣來防止不必要的寄生信號耦合。
EMC and ESD effects
電磁兼容性和靜電放電效應(yīng)
電磁兼容性(EMC)問題變得越來越重要,因?yàn)楝F(xiàn)在有大量的電子設(shè)備無意中在相同的頻率范圍內(nèi)輻射電磁能量,用于通信、導(dǎo)航和儀表。
監(jiān)管機(jī)構(gòu),如美國聯(lián)邦通信委員會(FCC)、加拿大通信部(DOC)以及歐洲的類似組織,都對此類電子設(shè)備在不同頻率下的發(fā)射能量進(jìn)行了限制。
由于應(yīng)用的敏感性,對生命關(guān)鍵設(shè)備,如飛機(jī)導(dǎo)航和生命支持設(shè)備提出了更嚴(yán)格的要求。除其他外,這些設(shè)備需要提供對外部感應(yīng)噪聲(輻射和傳導(dǎo)敏感度)的最低抗擾度。
在解決EMC問題時,第一步是確定噪聲源、到達(dá)問題區(qū)域的路徑以及問題出現(xiàn)的目的地。一旦確定了電磁兼容問題的這三個特征,工程師就可以評估在其源頭消除噪聲、使用屏蔽和類似技術(shù)切斷路徑以及降低受影響電路的靈敏度的相對優(yōu)勢。
有幾種有用的資源,包括出版物、研討會、測試實(shí)驗(yàn)室和專門解決EMC問題的顧問。最好的解決方案通常是在原型階段盡早開始測試一個新的設(shè)計(jì),以確定潛在的問題區(qū)域,以便以最小的成本和進(jìn)度影響來解決這些問題。
靜電放電(ESD)在嵌入式應(yīng)用中是一個重要的設(shè)計(jì)考慮因素,因?yàn)樵诖嬖谕獠侩妶龅那闆r下可能會發(fā)生故障和錯誤操作。
當(dāng)有人在低濕度環(huán)境中走過地板時,在接觸電子設(shè)備之前,ESD電壓通常會在嵌入式接口上以數(shù)萬伏的電壓施加。
最常見的問題之一是鍵盤或用戶輸入設(shè)備,它們與外界直接接觸。這種影響可能會立即造成損壞或不安,或可能導(dǎo)致潛在故障,這些故障會在ESD事件發(fā)生數(shù)月后出現(xiàn)。
設(shè)計(jì)者通常使用與安全和減排技術(shù)類似的屏蔽和接地技術(shù),以盡量減少靜電放電的影響。可用于解決EMC問題的資源通常也可用于ESD問題。
Fault Tolerance
容錯
在嵌入式系統(tǒng)中,容錯已經(jīng)越來越成為一種需求,因?yàn)樗鼈冊谑∈遣豢山邮艿膽?yīng)用中找到了出路。許多硬件和軟件解決方案已經(jīng)開發(fā)出來以滿足這一需求。
為了理解如何處理這些故障,我們必須首先識別和理解每種故障的類型和性質(zhì)。每個斷層都可以分為“硬”或“軟”斷層。硬故障會導(dǎo)致無法消除的錯誤,例如,按下復(fù)位或斷電不會導(dǎo)致從故障狀態(tài)中恢復(fù)。軟故障是由瞬態(tài)事件或某些情況下的程序錯誤引起的。
如果故障不太嚴(yán)重,自檢和診斷程序可以識別和診斷故障。
根據(jù)發(fā)生的故障類型和受影響的設(shè)備,可以設(shè)計(jì)一個系統(tǒng)來檢測故障,甚至可以在某種程度上隔離故障位置。在軟故障的情況下,設(shè)計(jì)者可以使系統(tǒng)從故障中自動恢復(fù)。
可以為嵌入式處理器編寫一個內(nèi)置自檢程序,該處理器能夠檢測以下類型設(shè)備中的故障:
?處理器(如果故障不太嚴(yán)重)
?記憶
?只讀存儲器
?隨機(jī)存取存儲器
?E/EEPROM
?外圍設(shè)備
請注意,如果不是不可能的話,很難檢測到控制電路中的故障或系統(tǒng)中的“粘合邏輯”。其他設(shè)備,如存儲器,則有助于診斷方法。
可使用以下一種或多種技術(shù)對ROM設(shè)備的數(shù)據(jù)內(nèi)容進(jìn)行錯誤測試:
?平價
?校驗(yàn)和
?循環(huán)冗余校驗(yàn)(CRC)
RAM存儲器和處理器存儲在RAM中的信息的完整性可以使用以下技術(shù)之一進(jìn)行測試:
?硬件錯誤檢測和糾正
?數(shù)據(jù)/地址模式測試
?通過檢查堆棧限制和地址范圍有效性實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)完整性
此外,可以使用以下一種或多種技術(shù)來檢查程序的完整性和CPU的正確執(zhí)行順序:
?硬件奇偶校驗(yàn)錯誤檢測
?重復(fù)、冗余硬件和交叉檢查或投票
?“看門狗”定時器,操作CPU芯片的復(fù)位線
?當(dāng)CPU沒有其他事情可做時,持續(xù)運(yùn)行的診斷
Instrumentation Issues
儀表問題
設(shè)計(jì)師必須解決的一個最重要但往往被忽視的問題是測試儀器的正確選擇和使用。這些工具的不當(dāng)選擇和應(yīng)用常常是設(shè)計(jì)師浪費(fèi)大量時間和混亂的根源。示波器和邏輯分析儀探頭的使用有兩個常見的使用問題。
一個典型的示波器或邏輯分析儀配備的探頭可能不會對觀測到的信號產(chǎn)生影響或使收集到的數(shù)據(jù)失真。由于輸入阻抗在兆歐范圍內(nèi),且寄生電容為數(shù)十皮卡法拉,測試設(shè)備似乎對測量結(jié)果幾乎沒有影響,但事實(shí)并非如此。
測量問題有兩個常見的原因:過大的地線電感和過大的電容負(fù)載。這些東西至少會導(dǎo)致錯誤測量的可能性,或者最壞的情況是,它們會導(dǎo)致被測電路表現(xiàn)出不同的行為。要緩解這些問題,可以做兩件事:
1) 使用盡可能短的測試引線,尤其是快速邏輯上的接地連接。
2) 使用高阻抗探頭,特別是為高速應(yīng)用而設(shè)計(jì)的,如高速FET輸入范圍探
頭。
其他儀器問題可能是由于對數(shù)字示波器中采樣效果的誤解,邏輯分析儀缺乏故障檢測,以及其他一些晦澀但可能痛苦的“學(xué)習(xí)經(jīng)驗(yàn)”。只有充分了解所使用設(shè)備的操作和一些實(shí)際經(jīng)驗(yàn),才能避免這些問題。
其他特殊設(shè)計(jì)注意事項(xiàng)
嵌入式系統(tǒng)設(shè)計(jì)者至少應(yīng)該對其他一些特性有所了解。這些包括系統(tǒng)的熱特性和熱阻、功耗的概念,以及對設(shè)備溫度和可靠性的影響。在便攜式、手持和遠(yuǎn)程定位系統(tǒng)中,另一個重要問題是電池儲能的應(yīng)用。
熱分析和設(shè)計(jì)。半導(dǎo)體器件的溫度,如電壓調(diào)節(jié)器,甚至CPU芯片,是一個關(guān)鍵的系統(tǒng)運(yùn)行參數(shù)。這些器件的可靠性也與溫度密切相關(guān),這是因?yàn)槠骷目煽啃噪S著溫度的升高而呈指數(shù)級下降。
幸運(yùn)的是,計(jì)算一個設(shè)備的工作溫度并不困難,因?yàn)橛幸粋€簡單的電路類比最常用來計(jì)算設(shè)備的溫度。溫度類似于電壓,消耗的功率等于電流,熱阻等于電阻。換句話說:
Temperature rise (oC) = power (watts) * thermal resistance (oC/watt)
一個接一個疊放的多個機(jī)械部件的熱阻相加,就像串聯(lián)電阻等于單個電阻值的總和一樣。
例如:給定一個5V線性電壓調(diào)節(jié)器,9V輸入提供1安培的負(fù)載電流,調(diào)節(jié)器將消散:
P = V * I = (9 – 5 volts) * 1 amp, or 4 watts, of power
如果調(diào)節(jié)器在半導(dǎo)體結(jié)和外殼之間的熱阻為1oC/W(表示為Θjc),并且安裝調(diào)節(jié)器的散熱器從調(diào)節(jié)器安裝表面到靜止環(huán)境空氣的熱阻為10oC/W(表示為Θca),則半導(dǎo)體結(jié)與環(huán)境空氣之間的總熱阻為:
Θja =Θjc + Θca = 1 + 10 = 11oC/watt
連接處的溫升高于調(diào)節(jié)器周圍空氣的溫升如下:
T = P * Θja = 4 watts * 11oC/watt = 44oC above ambient
如果調(diào)節(jié)器被指定在最高結(jié)溫85℃下運(yùn)行,則該裝置不應(yīng)在高于85–44=41℃的環(huán)境空氣中運(yùn)行,否則調(diào)節(jié)器將過早失效。
如果這是不可接受的,設(shè)計(jì)者必須降低輸入電壓以降低功耗,通過強(qiáng)制氣流降低熱阻,或?qū)⒃O(shè)計(jì)更改為另一種類型(例如開關(guān)式調(diào)節(jié)器),以使調(diào)節(jié)器接頭保持在操作限制范圍內(nèi)。
Performance Metrics: IPS, OPS and benchmarks
性能指標(biāo):IP、OPS和基準(zhǔn)
為了比較不同類型的計(jì)算機(jī),制造商們提出了一系列量化處理器性能的指標(biāo)。
這些設(shè)備在嵌入式系統(tǒng)中的成功應(yīng)用通常取決于以下特點(diǎn):
?IPS(每秒指令數(shù))
?操作(每秒操作次數(shù))
?撲通(浮點(diǎn)操作)
?基準(zhǔn)測試(標(biāo)準(zhǔn)化和專有的“樣本程序”),是小型應(yīng)用程序中處理器性能的短樣本
IP,或者更常見的形式,MIPS(百萬IP)和BIPS(數(shù)十億IP),通常被到處亂扔,但本質(zhì)上是毫無價值的營銷炒作,因?yàn)樗鼈冎幻枋鰴C(jī)器上最快指令的執(zhí)行速度。通常該指令是NOP指令,所以500 MIPS可能意味著處理器每秒無法執(zhí)行5億次操作!
針對IPS度量的弱點(diǎn),OPS(以及MOPS和bop,聽起來至少很有趣)是基于不同指令組合的指令執(zhí)行時間。其目的是使用標(biāo)準(zhǔn)的執(zhí)行頻率加權(quán)指令組合,更準(zhǔn)確地表示“標(biāo)稱”指令執(zhí)行時間。
flop(megaFLOPS,giga FLOPS等)是相似的,除了它們對浮點(diǎn)指令的權(quán)重很大,以表示大量的計(jì)算應(yīng)用,如連續(xù)模擬和有限元分析。
OPS度量的問題在于,結(jié)果數(shù)在很大程度上取決于用于計(jì)算它的指令組合,這可能無法準(zhǔn)確表示預(yù)期的應(yīng)用程序指令執(zhí)行頻率。
基準(zhǔn)。基準(zhǔn)測試是一種簡短的、獨(dú)立的程序,它執(zhí)行應(yīng)用程序的關(guān)鍵部分,例如排序算法,用于比較不同機(jī)器上功能相同的代碼。
程序運(yùn)行若干次迭代,并測量時間并與其他CPU的時間進(jìn)行比較。這里的弱點(diǎn)是基準(zhǔn)測試不僅是對處理器的度量,而且也是對程序員和用于實(shí)現(xiàn)程序的工具的度量。
因此,最好的基準(zhǔn)測試是你自己編寫的,因?yàn)樗梢宰屇惆l(fā)現(xiàn)你編寫的代碼在給定的處理器上有多有效地執(zhí)行。這與您可能獲得的實(shí)際應(yīng)用程序性能非常接近,只是沒有在評估的每個處理器上完全實(shí)現(xiàn)應(yīng)用程序。
總結(jié)
以上是生活随笔為你收集整理的使嵌入式系统调试更容易:有用的硬件和软件提示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保护嵌入式802.11 Wi-Fi设备时
- 下一篇: 新兴内存技术准备突围