999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SylixOS操作系統的統一開發調試器設計

2019-06-29 17:59:26朱壽羽陳洪邦李孝成
科學與財富 2019年34期

朱壽羽 陳洪邦 李孝成

摘 要:隨著摩爾定律持續有效,傳統的單核處理器逐漸被片上系統和多核處理器所取代,如何在多機多核環境中實現高效的開發調試成為我們所面臨的問題之一。面向對系統可靠性要求極高的電力控制領域,設計并實現了一個基于SylixOS國產操作系統的統一開發調試器。首先對統一開發調試器的設計進行了簡單介紹,然后在GDB基礎上對多核調試的連接方法和多線程調試進行了改進。通過測試表明,此統一開發調試器能夠在主流國產多核處理器上實現遠程多核調試,可以顯著縮短程序員的調試時間。

關鍵詞:國產軟硬件;遠程調試;GDB;菊花鏈;多核調試

0引言

目前,智能電網日益受到國家的重視,其中研究的重點就是擺脫電網設備底層操作系統對國外操作系統的依賴,避免存在安全隱患。在南京翼輝信息獨立負責“核高基”部分課題后,將扭轉我國電網控制領域底層操作系統受制于人的局面。在片上系統和多核處理器帶來豐厚回報的同時,如何針對多核處理器設計調試環境成為開發過程中的難題[1-2]。首先程序員在代碼調試過程中所需的時間大幅度增加,而且冗余多機技術在電力控制領域普遍采用,但現有的大多數調試工具只是針對單核單處理器[3],因此本文基于SylixOS國產實時操作系統,設計并實現一個多機多核調試器,能夠滿足在國產龍芯、飛騰、智芯等處理器上的調試要求。

1調試器的總體設計

如圖1所示,統一開發調試器的設計采用宿主機和目標機的開發調試環境[4-5],在宿主機上編寫源代碼,利用翼輝集成開發環境RealEvo-IDE在宿主機上編譯生成可執行代碼并下載到目標機上。目標機上運行配合宿主機端GDB的調試代理,實現對被調試程序的調試,調試代理和被調試程序都基于運行在龍芯、飛騰、智芯等國產處理器上的SylixOS操作系統。調試時,兩端通過串口、網口或JTAG接口進行連接,GDB利用遠程串行通信協議RSP與調試代理進行發送調試指令和接收調試反饋的通信。

1.1 GDB調試原理

基于GDB遠程調試、設置斷點、單步運行、讀寫寄存器等強大功能以及實時、開源、跨平臺性好等特點成為此統一開發調試器主要依托的調試方案[6]。下面簡述GDB和調試代理之間的調試過程[7-9]。如圖2所示,GDB通過用戶接口的循環機制接收到用戶輸入的調試指令,結合對命令進行統一管理的符號表進行解釋和處理,生成調試代理可以識別的指令,然后將調試指令按照RSP協議固定的格式進行封裝和發送。當調試代理通過連接通道接收到封裝后的指令時,先進行指令的解析,然后根據指令生成調試事件并將此事件加入到調試事件鏈中等待處理,最后調試代理將調試結果反饋到宿主機端GDB。

1.2 RSP協議

GDB運行在PC端,調試代理運行在開發板上,所以兩者之間需要在串口、網口或JTAG接口等通道的基礎上實現數據的傳輸,遠程串行通信協議RSP實現了這一功能,它能很好的實現命令的封裝和傳輸以及其他必要的功能。RSP協議定義了GDB和調試代理之間通信時統一的數據包格式[10],此協議和大多數通信協議類似,傳輸的數據包包含了起始位,結束位以及校驗和這三個部分,其格式如圖3所示,

$為起始位,#為結束位,Data為數據部分,Checksum是將數據部分所有字符的ASCLL碼取和后與256取模所得的校驗和。當調試代理端在調試過程中接收到GDB端發送的消息時,就會對消息中的數據部分進行校驗,并根據校驗的結果給GDB端正確的回應。“+”表示校驗和正確,可進行下一步傳輸,“-”表示校驗和錯誤,需要進行重新校驗。

2調試器的實現

2.1多核連接方法的實現

目前大多數芯片廠商生產的芯片只留出單一的JTAG接口,而沒有考慮到處理器中內核的個數。一般開發者都是采用IEEE 1149.1標準菊花鏈連接方法來同步和處理多核的調試工作,如圖4所示。

