專利名稱:嵌入式處理器高速在線下載直通通道的設(shè)計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì)方法。通過(guò)在 嵌入式處理器在線調(diào)試接口模塊中增加專用的下載直通通道,可迅速提高主機(jī) 下載程序和數(shù)據(jù)的速度,提高代碼在線調(diào)試效率。
技術(shù)背景隨著集成電路設(shè)計(jì)進(jìn)入片上系統(tǒng)(SoC)時(shí)代,嵌入式系統(tǒng)的設(shè)計(jì)復(fù)雜度日 益增加,功能不斷的增強(qiáng)。嵌入式處理器是嵌入式系統(tǒng)的核心。嵌入式處理器 的處理性能的不斷提高,使得原來(lái)需要用專用硬件電路實(shí)現(xiàn)的功能可以被設(shè)計(jì) 成軟件來(lái)實(shí)現(xiàn)。用軟件實(shí)現(xiàn)的功能可以有效提高系統(tǒng)的靈活性和擴(kuò)展性。增加 新的功能或者修改設(shè)計(jì)時(shí)留下的錯(cuò)誤,都可以通過(guò)升級(jí)軟件來(lái)快速完成。因此 對(duì)于嵌入式系統(tǒng)設(shè)計(jì)者來(lái)說(shuō),在處理器性能能夠滿足特定的需求的情況下,那 些需要實(shí)現(xiàn)的特定的功能會(huì)被優(yōu)先考慮設(shè)計(jì)成軟件。這樣就導(dǎo)致嵌入式系統(tǒng)的 軟件部分不斷增加。傳統(tǒng)的嵌入式系統(tǒng)通過(guò)在線調(diào)試的方法,在嵌入式硬件平臺(tái)上調(diào)試目標(biāo)軟 件。在線調(diào)試指,用戶通過(guò)調(diào)試主機(jī)與嵌入式處理器的在線調(diào)試接口之間通信, 跟蹤和控制嵌入式處理器的執(zhí)行過(guò)程,以達(dá)到調(diào)試嵌入式軟件的要求。調(diào)試主 機(jī)和嵌入式處理器在線調(diào)試接口通過(guò)標(biāo)準(zhǔn)JTAG進(jìn)行通信。由于JTAG是一個(gè)串 行的總線,數(shù)據(jù)傳輸速率相對(duì)較慢。調(diào)試過(guò)程中, 一般需要與嵌入式處理器相關(guān)的工具鏈的支持。工具鏈指支 持嵌入式處理器軟件編譯、鏈接和調(diào)試的一整套軟件程序。嵌入式軟件一般采 用交叉編譯的方法,在主機(jī)上用工具鏈將目標(biāo)代碼進(jìn)行編譯,鏈接,然后通過(guò) 調(diào)試程序下載到目標(biāo)開(kāi)發(fā)系統(tǒng)中進(jìn)行在線調(diào)試。 一般嵌入式系統(tǒng)在線調(diào)試過(guò)程 如圖1所示。由于調(diào)試通信的總線采用數(shù)據(jù)率很低的JTAG串行總線(JTAG總線一般被 用作邊界掃描,嵌入式處理器在線調(diào)試模塊采用該總線協(xié)議是為了復(fù)用引腳), 因此傳統(tǒng)的調(diào)試接口通信速度一般很低(一般都在10K以內(nèi))。傳統(tǒng)的調(diào)試接口 采用如圖2所示的模式下載數(shù)據(jù)。從圖2發(fā)現(xiàn)下載代理服務(wù)程序下載一個(gè)字的 數(shù)據(jù)需要經(jīng)過(guò)3個(gè)階段的操作。第一階段需要把當(dāng)前下載的數(shù)據(jù)的地址移入處 理器掃描鏈中,然后由處理器執(zhí)行之后把地址保存到處理器的通用寄存器中。 第二階段把下載的數(shù)據(jù)移入處理器掃描鏈中,同樣由處理器執(zhí)行后保存到處理
器的通用寄存器中。第三階段通過(guò)向處理器掃描鏈中移入一條內(nèi)存寫操作指令, 指示處理器運(yùn)行內(nèi)存寫操作,將數(shù)據(jù)寫到相應(yīng)的內(nèi)存中。由于每個(gè)階段都需要由軟件驅(qū)動(dòng)在線調(diào)試器的TAP控制器,產(chǎn)生了大量的冗余數(shù)據(jù)操作,極大的限 制的下載速度。隨著嵌入式軟件規(guī)模的不斷擴(kuò)大,下載的數(shù)據(jù)和程序數(shù)據(jù)量急劇上升。緩 慢的下載速度己經(jīng)成為限制嵌入式軟件工程師調(diào)試效率的瓶頸。因此提高嵌入 式處理器的在線下載和調(diào)試速度以成為嵌入式處理器實(shí)際應(yīng)用中必須解決的迫 在眉睫的工作。為了解決這一瓶頸,此前的一些工作主要集中在兩個(gè)方面一 個(gè)方面是在通過(guò)提高調(diào)試器JTAG的頻率,通過(guò)提高通信頻率來(lái)提高下載數(shù)據(jù)的 帶寬;另一個(gè)方面的工作是先用傳統(tǒng)在線調(diào)試接口下載一段特定的小程序 (bootload)到內(nèi)存,然后運(yùn)行程序,該程序可以通過(guò)嵌入式系統(tǒng)的其他高速接 口 (如網(wǎng)卡,USB接口)等下載數(shù)據(jù),提高下載速度。第一種方法雖然做法上 最簡(jiǎn)單,但是受到頻率提升的限制;第二種方法雖然在一定程度上提高了下載 速度,但是它是通過(guò)間接的方法來(lái)下載程序,用戶需要設(shè)計(jì)專用的下載程序, 不同的應(yīng)用擴(kuò)展性不好,下載過(guò)程需要由用戶來(lái)創(chuàng)建?;诮鉀Q下載速度和方 便用戶調(diào)試的出發(fā)點(diǎn),本發(fā)明提出了一種通過(guò)減少JTAG總線之間的冗余數(shù)據(jù)通 信,增加通信效率,設(shè)置專用硬件下載直通通道,實(shí)現(xiàn)了對(duì)嵌入式處理器在線 下載速度的大幅度提升。 發(fā)明內(nèi)容本發(fā)明的目的是提供一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì)方法。特征包括如下1) 在在線硬件調(diào)試接口中增加一種旨在進(jìn)行批量數(shù)據(jù)下載的直通通道模式;2) 在線調(diào)試接口內(nèi)部設(shè)置塊下載起始地址寄存器和數(shù)據(jù)緩存寄存器,用來(lái) 寄存來(lái)自下載代理程序發(fā)送的起始地址和連續(xù)的數(shù)據(jù);3) 在線調(diào)試接口內(nèi)部自動(dòng)生成當(dāng)前下載數(shù)據(jù)對(duì)應(yīng)的內(nèi)存地址,數(shù)據(jù)地址支 持按字,半字和字節(jié)下載;4) 在線調(diào)試接口自動(dòng)完成處理器掃描鏈的填充以及通過(guò)處理器流水線的接 口將預(yù)設(shè)的命令或數(shù)據(jù)下載到流水線中,由流水線完成指令執(zhí)行的操作;5) 下載直通通道數(shù)據(jù)緩存寄存器有緩沖機(jī)制,支持在發(fā)送數(shù)據(jù)的同時(shí),接 收下一個(gè)數(shù)據(jù)以進(jìn)一步提高下載速度;
6) 在線調(diào)試接口模塊支持普通下載模式和直通下載模式的動(dòng)態(tài)切換;7) 下載代理程序在下載批量數(shù)據(jù)時(shí),先設(shè)置下載起始地址,然后連續(xù)下載 批量數(shù)據(jù)。所述的在在線硬件調(diào)試接口中增加一種旨在進(jìn)行批量數(shù)據(jù)下載的直通通道 模式下載的方式從原來(lái)單地址下載單個(gè)數(shù)據(jù)轉(zhuǎn)變?yōu)閱蔚刂芳雌鹗嫉刂废螺d批 量數(shù)據(jù)。所述的在線調(diào)試接口內(nèi)部設(shè)置塊下載起始地址寄存器和數(shù)據(jù)緩存寄存器, 用來(lái)寄存來(lái)自下載代理程序發(fā)送的起始地址和連續(xù)的數(shù)據(jù)在原來(lái)在線調(diào)試接 口原有的寄存器上,擴(kuò)展出為下載直通通道專用的兩個(gè)寄存器,外部接口和訪 問(wèn)操作與原來(lái)的寄存器相同。所述的在線調(diào)試接口內(nèi)部自動(dòng)生成當(dāng)前下載數(shù)據(jù)對(duì)應(yīng)的內(nèi)存地址,數(shù)據(jù)地 址支持按字,半字和字節(jié)下載通過(guò)在線調(diào)試接口內(nèi)部硬件邏輯的狀態(tài)控制, 自動(dòng)計(jì)算出下一次需要下載的數(shù)據(jù)的目標(biāo)地址;硬件控制邏輯根據(jù)配置信息, 自動(dòng)按照字,半字和字節(jié)進(jìn)行下載。所述的在線調(diào)試接口自動(dòng)完成處理器掃描鏈的填充以及通過(guò)處理器流水線的接口將預(yù)設(shè)的命令或數(shù)據(jù)下載到流水線中,由流水線完成指令執(zhí)行的操作下載直通通道通過(guò)硬件狀態(tài)轉(zhuǎn)換,自動(dòng)將當(dāng)前等待下載的數(shù)據(jù)所需的地址和數(shù)據(jù)信息通過(guò)處理器的掃描鏈移入處理器的流水線中,處理器根據(jù)掃描鏈移入的操作和數(shù)據(jù)進(jìn)行相應(yīng)的操作。所述的載直通通道數(shù)據(jù)緩存寄存器有緩沖機(jī)制,支持在發(fā)送數(shù)據(jù)的同時(shí), 接收下一個(gè)數(shù)據(jù)以進(jìn)一步提高下載速度該寄存器支持在當(dāng)前數(shù)據(jù)的下載過(guò)程中,處理下一個(gè)從JTAG串行口輸入的數(shù)據(jù),即在下載代理服務(wù)程序不考慮當(dāng)前 數(shù)據(jù)是否已經(jīng)由下載直通通道下載完畢的情況下,直接發(fā)送下一個(gè)數(shù)據(jù),消除 了冗余的狀態(tài)查詢過(guò)程,提高數(shù)據(jù)下載率。所述的在線調(diào)試接口模塊支持普通下載模式和直通下載模式的動(dòng)態(tài)切換 下載代理服務(wù)程序可以通過(guò)關(guān)閉下載直通模式使能位,直接關(guān)閉下載直通模式, 此后的數(shù)據(jù)可直接通過(guò)普通模式下載。所述的下載代理程序在下載批量數(shù)據(jù)時(shí),先設(shè)置下載起始地址,然后連續(xù) 下載批量數(shù)據(jù)下載代理服務(wù)程序在下載批量數(shù)據(jù)過(guò)程中,首先下載起始地址, 然后下載批量數(shù)據(jù),依次循環(huán)往復(fù),下載完所有的數(shù)據(jù)。本發(fā)明設(shè)計(jì)方法簡(jiǎn)便,易于實(shí)現(xiàn),硬件開(kāi)銷很小,且可以兼容原有版本的 在線下載程序,對(duì)于提高嵌入式系統(tǒng)的調(diào)試效率將起到積極的作用。
圖1是傳統(tǒng)嵌入式系統(tǒng)的調(diào)試過(guò)程示意圖;圖2是傳統(tǒng)下載代理服務(wù)程序下載數(shù)據(jù)經(jīng)歷的3個(gè)過(guò)程示意圖; 圖3是高速下載直通通道下載過(guò)程示意圖; 圖4是高速下載直通通道硬件實(shí)現(xiàn)原理圖; 圖5是高速下載直通通道下載過(guò)程控制狀態(tài)轉(zhuǎn)換圖。
具體實(shí)施方式
本發(fā)明減少了傳統(tǒng)下載模式中冗余的數(shù)據(jù)地址設(shè)定和寫內(nèi)存操作的設(shè)定, 只保留有效數(shù)據(jù)下載單一過(guò)程,提高了數(shù)據(jù)下載的有效率,從而能夠有效提高了數(shù)據(jù)下載的帶寬。嵌入式處理器高速在線下載直通通道的設(shè)計(jì)方法1 )在在線硬件調(diào)試接口中增加一種旨在進(jìn)行批量數(shù)據(jù)下載的直通通道模式;2) 在線調(diào)試接口內(nèi)部設(shè)置塊下載起始地址寄存器和數(shù)據(jù)緩存寄存器,用來(lái) 寄存來(lái)自下載代理程序發(fā)送的起始地址和連續(xù)的數(shù)據(jù);3) 在線調(diào)試接口內(nèi)部自動(dòng)生成當(dāng)前下載數(shù)據(jù)對(duì)應(yīng)的內(nèi)存地址,數(shù)據(jù)地址支 持按字,半字和字節(jié)下載;4) 在線調(diào)試接口自動(dòng)完成處理器掃描鏈的填充以及通過(guò)與處理器流水線的 接口將預(yù)設(shè)的命令或數(shù)據(jù)下載到流水線中,由流水線完成指令執(zhí)行的操作;5) 下載直通通道數(shù)據(jù)緩存寄存器有緩沖機(jī)制,支持在發(fā)送數(shù)據(jù)的同時(shí),接 收下一個(gè)數(shù)據(jù)以進(jìn)一步提高下載速度;6) 在線調(diào)試接口模塊支持普通下載模式和直通下載模式的動(dòng)態(tài)切換;7) 下載代理程序在下載批量數(shù)據(jù)時(shí),先設(shè)置下載起始地址,然后連續(xù)下載 批量數(shù)據(jù)。所述的在在線硬件調(diào)試接口中增加一種旨在進(jìn)行批量數(shù)據(jù)下載的直通通道 模式下載的方式從原來(lái)單地址下載單個(gè)數(shù)據(jù)轉(zhuǎn)變?yōu)閱蔚刂芳雌鹗嫉刂废螺d批 量數(shù)據(jù)。下載過(guò)程為單地址多數(shù)據(jù),如圖3所示。下載代理服務(wù)程序首先通過(guò) 設(shè)置下載直通通道使能位開(kāi)啟下載直通通道。然后選中起始地址寄存器,設(shè)置 好起始地址。最后選中下載直通通道數(shù)據(jù)緩沖寄存器,連續(xù)下載數(shù)據(jù)。數(shù)據(jù)以 批量方式下載,極大的提高下載速率。所述的在線調(diào)試接口內(nèi)部設(shè)置塊下載起始地址寄存器和數(shù)據(jù)緩存寄存器, 用來(lái)寄存來(lái)自下載代理程序發(fā)送的起始地址和連續(xù)的數(shù)據(jù)在原來(lái)在線調(diào)試接
口原有的寄存器上,擴(kuò)展出為下載直通通道專用的兩個(gè)寄存器,外部接口和訪 問(wèn)操作與原來(lái)的寄存器相同。在原有的調(diào)試接口通道中,可以簡(jiǎn)單擴(kuò)展出兩個(gè) 專為下載直通通道設(shè)計(jì)的寄存器起始地址寄存器和數(shù)據(jù)緩沖寄存器。兩個(gè)寄 存器分別了32位硬件寄存器。所述的在線調(diào)試接口內(nèi)部自動(dòng)生成當(dāng)前下載數(shù)據(jù)對(duì)應(yīng)的內(nèi)存地址,數(shù)據(jù)地 址支持按字,半字和字節(jié)下載通過(guò)在線調(diào)試接口內(nèi)部硬件邏輯的狀態(tài)控制,自動(dòng)計(jì)算出下一次需要下載的數(shù)據(jù)的目標(biāo)地址;硬件控制邏輯根據(jù)配置信息, 自動(dòng)按照字,半字和字節(jié)進(jìn)行下載。下載直通通道支持以字(4字節(jié)),半字(2 字節(jié))和字節(jié)為單位進(jìn)行批量下載。在在線調(diào)試器的控制寄存器中,擴(kuò)展2位寄存器表示處理器當(dāng)前下載的模式OO表示以字為單位進(jìn)行下載,Ol表示以半字為單位進(jìn)行下載,IO表示以字節(jié)為單位進(jìn)行下載,ll表示以未定義的長(zhǎng)度。 默認(rèn)狀態(tài)按照字為單位進(jìn)行下載,盡可能提高下載的效率。下載直通通道模式 下,在線調(diào)試接口動(dòng)態(tài)自動(dòng)生成下一個(gè)需要被下載數(shù)據(jù)的地址。該地址由一個(gè) 32位的硬件地址加法單元計(jì)算得到,地址可以以4字節(jié),2字節(jié)和1字節(jié)為單 位增長(zhǎng)。這要求上層下載代理服務(wù)程序在下載數(shù)據(jù)前必須通過(guò)設(shè)定下載直通通 道的地址遞增模式位預(yù)先告訴硬件地址累加器。32位的硬件地址累加模塊將根 據(jù)上層軟件設(shè)定的遞增模式,直接選擇地址增加的單位。在線調(diào)試接口自動(dòng)完成處理器掃描鏈的填充以及通過(guò)與處理器流水線的接 口將預(yù)設(shè)的命令或數(shù)據(jù)下載到流水線中,由流水線完成指令執(zhí)行的操作下載 直通通道通過(guò)硬件狀態(tài)轉(zhuǎn)換,自動(dòng)將當(dāng)前等待下載的數(shù)據(jù)所需的地址和數(shù)據(jù)信 息通過(guò)處理器的掃描鏈移入處理器的流水線中,處理器根據(jù)掃描鏈移入的操作 和數(shù)據(jù)進(jìn)行相應(yīng)的操作。直通通道的數(shù)據(jù)自動(dòng)完成掃描鏈的填充以及處理器流 水線接口預(yù)設(shè)命令和數(shù)據(jù),最終將數(shù)據(jù)下載到目標(biāo)內(nèi)存中,需要經(jīng)歷以下幾個(gè) 階段如圖5所示1. 空閑狀態(tài)空閑狀態(tài)是一種直通通道關(guān)閉的模式。上電復(fù)位后,下載直通 通道自動(dòng)進(jìn)入該狀態(tài)。2. 等待起始地址狀態(tài)如果直通通道被開(kāi)啟,控制狀態(tài)自動(dòng)由空閑狀態(tài)進(jìn)入 本狀態(tài)。本狀態(tài)的主要工作是等待從下載代理服務(wù)程序發(fā)送而來(lái)的數(shù)據(jù)地址, 即等待下載的起始地址。3. 地址發(fā)送狀態(tài)如果成功收到由下載代理服務(wù)程序發(fā)送而來(lái)的數(shù)據(jù)起始地 址,立刻進(jìn)入本狀態(tài)。本狀態(tài)的主要工作是將準(zhǔn)備好的起始地址發(fā)送至處理器 掃描鏈。掃描鏈填充完畢后,控制處理器退出調(diào)試模式執(zhí)行地址準(zhǔn)備工作(將 地址存入處理器的通用寄存器中)。4. 數(shù)據(jù)等待狀態(tài)地址被成功發(fā)送后,立刻進(jìn)入本狀態(tài)。本狀態(tài)的任務(wù)是等待從下載代理服務(wù)程序端下載的數(shù)據(jù)。如果數(shù)據(jù)被成功接收,立刻進(jìn)入數(shù)據(jù)發(fā) 送階段。如果代理服務(wù)程序移入的是一個(gè)新的地址,則狀態(tài)返回至地址發(fā)送階 段,按步驟3方式重新設(shè)置起始地址。5. 數(shù)據(jù)發(fā)送狀態(tài)當(dāng)數(shù)據(jù)被成功接收后,下載直通通道立即設(shè)置處理器掃描 鏈,將當(dāng)前接收到的數(shù)據(jù)與相關(guān)的控制指令移送至處理器掃描鏈,并控制處理 器退出調(diào)試模式進(jìn)行指令執(zhí)行,將當(dāng)前的數(shù)據(jù)存入相應(yīng)的通用寄存器中。6. 下載命令產(chǎn)生狀態(tài)當(dāng)處理器將數(shù)據(jù)地址和數(shù)據(jù)內(nèi)容成功的保存至處理器 的通用寄存器后,需要向處理器發(fā)出內(nèi)存寫操作的指令,從而使數(shù)據(jù)可以被成 功的下載到目標(biāo)地址中。由于下載直通通道支持以字,半字和字節(jié)為單位進(jìn)行 批量下載,因此,該狀態(tài)根據(jù)下載模式選擇生成STW, STH或者STB指令。7. 指令發(fā)送狀態(tài)指令發(fā)送狀態(tài)下,指令被發(fā)送至處理器的流水線進(jìn)行執(zhí)行。8. 指令完成等待狀態(tài)由于下載指令的執(zhí)行需要時(shí)間,該狀態(tài)用來(lái)等待下載指令從流水線中執(zhí)行完成。下一下載地址產(chǎn)生狀態(tài)該狀態(tài)是整個(gè)下載直通通道的核心狀態(tài)。該狀態(tài) 中,硬件將根據(jù)當(dāng)前直通通道的下載模式,自動(dòng)生成下一下載數(shù)據(jù)的目標(biāo)地址。 該狀態(tài)取代原先通過(guò)下載代理服務(wù)程序設(shè)置數(shù)據(jù)地址的過(guò)程,硬件生成地址僅 需要一個(gè)時(shí)鐘周期,極大的提高了下載速率。下載地址產(chǎn)生后,狀態(tài)將自動(dòng)轉(zhuǎn) 入地址發(fā)送階段,將當(dāng)前由硬件自動(dòng)生成的下載地址下載到處理器中。由于下 載地址的發(fā)送,僅改變處理器中的寄存器,在下載服務(wù)程序下一個(gè)控制或數(shù)據(jù) 到來(lái)之前,提前下載地址是安全的并且被可撤銷的。下載直通通道數(shù)據(jù)緩存寄存器有緩沖機(jī)制,支持在發(fā)送數(shù)據(jù)的同時(shí),接收 下一個(gè)數(shù)據(jù)以進(jìn)一步提高下載速度該寄存器支持在當(dāng)前數(shù)據(jù)的下載過(guò)程中,處理下一個(gè)從JTAG串行口輸入的數(shù)據(jù),即在下載代理服務(wù)程序不考慮當(dāng)前數(shù)據(jù)是否已經(jīng)由下載直通通道下載完畢的情況下,直接發(fā)送下一個(gè)數(shù)據(jù),消除了冗 余的狀態(tài)査詢過(guò)程,提高數(shù)據(jù)下載率。下載代理服務(wù)程序通過(guò)驅(qū)動(dòng)在線調(diào)試器的TAP控制器(標(biāo)準(zhǔn)JTAG狀態(tài)轉(zhuǎn)換機(jī)制),將數(shù)據(jù)按照協(xié)議要求,以串行數(shù)據(jù) 的方式發(fā)送到在線調(diào)試接口的移位寄存器中。移位寄存器負(fù)責(zé)將調(diào)試代理服務(wù) 程序發(fā)送過(guò)來(lái)的串行數(shù)據(jù)根據(jù)協(xié)議的要求進(jìn)行解析,并且將串行數(shù)據(jù)變成并行 數(shù)據(jù)。TAP控制器將移位完成后并行數(shù)據(jù)發(fā)送到數(shù)據(jù)緩沖寄存器或者地址寄存 器中。在批量傳輸?shù)钠鹗茧A段,起始地址需要通過(guò)TAP控制器移入地址寄存器
中;后續(xù)的數(shù)據(jù)都會(huì)按照傳輸?shù)捻樞蛞迫霐?shù)據(jù)緩沖寄存器中。數(shù)據(jù)寄存器在發(fā) 送到CPU的同時(shí),可以接收下一個(gè)從JTAG傳輸下來(lái)的數(shù)據(jù),具有緩沖機(jī)制。在線調(diào)試接口模塊支持普通下載模式和直通下載模式的動(dòng)態(tài)切換下載代 理服務(wù)程序可以通過(guò)關(guān)閉下載直通模式使能位,直接關(guān)閉下載直通模式,此后 的數(shù)據(jù)可直接通過(guò)普通下載。為了兼容舊版本的下載代理服務(wù)程序,在處理器 在線調(diào)試接口模塊的控制寄存器中,設(shè)置下載直通通道使能位。該位上電之后 默認(rèn)設(shè)置為關(guān)閉,也就是下載直通通道關(guān)閉模式。原有版本的下載代理服務(wù)程 序由于不會(huì)設(shè)置這一位,可以在普通模式下正常工作。更新后的下載代理服務(wù) 程序可以根據(jù)實(shí)際的需要,動(dòng)態(tài)選擇開(kāi)啟或者關(guān)閉該位來(lái)控制下載直通通道。 該位支持下載過(guò)程中下載直通通道的自動(dòng)開(kāi)啟和關(guān)閉,即支持直通通道下載模 式和普通模式的動(dòng)態(tài)切換功能。下載代理程序在下載批量數(shù)據(jù)時(shí),先設(shè)置下載起始地址,然后連續(xù)下載批 量數(shù)據(jù)下載代理服務(wù)程序在下載批量數(shù)據(jù)過(guò)程中,首先下載起始地址,然后 下載批量數(shù)據(jù),依次循環(huán)往復(fù),下載完所有的數(shù)據(jù)。由于處理器內(nèi)部采用并行 傳送方式,內(nèi)部處理速度極快;而JTAG串行口的數(shù)據(jù)下載速度遠(yuǎn)跟不上處理器 內(nèi)部的處理速度。因此在利用下載直通通道進(jìn)行數(shù)據(jù)下載時(shí),下載代理服務(wù)程 序利用下載直通通道的特性,首先設(shè)置下載起始地址,然后批量下載數(shù)據(jù),可 以減小JTAG口上的通信量,從而提高下載速度。提高JTAG的頻率將減少直通 通道在數(shù)據(jù)等待狀態(tài)的等待時(shí)間,進(jìn)一步提高程序和數(shù)據(jù)的下載速度。
權(quán)利要求
1.一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì)方法,其特征包括如下1)在在線硬件調(diào)試接口中增加一種旨在進(jìn)行批量數(shù)據(jù)下載的直通通道模式;2)在線調(diào)試接口內(nèi)部設(shè)置塊下載起始地址寄存器和數(shù)據(jù)緩存寄存器,用來(lái)寄存來(lái)自下載代理程序發(fā)送的起始地址和連續(xù)的數(shù)據(jù);3)在線調(diào)試接口內(nèi)部自動(dòng)生成當(dāng)前下載數(shù)據(jù)對(duì)應(yīng)的內(nèi)存地址,數(shù)據(jù)地址支持按字,半字和字節(jié)下載;4)在線調(diào)試接口自動(dòng)完成處理器掃描鏈的填充以及通過(guò)處理器流水線的接口將預(yù)設(shè)的命令或數(shù)據(jù)下載到流水線中,由流水線完成指令執(zhí)行的操作;5)下載直通通道數(shù)據(jù)緩存寄存器有緩沖機(jī)制,支持在發(fā)送數(shù)據(jù)的同時(shí),接收下一個(gè)數(shù)據(jù)以進(jìn)一步提高下載速度;6)在線調(diào)試接口模塊支持普通下載模式和直通下載模式的動(dòng)態(tài)切換;7)下載代理程序在下載批量數(shù)據(jù)時(shí),先設(shè)置下載起始地址,然后連續(xù)下載批量數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì) 方法,其特征在于,所述的在在線硬件調(diào)試接口中增加一種旨在進(jìn)行批量數(shù)據(jù) 下載的直通通道模式下載的方式從原來(lái)單地址下載單個(gè)數(shù)據(jù)轉(zhuǎn)變?yōu)閱蔚刂芳?起始地址下載批量數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì) 方法,其特征在于,所述的在線調(diào)試接口內(nèi)部設(shè)置塊下載起始地址寄存器和數(shù) 據(jù)緩存寄存器,用來(lái)寄存來(lái)自下載代理程序發(fā)送的起始地址和連續(xù)的數(shù)據(jù)在 原來(lái)在線調(diào)試接口原有的寄存器上,擴(kuò)展出為下載直通通道專用的兩個(gè)寄存器, 外部接口和訪問(wèn)操作與原來(lái)的寄存器相同。
4. 根據(jù)權(quán)利要求1所述的一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì) 方法,其特征在于,所述的在線調(diào)試接口內(nèi)部自動(dòng)生成當(dāng)前下載數(shù)據(jù)對(duì)應(yīng)的內(nèi) 存地址,數(shù)據(jù)地址支持按字,半字和字節(jié)下載通過(guò)在線調(diào)試接口內(nèi)部硬件邏 輯的狀態(tài)控制,自動(dòng)計(jì)算出下一次需要下載的數(shù)據(jù)的目標(biāo)地址;硬件控制邏輯 根據(jù)配置信息,自動(dòng)按照字,半字和字節(jié)進(jìn)行下載。
5. 根據(jù)權(quán)利要求1所述的一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì) 方法,其特征在于,所述的在線調(diào)試接口自動(dòng)完成處理器掃描鏈的填充以及通過(guò)處理器流水線的接口將預(yù)設(shè)的命令或數(shù)據(jù)下載到流水線中,由流水線完成指 令執(zhí)行的操作下載直通通道通過(guò)硬件狀態(tài)轉(zhuǎn)換,自動(dòng)將當(dāng)前等待下載的數(shù)據(jù) 所需的地址和數(shù)據(jù)信息通過(guò)處理器的掃描鏈移入處理器的流水線中,處理器根 據(jù)掃描鏈移入的操作和數(shù)據(jù)進(jìn)行相應(yīng)的操作。
6. 根據(jù)權(quán)利要求1所述的一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì) 方法,其特征在于,所述的載直通通道數(shù)據(jù)緩存寄存器有緩沖機(jī)制,支持在發(fā) 送數(shù)據(jù)的同時(shí),接收下一個(gè)數(shù)據(jù)以進(jìn)一步提高下載速度該寄存器支持在當(dāng)前 數(shù)據(jù)的下載過(guò)程中,處理下一個(gè)從JTAG串行口輸入的數(shù)據(jù),即在下載代理服務(wù) 程序不考慮當(dāng)前數(shù)據(jù)是否已經(jīng)由下載直通通道下載完畢的情況下,直接發(fā)送下 一個(gè)數(shù)據(jù),消除了冗余的狀態(tài)查詢過(guò)程,提高數(shù)據(jù)下載率。
7. 根據(jù)權(quán)利要求1所述的一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì)方法,其特征在于,所述的在線調(diào)試接口模塊支持普通下載模式和直通下載模式的動(dòng)態(tài)切換下載代理服務(wù)程序可以通過(guò)關(guān)閉下載直通模式使能位,直接關(guān) 閉下載直通模式,此后的數(shù)據(jù)可直接通過(guò)普通下載。
8. 根據(jù)權(quán)利要求1所述的一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì) 方法,其特征在于,所述的下載代理程序在下載批量數(shù)據(jù)時(shí),先設(shè)置下載起始 地址,然后連續(xù)下載批量數(shù)據(jù)下載代理服務(wù)程序在下載批量數(shù)據(jù)過(guò)程中,首 先下載起始地址,然后下載批量數(shù)據(jù),依次循環(huán)往復(fù),下載完所有的數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種嵌入式處理器高速在線下載直通通道的設(shè)計(jì)方法。本發(fā)明在原有單個(gè)數(shù)據(jù)下載模式的基礎(chǔ)上增加了數(shù)據(jù)下載直通模式,大幅提升了下載速度。在數(shù)據(jù)下載直通模式下,下載代理服務(wù)程序只需要先設(shè)定下載數(shù)據(jù)塊的起始地址,然后按地址順序?qū)?shù)據(jù)下載到直通通道上,在線調(diào)試接口硬件負(fù)責(zé)將下載代理服務(wù)程序傳下來(lái)的數(shù)據(jù)直接下載到目標(biāo)平臺(tái)的對(duì)應(yīng)內(nèi)存上。在線調(diào)試接口在數(shù)據(jù)直通模式下可以自動(dòng)生成下載地址,取消了下載代理服務(wù)程序冗余地址的計(jì)算和設(shè)定過(guò)程,大幅提高了數(shù)據(jù)下載的吞吐率。
文檔編號(hào)G06F11/36GK101162440SQ20071015691
公開(kāi)日2008年4月16日 申請(qǐng)日期2007年11月20日 優(yōu)先權(quán)日2007年11月20日
發(fā)明者嚴(yán)曉浪, 孟建熠, 葛海通 申請(qǐng)人:杭州中天微系統(tǒng)有限公司;浙江大學(xué)