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

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

2021-08-18 23:23:16馬強(qiáng)周樂
電腦知識(shí)與技術(shù) 2021年18期

馬強(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)過(guò)程及實(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ī)主要通過(guò)集成開發(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)試操作的信息通過(guò)以太網(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)行過(guò)程中碰到硬件斷點(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嵌入式處理器來(lái)完成,該處理器主要完成上位機(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)行解析,將解析出來(lái)的數(shù)據(jù)經(jīng)過(guò)并串轉(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ì)主要通過(guò)C語(yǔ)言編寫程序調(diào)用以太網(wǎng)庫(kù)函數(shù)來(lái)實(shí)現(xiàn)的,開機(jī)后,以太網(wǎng)通信接口首先進(jìn)行初始化操作包括MAC地址,IP參數(shù)等。從層次化結(jié)構(gòu)中可以看出,以太網(wǎng)Plugs函數(shù)庫(kù)是類似于windows上的Sockets函數(shù)庫(kù)。主要用到以下幾個(gè)庫(kù)函數(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)度不超過(guò)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ā)送來(lái)的數(shù)據(jù)包,若數(shù)據(jù)包沒有來(lái),一直循環(huán)查詢直到數(shù)據(jù)包的到來(lái);將收到的數(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ī)來(lái)說(shuō)是主動(dòng)發(fā)送的,反映的是DSP的內(nèi)部狀態(tài),包括停止原因寄存器,觀察點(diǎn)狀態(tài)寄存器,執(zhí)行PC。

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

基于嵌入式系統(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í),就無(wú)法實(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)編輯:梁書】

主站蜘蛛池模板: 最新国产麻豆aⅴ精品无| 国产女人18毛片水真多1| 中国国产A一级毛片| 亚洲中文字幕久久精品无码一区| 免费人成又黄又爽的视频网站| 亚洲av日韩av制服丝袜| 欧美一级在线| 国产精品视频观看裸模 | 伊人久久久久久久久久| 国产精品女主播| 中文字幕在线看视频一区二区三区| 国产高清在线丝袜精品一区| 狠狠干综合| 秘书高跟黑色丝袜国产91在线| 91精品伊人久久大香线蕉| 亚洲三级成人| 国产欧美精品专区一区二区| 久久超级碰| 欧美亚洲一二三区| 亚洲国产系列| 日韩天堂在线观看| 欧美成人午夜影院| 欧美 国产 人人视频| 亚洲成人黄色在线观看| 精品久久香蕉国产线看观看gif | 一级毛片在线播放免费观看| 亚洲天堂网视频| 狠狠操夜夜爽| 亚洲无码熟妇人妻AV在线| 精品伊人久久久大香线蕉欧美| 亚洲狠狠婷婷综合久久久久| 97在线碰| 91精品国产综合久久香蕉922| 欧美精品一区二区三区中文字幕| 91精品久久久久久无码人妻| 国产中文在线亚洲精品官网| 欧美a在线视频| 一本一本大道香蕉久在线播放| 天天色综网| 国产精品国产三级国产专业不| 第一页亚洲| 综合色88| 亚洲欧美一区二区三区麻豆| 久草视频中文| 日韩av资源在线| 国产国拍精品视频免费看| 亚洲天堂免费| 成人福利在线观看| 国产日韩欧美黄色片免费观看| 国产精品一区在线麻豆| 乱码国产乱码精品精在线播放| 日韩在线1| 免费观看男人免费桶女人视频| 午夜影院a级片| 中国一级特黄大片在线观看| 久久精品人人做人人综合试看| 日本国产在线| 久久精品国产91久久综合麻豆自制| 99久久国产综合精品女同| 无码中文字幕乱码免费2| 日本国产精品一区久久久| 亚洲色大成网站www国产| 777午夜精品电影免费看| 婷婷综合缴情亚洲五月伊| 亚洲人成网站日本片| 国产99久久亚洲综合精品西瓜tv| 日韩高清成人| 99热国产这里只有精品9九| 天堂岛国av无码免费无禁网站 | 91无码人妻精品一区二区蜜桃 | 国产熟睡乱子伦视频网站| 手机成人午夜在线视频| 欧美日韩精品一区二区视频| 久久综合丝袜日本网| 亚洲女同欧美在线| 91视频精品| 国产成人AV综合久久| 久久国产精品影院| 人妻丰满熟妇αv无码| 国产乱子伦一区二区=| 97在线公开视频| 欧美日韩久久综合|