0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PCB設(shè)計過程中軟件缺陷怎樣查找問題

PCB線路板打樣 ? 來源:pcb論壇網(wǎng) ? 作者:pcb論壇網(wǎng) ? 2019-12-27 17:09 ? 次閱讀

本文將介紹如何避免那些隱蔽然而常見的錯誤,并介紹的幾個技巧幫助工程師發(fā)現(xiàn)PCB抄板(w ww.pcbwork.net )軟件中隱藏的錯誤。大部分軟件開發(fā)項目依靠結(jié)合代碼檢查、結(jié)構(gòu)測試和功能測試來識別軟件缺陷。盡管這些傳統(tǒng)技術(shù)非常重要,而且能發(fā)現(xiàn)大多數(shù)軟件問題,但它們無法檢查出當(dāng)今復(fù)雜系統(tǒng)中的許多共性錯誤。

結(jié)構(gòu)測試或白盒測試能有效地發(fā)現(xiàn)代碼中的邏輯、控制流、計算和數(shù)據(jù)錯誤。這項測試要求對軟件的內(nèi)部工作能夠一覽無遺(因此稱為\“白盒\(zhòng)”或\“玻璃盒\(zhòng)”),以便了解軟件結(jié)構(gòu)的詳細(xì)情況。它檢查每個條件表達(dá)式、數(shù)學(xué)操作、輸入和輸出。由于需要測試的細(xì)節(jié)眾多,結(jié)構(gòu)測試每次檢查一個軟件單元,通常為一個函數(shù)或類。

代碼審查也使用與實現(xiàn)缺陷和潛在問題查找同樣復(fù)雜的技術(shù)。與白盒測試一樣,審查通常針對軟件的各個單元進(jìn)行,因為一個有效的審查過程要求的是集中而詳盡的檢查。

與審查和白盒測試不同,功能測試或黑盒測試假設(shè)對軟件的實現(xiàn)一無所知,它測試由受控輸入所驅(qū)動的輸出。功能測試由測試人員或開發(fā)人員所編寫的測試過程組成,它們規(guī)定了一組特定程序輸入對應(yīng)的預(yù)期程序輸出。測試運行之后,測試人員將實際輸出與預(yù)期輸出進(jìn)行比較,查找問題。黑盒測試可以有效地找出未能實現(xiàn)的需求、接口問題、性能問題和程序最常用功能中的錯誤。

雖然將這些技術(shù)結(jié)合起來可以找出隱藏在一個特定軟件程序中的大部分錯誤,但它們也有局限。代碼審查和白盒測試每次只針對一小部分代碼,忽視了系統(tǒng)的其它部分。黑盒測試通常將系統(tǒng)作為一個整體來處理,忽視了實現(xiàn)的細(xì)節(jié)。一些重要的問題只有在集中考察它們在整個系統(tǒng)內(nèi)相互作用時的細(xì)節(jié)才能被發(fā)現(xiàn);傳統(tǒng)的方法無法可靠地找出這些問題。必須整體地檢查軟件系統(tǒng),查找具體問題的特定原因。由于詳盡徹底地分析程序中的每個細(xì)節(jié)和它與代碼中所有其它部分之間的相互作用通常是不大可能的,因此分析應(yīng)該針對程序中已經(jīng)知道可能導(dǎo)致問題的特定方面。

本文將探討其中三個潛在的問題領(lǐng)域:

* 堆棧溢出

* 競爭條件

* 死鎖

讀者可在網(wǎng)上閱讀本文的第二部分,它將探討下列問題:

* 時序問題

* 可重入條件

在采用多任務(wù)實時設(shè)計技術(shù)的系統(tǒng)中,以上所有問題都相當(dāng)普遍。

堆棧溢出

處理器使用堆棧來存儲臨時變量、向被調(diào)函數(shù)傳遞參數(shù)、保存線程“狀態(tài)”,等等。如果系統(tǒng)不使用虛擬內(nèi)存(換句話說,它不能將內(nèi)存頁面轉(zhuǎn)移到磁盤上以釋放內(nèi)存空間供其它用途),堆棧將固定為產(chǎn)品出廠時的大小。如果由于某種原因堆棧越出了編程人員所分配的數(shù)量范圍,程序?qū)⒆兊貌淮_定。這種不穩(wěn)定可能導(dǎo)致系統(tǒng)發(fā)生嚴(yán)重故障。因此,確保系統(tǒng)在最壞情況下能夠分配到足夠的堆棧至關(guān)重要。

