色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

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

時間:2022-06-18

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


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


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


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


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


  

image.png


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


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


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


Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號

與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
ciya68