两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于ide的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法和裝置的制作方法

文檔序號(hào):6399414閱讀:219來(lái)源:國(guó)知局
專利名稱:基于ide的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及單片機(jī)技術(shù),尤其涉及一種基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法和裝置。
背景技術(shù)
隨著單片機(jī)中的嵌入式軟件的發(fā)展,越來(lái)越多的調(diào)試方法被應(yīng)用到嵌入式軟件的開發(fā)調(diào)試過(guò)程中,用來(lái)提高軟件的可靠性。特別在航天等特種應(yīng)用領(lǐng)域的嵌入式軟件設(shè)計(jì),更是比工業(yè)級(jí)有更高的要求。而查看與存儲(chǔ)單片機(jī)中運(yùn)行狀態(tài)下的各寄存器值和內(nèi)存值,就成為技術(shù)人員進(jìn)行嵌入式軟件調(diào)試的一個(gè)重要手段。目前,提供了多種單片機(jī)集成開發(fā)環(huán)境(IDE, integrated developmentenvironment),以便于技術(shù)人員對(duì)單片機(jī)中運(yùn)行的軟件進(jìn)行調(diào)試。例如,Microchip公司的提供的一款免費(fèi)的PIC單片機(jī)集成開發(fā)環(huán)境MPLAB則被廣泛使用。MPLAB是MicrochipProgramming Laboratory (微芯編程實(shí)驗(yàn)室)的縮寫,意即微芯編程實(shí)驗(yàn)室開發(fā)的軟件。如圖1所示,基于IDE的單片機(jī)調(diào)試系統(tǒng)中包括:調(diào)試機(jī)和單片機(jī)。IDE (比如MPLAB)可以安裝于作為調(diào)試機(jī)的計(jì)算機(jī)中,調(diào)試機(jī)通過(guò)調(diào)試總線與單片機(jī)的調(diào)試接口相連;技術(shù)人員使用IDE,可以進(jìn)行單片機(jī)軟件的代碼編寫,編寫完畢通過(guò)單片機(jī)的調(diào)試接口將代碼寫入單片機(jī)進(jìn)行運(yùn)行、調(diào)試;調(diào)試過(guò)程中,技術(shù)人員可以使用IDE提供的寄存器或內(nèi)存查看窗口查看單片機(jī)在軟件運(yùn)行過(guò)程中,各寄存器或內(nèi)存中存儲(chǔ)的值,即查看單片機(jī)中各寄存器值或內(nèi)存值。MPLAB軟件是運(yùn)行在Windows上的程序,圖2示出了 MPLAB軟件提供的一個(gè)查看單片機(jī)中的寄存器值的窗口的不意圖。雖然,像MPLAB這樣的軟件為技術(shù)人員提供了免費(fèi)和方便的調(diào)試手段,但仍然存在局限性。在很多情況下,技術(shù)人員不但要查看單片機(jī)中的寄存器值,還需要對(duì)其進(jìn)行保存,以便于后續(xù)的分析、統(tǒng)計(jì);這樣,技術(shù)人員不得不通過(guò)手工按鍵Crtl+C、Crtl+V的方式,將如圖2所示的窗口中的各寄存器值依次復(fù)制到文本或Excel表格中。因此,現(xiàn)有技術(shù)的IDE,比如MPLAB不能進(jìn)行單片機(jī)寄存器值或內(nèi)存值的自動(dòng)存儲(chǔ),無(wú)法為技術(shù)人員提供更為方便的調(diào)試手段。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法和裝置,能夠?qū)纹瑱C(jī)的寄存器值或內(nèi)存值進(jìn)行自動(dòng)存儲(chǔ),更方便技術(shù)人員對(duì)單片機(jī)進(jìn)行調(diào)試。根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法,包括:根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口 ;獲取所述內(nèi)容待復(fù)制窗口的窗口句柄;
在根據(jù)獲取的窗口句柄,判斷出所述內(nèi)容待復(fù)制窗口的類為列表框類后,獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容;所述列表框中的內(nèi)容包括該內(nèi)容待復(fù)制窗口中所顯示的單片機(jī)的寄存器值或內(nèi)存值;將獲取的內(nèi)容按預(yù)定格式存儲(chǔ)到預(yù)先指定的文件中。較佳地,所述根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口,具體包括:接收到如下一系列鼠標(biāo)操作指令后,確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令:在運(yùn)行所述方法的程序界面中的特定圖標(biāo)處,鼠標(biāo)左鍵按下的操作指令、所述鼠標(biāo)拖拽操作指令、在所述單片機(jī)的寄存器值或內(nèi)存值的查看窗口之一,所述鼠標(biāo)左鍵釋放的操作指令;在確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令后,將所述鼠標(biāo)左鍵釋放的位置所在窗口作為所述內(nèi)容待復(fù)制窗口。較佳地,所述獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容,具體包括:根據(jù)獲取的窗口句柄,獲取IDE進(jìn)程的進(jìn)程號(hào);根據(jù)獲取的進(jìn)程號(hào),獲取所述IDE進(jìn)程的進(jìn)程句柄;使用所述IDE進(jìn)程的進(jìn)程句柄,在所述IDE進(jìn)程中申請(qǐng)文本存儲(chǔ)空間和列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間;獲取所述列表框的總行數(shù)與總列數(shù);依據(jù)獲取的總行數(shù)與總列數(shù),將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間中、根據(jù)所述列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)與列號(hào)將所述文本存儲(chǔ)空間中的內(nèi)容讀取到本進(jìn)程的存儲(chǔ)空間中;其中,本進(jìn)程指的是運(yùn)行所述方法的程序所在進(jìn)程;被復(fù)制到所述文本存儲(chǔ)空間的內(nèi)容所在位置的行號(hào)與列號(hào)由所述列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)與列號(hào)指定。較佳地,所述列表框中的內(nèi)容每次被復(fù)制到所述文本存儲(chǔ)空間之前,還包括:對(duì)所述文本存儲(chǔ)空間進(jìn)行清除。較佳地,所述將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間具體為:以向所述IDE進(jìn)程發(fā)送相應(yīng)消息的方式,將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間。較佳地,所述將獲取的內(nèi)容按預(yù)定格式存儲(chǔ)到預(yù)先指定的文件中,具體包括:將所述本進(jìn)程的存儲(chǔ)空間中的內(nèi)容按預(yù)定格式存儲(chǔ)到預(yù)先指定的文件中。較佳地,所述文件具體為文本文件、或列表文件、或數(shù)據(jù)庫(kù)文件。較佳地,所述IDE具體為MPLAB軟件。根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)裝置,包括:內(nèi)容待復(fù)制窗口選擇單元,用于根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口 ;內(nèi)容獲取單元,用于獲取所述內(nèi)容待復(fù)制窗口的窗口句柄;在根據(jù)獲取的窗口句柄,判斷出所述內(nèi)容待復(fù)制窗口的類為列表框類后,獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容;所述列表框中的內(nèi)容包括該內(nèi)容待復(fù)制窗口中所顯示的單片機(jī)的寄存器值或內(nèi)存值;內(nèi)容存儲(chǔ)單元,用于將所述內(nèi)容獲取單元獲取的內(nèi)容存儲(chǔ)到預(yù)先指定的文件中。本發(fā)明實(shí)施例提供的技術(shù)方案中,利用IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口,獲取查看窗口的窗口句柄后,根據(jù)獲取的窗口句柄,獲取到該查看窗口的列表框中的內(nèi)容,實(shí)現(xiàn)將列表框中的內(nèi)容包括寄存器值或內(nèi)存值自動(dòng)存儲(chǔ)到預(yù)先指定的文件中;而不必手動(dòng)操作從查看窗口中一個(gè)一個(gè)寄存器值進(jìn)行復(fù)制、粘貼的繁瑣工作;大大方便技術(shù)人員存儲(chǔ)單片機(jī)的寄存器值或內(nèi)存值,便于技術(shù)人員對(duì)單片機(jī)的調(diào)試。