確保永不發(fā)生堆棧溢出的唯一途徑就是分析代碼,確定程序在各種可能情況下的最大堆棧用量,然后檢查是否分配了足夠的堆棧。測試不大可能觸發(fā)特定的瞬時輸入組合進(jìn)而導(dǎo)致系統(tǒng)出現(xiàn)最壞情況。

堆棧深度分析的概念比較簡單:

1. 為每個獨立的線程建立一棵調(diào)用樹。

2. 確定調(diào)用樹中每個函數(shù)的堆棧用量。

3. 檢查每棵調(diào)用樹,確定從樹根到外部“樹葉”的哪條調(diào)用路徑需要使用的堆棧最多。

4. 將每個獨立線程調(diào)用樹的最大堆棧用量相加。

5. 確定每個中斷優(yōu)先級內(nèi)各中斷服務(wù)程序(ISR)的最大堆棧用量并計算其總和。但是,如果ISR本身沒有堆棧而使用被中斷線程的堆棧,則應(yīng)將ISR使用的最大堆棧數(shù)加到各線程堆棧之上。

6. 對于每個優(yōu)先級,加上中斷發(fā)生時用來保存處理器狀態(tài)的堆棧數(shù)。

7.如果使用RTOS,則加上RTOS自身內(nèi)部用途需要的最大堆棧數(shù)(與應(yīng)用代碼引發(fā)的系統(tǒng)調(diào)用不同,后者已包含在步驟2中)。

除此之外,還有兩個重要事項需要考慮。首先,僅僅從高級語言源代碼建立的調(diào)用樹很可能并不完善。大部分編譯器采用運行時庫(run-time library)來優(yōu)化常用計算任務(wù),如大值整數(shù)的乘除、浮點運算等,這些調(diào)用只在編譯器產(chǎn)生的匯編語言中才可見。運行時庫函數(shù)本身可能使用大量的堆棧空間,在分析時必須將它們包括進(jìn)去。如果使用的是C++語言,則以下所有類型的函數(shù)(方法)也都必須包含到調(diào)用樹內(nèi):結(jié)構(gòu)器、析構(gòu)器、重載運算符、復(fù)制結(jié)構(gòu)器和轉(zhuǎn)換函數(shù)。所有的函數(shù)指針也都必須進(jìn)行解析,并且將它們調(diào)用的函數(shù)包含進(jìn)分析之中。

責(zé)任編輯:ct

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • pcb
    pcb
    +關(guān)注

    關(guān)注

    4295

    文章

    22776

    瀏覽量

    393275
  • 華強pcb線路板打樣
    +關(guān)注

    關(guān)注

    5

    文章

    14629

    瀏覽量

    42799
