亚洲精品无码一区二区三区久久久,长春欧亚卖场是哪个区,美熟女一区二区三区,亚洲中文字幕无码一区二区三区 ,欧美人与动牲交zooz男人,日本黄h兄妹h动漫一区二区三区,亚洲国产综合久久天堂,四虎成人影视免费在线站长,小黄片午夜视频在线播放,久久久日韩精品一区二区三区

廣告招募

實時嵌入式系統(tǒng)軟件調(diào)試常見問題分析

2023年03月14日 11:04:36      來源:武漢華和機電技術(shù)有限公司 >> 進入該公司展臺      閱讀量:30

分享:

從歷史角度上來看,嵌入式應(yīng)用代碼的調(diào)試流程可以分為兩類。類調(diào)試流程是回答 “我的代碼現(xiàn)在執(zhí)行到哪里?” 的問題。當(dāng)開發(fā)商依靠打印語句或者LED的閃爍來指示應(yīng)用程序執(zhí)行到某個節(jié)點的調(diào)試方法時,往往就屬于這種情形。如果開發(fā)工具支持這種調(diào)試方法,可以沿著應(yīng)用應(yīng)當(dāng)程序應(yīng)當(dāng)執(zhí)行的路徑插入斷點。第二類調(diào)試流程是幫助回答“我看到的這一數(shù)值是從哪里來的?”這一問題。在這種情況下,人們往往依靠寄存器顯示窗口觀察變量信息、處理器內(nèi)存的內(nèi)容。人們還可以嘗試單步執(zhí)行,并且觀察所有這些數(shù)據(jù)窗口以了解某個寄存器狀態(tài)何時出現(xiàn)錯誤,內(nèi)存位置何時得到錯誤的數(shù)據(jù),抑或指針何時出現(xiàn)了誤用。

當(dāng)開發(fā)商寫部代碼后,如果無需了解網(wǎng)絡(luò)基礎(chǔ)設(shè)施,也沒有操作系統(tǒng)的任務(wù)調(diào)度需要考慮,那么就可以利用這些調(diào)試方法使一個應(yīng)用程序運行起來。然而,現(xiàn)在的情況并非如此。嵌入式處理器以超過600 MHz的速度運行,并且擁有可支持Ethernet和USB等協(xié)議的嵌入式外設(shè),它們支持功能齊備的操作系統(tǒng),例如uClinux,而且這些操作系統(tǒng)所調(diào)度的各種應(yīng)用程序是由數(shù)千行代碼構(gòu)成。使用打印語句和利用LED來調(diào)試是不現(xiàn)實的,因為現(xiàn)在常常有如此之多的功能在執(zhí)行是不可能的,或者它們會影響標準I/O口,從而造成處理器性能大幅度下降。

  也可能發(fā)生這樣的情況:處理器的工作速度是如此之快,以至于LED的亮滅速度會快到人眼無法察覺。另外現(xiàn)代的嵌入式系統(tǒng)通常支持斷點的設(shè)定,但是伴隨這些處理器所運行的代碼數(shù)量,使得這種類型的斷點調(diào)試難以駕馭。中斷和多線程系統(tǒng)在代碼的任何一點上設(shè)置一個斷點,可能都無法指示系統(tǒng)的正確狀態(tài)。由于斷點設(shè)置在物理內(nèi)存的某個地址上,索引不必了解線程的狀態(tài)。如果使用寄存器顯示方法,那么局部變量窗口和內(nèi)存窗口都將有助于隔離出所載入的不恰當(dāng)?shù)牧恐担牵捎谶@些是靜態(tài)化的工具,不能給出有意義的運行中的調(diào)試信息,其適用性也常常很有限。

  實時嵌入式系統(tǒng)軟件見的調(diào)試問題可以大致劃分為如下幾類:

  1. 同步問題

  2. 內(nèi)存和寄存器訛誤(corruption)

  3. 與中斷相關(guān)的問題

  4. 硬件配置問題

  5. 異常情況

  同步問題

  在任何系統(tǒng)中,只要有多串序線程或者進程都在運行,而且是異步共享數(shù)據(jù),則系統(tǒng)必然存在同步問題。對于共享數(shù)據(jù)的全部操作必須是原子化的,也就是說,只有在一個線程或者進程完成對數(shù)據(jù)的操作后,其它的線程才能對數(shù)據(jù)進行操作。

  同步化方面的問題常常是很難進行調(diào)試的,因為它們?nèi)Q于時序,是隨著軟件對數(shù)據(jù)的操作而隨機出現(xiàn)的。幸運的是,這些問題可以通過恰當(dāng)?shù)乇Wo任何共享數(shù)據(jù)來避免。大多數(shù)的實時操作系統(tǒng)可以提供同步化原語。開發(fā)商 可以使用的機制來保護共享數(shù)據(jù),而不至于影響系統(tǒng)的性能。如果數(shù)據(jù)在多個線程之間共享,則開發(fā)商將有如下的選擇:

  a. 關(guān)閉調(diào)度器以便當(dāng)前的線程永遠不會被其它線程搶先。(無調(diào)度區(qū))

  b. 使用信號兩(Semaphore)或者互斥信號量(Mutex)來保護共享數(shù)據(jù)。

  c. 利用關(guān)鍵區(qū)域來進行保護,即屏蔽所有的中斷。


  開發(fā)商必須從性能出發(fā)來選擇恰當(dāng)?shù)募夹g(shù)選項。關(guān)閉調(diào)度器,將防止任何一種環(huán)境的切換,從而使得現(xiàn)在的線程能繼續(xù)執(zhí)行,直到調(diào)度器重新打開為止。這種方法有一個負面的影響:它將阻止任何準備好運行的高優(yōu)先級的線程。這一現(xiàn)象被稱為優(yōu)先級倒置。將中斷關(guān)閉是的方法,對于執(zhí)行時間短的情形來說是理想選擇。于是,最差情況的中斷延遲就是所有未發(fā)生中斷的持續(xù)時間的總和。在硬實時系統(tǒng)中,一般來說,一個中斷功能可以被關(guān)閉的時間存在上限。

  調(diào)試的一個小竅門就是,如果共享的數(shù)據(jù)被破壞,則編程者就應(yīng)當(dāng)首先檢查出任何一種多個線程或者中斷對共享數(shù)據(jù)同時進行的操作。如果線程和中斷共享了數(shù)據(jù),那么在線程代碼中必須將中斷關(guān)閉。如果數(shù)據(jù)在多個中斷例程之間共享的話,則中斷也應(yīng)當(dāng)被關(guān)閉,因為高優(yōu)先級的中斷可以搶先于低優(yōu)先級的中斷。

  在多線程的系統(tǒng)中,高優(yōu)先級的線程可以搶在低優(yōu)先級的線程之前執(zhí)行。因此,如果數(shù)據(jù)在多個線程間共享的話,則必須采用某種恰當(dāng)?shù)臋C制來保護被共享的數(shù)據(jù)。

  另外一個同步化問題則與線程優(yōu)先級的不恰當(dāng)?shù)姆峙溆嘘P(guān)。應(yīng)當(dāng)確保系統(tǒng)的初始化線程在引導(dǎo)時間內(nèi)就啟動,并在生成其它的優(yōu)先級更高的線程之前,完成整個系統(tǒng)的初始化。例如,如果一個用于配置一個器件的低優(yōu)先級現(xiàn)場被一個使用該設(shè)備的高優(yōu)先級的線程搶先后,配置可能會完成,并可能會造成設(shè)備的故障。為了避免這種情形,開發(fā)商應(yīng)當(dāng)使用操作系統(tǒng)所支持的信號量或者其它同步化的原語。