通過IPi的TDO與IPi+1的TDI相連的方式將多個IP核連接成一個串行的鏈,同時它們通過TAP控制器共享測試模式選擇TMS、測試時鐘TCK、測試復位TRST控制信號。當接收到掃描測試指令時,指令經過此連接方式進入到IP核TAP的指令寄存器中,從而能夠達到在同一時間對多個IP核的TAP進行訪問的目的,也可以同時獲取各個IP核邊界上的輸入信號以及輸出信號,此連接方式的運用對多核處理器的調試有很大幫助。但菊花鏈連接方式一個很大的缺點就是其與IEEE1149.1的標準不一致,而且此連接方式在多個IP核中選擇特定的一個IP核進行調試會有很大的工作量。后期有人提出的TLM(TAP Linking Module)連接方法和并行多TAP控制器互連調試方法都存在一定的缺陷,不能實現多核調試 [11]。

本設計利用菊花鏈連接的長處,既能對多個IP核進行同時調試以滿足觀察多核之間互相配合情況的要求,又能對特定的某一個IP核進行調試。如圖5所示,首先我們在硬件上增加了模式選擇控制器Pattern_TAP,同時在軟件上附加模式開關Switch_TAP,然后將接口進行封裝。當調度器發出Select_TAP1指令時,指令經過解釋后將選擇Pattern_TAP的bypass數據寄存器,對TAP1的TMS產生一個選擇信號, 進入單核調試模式,基于SylixOS操作系統的RealEvo-IDE調試軟件對IP1進行調試。當調度器發出TRST_n的信號,對IP1的調試處于掛起狀態。通過這種方式也可以實現對其余IP核TAP的調試。當調度器發出Select_DC命令時,Pattern_TAP將DCflag標志寄存器的值置0(默認狀態下為1),進入Daisy-Chain菊花鏈互連多核調試模式,TAP1的TDI輸入切入到Pattern_TAP的TDO輸出,TAPn的TDO輸出連接到JTAG接口的TDO上,而TAP之間通過菊花鏈的連接方法進行互連,這樣統一開發調試器便可實現對多個IP核進行同時調試。調度器發出DC_EXIT命令時,將退出多核調試。通過增加模式選擇控制器和模式開關這種方式,便可滿足不同得調試需求。

2.2多線程的實現

GDB雖然支持多線程調試,但其all-stop模式在對個別線程進行單步調試時,可能會干擾到其余線程。而non-stop模式在某個線程運行斷點時,GDB可能會停止整個進程。所以不難看出GDB對多線程調試的能力還是不完善的[12]。而此統一開發調試器是在調試代理的基礎上進行改進,使其可以更優的實現對多線程的調試。改進的基本的方案是在命令中指定內核號、進程號和線程號,運行在開發板上的調試代理會根據此命令讓特定內核上的線程運行調試.如圖6所示,調試代理在接收并解析調試命令后,會從命令中獲取到內核號、進程號和線程號,然后會進行相關信息的匹配,符合的情況下切換線程執行調試命令。例如收到next[123.1-6,124]>2的調試命令,調試代理將此命令翻譯為讓2號內核上的123號進程的1-6號線程及124號進程進行單步運行。

2.3調試功能測試

測試工作基于運行在宿主機上的RealEvo-IDE,其主要功能是 SylixOS 工程管理和程序調試,可以通過JTAG接口、網口或串口與目標機交互。RealEvo-IDE 的交叉編譯器在宿主機上編譯生成可以在目標機上運行的 SylixOS 鏡像文件,統一開發調試器實現了宿主機與目標機之間多核調試。下面進行串口調試的測試,首先我們通過使用串口線將宿主機與目標機相連,如圖7所示,在SylixOS Terminal中使用/dev/ttyS*參數輸入“debug” 命令。

然后在RealEvo-IDE界面打開“Debugger→Connection”屬性頁,在“Type”下拉框選擇“Serial”,在“Device”編輯框中輸入 PC 端與設備相連的調試串口名稱,在“Speed”編輯框設置調試串口波特率為115200,如圖 8所示。

進行上面的操作后,便可進行調試,如查看內存內容。在“Memory”界面上點擊加號按鈕添加一個內存監控器,點擊“OK”后,默認以十六進制顯示該地址處的內存數據,點擊“New Renderings…”按鈕可以選擇其他類型的顯示方式,如9圖中以“Floating Point”類型為例。

3 結束語

本文基于SylixOS國產操作系統和集成開發環境RealEvo-IDE,對多核調試的連接方法和GDB調試代理多線程調試進行改進,設計了一個統一開發調試器。該統一開發調試器能夠良好地支持國產龍芯、飛騰、智芯等處理器的軟件調試。但是,統一開發調試器調試功能和調試命令還需不斷的完善和優化,給開發者帶來更好的調試環境。