收藏 人收藏

    評論

    相關(guān)推薦

    pcb設(shè)計布局的要點是什么

    PCB設(shè)計,布局是一個非常重要的環(huán)節(jié),它直接影響到電路的性能、可靠性和成本。以下是關(guān)于PCB布局的一些要點,這些要點將幫助您設(shè)計出高質(zhì)量的PCB。 確定設(shè)計目標(biāo)和要求 在開始布局之
    的頭像 發(fā)表于 09-02 14:48 ?192次閱讀

    pcb設(shè)計如何設(shè)置坐標(biāo)原點

    PCB設(shè)計,坐標(biāo)原點是一個非常重要的概念,它決定了PCB布局的起始位置和方向。 一、坐標(biāo)原點的定義 坐標(biāo)原點的概念 在PCB設(shè)計,坐標(biāo)
    的頭像 發(fā)表于 09-02 14:45 ?412次閱讀

    PCB設(shè)計PCB制板的緊密關(guān)系

    。以下是它們之間的關(guān)系: PCB設(shè)計PCB制板的關(guān)系 1. PCB設(shè)計PCB設(shè)計是指在電子產(chǎn)品開發(fā)過程中,設(shè)計工程師使用專業(yè)的電子設(shè)計
    的頭像 發(fā)表于 08-12 10:04 ?292次閱讀

    電路仿真和PCB設(shè)計軟件

    關(guān)鍵要點電路仿真軟件PCB設(shè)計軟件PCB設(shè)計過程中發(fā)揮著互補作用,為工程師提供設(shè)計、仿真、驗證和優(yōu)化電子電路的工具。有效的仿真分析有助于
    的頭像 發(fā)表于 07-13 08:12 ?1365次閱讀
    電路仿真和<b class='flag-5'>PCB設(shè)計</b><b class='flag-5'>軟件</b>

    第二屆大會回顧第22期 軟件缺陷漏洞分析

    哩嗶哩APP,觀看更清晰視頻 正文內(nèi)容 軟件缺陷是影響軟件質(zhì)量的關(guān)鍵因素,軟件缺陷分析能夠幫助開發(fā)和測試團(tuán)隊及時識別和分析軟件
    的頭像 發(fā)表于 06-27 08:42 ?181次閱讀
    第二屆大會回顧第22期  <b class='flag-5'>軟件缺陷</b>漏洞分析

    PCB設(shè)計的常見問題有哪些?

    一站式PCBA智造廠家今天為大家講講PCB設(shè)計的常見問題有哪些?PCB設(shè)計布局時容易出現(xiàn)的五大常見問題。在電子產(chǎn)品的開發(fā)過程中PCB(P
    的頭像 發(fā)表于 05-23 09:13 ?588次閱讀
    <b class='flag-5'>PCB設(shè)計</b><b class='flag-5'>中</b>的常見問題有哪些?

    pcb板加工過程中元器件脫落

    pcb板加工過程中元器件脫落
    的頭像 發(fā)表于 03-05 10:25 ?945次閱讀

    PCB設(shè)計軟件有哪些 pcb設(shè)計軟件哪個好用

    PCB是電子產(chǎn)品最重要的組成之一,PCB設(shè)計軟件在電子工程領(lǐng)域具有重要的作用。目前市面上有許多PCB設(shè)計軟件,下面將詳細(xì)介紹幾款常用的
    的頭像 發(fā)表于 02-02 14:05 ?3927次閱讀

    半固化片制造過程中填料球磨工藝變更對PCB漲縮的影響

    在印制電路板 (printed circuit board,PCB)的制造過程中,層壓工序是 PCB 制程關(guān)鍵的工序之一,漲縮問題又是層壓工序重要的制程能力指標(biāo)。
    的頭像 發(fā)表于 01-11 13:33 ?1112次閱讀
    半固化片制造<b class='flag-5'>過程中</b>填料球磨工藝變更對<b class='flag-5'>PCB</b>漲縮的影響

    PCB設(shè)計過程中常見問題匯總

    隨著時代發(fā)展,科技進(jìn)步,電子產(chǎn)品更新?lián)Q代之神速,而且集成功能也越來越多,產(chǎn)品向高端化、精細(xì)化、輕便化、個性化等發(fā)展。在PCB設(shè)計和制作過程中,工程師要考慮設(shè)計出來的板子,會不會對后續(xù)生產(chǎn)有影響,稍有
    發(fā)表于 11-16 16:43

    PCB設(shè)計基板產(chǎn)生的問題及解決方法

    對于PCB設(shè)計過程中基板可能產(chǎn)生的問題,深圳捷多邦科技有限公司王總認(rèn)為,主要存在的問題有,各種錫焊問題現(xiàn)象征兆,比如:冷焊點或錫焊點有爆破孔。
    發(fā)表于 11-15 15:25 ?365次閱讀

    PCB設(shè)計的高速電路布局布線

    高速電路無疑是PCB設(shè)計要求非常嚴(yán)苛的一部分,因為高速信號很容易被干擾,導(dǎo)致信號質(zhì)量下降,所以在PCB設(shè)計過程中就需要避免或降低這種情況的發(fā)生。 在具體的高速電路布局布線
    的頭像 發(fā)表于 11-06 14:55 ?548次閱讀

    照明的綠色革命--降低制造過程中缺陷

    電子發(fā)燒友網(wǎng)站提供《照明的綠色革命--降低制造過程中缺陷率.pdf》資料免費下載
    發(fā)表于 11-02 09:55 ?0次下載
    照明的綠色革命--降低制造<b class='flag-5'>過程中</b>的<b class='flag-5'>缺陷</b>率

    PCB評估過程中應(yīng)注意哪些因素

     PCB評估需考慮許多因素。設(shè)計者要尋找的開發(fā)工具的類型依賴于他們所從事的設(shè)計工作的復(fù)雜性。由于系統(tǒng)正趨于越來越復(fù)雜,物理走線和電氣元件布放的控制已經(jīng)發(fā)展到很廣泛的地步,以至于必須為設(shè)計過程中的關(guān)鍵路徑設(shè)定約束條件。
    發(fā)表于 10-31 14:57 ?191次閱讀
    <b class='flag-5'>PCB</b>評估<b class='flag-5'>過程中</b>應(yīng)注意哪些因素

    PCB設(shè)計總有幾個阻抗沒法連續(xù)的地方,怎么辦?

    PCB設(shè)計總有幾個阻抗沒法連續(xù)的地方,怎么辦? 在PCB設(shè)計,阻抗匹配是非常重要的,尤其是在高速數(shù)字信號傳輸領(lǐng)域。在實際的PCB設(shè)計過程中
    的頭像 發(fā)表于 10-20 14:33 ?507次閱讀