一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及軟件調(diào)試【技術(shù)領(lǐng)域】,本發(fā)明公開了一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其具體包括以下的步驟:步驟一、設(shè)置串口通信模塊,所述串口通信模塊用于控制設(shè)置在微控制單元MCU上的串口進(jìn)行異步通信;步驟二、微控制單元MCU進(jìn)行軟件調(diào)試;步驟三、調(diào)試程序從仿真器中獲取到調(diào)試參數(shù)并運(yùn)行,串口通信模塊實(shí)時(shí)將該調(diào)試參數(shù)輸出給上位機(jī),上位機(jī)接收并解析出該調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看。本發(fā)明通過在MCU上設(shè)置串口,通過串口將調(diào)試參數(shù)發(fā)送給上位機(jī),上位機(jī)解析并顯示給調(diào)試人員實(shí)時(shí)查看,從而實(shí)現(xiàn)實(shí)時(shí)查看程序中的調(diào)試參數(shù)信息,方便了調(diào)試人員在線進(jìn)行程序調(diào)試。
【專利說明】一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件調(diào)試【技術(shù)領(lǐng)域】,本發(fā)明公開了一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前嵌入式MCU程序的開發(fā)和調(diào)試,都要配備專用的IDE(集成開發(fā)環(huán)境),通過IDE可以完成Edit/Compile/Debug等功能。其中,Debug的Watch功能對(duì)于程序開發(fā)者來說尤為重要,通過這個(gè)查看窗口可以了解到程序的運(yùn)行狀況,繼而完成對(duì)程序的調(diào)試。然而,有些IDE的WATCH窗口并不能實(shí)時(shí)更新顯示列表中參數(shù)值,只有程序被Interrupt的時(shí)候,才能更新。雖然這種IDE有的也能夠通過周期性的中斷來更新WATCH窗口變量列表,模擬實(shí)時(shí)參數(shù)更新,但這使得IDE自身的調(diào)試速度和性能都大打折扣,使用很不方便,界面也不友好??偟膩碚f這一點(diǎn)遠(yuǎn)遠(yuǎn)比不上具有在線實(shí)時(shí)調(diào)試功能的IDE,因?yàn)椴荒軐?shí)時(shí)查看程序中的變量和標(biāo)志等信息,使得程序調(diào)試變得很不方便。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中的程序調(diào)試方法不能實(shí)時(shí)查看調(diào)試參數(shù)的技術(shù)問題,本發(fā)明公開了一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,本發(fā)明還公開了一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的系統(tǒng)。
[0004]本發(fā)明的目的通過下述技術(shù)方案來實(shí)現(xiàn):一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其具體包括以下的步驟:步驟一、設(shè)置串口通信模塊,所述串口通信模塊用于控制設(shè)置在微控制單元MCU上的串口進(jìn)行異步通信;步驟二、微控制單元MCU進(jìn)行軟件調(diào)試;步驟三、調(diào)試程序從仿真器中獲取到調(diào)試參數(shù)并運(yùn)行,串口通信模塊實(shí)時(shí)將該調(diào)試參數(shù)輸出給上位機(jī),上位機(jī)接收并解析出該調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看。本發(fā)明通過在MCU上設(shè)置串口,通過串口將調(diào)試參數(shù)發(fā)送給上位機(jī),上位機(jī)解析并顯示給調(diào)試人員實(shí)時(shí)查看,從而實(shí)現(xiàn)實(shí)時(shí)查看程序中的變量信息,方便了調(diào)試人員在線進(jìn)行程序調(diào)試。
[0005]更進(jìn)一步地,上述步驟二中的微控制單元MCU進(jìn)行軟件調(diào)試的具體過程如下,其具體包括:步驟2.1、移植并初始化調(diào)試模塊;步驟2.2、裝載調(diào)試參數(shù)表;步驟2.3、讀取調(diào)試參數(shù)表中的一個(gè)調(diào)試參數(shù)并通過串口傳輸給上位機(jī),判斷該變量是否是調(diào)試參數(shù)表的末尾,是,則將指針移至調(diào)試參數(shù)表首部,否則重新執(zhí)行該步驟。通過裝載調(diào)試參數(shù)表,并將調(diào)試參數(shù)表的變量傳輸給上位機(jī),上位機(jī)實(shí)時(shí)接收解析并顯示出調(diào)試參數(shù)。
[0006]更進(jìn)一步地,在上述調(diào)試參數(shù)上追加其符號(hào)名后再通過串口傳輸給上位機(jī)。通過在調(diào)試參數(shù)上追加其符號(hào)名,方便調(diào)試人員快速了解該變量的含義,從而真正實(shí)現(xiàn)在線調(diào)試。
[0007]更進(jìn)一步地,上述步驟三中上位機(jī)接收并解析出調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看的具體過程如下,其具體包括:步驟3.1、初始化界面;步驟3.2、初始化定時(shí)器;步驟3.3、初始化數(shù)據(jù)緩存區(qū);步驟3.4、循環(huán)接收并存儲(chǔ)調(diào)試參數(shù);步驟3.5、讀取存儲(chǔ)的調(diào)試參數(shù)并顯示。通過設(shè)置數(shù)據(jù)緩存區(qū),可以實(shí)時(shí)讀取并更新調(diào)試參數(shù)列表,以配合在線調(diào)試IDE實(shí)現(xiàn)實(shí)時(shí)調(diào)試功能。本發(fā)明的方法能夠?qū)崟r(shí)更新顯示W(wǎng)ATCH嵌入式MCU內(nèi)部各種調(diào)試參數(shù)、標(biāo)志,實(shí)現(xiàn)嵌入式程序開發(fā)實(shí)時(shí)調(diào)試的方法,通過搭建開發(fā)板與上位機(jī)的高速通信來實(shí)現(xiàn)。嵌入式MCU主控板能夠依次實(shí)時(shí)讀取參數(shù)值,并追加其符號(hào)名,通過串口按照一定協(xié)議實(shí)時(shí)輸出數(shù)據(jù)信息。
[0008]本發(fā)明還公開了一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的系統(tǒng),其具體包括目標(biāo)開發(fā)板、微控制單元MCU、仿真器、IDE調(diào)試主機(jī)和上位機(jī),所述微控制單元MCU上設(shè)置異步通信串口,通過該異步通信串口連接上位機(jī),所述仿真器連接目標(biāo)開發(fā)板和IDE調(diào)試主機(jī),所述調(diào)試程序從仿真器中獲取到調(diào)試參數(shù)并運(yùn)行,串口通信模塊實(shí)時(shí)將該調(diào)試參數(shù)輸出給上位機(jī),上位機(jī)接收并解析出該調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看。
[0009]通過采用以上的技術(shù)方案,本發(fā)明具有以下的有益效果:本發(fā)明通過在MCU上設(shè)置串口,通過串口將調(diào)試參數(shù)發(fā)送給上位機(jī),上位機(jī)解析并顯示給調(diào)試人員實(shí)時(shí)查看,從而實(shí)現(xiàn)實(shí)時(shí)查看程序中的變量信息,方便了調(diào)試人員在線進(jìn)行程序調(diào)試。通過參數(shù)WATCH調(diào)試程序接收并解析數(shù)據(jù),實(shí)時(shí)更新符號(hào)名列表及參數(shù)值,配合調(diào)試IDE實(shí)現(xiàn)在線實(shí)時(shí)調(diào)試功能。脫離IDE調(diào)試獨(dú)立測(cè)試程序內(nèi)部參數(shù)。當(dāng)程序調(diào)試完成甚至程序發(fā)布后,也可以通過預(yù)留輸出一些系統(tǒng)關(guān)鍵參數(shù),通過實(shí)時(shí)WATCH在軟件測(cè)試階段或者產(chǎn)品售后分析使用。
【專利附圖】
【附圖說明】
[0010]圖1為微控制單元MCU進(jìn)行軟件調(diào)試的具體過程。
[0011]圖2為上位機(jī)接收并解析出調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看的具體過程。
[0012]圖3為嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的系統(tǒng)。
【具體實(shí)施方式】
[0013]下面結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明作進(jìn)一步的說明。
[0014]本發(fā)明公開了一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其具體包括以下的步驟:步驟一、設(shè)置串口通信模塊,所述串口通信模塊用于控制設(shè)置在微控制單元MCU上的串口進(jìn)行異步通信;步驟二、微控制單元MCU進(jìn)行軟件調(diào)試;步驟三、調(diào)試程序從仿真器中獲取到調(diào)試參數(shù)并運(yùn)行,串口通信模塊實(shí)時(shí)將該調(diào)試參數(shù)輸出給上位機(jī),上位機(jī)接收并解析出該調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看。本發(fā)明通過在MCU上設(shè)置串口,通過串口將調(diào)試參數(shù)發(fā)送給上位機(jī),上位機(jī)解析并顯示給調(diào)試人員實(shí)時(shí)查看,從而實(shí)現(xiàn)實(shí)時(shí)查看程序中的變量信息,方便了調(diào)試人員在線進(jìn)行程序調(diào)試。
[0015]更進(jìn)一步地,上述步驟二中的微控制單元MCU進(jìn)行軟件調(diào)試的具體過程如圖1所示,其具體包括:步驟2.1、移植并初始化調(diào)試模塊;步驟2.2、裝載調(diào)試參數(shù)表;步驟2.3、讀取調(diào)試參數(shù)表中的一個(gè)調(diào)試參數(shù)并通過串口傳輸給上位機(jī),判斷該變量是否是調(diào)試參數(shù)表的末尾,是,則將指針移至調(diào)試參數(shù)表首部,否則重新執(zhí)行該步驟。通過裝載調(diào)試參數(shù)表,并將調(diào)試參數(shù)表的變量傳輸給上位機(jī),上位機(jī)實(shí)時(shí)接收解析并顯示出調(diào)試參數(shù)。
[0016]更進(jìn)一步地,在上述調(diào)試參數(shù)上追加其符號(hào)名后再通過串口傳輸給上位機(jī)。通過在調(diào)試參數(shù)上追加其符號(hào)名,方便調(diào)試人員快速了解該變量的含義,從而真正實(shí)現(xiàn)在線調(diào)試。
[0017]更進(jìn)一步地,上述步驟三中上位機(jī)接收并解析出調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看的具體過程如圖2所示,其具體包括:步驟3.1、初始化界面;步驟3.2、初始化定時(shí)器,(上位機(jī)包含一個(gè)數(shù)據(jù)緩沖池,通過設(shè)置的定時(shí)器,從緩沖池中按一定規(guī)則取出數(shù)據(jù),實(shí)時(shí)解析并展示給調(diào)試人員);步驟3.3、初始化數(shù)據(jù)緩存區(qū);步驟3.4、循環(huán)接收并存儲(chǔ)調(diào)試參數(shù);步驟3.5、讀取存儲(chǔ)的調(diào)試參數(shù)并顯示。通過設(shè)置數(shù)據(jù)緩存區(qū),可以實(shí)時(shí)讀取并更新調(diào)試參數(shù)列表,以配合在線調(diào)試IDE實(shí)現(xiàn)實(shí)時(shí)調(diào)試功能。本發(fā)明的方法能夠?qū)崟r(shí)更新顯示W(wǎng)ATCH嵌入式MCU內(nèi)部各種調(diào)試參數(shù)、標(biāo)志,實(shí)現(xiàn)嵌入式程序開發(fā)實(shí)時(shí)調(diào)試的方法,通過搭建開發(fā)板與上位機(jī)的高速通信來實(shí)現(xiàn)。嵌入式MCU主控板能夠依次實(shí)時(shí)讀取參數(shù)值,并追加其符號(hào)名,通過串口按照一定協(xié)議實(shí)時(shí)輸出數(shù)據(jù)信息。
[0018]其中的一個(gè)實(shí)施列步驟1:在MCU端實(shí)現(xiàn)一個(gè)串口通信模塊,實(shí)現(xiàn)其基本的異步串口收發(fā)功能即可。
[0019]步驟2:在MCU端移植實(shí)時(shí)調(diào)試參數(shù)(WATCH模塊)庫函數(shù),“WATCH”是上位機(jī)程序界面中的參數(shù)實(shí)時(shí)查看窗口,而移植這個(gè)函數(shù)庫(模塊)就是為其提供數(shù)據(jù)的來源,“移植”是為了不同單片機(jī)。該庫函數(shù)API接口按照?qǐng)D1所示流程圖實(shí)現(xiàn)。移植時(shí),只需在串口通信的發(fā)送和接收處理的位置調(diào)用相應(yīng)API函數(shù)。單片機(jī)(MCU)的異步串口通信分為發(fā)送數(shù)據(jù)和接收數(shù)據(jù)兩部分,單片機(jī)調(diào)用剛才所移植的函數(shù)模塊,就可以向上位機(jī)按一定規(guī)則發(fā)送數(shù)據(jù)。
[0020]步驟3:裝載WATCH參數(shù)列表。MCU端所移植的函數(shù)模塊,具有參數(shù)裝載功能;需要實(shí)時(shí)查看哪些參數(shù)(變量或標(biāo)志位等)在MCU的內(nèi)存中,看不見摸不著;裝載這些參數(shù)到單片機(jī)(MCU)的異步串口通信上,然后高速發(fā)送給上位機(jī),以便上位機(jī)解析使用這些數(shù)據(jù)(實(shí)時(shí)查看的參數(shù)))在MCU端維護(hù)一個(gè)實(shí)時(shí)更新的串出?!按觥保惒酱谕ㄐ?,高速(串行方式)輸出數(shù)據(jù),參數(shù)表,程序編譯運(yùn)行后,串口按照約定好的波特率高速循環(huán)輸出,實(shí)時(shí)更新列表數(shù)據(jù),MCU將待實(shí)時(shí)查看的內(nèi)存數(shù)據(jù)發(fā)送給上位機(jī)后,電腦上運(yùn)行的上位機(jī)程序通過列表的方式,根據(jù)接收到的數(shù)據(jù),實(shí)時(shí)更新并顯示這些內(nèi)存參數(shù)(名稱及變量值)。
[0021]步驟4:在上位機(jī)端,接收和解析數(shù)據(jù)處理流程圖如圖2所示。通過參數(shù)WATCH調(diào)試程序接收并解析數(shù)據(jù),實(shí)時(shí)更新(參照步驟3)符號(hào)名列表及參數(shù)值,配合(將參數(shù)實(shí)時(shí)顯示出來,以配合IDE調(diào)試單片機(jī)程序)IDE調(diào)試,實(shí)現(xiàn)在線實(shí)時(shí)調(diào)試功能。
[0022]步驟5:脫離IDE調(diào)試獨(dú)立測(cè)試程序內(nèi)部參數(shù)。當(dāng)程序調(diào)試完成甚至程序發(fā)布后,也可以通過預(yù)留輸出一些系統(tǒng)關(guān)鍵參數(shù),通過實(shí)時(shí)WATCH在軟件測(cè)試階段或者產(chǎn)品售后分析使用。意思就是說,單片機(jī)軟件開發(fā)完成后,不需要IDE調(diào)試軟件,只需接上PCB板上單片機(jī)的串口,把需要的數(shù)據(jù)輸出給電腦端,就獨(dú)立能查看單片機(jī)內(nèi)部的狀態(tài)參數(shù),該功能在軟件測(cè)試階段或者產(chǎn)品售后分析都能使用。
[0023]本發(fā)明還公開了一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的系統(tǒng),如圖3(上位機(jī)就是電腦上運(yùn)行的一個(gè)能夠WATCH參數(shù)的程序,MCU (單片機(jī))在目標(biāo)開發(fā)板上,就是家電等的主控制芯片)所示,其具體包括目標(biāo)開發(fā)板、微控制單元MCU、仿真器、IDE調(diào)試主機(jī)和上位機(jī),所述微控制單元MCU上設(shè)置異步通信串口,通過該異步通信串口連接上位機(jī),所述仿真器連接目標(biāo)開發(fā)板和IDE調(diào)試主機(jī),所述調(diào)試程序從仿真器中獲取到調(diào)試參數(shù)并運(yùn)行,串口通信模塊實(shí)時(shí)將該調(diào)試參數(shù)輸出給上位機(jī),上位機(jī)接收并解析出該調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看。通過上述系統(tǒng),實(shí)現(xiàn)嵌入式軟件調(diào)試參數(shù)的實(shí)時(shí)查看。
[0024]本發(fā)明利用MCU硬件或者軟件模擬實(shí)現(xiàn)一個(gè)串口通信功能,然后移植該方法中提及的參數(shù)調(diào)試模塊,搭建與上位機(jī)端的專用串口調(diào)試程序的通信系統(tǒng),完成軟件調(diào)試參數(shù)實(shí)時(shí)WATCH功能,輔助程序調(diào)試和測(cè)試。具體的,該方法通過串口通信模塊,向上位機(jī)高速循環(huán)發(fā)送已經(jīng)裝載的符號(hào)值數(shù)據(jù)串,上位機(jī)通過一定的緩沖技術(shù)接收存儲(chǔ)數(shù)據(jù),并按約定實(shí)時(shí)解析和顯示緩存中的符號(hào)及對(duì)應(yīng)的值,結(jié)合IDE相關(guān)功能調(diào)試程序,便能達(dá)到實(shí)時(shí)在線仿真的目的。
[0025]通過該方法的實(shí)現(xiàn),能夠很好的輔助嵌入式軟件開發(fā)人員進(jìn)行軟件調(diào)試,縮短軟件開發(fā)周期。同時(shí)也可以輔助軟件測(cè)試人員進(jìn)行測(cè)試,及時(shí)發(fā)現(xiàn)軟件的漏洞和問題。通過該方法的實(shí)現(xiàn),還能夠很好的彌補(bǔ)那些不支持實(shí)時(shí)在線調(diào)試功能的IDE的不足,實(shí)現(xiàn)在線實(shí)時(shí)調(diào)試,使得程序調(diào)試更加方便和高效。
[0026]以上上述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其具體包括以下的步驟:步驟一、設(shè)置串口通信模塊,所述串口通信模塊用于控制設(shè)置在微控制單元MCU上的串口進(jìn)行異步通信;步驟二、微控制單元MCU進(jìn)行軟件調(diào)試;步驟三、調(diào)試程序從仿真器中獲取到調(diào)試參數(shù)并運(yùn)行,串口通信模塊實(shí)時(shí)將該調(diào)試參數(shù)輸出給上位機(jī),上位機(jī)接收并解析出該調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看。
2.如權(quán)利要求1所述的嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其特征在于所述步驟二中的微控制單元MCU進(jìn)行軟件調(diào)試的具體包括:步驟2.1、移植并初始化調(diào)試模塊;步驟2.2、裝載調(diào)試參數(shù)表;步驟2.3、讀取調(diào)試參數(shù)表中的一個(gè)調(diào)試參數(shù)并通過串口傳輸給上位機(jī)。
3.如權(quán)利要求2所述的嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其特征在于所述方法還包括判斷該調(diào)試參數(shù)是否是調(diào)試參數(shù)表的末尾,是,則將指針移至調(diào)試參數(shù)表首部,否則繼續(xù)執(zhí)行步驟2.3。
4.如權(quán)利要求2或者3所述的嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其特征在于所述方法還包括在上述調(diào)試參數(shù)上追加其符號(hào)名后再通過串口傳輸給上位機(jī)。
5.如權(quán)利要求4所述的嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的方法,其特征在于所述步驟三中上位機(jī)接收并解析出調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看的過程具體包括:步驟3.1、初始化界面;步驟3.2、初始化定時(shí)器;步驟3.3、初始化數(shù)據(jù)緩存區(qū);步驟3.4、循環(huán)接收并存儲(chǔ)調(diào)試參數(shù);步驟3.5、讀取存儲(chǔ)的調(diào)試參數(shù)并顯示。
6.—種嵌入式軟件調(diào)試參數(shù)實(shí)時(shí)查看的系統(tǒng),其特征在于具體包括目標(biāo)開發(fā)板、微控制單元MCU、仿真器、IDE調(diào)試主機(jī)和上位機(jī),所述微控制單元MCU上設(shè)置異步通信串口,通過該異步通信串口連接上位機(jī),所述仿真器連接目標(biāo)開發(fā)板和IDE調(diào)試主機(jī),所述調(diào)試程序從仿真器中獲取到調(diào)試參數(shù)并運(yùn)行,串口通信模塊實(shí)時(shí)將該調(diào)試參數(shù)輸出給上位機(jī),上位機(jī)接收并解析出該調(diào)試參數(shù)給調(diào)試人員實(shí)時(shí)查看。
【文檔編號(hào)】G06F11/36GK104503898SQ201410675334
【公開日】2015年4月8日 申請(qǐng)日期:2014年11月24日 優(yōu)先權(quán)日:2014年11月24日
【發(fā)明者】謝鵬 申請(qǐng)人:四川長虹電器股份有限公司