1. gzyueqian
      13352868059

      嵌入式開發(fā):掌握半托管工具

      更新時間: 2022-06-17 09:19:04來源: 粵嵌教育瀏覽量:8919

        半托管是ARM處理器支持的調(diào)試功能,在嵌入式開發(fā)中,它允許嵌入式目標(biāo)通過調(diào)試接口訪問主機(jī)PC上的 i/o 功能。i/o 功能最常與printf一起使用,將文本數(shù)據(jù)傳輸?shù)秸{(diào)試環(huán)境中的虛擬終端,但它也可用于文件訪問和鍵盤輸入。

        半托管功能通常通過與標(biāo)準(zhǔn)C庫接口的特殊庫來實(shí)現(xiàn)。在許多情況下,該庫默認(rèn)包含在開發(fā)環(huán)境中。例如,在Renesas Synergy(TM)平臺e2 Studio中,默認(rèn)包含–specs=rdimon.specs選項(xiàng),其中包括使用半托管的掛鉤。開發(fā)人員需要做的就是包含標(biāo)準(zhǔn)庫,并且他們模塊中的所有printf語句都通過半托管設(shè)施重定向。

        在最低級別,通過觸發(fā)SWI指令(軟件中斷)在ARM內(nèi)核中實(shí)現(xiàn)半托管,該指令已被SVC指令(監(jiān)督調(diào)用)取代。在某些部分,也可能使用BKPT指令。當(dāng)指令執(zhí)行時,處理器停止執(zhí)行應(yīng)用程序并等待調(diào)試器訪問處理器并檢索需要傳輸?shù)街鳈C(jī)的內(nèi)容。

        表面上的半托管似乎是個好主意,并非所有嵌入式目標(biāo)都具有連接鍵盤、屏幕或文件系統(tǒng)的 i/o 功能,半托管提供了通過主機(jī)環(huán)境擁有此功能并使用調(diào)試器傳輸數(shù)據(jù)的能力。

        首先,半托管非常慢。在嵌入式開發(fā)中,CPU停止并且調(diào)試器必須訪問內(nèi)核、傳輸?shù)街鳈C(jī)然后恢復(fù)操作這一事實(shí)會導(dǎo)致執(zhí)行延遲,可能長達(dá)數(shù)十毫秒!這比大多數(shù)系統(tǒng)滴答持續(xù)時間更長,并且可能對軟件的實(shí)時性能造成嚴(yán)重破壞。

        


        其次,當(dāng)啟用半主機(jī)時,處理器會暫停并等待調(diào)試器。如果調(diào)試器未連接到系統(tǒng),處理器將無限期停止!這意味著半托管只能在調(diào)試期間使用,開發(fā)人員必須編譯出他們的半托管功能以用于生產(chǎn)。否則,他們的設(shè)備可能會在等待調(diào)試器檢索信息并恢復(fù)操作時掛斷最終用戶。這種阻塞行為令人失望,但開發(fā)人員需要接受這一事實(shí)。

        最后,半托管不是確定性的。執(zhí)行時間可能會有很大差異,并且可能會使開發(fā)人員發(fā)瘋,因?yàn)樗麄冊噲D在他們的軟件中追蹤真正源于使用半托管的奇怪行為。在實(shí)時應(yīng)用程序中,確定性至關(guān)重要,應(yīng)不惜一切代價(jià)避免任何可能影響這一點(diǎn)的事情。

        半托管是一個非常簡潔的功能,在許多情況下肯定會對開發(fā)人員有所幫助。然而,在大多數(shù)情況下,它更像是一個問題而不是資產(chǎn)。盡管如此,對于嵌入式開發(fā)開發(fā)人員來說,了解可用的工具和功能也很重要。建議你花一個小時左右的時間來探索工具鏈中存在的半托管功能,并了解它們?nèi)绾斡绊憰r間以及你開發(fā)系統(tǒng)的能力。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲中文字幕一区精品 | 亚洲精品中文字幕无乱码 | 欧美一级日韩国产 | 午夜性色福利视频你懂的 | 久久国产精品久久香蕉 | 亚洲综合色婷婷六月在线图片 |