<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 分析復(fù)雜器件內(nèi)部的實時可視性的設(shè)計方法

          分析復(fù)雜器件內(nèi)部的實時可視性的設(shè)計方法

          作者: 時間:2011-07-05 來源:網(wǎng)絡(luò) 收藏

            6. 塊狀記錄

            在某些情況下,在不影響執(zhí)行時(如沒有運算時)有可能可以暫停對象。此時可以通過在能安全暫停的情況下觸發(fā)一次暫停來“避免”緩沖期上載開銷,然后在系統(tǒng)暫停的時候再對緩沖器上載。

            7. 按塊上載

            如果任務(wù)比較空閑,可以在系統(tǒng)沒有完全利用時用來上載緩沖器。盡管這不會減少上載開銷,但卻可以將上載的影響轉(zhuǎn)移到一個對系統(tǒng)性能影響更小的時段。

            8. RTOS監(jiān)測

            RTOS,即:系統(tǒng)(Real-time operating system),系統(tǒng)能夠在指定或者確定的時間內(nèi)完成系統(tǒng)功能和外部或、同步或異步時間做出響應(yīng)的系統(tǒng)。它的正確性不僅依賴系統(tǒng)計算的邏輯結(jié)果,還依賴于產(chǎn)生這個結(jié)果的時間。因此實時系統(tǒng)應(yīng)該在事先先定義的時間范圍內(nèi)識別和處理離散事件的能力;系統(tǒng)能夠處理和儲存控制系統(tǒng)所需要的大量數(shù)據(jù)。 為了便于理解,機場的售票系統(tǒng)就是一個典型的實時系統(tǒng)。

            對于更的監(jiān)測,可以在實時操作系統(tǒng)上找到支持。很多操作系統(tǒng)具有內(nèi)置的機制和庫,能支持片上監(jiān)測硬件,即易于配置又為管理循環(huán)緩沖器和向外發(fā)送數(shù)據(jù)流需要的基礎(chǔ)架構(gòu)提供基本代碼,并提供用于自監(jiān)測的Hook函數(shù)。通過對記錄過程抽象化以及卸載數(shù)據(jù),可以快速地對監(jiān)測的對象、監(jiān)測的方式、監(jiān)測的頻率、獲取數(shù)據(jù)的位置以及卸載方式等進行重新配置。在創(chuàng)建自己的基礎(chǔ)來測試代碼之前,應(yīng)首先檢查RTOS提供的內(nèi)容。

            RTOS就是這樣的一個標(biāo)準(zhǔn)內(nèi)核,包括了各種片上外設(shè)初始化和數(shù)據(jù)結(jié)構(gòu)的格式化,不必、也不推薦用戶再對硬件設(shè)備和資源進行直接操作,所有的硬件設(shè)置和資源訪問都要通過RTOS核心。硬件這樣屏蔽起來以后,用戶不必清楚硬件系統(tǒng)的每一個細節(jié)就可以進行開發(fā),這樣就減少了開發(fā)前的學(xué)習(xí)量。

            一般來說,對硬件的直接訪問越少,系統(tǒng)的可靠性越高。RTOS是一個經(jīng)過測試的內(nèi)核,與一般用戶自行編寫的主程序內(nèi)核相比,更規(guī)范,效率和可靠性更高。對于一個精通單片機硬件系統(tǒng)和編程的“老手”而言,通過RTOS對系統(tǒng)進行管理可能不如直接訪問更直觀、自由度大,但是通過RTOS管理能夠排除人為疏忽因素,提高軟件可靠性。

            另外,高效率地進行多任務(wù)支持是RTOS從始至終的一條主線,采用RTOS管理系統(tǒng)可以統(tǒng)一協(xié)調(diào)各個任務(wù),優(yōu)化CPU時間和系統(tǒng)資源的分配,使之不空閑、不擁塞。針對某種具體應(yīng)用,精細推敲的應(yīng)用程序不采用RTOS可能比采用RTOS能達到更高的效率;但是對于大多數(shù)一般用戶和新手而言,采用RTOS是可以提高資源利用率的,尤其是在片上資源不斷增長、產(chǎn)品可靠性和進入市場時間更重要的今天。

            9. 避免訪問存儲器和其它系統(tǒng)資源

            只有在硬件機制不足的情況下,才應(yīng)該用軟件手段作為補充,例如當(dāng)需要非常大的緩沖器或者當(dāng)有限的處理降低了整體的干擾時。理想的情況是,如果在不使用系統(tǒng)總線或存儲器的情況下監(jiān)測系統(tǒng)總線或存儲器,將能得到更準(zhǔn)確的結(jié)果。如果將采集的數(shù)據(jù)量控制到最小,就可以避免使用存儲器中的緩沖器,只是通過JTAG或總線直接發(fā)送。

            10. 連續(xù)采集

            在一段時間內(nèi)從流體中連續(xù)采集樣品,對于該時段而言,稱之為連續(xù)采樣。連續(xù)采樣主要用于污染物濃度隨時間變化的場合,用以描述流體中污染物質(zhì)的平均濃度,尤其適用于江、河的水質(zhì)監(jiān)測和連續(xù)排放的廢水污染源、廢氣污染源的監(jiān)測??煞从骋欢〞r段內(nèi)的平均水平,代表性強;缺點是不能反映污染物的瞬時濃度和最大值,容易掩蓋污染的極限情況。

            在過程中監(jiān)測如果需要采集大量的數(shù)據(jù),可以考慮連續(xù)采集。注意,因為在每次運行時會采集到不同的信息,將無法對結(jié)果進行關(guān)聯(lián),因為時間戳包含不同的測試延時。在考慮從什么地方開始發(fā)現(xiàn)問題時,這種最好。因為這樣能降低概率,也能降低監(jiān)測的等級。

            11. 模塊

            如果通過JTAG或總線發(fā)送數(shù)據(jù),則可以在目標(biāo)和主機之間放置一個處理模塊來處理時間戳的產(chǎn)生和有限的數(shù)據(jù)處理。通過將時間戳的工作卸載到該模塊,可以釋放測試總線的帶寬,用來發(fā)送更多的信息。模塊也是實現(xiàn)完全無干擾監(jiān)測的非常有效的。例如,模塊可以監(jiān)測系統(tǒng)總線,監(jiān)測測試總線上某個特定的存儲器地址范圍,或使用直接存儲器訪問(DMA)來觸發(fā)一次準(zhǔn)實時的數(shù)據(jù)塊獲取。

            硬件輔助監(jiān)測

            在某些情況下,測試代碼可能要么對系統(tǒng)影響太大,要么不夠準(zhǔn)確,或者不能簡單地獲得理解流過的SoC的數(shù)據(jù)流的動態(tài)特性所需要的信息。越來越多的SoC架構(gòu)包含用于輔助監(jiān)測的硬件運行的功能,以滿足這些需求:

            1. 事件計數(shù)器

            計數(shù)是一種最簡單基本的運算,計數(shù)器就是實現(xiàn)這種運算的邏輯電路,計數(shù)器在數(shù)字系統(tǒng)中主要是對脈沖的個數(shù)進行計數(shù),以實現(xiàn)測量、計數(shù)和控制的功能,同時兼有分頻功能,計數(shù)器是由基本的計數(shù)單元和一些控制門所組成,計數(shù)單元則由一系列具有存儲信息功能的各類觸發(fā)器構(gòu)成,這些觸發(fā)器有RS觸發(fā)器、T觸發(fā)器、D觸發(fā)器及JK觸發(fā)器等。計數(shù)器在數(shù)字系統(tǒng)中應(yīng)用廣泛,如在電子計算機的控制器中對指令地址進行計數(shù),以便順序取出下一條指令,在運算器中作乘法、除法運算時記下加法、減法次數(shù),又如在數(shù)字儀器中對脈沖的計數(shù)等等。計數(shù)器可以用來顯示產(chǎn)品的工作狀態(tài),一般來說主要是用來表示產(chǎn)品已經(jīng)完成了多少份的折頁配頁工作。

            用軟件監(jiān)測一個事件時,很多細微的細節(jié)不容易被發(fā)現(xiàn)。例如,記錄某個特定的CPU內(nèi)核在等待訪問共享資源(如外部存儲器)時停止的次數(shù),采用軟件就無法實現(xiàn)。包含一些設(shè)置很好的計數(shù)器的硬件,可以以很低的額外成本實現(xiàn)對系統(tǒng)動態(tài)特性的深入了解。數(shù)據(jù)可以通過調(diào)試器的JTAG接口讀出,或被周期性地讀出,例如,由軟件中的背景任務(wù)讀出并寫入到緩沖器中,以便在稍后的時間進行查詢。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();