• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向自主可控DSP的調(diào)試系統(tǒng)軟硬件設(shè)計(jì)

      2021-08-18 23:23:16馬強(qiáng)周樂
      電腦知識(shí)與技術(shù) 2021年18期
      關(guān)鍵詞:驅(qū)動(dòng)程序

      馬強(qiáng) 周樂

      摘要:本文首先介紹了面向自主可控DSP的調(diào)試系統(tǒng)總體設(shè)計(jì)方案,對(duì)其硬件架構(gòu)進(jìn)行了闡述,并分析了其工作原理。隨后給出了固件程序開發(fā)、驅(qū)動(dòng)程序開發(fā),同時(shí)對(duì)調(diào)試代理程序的通信協(xié)議實(shí)現(xiàn)過程及實(shí)現(xiàn)流程進(jìn)行描述。利用該調(diào)試系統(tǒng),上位機(jī)工具鏈可以實(shí)現(xiàn)對(duì)目標(biāo)DSP的在線調(diào)試和在線編程。

      關(guān)鍵詞:調(diào)試系統(tǒng);驅(qū)動(dòng)程序;目標(biāo)DSP

      中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2021)18-0236-03

      開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

      Hardware and Software Design of Debug System for DSP

      MA Qiang, ZHOU Le

      (No.38th Research Institute,China Electronic Technology Group Corporation/AnHui Sliliepoch Technology Co.,Ltd,Hefei,230031,China)

      Abstract:Firstly, this paper introduces the overall design of DSP-oriented debugging system, describes its hardware architecture and analyzes its working principle. Then the firmware development and driver development are given, and the communication protocol implementation process and implementation flow of debugging agent are described. Using this debugging system, the upper computer tool chain can realize the on-line debugging and on-line programming of the target DSP.

      Key word:Debug system; Driver; TargetDSP

      1 DSP簡(jiǎn)介

      魂芯DSP是我國(guó)的一款全自主架構(gòu)設(shè)計(jì)的32位浮點(diǎn)數(shù)字信號(hào)處理器。本款處理器主要針對(duì)環(huán)境要求苛刻的應(yīng)用領(lǐng)域設(shè)計(jì),如彈載、機(jī)載領(lǐng)域雷達(dá)、對(duì)抗、SAR成像等,目的是有效保障高性能信息處理器裝備的自主可控。該DSP考慮到性能與資源功耗的平衡性,集成了1個(gè)新一代處理器內(nèi)核eC104E。

      2調(diào)試系統(tǒng)硬件架構(gòu)

      DSP在線仿真器是連接上位機(jī)開發(fā)環(huán)境到目標(biāo)調(diào)試DUT的關(guān)鍵路徑,它能實(shí)時(shí)控制目標(biāo)處理器,同時(shí)也能不斷更新實(shí)時(shí)狀態(tài)。圖1就是簡(jiǎn)單的邏輯示意圖。

      上位機(jī)主要通過集成開發(fā)環(huán)境里的調(diào)試功能軟件對(duì)DSP進(jìn)行各種調(diào)試操作:包括強(qiáng)制啟動(dòng)/停止、單步調(diào)試、斷點(diǎn)調(diào)試、觀察點(diǎn)調(diào)試等。每次調(diào)試操作的信息通過以太網(wǎng)口發(fā)送給ICE[1]。該款DSP在線調(diào)試資源如下:

      (1)硬件斷點(diǎn)

      在線調(diào)試邏輯電路為用戶提供了豐富的硬件斷點(diǎn)資源,可以同時(shí)設(shè)置64個(gè)斷點(diǎn)。當(dāng)DSP程序運(yùn)行過程中碰到硬件斷點(diǎn)時(shí),會(huì)自動(dòng)終止程序運(yùn)行,并停留在當(dāng)前狀態(tài),程序員可以訪問當(dāng)前時(shí)刻DSP的所有可見地址空間的資源,并對(duì)其中可寫的資源進(jìn)行修改。

      (2)觀察點(diǎn)

      在線調(diào)試邏輯為用戶提供了32個(gè)觀察點(diǎn)資源,這些觀察點(diǎn)對(duì)DSP數(shù)據(jù)存儲(chǔ)器的讀寫操作以及通用寄存器的寫操作敏感。當(dāng)用戶定義的讀寫存儲(chǔ)器操作或?qū)懲ㄓ眉拇嫫靼l(fā)生時(shí),會(huì)自動(dòng)中止DSP運(yùn)行,方便程序員觀察當(dāng)前DSP的狀態(tài)。

      (3)單步調(diào)試

      在線調(diào)試功能為用戶提供了指令單步調(diào)試功能。

      指令單步是指DSP處理完設(shè)定的指令個(gè)數(shù)之后自動(dòng)停止運(yùn)行。指令單步的步長(zhǎng)可調(diào),最小為1,最大為216-1。啟動(dòng)了指令單步調(diào)試功能后,如果在100個(gè)DSP處理器主時(shí)鐘周期內(nèi)還沒有執(zhí)行完1條指令,則自動(dòng)結(jié)束當(dāng)前的指令單步功能。

      其工作原理是:在線仿真器是負(fù)責(zé)接收主機(jī)調(diào)試器的各種調(diào)試指令,并且將各種調(diào)試指令轉(zhuǎn)換成JTAG串行數(shù)據(jù)流,數(shù)據(jù)流主要完成串并、并串的轉(zhuǎn)換。

      其工作原理是:在線仿真器是連接主機(jī)調(diào)試器和目標(biāo)處理器的軟硬件調(diào)試單元,負(fù)責(zé)主機(jī)軟件和底層硬件之間的通信。在線調(diào)試器由一個(gè)可編程的NIOS嵌入式處理器來完成,該處理器主要完成上位機(jī)數(shù)據(jù)的接收、處理、發(fā)送。調(diào)試器接收由以太網(wǎng)接口完成,以太網(wǎng)驅(qū)動(dòng)完成了串行數(shù)據(jù)流到buffer中的緩存,然后緩存中的數(shù)據(jù)包會(huì)根據(jù)提前約定好的調(diào)試通信協(xié)議解析成一組基本的目標(biāo)處理器能夠識(shí)別的數(shù)據(jù)地址隊(duì)列,分別存放在date ram、addr ram中,這些數(shù)據(jù)地址隊(duì)進(jìn)而進(jìn)入下一級(jí)驅(qū)動(dòng)器模塊,驅(qū)動(dòng)器模塊實(shí)現(xiàn)了JTAG的標(biāo)準(zhǔn)IEEE1194.1,完成數(shù)據(jù)的并串轉(zhuǎn)換,提交給目標(biāo)處理器。

      該在線仿真器的代碼運(yùn)行硬件平臺(tái)資源是ALTERA處理器的NIOS軟核,配置的片外程序存儲(chǔ)器是EPCS64(8Mbyte),片外數(shù)據(jù)存儲(chǔ)器是CY7C1368(16Mbyte)。

      3 HX1041調(diào)試系統(tǒng)軟件設(shè)計(jì)

      3.1軟件總體結(jié)構(gòu)

      該DSP調(diào)試系統(tǒng)的軟件開發(fā)中,采用“宿主機(jī)——目標(biāo)機(jī)”的分布式結(jié)構(gòu)。要完成開發(fā)調(diào)試,上位機(jī)與DUT之間必須能進(jìn)行有效的通信。該通信協(xié)議是建立在以太網(wǎng)通信協(xié)議基礎(chǔ)之上的純應(yīng)用層面的一種協(xié)議,該通信協(xié)議要保證數(shù)據(jù)傳送的高可靠性、高效率、可擴(kuò)展性。

      該通信協(xié)議規(guī)定,采用“一應(yīng)——一答”的方式,該方式的執(zhí)行順序是仿真器接收到上位機(jī)的調(diào)試命令,并且根據(jù)通信協(xié)議進(jìn)行解析,將解析出來的數(shù)據(jù)經(jīng)過并串轉(zhuǎn)換變成JTAG數(shù)據(jù)碼流進(jìn)入目標(biāo)處理器。應(yīng)答包一般由仿真器直接返回上位機(jī),有些命令比如讀等操作,需要獲得目標(biāo)處理器的反饋,接收到反饋后,可以將獲得數(shù)據(jù)返回上位機(jī),并滿足一定的通信標(biāo)準(zhǔn)實(shí)現(xiàn)。實(shí)際通信包中,目標(biāo)機(jī)需要告訴上位機(jī)一些信息,比如是否停止,停止原因、異常原因等。因此,協(xié)議規(guī)范了目標(biāo)機(jī)向上位機(jī)反饋的通知信息,目標(biāo)機(jī)可以向宿主機(jī)發(fā)送通知信息,但宿主機(jī)接收到后不必再做確認(rèn)應(yīng)答。通信信息包是由約定的十六進(jìn)制數(shù)據(jù)形成的具有開始、結(jié)束標(biāo)志的字節(jié)序列[3]。

      3.2通信接口軟件設(shè)計(jì)

      根據(jù)TCP/IP協(xié)議,數(shù)據(jù)鏈路層和物理層相關(guān)邏輯由LAN91C111完成,網(wǎng)絡(luò)層uc/TCP-IP和傳輸層(應(yīng)用層)的協(xié)議解析等通信功能由NIOS II中的嵌入式LwIP協(xié)議棧實(shí)現(xiàn)。具有很好的可移植性,能夠不同于CPU、需要RTOS的支持[2]。

      在底層驅(qū)動(dòng)程序設(shè)計(jì)完畢以及以太網(wǎng)協(xié)議棧加載完畢后,通信應(yīng)用程序的設(shè)計(jì)主要通過C語言編寫程序調(diào)用以太網(wǎng)庫函數(shù)來實(shí)現(xiàn)的,開機(jī)后,以太網(wǎng)通信接口首先進(jìn)行初始化操作包括MAC地址,IP參數(shù)等。從層次化結(jié)構(gòu)中可以看出,以太網(wǎng)Plugs函數(shù)庫是類似于windows上的Sockets函數(shù)庫。主要用到以下幾個(gè)庫函數(shù)作為數(shù)據(jù)的接收發(fā)送到開辟到空間的隊(duì)列上,例如:

      ①LAN91C111_enable();? ? ? ? ? ? ? ?//lan91c111使能

      ②LAN91C111_reset();? ? ? ? ? ? ? //lan91c111復(fù)位

      ③LAN91C111_init_phy();? ? ? ? ? ? ?//初始化PHY

      ④alt_u32? IP4_ADDR( a,b,c,d){

      alt_u32? ipadr;

      ipadr=(a&0xff)<<24;

      ipadr=ipadr+((b&0xff)<<16);

      ipadr=ipadr+((c&0xff)<<8);

      ipadr=ipadr+(d&0xff);

      returnhtonl(ipadr);

      }? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//ip地址的設(shè)置

      ⑤OSTaskCreateExt ( TcpSearchGatwayTask,

      NULL,

      (void *)&TCP_SERVER_STK1[2048-1],

      INIT_PRIORITY,

      INIT_PRIORITY,

      TCP_SERVER_STK1,

      2048,

      NULL,

      0 );? ? ? ? ? ? ? ? ? ? ? //Tcp任務(wù)的建立

      ⑥r(nóng)ecv_data_num = recvfrom(serveSocket, (char * )recv_buff, 256, 0,(structsockaddr* )&clientAddr, &sockAddrSize);? ? ? ? ? ? ? //接收socket的建立

      ⑦sendto(sendsocket,send_buffer,13,0,(structsockaddr*)&sendClientAddr,

      sizeof(sendClientAddr));? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//發(fā)送socket的建立

      3.3通信協(xié)議格式

      本協(xié)議稱系統(tǒng)中傳輸?shù)囊欢斡袑?shí)際含義的數(shù)據(jù)信息為數(shù)據(jù)包。數(shù)據(jù)包是有明確起始和結(jié)束的一段字符流。每個(gè)數(shù)據(jù)包的總長(zhǎng)度不超過4096字節(jié)。調(diào)試命令標(biāo)識(shí)區(qū)分為各種命令,如單步、運(yùn)行、讀寫寄存器等。調(diào)試命令標(biāo)識(shí)占1個(gè)字節(jié)。序號(hào)包標(biāo)識(shí)每個(gè)包,命令包和其應(yīng)答包的包序號(hào)相同,包序號(hào)定義為0遞增,占1個(gè)字節(jié),附加信息表示包的一些額外信息,便于擴(kuò)展,占一個(gè)字節(jié)。信息傳輸采用四字符同步結(jié)構(gòu),同步字符(字頭)由四個(gè)十六進(jìn)制字節(jié):“0x5A”“0xA5”“0x7B”“0XB7”組成。搜索到正確同步字符,表示可以開始接收一個(gè)完整數(shù)據(jù)包。下表1/2是一對(duì)典型的讀寄存器的通信請(qǐng)求和應(yīng)答包。

      3.4調(diào)試代理程序設(shè)計(jì)流程

      3.3章節(jié)介紹了基于該DSP調(diào)試通信協(xié)議的基本規(guī)范,在該部分中將代理程序的整體程序框架進(jìn)行描述。

      首先上電建立網(wǎng)絡(luò)連接,調(diào)試代理程序開始查詢從上位機(jī)發(fā)送來的數(shù)據(jù)包,若數(shù)據(jù)包沒有來,一直循環(huán)查詢直到數(shù)據(jù)包的到來;將收到的數(shù)據(jù)包緩存到接收隊(duì)列中,對(duì)接收到數(shù)據(jù)包進(jìn)行幀頭幀尾解析,若正確將該數(shù)據(jù)包寄存至下一級(jí)緩存隊(duì)列中。后續(xù)代理程序會(huì)按照接收到的命令指示,翻譯成不同的操作DSP的命令組合,比如讀寫DSP寄存器、存儲(chǔ)器、復(fù)DSP等。

      有一類特殊的命令是上位機(jī)指令發(fā)下去后,需要調(diào)試代理程序一直查詢DSP的工作狀態(tài)直到觸發(fā)某一flag,如斷點(diǎn)觸發(fā)、觀察點(diǎn)觸發(fā),單步結(jié)束,暫停執(zhí)行。為此,在代碼中單獨(dú)設(shè)計(jì)了一個(gè)獨(dú)立于主函數(shù)的輪詢函數(shù),可以在運(yùn)行命令下發(fā)完后,將flag設(shè)置成1,輪詢函數(shù)會(huì)進(jìn)入狀態(tài)查詢并以符合通信包的方式反饋給上位機(jī),此輪詢函數(shù)對(duì)上位機(jī)來說是主動(dòng)發(fā)送的,反映的是DSP的內(nèi)部狀態(tài),包括停止原因寄存器,觀察點(diǎn)狀態(tài)寄存器,執(zhí)行PC。

      4結(jié)束語

      基于嵌入式系統(tǒng)搭建的硬件仿真器調(diào)試系統(tǒng)經(jīng)后期用戶的使用,能實(shí)現(xiàn)包括停止、運(yùn)行、周期單步、指令單步、讀寫寄存器、讀寫內(nèi)存、讀寫DDR、讀寫片外空間、查詢等。同時(shí)也表現(xiàn)出了較好的穩(wěn)定性,實(shí)際測(cè)試加載速度穩(wěn)定在100-200 KB/s左右,滿足了調(diào)試開發(fā)所有的設(shè)計(jì)需求。圖3是用在線調(diào)試系統(tǒng)正在調(diào)試DSP的開發(fā)環(huán)境。

      網(wǎng)口作為通信接口可以實(shí)現(xiàn)遠(yuǎn)程通信,但是它也有局限性,比如PC一般只有一個(gè)網(wǎng)絡(luò)接口,當(dāng)接口用作其他使用時(shí),就無法實(shí)現(xiàn)網(wǎng)絡(luò)調(diào)式,目前正在開發(fā)基于USB3.0接口和以太網(wǎng)接口合一的在線仿真器,可以既實(shí)現(xiàn)遠(yuǎn)程調(diào)試,也可解決接口不被占用的問題。

      參考文獻(xiàn):

      [1] 荊濤,趙宏智,王沁.嵌入式微處理器JTAG接口中TAP控制器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007,23(17):8-9,14.

      [2]SMSC公司,LAN91C111 datasheet[EB/OL].http://www.smsc.com

      [3]黃光紅.嵌入式軟件開發(fā)環(huán)境中遠(yuǎn)程調(diào)試器的研究與設(shè)計(jì)[D].合肥:合肥工業(yè)大學(xué)碩士論文, 2007.

      【通聯(lián)編輯:梁書】

      猜你喜歡
      驅(qū)動(dòng)程序
      計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
      電子制作(2018年17期)2018-09-28 01:56:58
      基于MPC8280的CPU單元與內(nèi)部總線驅(qū)動(dòng)程序設(shè)計(jì)
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      如何為老顯卡安裝Windows7驅(qū)動(dòng)程序? 等
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      體驗(yàn)VIA平臺(tái)超級(jí)加速路
      石林| 九江市| 张家港市| 云浮市| 安阳市| 开鲁县| 孙吴县| 临邑县| 禄丰县| 巴彦淖尔市| 淮阳县| 建宁县| 哈密市| 安岳县| 嘉禾县| 巴马| 黄梅县| 正安县| 蒲城县| 万荣县| 奇台县| 天台县| 正定县| 天镇县| 车险| 八宿县| 广德县| 威远县| 腾冲县| 神木县| 黄平县| 宝鸡市| 镇江市| 大安市| 都兰县| 玛沁县| 许昌县| 沁阳市| 新宾| 五家渠市| 滕州市|