做底層庫做了3個多月,我們的芯片就研制出來。芯片研制的準備大概有兩年吧,而庫的準備也都有一年。 剛開始比較混雜,我們做了fpga板子來提前驗證硬件和軟件代碼。 對硬件的 驅動能力(數據電流等),板子輸入輸出的電流電壓,還有溫度等各種接口兼容性問題都做了非常多的測試工作。
下邊說的都是已arm7為平臺,使用axd和multi-ice開發工具。你還需要以下的工具:萬能表,示波器,邏輯分析儀
1 說說芯片測試的基本流程吧。
第一步: 配置好PLL,也就是芯片時鐘頻率。我們的芯片是可以配置的,一般都是在啟動項里配置(vector)。
你可以通過axd訪問smem,看smem的值能不能被修改,不能修改,說明板子出問題。
第二步 讓你可愛的uart可以輸出正確的調試信息。 波特率,停止位,數據位,校驗方式都要設置正確。調試時,你可以使用axd的燒錄工具來配置;也可以直接通過axd工具,通過寫內存地址直接寫值;最簡單的是寫一個uart驅動來測試,直接在sram里運行,你或許需要寫一個vector.s。 你必須清楚你的metrowerks code warrior for ARM developer suite工具能夠干什么而不能夠干什么。 printf出來的東西那里可以得到,而像sprintf又怎么才可以使用。
第三步 測試flash芯片的讀寫?梢缘絪ram里測試,一般flash芯片的驅動都會拷貝到sram里來運行的。如果你的板子沒問題,flash的讀寫也應該簡單。驅動測試OK,就可以改寫你的flash燒錄工具。
第四步 燒錄各個模塊的測試程序進行調試分析。查找芯片bug,查找板子的bug和兼容性測試。
第五步 集成測試。
2 如果發現硬件中斷(提示莫名奇妙的break),你可以在中斷之后,保存ro-r12的寄存器值。
如果每次中斷之后寄存器值都相同,則表明是與軟件相關的,比較可能是某個地方寫錯了地址(可以看看PIC映射表)。
如果每次中斷之后寄存器值都不同,說明是與硬件相關的。 檢查板子電路。
很多時候,這種情況是程序死循環,pc值被 芯片置為0.
CPSR可以配置FIQ,IRQ,axd調試界面下,可以雙擊寄存器查看寄存器值,而且可以修改。你還可以修改PC的值為0,讓它從頭開始工作。
3 溫度問題。 做嵌入式開發。穩定性是最重要的。 在中國做芯片,總覺得不可靠。溫度測很重要,你需要
風筒和空調以及溫度計。 如果你的 芯片晶體振蕩器 隨著溫度而表現不同,game over。你可要知道做一個芯片可要100多萬。 出現類似問題時, 你可以通過轉接板類似稱呼的東西先頂著用,然后檢查板子設計,看哪里導致溫度如此離譜,不要忘記看看驅動能力的配置。祈求上天其他地方沒有錯。
4 板子問題。 板子是芯片和軟件的中間,很多人不重視。覺得布一次板只要2k就覺得很少,很想多布幾次。但你要
知道這樣會浪費嵌入式開發人員的時間,這些人的薪水會高的離譜,而且人數也是眾多的,燒錢不是這樣燒的。
做板子一定要得到最新的芯片datasheet。第一次為芯片做板,要用最好的器件,用最好的焊工,對電流,電壓,芯片接口要研究透徹。 如果最好flash用的是16位的,你弄成8位,不扁你才怪。
文章來源于領測軟件測試網 http://www.kjueaiud.com/