參考文獻:

[1]蔡玉鑫. 嵌入式多核處理器核間通信方法的設計與實現[D].西安電子科技大學,2015.

[2]夏安祥,史浩山,阮園,劉紅紅.一種可重定向的交叉調試器實現方法[J].計算機應用研究,2011,28(10):3735-3738.

[3]王超. 嵌入式多核調試器的研究與實現[D].電子科技大學,2015.

[4]楊群,李笑天,何虎.面向Superscalar與VLIW混合架構處理器的調試器設計[J].計算機應用與軟件,2015,32(05):84-87+163.

[5]霍峰.基于某國產操作系統的交叉調試技術的研究[J].電子測試,2018(Z1):90-91.

[6]姚文星. 基于JTAG的多核DSP調試系統的研究與實現[D].中國民航大學,2014.

[7]鐘太聰. 基于多核的GDB遠程任務級調試改進[D].電子科技大學,2010.

[8]韓斌,羅克露.基于aCoral操作系統遠程調試器的設計[J].實驗科學與技術,2013,11(05):38-40+70.

[9]陳必泉,黃承慧.GDBSERVER原理分析及其應用[J].計算機工程與設計,2005(03):746-749.

[10]李琮,王竹平,費曉琪.基于GDB的多核DSP平臺調試器的設計與實現[J].微電子學與計算機,2015,32(01):72-75.

[11]王玥. 嵌入式SoC可調試設計的研究[D].浙江大學,2007.

[12]李鵬程. 面向嵌入式系統的多核調試工具研究與實現[D].電子科技大學,2017.

主站蜘蛛池模板: 精品一区二区三区无码视频无码| 亚洲国产高清精品线久久| 国产高清在线精品一区二区三区| 精品午夜国产福利观看| 日日噜噜夜夜狠狠视频| 九九线精品视频在线观看| 97成人在线视频| 亚洲综合婷婷激情| 高清不卡一区二区三区香蕉| 精品一区二区三区自慰喷水| 国产99热| 亚洲成在线观看 | 丰满的少妇人妻无码区| 中文字幕av无码不卡免费| 久久精品人妻中文系列| 国产网站一区二区三区| 日韩亚洲综合在线| 成人精品区| 色久综合在线| 国产成人亚洲综合a∨婷婷| 久久久久久高潮白浆| 国产午夜人做人免费视频中文| 精品五夜婷香蕉国产线看观看| 国产精选小视频在线观看| 国产福利不卡视频| 亚洲国产欧洲精品路线久久| 97国产精品视频自在拍| 日本久久久久久免费网络| 国产成人h在线观看网站站| 亚洲天堂免费| 午夜日本永久乱码免费播放片| 国产高清毛片| 国产永久无码观看在线| 色综合天天综合| 一级毛片网| 午夜精品影院| 99这里只有精品在线| 亚洲综合精品香蕉久久网| 国产aⅴ无码专区亚洲av综合网| 久久国产免费观看| 日韩在线成年视频人网站观看| 久久亚洲中文字幕精品一区| 国产成人亚洲无码淙合青草| 丁香婷婷激情综合激情| 亚洲Aⅴ无码专区在线观看q| 亚洲码一区二区三区| 免费人欧美成又黄又爽的视频| 亚洲国产成人自拍| 在线日韩一区二区| 69国产精品视频免费| 91视频国产高清| 久久精品国产999大香线焦| 久久精品免费国产大片| 啪啪免费视频一区二区| 成人噜噜噜视频在线观看| 女人毛片a级大学毛片免费| 免费观看欧美性一级| 免费国产高清精品一区在线| 视频在线观看一区二区| 国产91成人| 国产1区2区在线观看| 91国内视频在线观看| 日本三级黄在线观看| 制服丝袜国产精品| 欧美亚洲国产精品第一页| 国产自在线播放| 亚洲色中色| 最新国产成人剧情在线播放| 欧美高清三区| 婷婷99视频精品全部在线观看| 国产无码性爱一区二区三区| 色偷偷一区二区三区| jizz亚洲高清在线观看| 九九九精品成人免费视频7| 欧美在线伊人| 中文字幕乱码中文乱码51精品| 午夜欧美理论2019理论| 国产成人综合在线观看| 日本一区二区不卡视频| 欧美精品xx| 欧美伦理一区| 日本三区视频|