對基于SoC系統設計的探查
即使是自動(dòng)完成,仍然會(huì )有變化。如果把在系統中不同部分同時(shí)發(fā)生的小事件作為觸發(fā)器,只定義這類(lèi)事件——例如,ADC輸出等于0,而一個(gè)CPU內核進(jìn)入某一中斷服務(wù)例程,那么會(huì )出現什么情況?如果事件不僅僅涉及到不同的地方,而且還有不同的抽象級——例如,串行端口的接收眼圖閉上后,出現了堆棧上溢,又會(huì )怎樣呢?Quinton把這類(lèi)跨域分配事件觸發(fā)描述為系統觸發(fā)的“圣杯”。正如這一隱喻所示,很難找到合適的解決方案。但是,采集了足夠的數據,經(jīng)過(guò)認真思考,構建能夠采集這類(lèi)復雜事件的本地觸發(fā)器,通常能夠實(shí)現這些解決方案。
從芯片到系統
我們詳細討論了芯片級調試功能,它比簡(jiǎn)單的CPU調試內核有很大的進(jìn)步。對于開(kāi)發(fā)自己的SoC的系統設計人員,這些數據非常有用。但是,其他人會(huì )怎樣,誰(shuí)會(huì )使用他人的芯片設計?這里的很多理念仍然能發(fā)揮作用。
其中最首要的是重視提前做好規劃:確定用戶(hù)及其使用環(huán)境,制定測試策略,回答這些用戶(hù)可能提出的問(wèn)題,規劃數據采集來(lái)支持這一策略。最大的不同是,芯片設計人員會(huì )提出這些問(wèn)題,然后,在他們的SoC中開(kāi)發(fā)結構。系統設計人員也會(huì )提出問(wèn)題,然后,通過(guò)SoC供應商所提供的工具以及他們的支持來(lái)解答問(wèn)題。
相應的,系統設計團隊至少會(huì )向他們的SoC供應商提出三類(lèi)很難的問(wèn)題。第一,芯片供應商會(huì )提供調試工作臺——例如,Tektronix或者ARM主軟件包,來(lái)控制SoC的調試硬件嗎?主軟件包能夠很好的適應您現有的系統調試環(huán)境嗎?
第二,硬件實(shí)際接觸SoC中的哪一點(diǎn)?您只獲得了一個(gè)CPU內核的觸發(fā)/跟蹤功能,或者芯片提供CPU、加速器、總線(xiàn)和外設控制器的擴展采集,跟蹤以及交叉觸發(fā)功能嗎?第三,調試子系統會(huì )提供哪些方法來(lái)觀(guān)察系統中其他芯片和器件的狀態(tài)?
這些問(wèn)題的答案會(huì )定義系統團隊連接哪類(lèi)外部測量設備工作臺,在哪些工作臺上能夠實(shí)現他們的系統調試計劃。在這么多的系統工程中,關(guān)鍵是盡早開(kāi)始對調試進(jìn)行規劃——在工程的體系結構設計階段。沒(méi)有足夠的數據呈現,就開(kāi)始調試基于SoC的系統,這種場(chǎng)景很快就會(huì )很難維持下去。
評論