關(guān)于我們

華和技術(shù)(WONHERE)順應(yīng)市場發(fā)展趨勢,作為智能硬件一站式解決方案提供者,基于低功耗嵌入式平臺專注采集、控制、通訊一站式解決智能硬件研發(fā),堅持以持續(xù)創(chuàng)新為客戶不斷創(chuàng)造價值。成功案例遍布檢測監(jiān)測儀器、環(huán)境工程與自然、工業(yè)控制與自動化、智能交通能源、北斗位置服務(wù)、國防及醫(yī)療電子等領(lǐng)域。致力于通過方案開發(fā)幫助客戶:縮短開發(fā)周期,降低開發(fā)成本,提高投資效率。致力于通過技術(shù)服務(wù)、項目管理和集成化的采購、生產(chǎn)幫助客戶提高供貨質(zhì)量和降低企業(yè)運營成本。

華和技術(shù)(WONHERE)有十余年的嵌入式項目研發(fā)及管理經(jīng)驗,團隊致力于平臺級產(chǎn)品的研發(fā)和檢測、監(jiān)測、控制類系統(tǒng)方案的項目定制。華和技術(shù)是武漢大學(xué)研究生培養(yǎng)基地、湖北省儀器儀表學(xué)會理事單位,擁有嵌入式系統(tǒng)開發(fā)領(lǐng)域的多項知識產(chǎn)權(quán)。華和技術(shù)以打造中國低功耗嵌入式平臺、物聯(lián)網(wǎng)智能硬件開發(fā)及技術(shù)支持中心為使命。我們的產(chǎn)品有:ARM335x嵌入式板卡、ARM3530嵌入式板卡、ARM3730嵌入式板卡,X86嵌入式平臺、Power PC嵌入式平臺,以及儀器儀表、環(huán)境工程、智能裝備、智能交通、行業(yè)嵌入式系統(tǒng)方案。產(chǎn)品咨詢請與華和技術(shù)(WONHERE)聯(lián)系。



版權(quán)與免責(zé)聲明:
1.凡本網(wǎng)注明"來源:歐亞貿(mào)易網(wǎng)"的所有作品,版權(quán)均屬于歐亞貿(mào)易網(wǎng),轉(zhuǎn)載請必須注明歐亞貿(mào)易網(wǎng)。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
2.企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
3.本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責(zé)任。 4.如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系。