亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SylixOS操作系統(tǒng)的統(tǒng)一開(kāi)發(fā)調(diào)試器設(shè)計(jì)

        2019-06-29 17:59:26朱壽羽陳洪邦李孝成
        科學(xué)與財(cái)富 2019年34期

        朱壽羽 陳洪邦 李孝成

        摘 要:隨著摩爾定律持續(xù)有效,傳統(tǒng)的單核處理器逐漸被片上系統(tǒng)和多核處理器所取代,如何在多機(jī)多核環(huán)境中實(shí)現(xiàn)高效的開(kāi)發(fā)調(diào)試成為我們所面臨的問(wèn)題之一。面向?qū)ο到y(tǒng)可靠性要求極高的電力控制領(lǐng)域,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于SylixOS國(guó)產(chǎn)操作系統(tǒng)的統(tǒng)一開(kāi)發(fā)調(diào)試器。首先對(duì)統(tǒng)一開(kāi)發(fā)調(diào)試器的設(shè)計(jì)進(jìn)行了簡(jiǎn)單介紹,然后在GDB基礎(chǔ)上對(duì)多核調(diào)試的連接方法和多線程調(diào)試進(jìn)行了改進(jìn)。通過(guò)測(cè)試表明,此統(tǒng)一開(kāi)發(fā)調(diào)試器能夠在主流國(guó)產(chǎn)多核處理器上實(shí)現(xiàn)遠(yuǎn)程多核調(diào)試,可以顯著縮短程序員的調(diào)試時(shí)間。

        關(guān)鍵詞:國(guó)產(chǎn)軟硬件;遠(yuǎn)程調(diào)試;GDB;菊花鏈;多核調(diào)試

        0引言

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

        1調(diào)試器的總體設(shè)計(jì)

        如圖1所示,統(tǒng)一開(kāi)發(fā)調(diào)試器的設(shè)計(jì)采用宿主機(jī)和目標(biāo)機(jī)的開(kāi)發(fā)調(diào)試環(huán)境[4-5],在宿主機(jī)上編寫(xiě)源代碼,利用翼輝集成開(kāi)發(fā)環(huán)境RealEvo-IDE在宿主機(jī)上編譯生成可執(zhí)行代碼并下載到目標(biāo)機(jī)上。目標(biāo)機(jī)上運(yùn)行配合宿主機(jī)端GDB的調(diào)試代理,實(shí)現(xiàn)對(duì)被調(diào)試程序的調(diào)試,調(diào)試代理和被調(diào)試程序都基于運(yùn)行在龍芯、飛騰、智芯等國(guó)產(chǎn)處理器上的SylixOS操作系統(tǒng)。調(diào)試時(shí),兩端通過(guò)串口、網(wǎng)口或JTAG接口進(jìn)行連接,GDB利用遠(yuǎn)程串行通信協(xié)議RSP與調(diào)試代理進(jìn)行發(fā)送調(diào)試指令和接收調(diào)試反饋的通信。

        1.1 GDB調(diào)試原理

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

        1.2 RSP協(xié)議

        GDB運(yùn)行在PC端,調(diào)試代理運(yùn)行在開(kāi)發(fā)板上,所以兩者之間需要在串口、網(wǎng)口或JTAG接口等通道的基礎(chǔ)上實(shí)現(xiàn)數(shù)據(jù)的傳輸,遠(yuǎn)程串行通信協(xié)議RSP實(shí)現(xiàn)了這一功能,它能很好的實(shí)現(xiàn)命令的封裝和傳輸以及其他必要的功能。RSP協(xié)議定義了GDB和調(diào)試代理之間通信時(shí)統(tǒng)一的數(shù)據(jù)包格式[10],此協(xié)議和大多數(shù)通信協(xié)議類似,傳輸?shù)臄?shù)據(jù)包包含了起始位,結(jié)束位以及校驗(yàn)和這三個(gè)部分,其格式如圖3所示,

        $為起始位,#為結(jié)束位,Data為數(shù)據(jù)部分,Checksum是將數(shù)據(jù)部分所有字符的ASCLL碼取和后與256取模所得的校驗(yàn)和。當(dāng)調(diào)試代理端在調(diào)試過(guò)程中接收到GDB端發(fā)送的消息時(shí),就會(huì)對(duì)消息中的數(shù)據(jù)部分進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)的結(jié)果給GDB端正確的回應(yīng)。“+”表示校驗(yàn)和正確,可進(jìn)行下一步傳輸,“-”表示校驗(yàn)和錯(cuò)誤,需要進(jìn)行重新校驗(yàn)。

        2調(diào)試器的實(shí)現(xiàn)

        2.1多核連接方法的實(shí)現(xiàn)

        目前大多數(shù)芯片廠商生產(chǎn)的芯片只留出單一的JTAG接口,而沒(méi)有考慮到處理器中內(nèi)核的個(gè)數(shù)。一般開(kāi)發(fā)者都是采用IEEE 1149.1標(biāo)準(zhǔn)菊花鏈連接方法來(lái)同步和處理多核的調(diào)試工作,如圖4所示。

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

        本設(shè)計(jì)利用菊花鏈連接的長(zhǎng)處,既能對(duì)多個(gè)IP核進(jìn)行同時(shí)調(diào)試以滿足觀察多核之間互相配合情況的要求,又能對(duì)特定的某一個(gè)IP核進(jìn)行調(diào)試。如圖5所示,首先我們?cè)谟布显黾恿四J竭x擇控制器Pattern_TAP,同時(shí)在軟件上附加模式開(kāi)關(guān)Switch_TAP,然后將接口進(jìn)行封裝。當(dāng)調(diào)度器發(fā)出Select_TAP1指令時(shí),指令經(jīng)過(guò)解釋后將選擇Pattern_TAP的bypass數(shù)據(jù)寄存器,對(duì)TAP1的TMS產(chǎn)生一個(gè)選擇信號(hào), 進(jìn)入單核調(diào)試模式,基于SylixOS操作系統(tǒng)的RealEvo-IDE調(diào)試軟件對(duì)IP1進(jìn)行調(diào)試。當(dāng)調(diào)度器發(fā)出TRST_n的信號(hào),對(duì)IP1的調(diào)試處于掛起狀態(tài)。通過(guò)這種方式也可以實(shí)現(xiàn)對(duì)其余IP核TAP的調(diào)試。當(dāng)調(diào)度器發(fā)出Select_DC命令時(shí),Pattern_TAP將DCflag標(biāo)志寄存器的值置0(默認(rèn)狀態(tài)下為1),進(jìn)入Daisy-Chain菊花鏈互連多核調(diào)試模式,TAP1的TDI輸入切入到Pattern_TAP的TDO輸出,TAPn的TDO輸出連接到JTAG接口的TDO上,而TAP之間通過(guò)菊花鏈的連接方法進(jìn)行互連,這樣統(tǒng)一開(kāi)發(fā)調(diào)試器便可實(shí)現(xiàn)對(duì)多個(gè)IP核進(jìn)行同時(shí)調(diào)試。調(diào)度器發(fā)出DC_EXIT命令時(shí),將退出多核調(diào)試。通過(guò)增加模式選擇控制器和模式開(kāi)關(guān)這種方式,便可滿足不同得調(diào)試需求。

        2.2多線程的實(shí)現(xiàn)

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

        2.3調(diào)試功能測(cè)試

        測(cè)試工作基于運(yùn)行在宿主機(jī)上的RealEvo-IDE,其主要功能是 SylixOS 工程管理和程序調(diào)試,可以通過(guò)JTAG接口、網(wǎng)口或串口與目標(biāo)機(jī)交互。RealEvo-IDE 的交叉編譯器在宿主機(jī)上編譯生成可以在目標(biāo)機(jī)上運(yùn)行的 SylixOS 鏡像文件,統(tǒng)一開(kāi)發(fā)調(diào)試器實(shí)現(xiàn)了宿主機(jī)與目標(biāo)機(jī)之間多核調(diào)試。下面進(jìn)行串口調(diào)試的測(cè)試,首先我們通過(guò)使用串口線將宿主機(jī)與目標(biāo)機(jī)相連,如圖7所示,在SylixOS Terminal中使用/dev/ttyS*參數(shù)輸入“debug” 命令。

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

        進(jìn)行上面的操作后,便可進(jìn)行調(diào)試,如查看內(nèi)存內(nèi)容。在“Memory”界面上點(diǎn)擊加號(hào)按鈕添加一個(gè)內(nèi)存監(jiān)控器,點(diǎn)擊“OK”后,默認(rèn)以十六進(jìn)制顯示該地址處的內(nèi)存數(shù)據(jù),點(diǎn)擊“New Renderings…”按鈕可以選擇其他類型的顯示方式,如9圖中以“Floating Point”類型為例。

        3 結(jié)束語(yǔ)

        本文基于SylixOS國(guó)產(chǎn)操作系統(tǒng)和集成開(kāi)發(fā)環(huán)境RealEvo-IDE,對(duì)多核調(diào)試的連接方法和GDB調(diào)試代理多線程調(diào)試進(jìn)行改進(jìn),設(shè)計(jì)了一個(gè)統(tǒng)一開(kāi)發(fā)調(diào)試器。該統(tǒng)一開(kāi)發(fā)調(diào)試器能夠良好地支持國(guó)產(chǎn)龍芯、飛騰、智芯等處理器的軟件調(diào)試。但是,統(tǒng)一開(kāi)發(fā)調(diào)試器調(diào)試功能和調(diào)試命令還需不斷的完善和優(yōu)化,給開(kāi)發(fā)者帶來(lái)更好的調(diào)試環(huán)境。

        參考文獻(xiàn):

        [1]蔡玉鑫. 嵌入式多核處理器核間通信方法的設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2015.

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

        [3]王超. 嵌入式多核調(diào)試器的研究與實(shí)現(xiàn)[D].電子科技大學(xué),2015.

        [4]楊群,李笑天,何虎.面向Superscalar與VLIW混合架構(gòu)處理器的調(diào)試器設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(05):84-87+163.

        [5]霍峰.基于某國(guó)產(chǎn)操作系統(tǒng)的交叉調(diào)試技術(shù)的研究[J].電子測(cè)試,2018(Z1):90-91.

        [6]姚文星. 基于JTAG的多核DSP調(diào)試系統(tǒng)的研究與實(shí)現(xiàn)[D].中國(guó)民航大學(xué),2014.

        [7]鐘太聰. 基于多核的GDB遠(yuǎn)程任務(wù)級(jí)調(diào)試改進(jìn)[D].電子科技大學(xué),2010.

        [8]韓斌,羅克露.基于aCoral操作系統(tǒng)遠(yuǎn)程調(diào)試器的設(shè)計(jì)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2013,11(05):38-40+70.

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

        [10]李琮,王竹平,費(fèi)曉琪.基于GDB的多核DSP平臺(tái)調(diào)試器的設(shè)計(jì)與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2015,32(01):72-75.

        [11]王玥. 嵌入式SoC可調(diào)試設(shè)計(jì)的研究[D].浙江大學(xué),2007.

        [12]李鵬程. 面向嵌入式系統(tǒng)的多核調(diào)試工具研究與實(shí)現(xiàn)[D].電子科技大學(xué),2017.

        日韩乱码人妻无码中文字幕视频| 大量漂亮人妻被中出中文字幕| 亚洲精品无码不卡在线播he| 又长又大又粗又硬3p免费视频 | 亚洲国产精品午夜一区| 国产老熟女精品一区二区| 欧美人牲交| 中文在线√天堂| 久久久精品人妻一区二区三区日本| 亚洲精品一区二区在线免费观看| 无码国产精品久久一区免费| 亚洲日韩∨a无码中文字幕| 国产精品不卡无码AV在线播放 | 超碰国产精品久久国产精品99 | 二区三区视频| 久久国产精品国产精品久久| 精品国产亚洲av麻豆| 亚洲国产精品第一区二区| 国产福利酱国产一区二区| 中文字幕亚洲视频三区| 久久影院午夜理论片无码| 亚洲欧美另类激情综合区| 国产精品麻豆A啊在线观看| 中文日本强暴人妻另类视频 | 亚洲国产欧美另类va在线观看| 亚洲日本中文字幕乱码| 人人妻人人澡人人爽国产一区| 精品人妻系列无码一区二区三区| 欧美日韩一二三区高在线| 久久日韩精品一区二区| 日本丰满熟妇videossex8k| 中文字幕AⅤ人妻一区二区| 麻豆av毛片在线观看| 亚洲av综合一区二区在线观看| 亚洲av无码电影网| 亚洲每天色在线观看视频| 中文字幕乱码熟女人妻在线| 国产精品综合一区二区三区| 在线视频中文字幕乱人伦| 美女视频黄a视频全免费网站色| 免费观看18禁无遮挡真人网站|