圖1為現(xiàn)有技術(shù)的基于IDE的單片機(jī)調(diào)試系統(tǒng)示意圖;圖2為現(xiàn)有技術(shù)的單片機(jī)用戶程序在線升級(jí)系統(tǒng)的示意圖;圖3為本發(fā)明實(shí)施例的基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)的方法流程圖;圖4為本發(fā)明實(shí)施例的輔助調(diào)試軟件的界面的示意圖;圖5為本發(fā)明實(shí)施例的獲取內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容的方法流程圖;圖6為本發(fā)明實(shí)施例的在一次循環(huán)過(guò)程中獲取列表框中第i行、第j列的內(nèi)容的方法流程圖;圖7為本發(fā)明實(shí)施例的基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)裝置的內(nèi)部結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉出優(yōu)選實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。然而,需要說(shuō)明的是,說(shuō)明書中列出的許多細(xì)節(jié)僅僅是為了使讀者對(duì)本發(fā)明的一個(gè)或多個(gè)方面有一個(gè)透徹的理解,即便沒(méi)有這些特定的細(xì)節(jié)也可以實(shí)現(xiàn)本發(fā)明的這些方面。本申請(qǐng)使用的“模塊”、“系統(tǒng)”等術(shù)語(yǔ)旨在包括與計(jì)算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計(jì)算機(jī)。舉例來(lái)說(shuō),計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序和此計(jì)算設(shè)備都可以是模塊。一個(gè)或多個(gè)模塊可以位于執(zhí)行中的一個(gè)進(jìn)程和/或線程內(nèi),一個(gè)模塊也可以位于一臺(tái)計(jì)算機(jī)上和/或分布于兩臺(tái)或更多臺(tái)計(jì)算機(jī)之間。本發(fā)明的發(fā)明人考慮到,IDE (比如MPLAB)已經(jīng)提供了一個(gè)較為方便的查看單片機(jī)中的寄存器值或內(nèi)存值的窗口,可以基于此窗口開發(fā)出一個(gè)軟件程序,為便于描述,后文稱之為輔助調(diào)試軟件,以實(shí)現(xiàn)自動(dòng)將窗口中的各寄存器值或內(nèi)存值進(jìn)行存儲(chǔ)。這樣,技術(shù)人員在使用IDE (比如MPLAB)進(jìn)行單片機(jī)調(diào)試時(shí),同時(shí)配合使用該軟件,就可以將單片機(jī)中的寄存器值或內(nèi)存值進(jìn)行自動(dòng)存儲(chǔ)。下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案。本發(fā)明實(shí)施例提供的輔助調(diào)試軟件可以與IDE (比如MPLAB) —起安裝于調(diào)試機(jī)上,其實(shí)現(xiàn)基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)的方法的流程圖,如圖3所示,包括如下步驟:S301:根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口。在調(diào)試人員使用IDE (比如MPLAB)進(jìn)行單片機(jī)調(diào)試的過(guò)程中,可以把本發(fā)明實(shí)施例提供的輔助調(diào)試軟件也同時(shí)開啟;輔助調(diào)試軟件在啟動(dòng)后,會(huì)接收調(diào)試人員輸入的操作指令,并根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,將欲進(jìn)行內(nèi)容復(fù)制的寄存器值或內(nèi)存值的查看窗口確定為內(nèi)容待復(fù)制窗口,具體過(guò)程為:調(diào)試人員使用IDE (比如MPLAB)進(jìn)行單片機(jī)調(diào)試的過(guò)程中,可以打開由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口 ;在輔助調(diào)試軟件啟動(dòng)后,調(diào)試人員可以通過(guò)鼠標(biāo)、或鍵盤等輸入操作指令;操作指令中可以包括指定內(nèi)容待復(fù)制窗口的操作指令。例如,一種具體的調(diào)試人員輸入指定內(nèi)容待復(fù)制窗口的操作指令的過(guò)程為:輔助調(diào)試軟件啟動(dòng)后,顯示的軟件界面中有一特定圖標(biāo),比如圖4所示的軟件界面中的箭頭圖標(biāo);調(diào)試人員將鼠標(biāo)移動(dòng)到該圖標(biāo)上,按下左鍵后,顯示屏上的鼠標(biāo)的光標(biāo)將變?yōu)樵撎囟▓D標(biāo)的式樣;調(diào)試人員拖拽鼠標(biāo),使得作為鼠標(biāo)光標(biāo)的特定圖標(biāo)移動(dòng)到調(diào)試人員欲進(jìn)行內(nèi)容復(fù)制的寄存器值或內(nèi)存值 的查看窗口后,釋放鼠標(biāo)左鍵;之后,鼠標(biāo)光標(biāo)將由特定圖標(biāo)的式樣恢復(fù)到之前的式樣;這一系列的鼠標(biāo)操作指令被輸入到輔助調(diào)試軟件,輔助調(diào)試軟件對(duì)這些操作指令進(jìn)行解析后,判斷接收到指定內(nèi)容待復(fù)制窗口的操作指令,且該指令用以指示出鼠標(biāo)左鍵釋放的位置所在窗口為內(nèi)容待復(fù)制窗口 ;從而,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇出一個(gè)窗口作為內(nèi)容待復(fù)制窗口。也就是說(shuō),輔助調(diào)試軟件接收到如下一系列鼠標(biāo)操作指令后,確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令:在輔助調(diào)試軟件運(yùn)行(即運(yùn)行本發(fā)明實(shí)施例提供的基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法)的程序界面中的特定圖標(biāo)處,鼠標(biāo)左鍵按下的操作指令、所述鼠標(biāo)拖拽操作指令、在所述單片機(jī)的寄存器值或內(nèi)存值的查看窗口之一,所述鼠標(biāo)左鍵釋放的操作指令;在輔助調(diào)試軟件確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令后,將所述鼠標(biāo)左鍵釋放的位置所在窗口作為所述內(nèi)容待復(fù)制窗口。顯然,本領(lǐng)域技術(shù)人員可以設(shè)計(jì)其它輸入指定內(nèi)容待復(fù)制窗口的操作指令的方
法,此處不--列舉;對(duì)于其它輸入指定內(nèi)容待復(fù)制窗口的操作指令的方法也都應(yīng)視為本
發(fā)明的保護(hù)范圍。在輔助調(diào)試軟件確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令、并確定內(nèi)容待復(fù)制窗口后,開始獲取窗口內(nèi)容的任務(wù),具體包括如下的步驟。S302:獲取內(nèi)容待復(fù)制窗口的窗口句柄。具體地,在輔助調(diào)試軟件確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令、并確定內(nèi)容待復(fù)制窗口后,調(diào)用Windows API WindowFromPoint函數(shù)獲取當(dāng)前鼠標(biāo)的位置對(duì)應(yīng)的窗口的窗口句柄,即獲取到內(nèi)容待復(fù)制窗口的窗口句柄。較佳地,輔助調(diào)試軟件在獲取窗口句柄后,還判斷句柄是否有效,如果無(wú)效,退出獲取窗口內(nèi)容的任務(wù)的流程。
S303:根據(jù)所述窗口句柄,判斷出所述內(nèi)容待復(fù)制窗口的類為列表框類后,獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容。具體地,輔助調(diào)試軟件獲取窗口句柄后,利用窗口句柄,調(diào)用Windows APIGetClassName函數(shù),獲得內(nèi)容待復(fù)制窗口的類。輔助調(diào)試軟件判斷當(dāng)前窗口的類,是否為列表框類;若是,則獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容;否則,退出獲取窗口內(nèi)容的任務(wù)的流程。S304:將獲取的內(nèi)容按預(yù)定格式復(fù)制到預(yù)先指定的文件中進(jìn)行存儲(chǔ)。具體地,指定的文件具體可以是文本、列表、或數(shù)據(jù)庫(kù)文件;以預(yù)定格式存儲(chǔ)獲取的內(nèi)容可以便于查看、瀏覽。上述步驟S303中,輔助調(diào)試軟件獲取內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容的具體方法流程,如圖5所示,包括如下步驟:S501:根據(jù)獲取的內(nèi)容待復(fù)制窗口的窗口句柄,獲取IDE進(jìn)程的進(jìn)程號(hào)。具體地,輔助調(diào)試軟件調(diào)用Windows API GetWindowThreadProcessId函數(shù),根據(jù)獲取的內(nèi)容待復(fù)制窗口的窗口句柄,獲取IDE進(jìn)程的進(jìn)程號(hào)。S502:根據(jù)獲取的進(jìn)程號(hào),獲取所述IDE進(jìn)程的進(jìn)程句柄。具體地,輔助調(diào)試軟件調(diào)用WindowAPI OpenProcess函數(shù),根據(jù)獲取的進(jìn)程號(hào),獲取所述IDE進(jìn)程的進(jìn)程句柄;較佳地,輔助調(diào)試軟件還可判斷獲取的IDE進(jìn)程的進(jìn)程句柄是否有效,若無(wú)效則退出獲取窗口內(nèi)容的任務(wù)的流程。S503:使用所述IDE進(jìn)程的進(jìn)程句柄,在所述IDE進(jìn)程中申請(qǐng)文本存儲(chǔ)空間和列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間。S504:獲取所述內(nèi)容待復(fù)制窗口的列表框的總行數(shù)與總列數(shù)。具體地,調(diào)用Windows API ListView_GetItemCount 函數(shù)和Li stViewCoIumnCount函數(shù)可以分別獲取內(nèi)容待復(fù)制窗口的列表框的內(nèi)容的總行數(shù)與總列數(shù)。S505:將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間中、再將所述文本存儲(chǔ)空間中的內(nèi)容讀取到本進(jìn)程的存儲(chǔ)空間中。具體地,依據(jù)獲取的總行數(shù)與總列數(shù),將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間中、根據(jù)所述列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)與列號(hào)將所述文本存儲(chǔ)空間中的內(nèi)容讀取到本進(jìn)程的存儲(chǔ)空間中。其中,本進(jìn)程指的是運(yùn)行所述方法的程序所在進(jìn)程;被復(fù)制到所述文本存儲(chǔ)空間的內(nèi)容所在位置的行號(hào)與列號(hào)由所述列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)與列號(hào)指定。事實(shí)上,可以通過(guò)循環(huán)的方式依次將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間中、再將文本存儲(chǔ)空間中的內(nèi)容讀取到本進(jìn)程的存儲(chǔ)空間中;循環(huán)次數(shù)等于總行數(shù)與總列數(shù)的乘積。例如,在一次循環(huán)過(guò)程中獲取列表框中第i行、第j列的內(nèi)容的流程如圖6所示,包括如下步驟:S601:清空文本存儲(chǔ)空間。S602:設(shè)置列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中的行號(hào)為i,列號(hào)為j ;其中,i為小于等于總行數(shù)的自然數(shù),j為小于等于總列數(shù)的自然數(shù)。
S603:將所述列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)與列號(hào)指定的列表框中的內(nèi)容復(fù)制到文本存儲(chǔ)空間中。S604:將被復(fù)制到文本存儲(chǔ)空間中的內(nèi)容讀取到本進(jìn)程的存儲(chǔ)空間中。具體地,可以在本進(jìn)程的存儲(chǔ)空間中對(duì)應(yīng)記錄文本存儲(chǔ)空間中的內(nèi)容與列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)、列號(hào)。輔助調(diào)試軟件中的實(shí)現(xiàn)上述方法的基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)裝置,其內(nèi)部結(jié)構(gòu)框圖如圖7所示,包括:內(nèi)容待復(fù)制窗口選擇單元701、內(nèi)容獲取單元702、內(nèi)容存儲(chǔ)單元703。內(nèi)容待復(fù)制窗口選擇單元701用于根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口 ;較佳地,IDE為MPLAB。內(nèi)容獲取單元702用于獲取內(nèi)容待復(fù)制窗口選擇單元701選擇的內(nèi)容待復(fù)制窗口的窗口句柄;在根據(jù)獲取的窗口句柄,判斷出所述內(nèi)容待復(fù)制窗口的類為列表框類后,獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容;所述列表框中的內(nèi)容包括該內(nèi)容待復(fù)制窗口中所顯示的單片機(jī)的寄存器值或內(nèi)存值;內(nèi)容獲取單元702中的具體操作可參考上述步驟S501-S505的內(nèi)容,此處不再贅述。內(nèi)容存儲(chǔ)單元703用于將內(nèi)容獲取單元702獲取的內(nèi)容存儲(chǔ)到預(yù)先指定的文件中。本發(fā)明實(shí)施例提供的技術(shù)方案中,利用IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口,獲取查看窗口的窗口句柄后,根據(jù)獲取的窗口句柄,獲取到該查看窗口的列表框中的內(nèi)容,實(shí)現(xiàn)將列表框中的內(nèi)容包括寄存器值或內(nèi)存值自動(dòng)存儲(chǔ)到預(yù)先指定的文件中;而不必手動(dòng)操作從查看窗口中一個(gè)一個(gè)寄存器值進(jìn)行復(fù)制、粘貼的繁瑣工作;大大方便技術(shù)人員存儲(chǔ)單片機(jī)的寄存器值或內(nèi)存值,便于技術(shù)人員對(duì)單片機(jī)的調(diào)試。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,如:R0M/RAM、磁碟、光盤等。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法,其特征在于,包括: 根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口; 獲取所述內(nèi)容待復(fù)制窗口的窗口句柄; 在根據(jù)獲取的窗口句柄,判斷出所述內(nèi)容待復(fù)制窗口的類為列表框類后,獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容;所述列表框中的內(nèi)容包括該內(nèi)容待復(fù)制窗口中所顯示的單片機(jī)的寄存器值或內(nèi)存值; 將獲取的內(nèi)容按預(yù)定格式存儲(chǔ)到預(yù)先指定的文件中。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口,具體包括: 接收到如下一系列鼠標(biāo)操作指令后,確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令: 在運(yùn)行所述方法的程序界面中的特定圖標(biāo)處,鼠標(biāo)左鍵按下的操作指令、所述鼠標(biāo)拖拽操作指令、在所述單片機(jī)的寄存器值或內(nèi)存值的查看窗口之一,所述鼠標(biāo)左鍵釋放的操作指令; 在確認(rèn)接收到指定內(nèi)容待復(fù)制窗口的操作指令后,將所述鼠標(biāo)左鍵釋放的位置所在窗口作為所述內(nèi)容待復(fù)制窗口。
3.如權(quán)利要求2所述的方法,其特征在于,所述獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容,具體包括: 根據(jù)獲取的窗口句柄,獲取IDE進(jìn)程的進(jìn)程號(hào); 根據(jù)獲取的進(jìn)程號(hào),獲取所述IDE進(jìn)程的進(jìn)程句柄; 使用所述IDE進(jìn)程的進(jìn)程句柄,在所述IDE進(jìn)程中申請(qǐng)文本存儲(chǔ)空間和列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間; 獲取所述列表框的總行數(shù)與總列數(shù); 依據(jù)獲取的總行數(shù)與總列數(shù),將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間中、根據(jù)所述列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)與列號(hào)將所述文本存儲(chǔ)空間中的內(nèi)容讀取到本進(jìn)程的存儲(chǔ)空間中;其中,本進(jìn)程指的是運(yùn)行所述方法的程序所在進(jìn)程;被復(fù)制到所述文本存儲(chǔ)空間的內(nèi)容所在位置的行號(hào)與列號(hào)由所述列表項(xiàng)結(jié)構(gòu)體存儲(chǔ)空間中設(shè)置的行號(hào)與列號(hào)指定。
4.如權(quán)利要求3所述的方法,其特征在于,所述列表框中的內(nèi)容每次被復(fù)制到所述文本存儲(chǔ)空間之前,還包括: 對(duì)所述文本存儲(chǔ)空間進(jìn)行清除。
5.如權(quán)利要求3所述的方法,其特征在于,所述將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間具體為: 以向所述IDE進(jìn)程發(fā)送相應(yīng)消息的方式,將所述列表框中的每行每列的內(nèi)容依次復(fù)制到所述文本存儲(chǔ)空間。
6.如權(quán)利要求3所述的方法,其特征在于,所述將獲取的內(nèi)容按預(yù)定格式存儲(chǔ)到預(yù)先指定的文件中,具體包括: 將所述本進(jìn)程的存儲(chǔ)空間中的內(nèi)容按預(yù)定格式存儲(chǔ)到預(yù)先指定的文件中。
7.如權(quán)利要求6所述的方法,其特征在于,所述文件具體為文本文件、或列表文件、或數(shù)據(jù)庫(kù)文件。
8.如權(quán)利要求1-7任一所述的方法,其特征在于,所述IDE具體為MPLAB軟件。
9.一種基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)裝置,其特征在于,包括: 內(nèi)容待復(fù)制窗口選擇單元,用于根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口 ; 內(nèi)容獲取單元,用于獲取所述內(nèi)容待復(fù)制窗口的窗口句柄;在根據(jù)獲取的窗口句柄,判斷出所述內(nèi)容待復(fù)制窗口的類為列表框類后,獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容;所述列表框中的內(nèi)容包括該內(nèi)容待復(fù)制窗口中所顯示的單片機(jī)的寄存器值或內(nèi)存值;內(nèi)容存儲(chǔ)單元,用于將所述內(nèi)容獲取單元獲取的內(nèi)容存儲(chǔ)到預(yù)先指定的文件中。
10.如權(quán)利要求9所述 的裝置,其特征在于,所述IDE具體為MPLAB軟件。
全文摘要
本發(fā)明公開了一種基于IDE的單片機(jī)寄存器值的自動(dòng)存儲(chǔ)方法和裝置,所述方法包括根據(jù)接收的操作指令,從由IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口中,選擇一個(gè)作為內(nèi)容待復(fù)制窗口;獲取所述內(nèi)容待復(fù)制窗口的窗口句柄;根據(jù)獲取的窗口句柄,獲取該內(nèi)容待復(fù)制窗口的列表框中的內(nèi)容;將獲取的內(nèi)容按預(yù)定格式存儲(chǔ)到預(yù)先指定的文件中。由于利用IDE提供的單片機(jī)的寄存器值或內(nèi)存值的查看窗口,獲取查看窗口的窗口句柄后,可以獲取到該查看窗口的列表框中的內(nèi)容,實(shí)現(xiàn)將列表框中的內(nèi)容包括寄存器值或內(nèi)存值自動(dòng)存儲(chǔ)到預(yù)先指定的文件中,大大方便技術(shù)人員對(duì)單片機(jī)的調(diào)試。
文檔編號(hào)G06F9/44GK103116495SQ201310053068
公開日2013年5月22日 申請(qǐng)日期2013年2月18日 優(yōu)先權(quán)日2013年2月18日
發(fā)明者林青合, 鄭龍, 張華 , 姜瑜斐 申請(qǐng)人:青島海信寬帶多媒體技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
郸城县| 江油市| 海门市| 铁岭县| 新田县| 翁源县| 德州市| 两当县| 八宿县| 郎溪县| 凤山市| 班玛县| 建宁县| 普陀区| 钦州市| 睢宁县| 凤台县| 会泽县| 固安县| 同江市| 阳信县| 翼城县| 新蔡县| 綦江县| 渝北区| 武乡县| 惠来县| 贵州省| 新昌县| 洛隆县| 三江| 莱芜市| 汉中市| 稻城县| 镇平县| 宜昌市| 建昌县| 高平市| 锡林浩特市| 蒲江县| 竹溪县|