介紹
日常生活中,我們不會(huì)注意到最常用設(shè)備核心的復(fù)雜芯片 — 它們通常隱藏在設(shè)備內(nèi)部。另一方面,芯片的功能卻非常引人注目:它們能讓我們使用手機(jī)拍攝高質(zhì)量的照片,駕駛時(shí)提醒我們注意行人,以及檢測(cè)和識(shí)別我們向虛擬助手發(fā)出的命令。在本系列文章中,我將重點(diǎn)討論驗(yàn)證芯片功能所面臨的挑戰(zhàn)。
正如廣告宣傳的那樣,在設(shè)備光鮮亮麗的外表下,隱藏著一支杰出的人才隊(duì)伍 — 研究人員、硬件架構(gòu)師、硬件設(shè)計(jì)師、軟件開(kāi)發(fā)人員、集成商和質(zhì)量保證工程師 — 他們確保了每一塊芯片在任何可能的情況下都能平穩(wěn)運(yùn)行。這些人員即使處于不同時(shí)區(qū)空域,也必須努力協(xié)作。他們的任務(wù)就是確保拼圖的各個(gè)部分完美地組合在一起,并通過(guò)大量的軟件代碼行和硬件邏輯塊來(lái)確保所需要的功能順利實(shí)現(xiàn),以滿足消費(fèi)者的預(yù)期要求。實(shí)現(xiàn)這些芯片功能的最大挑戰(zhàn)之一在于軟件和硬件之間的邊界。
硬件調(diào)試
我假定垂閱這篇文章的您已對(duì)嵌入式設(shè)計(jì)領(lǐng)域有所了解,但我仍需快速扼要地復(fù)述一些主要的挑戰(zhàn),特別是當(dāng)開(kāi)放嵌入式 DSP軟件時(shí)的挑戰(zhàn)。
首先,為什么您想使用 DSP?CEVA DSP 專門用于多個(gè)應(yīng)用領(lǐng)域,如人工智能、計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別和移動(dòng)通信。相比通用 CPU,使用 DSP 可以實(shí)現(xiàn)更高的性能和更低的功耗,同時(shí)仍能保持軟件編程的靈活性。CEVA DSP 可在必要時(shí)運(yùn)行實(shí)時(shí)操作系統(tǒng),以保證 DSP 應(yīng)用程序通常所需要的實(shí)時(shí)性能。應(yīng)用程序既可以在多核系統(tǒng)上同時(shí)運(yùn)行多個(gè)線程,又可以在單核系統(tǒng)上分時(shí)運(yùn)行。然后,線程可以異步處理多個(gè)并行進(jìn)程,從而控制系統(tǒng)的不同硬件元素以及處理數(shù)據(jù)。
舉個(gè) DSP 操作的例子,它可以通過(guò)增強(qiáng)顏色或?qū)Ρ榷?、采用高?dòng)態(tài)范圍 (HDR)算法將多個(gè)圖像融合為一個(gè)圖像、自動(dòng)檢測(cè)場(chǎng)景內(nèi)容、或穩(wěn)定快速行駛期間手持電話拍攝的抖動(dòng)視頻來(lái)處理相機(jī)的圖像?;蛘撸€可以對(duì)來(lái)自兩個(gè)傳感器的兩個(gè)每秒 120 幀/12 位采樣率/超高清 8K分辨率視頻流來(lái)執(zhí)行上面所有這些功能,。在這種復(fù)雜運(yùn)算時(shí),數(shù)據(jù)傳輸率可超過(guò)每秒 33GB,因此,確保該過(guò)程每一步都能按預(yù)期運(yùn)行具有非常大的復(fù)雜性和挑戰(zhàn)性。
DSP 架構(gòu)可能相當(dāng)復(fù)雜,相應(yīng)的匯編操作可能跨越多條線路。為了滿足預(yù)期吞吐量,需要通過(guò)專用編譯器或由程序員手動(dòng)對(duì)代碼進(jìn)行性能優(yōu)化。這包括展開(kāi)循環(huán)、重新排序指令并將其組合在一起以便在單個(gè)循環(huán)內(nèi)并行執(zhí)行等等。調(diào)試此類代碼可能非常困難,且需要非常先進(jìn)的調(diào)試工具。
通常,新功能的開(kāi)發(fā)都從高級(jí)開(kāi)發(fā)語(yǔ)言環(huán)境開(kāi)始,例如Matlab、Visual Studio 或在PC 上運(yùn)行的GNU 開(kāi)發(fā)/調(diào)試工具。這些環(huán)境在軟件開(kāi)發(fā)人員中很受歡迎,文檔完善,擁有很多針對(duì)各種算法的現(xiàn)成方法,并且通常以開(kāi)源方式分發(fā)。這樣可以快速提升軟件、重用代碼、利用高級(jí)編程環(huán)境并采用快速服務(wù)器基礎(chǔ)設(shè)施。工程師可以很便捷地進(jìn)行通信,共享代碼并在多個(gè)開(kāi)發(fā)人員甚至團(tuán)隊(duì)之間分工協(xié)作。這些開(kāi)發(fā)環(huán)境可提供一種簡(jiǎn)單而舒適的調(diào)試體驗(yàn):程序員可在運(yùn)行時(shí)在應(yīng)用程序內(nèi)部進(jìn)行步進(jìn)操作,以檢查內(nèi)存和變量值、設(shè)置斷點(diǎn)、手動(dòng)操縱資源并檢查結(jié)果,有時(shí),甚至可以在不停止調(diào)試應(yīng)用程序的情況下重新編譯代碼,從而相對(duì)容易地跟蹤漏洞和實(shí)施過(guò)程中發(fā)生的故障。
但最終,該軟件需要能夠運(yùn)行起來(lái),并且在嵌入式目標(biāo)上有效運(yùn)行。那時(shí),開(kāi)發(fā)人員必須有能夠在實(shí)際芯片上進(jìn)行調(diào)試和優(yōu)化軟件的工具。這就需要主流的開(kāi)發(fā)和調(diào)試工具有更高的能力的。
硬件調(diào)試領(lǐng)域的各項(xiàng)挑戰(zhàn)
由于目標(biāo)芯片或設(shè)備在我們的桌面工作環(huán)境中屬于“外來(lái)”元素,因此在目標(biāo)硬件上調(diào)試軟件會(huì)面臨一系列不同的挑戰(zhàn)。桌面工作環(huán)境及其操作系統(tǒng)對(duì)自身的計(jì)算引擎(在一定程度上)有所了解,但通常沒(méi)有訪問(wèn)外部硬件內(nèi)部狀態(tài)的通用方法。這就是為什么最終您必須采用硬件供應(yīng)商提供的嵌入式開(kāi)發(fā)環(huán)境的原因。這些嵌入式開(kāi)發(fā)工具可以與目標(biāo)設(shè)備進(jìn)行通信,并觀測(cè)或操縱內(nèi)部狀態(tài)。當(dāng)您在不同的調(diào)試環(huán)境中進(jìn)行這種詳細(xì)調(diào)試和優(yōu)化時(shí),會(huì)希望這些工具能提供易于使用的調(diào)試體驗(yàn),并且能夠完全支持您在這個(gè)階段的所有需求。
對(duì)于目標(biāo)硬件的調(diào)試可能具有挑戰(zhàn)性,因?yàn)楹芏嗲闆r在您的早期開(kāi)發(fā)中都無(wú)法預(yù)見(jiàn)。您只要與 DUT(被測(cè)設(shè)備)建立調(diào)試連接,就可能會(huì)遇到一些匪夷所思的通信問(wèn)題。更為普遍的是,硬件調(diào)試問(wèn)題可能發(fā)生在各個(gè)階段:在初始連接、設(shè)備重置、應(yīng)用程序加載、分步調(diào)試程序或查看內(nèi)存和變量值時(shí);這些問(wèn)題的原因可能并不明顯?;谥鳈C(jī)或通用的開(kāi)發(fā)和調(diào)試工具對(duì)目標(biāo)平臺(tái)并不了解,因此,在分析此類問(wèn)題方面幾乎沒(méi)有幫助。您只能寄希望于一個(gè)充分了解你所構(gòu)建系統(tǒng)的開(kāi)發(fā)/調(diào)試平臺(tái)。
-
硬件
+關(guān)注
關(guān)注
11文章
3224瀏覽量
66070 -
編譯器
+關(guān)注
關(guān)注
1文章
1617瀏覽量
49019 -
計(jì)算機(jī)視覺(jué)
+關(guān)注
關(guān)注
8文章
1694瀏覽量
45905
原文標(biāo)題:專家解讀|硬件調(diào)試的復(fù)雜性 — 第 1 部分
文章出處:【微信號(hào):CEVA-IP,微信公眾號(hào):CEVA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論