專利名稱:一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法
技術(shù)領(lǐng)域:
該語言涉及嵌入式計(jì)算機(jī)系統(tǒng)的開發(fā)工具領(lǐng)域,尤其涉及到操作開發(fā)工具的方法。
背景技術(shù):
嵌入式計(jì)算機(jī)系統(tǒng)的開發(fā)工具的操作有多種方式。最常用的方式是菜單和對話框及窗口組成的圖形用戶界面。這種方式中,用戶通過菜單和對話框輸入操作指令,通過窗口觀察結(jié)果。這種操作方式的好處就是用戶操作可視化、簡單。但是,這種操作方式也存在很大的弊端,就是用戶必須要親手完成這些操作,不能實(shí)現(xiàn)自動(dòng)化、程序化操作,不利于提高效率。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,提出一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法, 能夠?qū)崿F(xiàn)開發(fā)工具執(zhí)行的自動(dòng)化和程序化。為了解決上述技術(shù)問題,本發(fā)明提出一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法,包括制定控制開發(fā)工具操作的腳本語言的規(guī)范;根據(jù)所述腳本語言的規(guī)范編寫腳本文件;解釋運(yùn)行所述腳本文件。進(jìn)一步地,上述方法還可具有以下特點(diǎn)所述腳本語言包括控制指令,用以控制開發(fā)工具的操作;函數(shù),封裝有一個(gè)或者多個(gè)所述控制指令;所述函數(shù)包括主函數(shù)和子函數(shù);宏,用以定義函數(shù)的全局變量、局部變變量和參數(shù);操作符,用以對宏或者函數(shù)進(jìn)行運(yùn)算操作;參數(shù),包括形參和實(shí)參,用以實(shí)現(xiàn)數(shù)值傳遞。進(jìn)一步地,上述方法還可具有以下特點(diǎn)所述控制指令包括下述一種或者多種調(diào)試控制基本指令,用于實(shí)現(xiàn)開發(fā)工具的調(diào)試控制功能;腳本控制指令,用于控制所述腳本文件中各指令被解釋執(zhí)行的順序;圖形用戶界面指令,用于為用戶提供菜單和/或?qū)υ捒蛐问降牟僮鹘缑?;操作系統(tǒng)指令,用于開發(fā)控制操作系統(tǒng)動(dòng)作。進(jìn)一步地,上述方法還可具有以下特點(diǎn)所述腳本語言還包括下述一種或者多種內(nèi)置函數(shù),用以提供開發(fā)工具的狀態(tài)的函數(shù);注釋,用于標(biāo)注操作指令功能的描述性說明語句。
進(jìn)一步地,上述方法還可具有以下特點(diǎn)所述解釋運(yùn)行所述腳本文件包括將所述腳本文件存儲(chǔ)在一預(yù)先分配的腳本程序區(qū),將所述腳本文件中的全局變量存儲(chǔ)在一預(yù)先分配的腳本數(shù)據(jù)區(qū);順次解釋執(zhí)行所述腳本程序區(qū)內(nèi)的所述腳本文件中各指令;在執(zhí)行函數(shù)調(diào)用時(shí),將主函數(shù)的參數(shù)以及返回所述主函數(shù)的腳本程序指針存入一預(yù)先分配的腳本堆棧區(qū),然后將當(dāng)前腳本程序指針指向被調(diào)用的子函數(shù),將在所述子函數(shù)中定義的局部變量存入所述腳本堆棧區(qū),根據(jù)所述腳本堆棧中的所述參數(shù)和所述局部變量執(zhí)行所述子函數(shù);在所述子函數(shù)執(zhí)行完成后,根據(jù)所述腳本堆棧中的返回所述主函數(shù)的程序指針返回主函數(shù)。進(jìn)一步地,上述方法還可具有以下特點(diǎn)所述腳本語言使用的是嵌入式調(diào)試系統(tǒng)EDS腳本語言。進(jìn)一步地,上述方法還可具有以下特點(diǎn)所述腳本程序區(qū)、所述腳本數(shù)據(jù)區(qū),和所述腳本堆棧區(qū)采用CArray類型實(shí)現(xiàn);所述全局變量、所述參數(shù)和所述局部變量采用(String類型實(shí)現(xiàn);所述腳本程序指針和所述腳本堆棧指針采用int類型實(shí)現(xiàn),其作為CArray類型的索引值,用以訪問所述腳本程序區(qū)、所述腳本數(shù)據(jù)區(qū)和所述腳本堆棧區(qū)。進(jìn)一步地,上述方法還可具有以下特點(diǎn)所述控制指令和函數(shù)采用分級命名方式,其名稱包括第一級名字、第二級名字........以及第N級名字;N為正整數(shù)。進(jìn)一步地,上述方法還可具有以下特點(diǎn)每一級名字均以沈個(gè)英文字母中的任意字母打頭,后面的字符可以由字符、數(shù)字,以及下劃線中的一個(gè)或者多個(gè)組成;所述名字不區(qū)分大小寫;所述名字中的大寫字母用來作為整個(gè)名字的簡寫。本發(fā)明提出的一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法,能夠?qū)崿F(xiàn)開發(fā)工具執(zhí)行的自動(dòng)化和程序化。
圖1是本發(fā)明實(shí)施例一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法流程圖;圖2是本發(fā)明實(shí)施例一種解釋運(yùn)行所述腳本文件的方法流程圖。
具體實(shí)施例方式下面將結(jié)合附圖來詳細(xì)說明本發(fā)明實(shí)施方式。參見圖1,該圖示出了本發(fā)明實(shí)施例一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法, 包括步驟SlOl 制定控制開發(fā)工具操作的腳本語言的規(guī)范;步驟S102 根據(jù)所述腳本語言的規(guī)范編寫腳本文件;步驟S103 解釋運(yùn)行所述腳本文件。本發(fā)明實(shí)施例巧妙地通過制定針對嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的腳本語言規(guī)范,以腳本文件的形式實(shí)現(xiàn)開發(fā)工具自動(dòng)化執(zhí)行。步驟SlOl中,本發(fā)明設(shè)計(jì)的腳本語言主要包括控制指令,用以控制開發(fā)工具的操作;函數(shù),封裝有一個(gè)或者多個(gè)所述控制指令;所述函數(shù)包括主函數(shù)和子函數(shù);宏,用以定義函數(shù)的全局變量、局部變變量和參數(shù);操作符,用以對宏或者函數(shù)進(jìn)行運(yùn)算操作;參數(shù),包括形參和實(shí)參,用以實(shí)現(xiàn)數(shù)值傳遞。其中,所述控制指令可以包括下述一種或者多種調(diào)試控制基本指令,用于實(shí)現(xiàn)開發(fā)工具的調(diào)試控制功能;腳本控制指令,用于控制所述腳本文件中各指令被解釋執(zhí)行的順序;圖形用戶界面指令,用于為用戶提供菜單和/或?qū)υ捒蛐问降牟僮鹘缑?;操作系統(tǒng)指令,用于開發(fā)控制操作系統(tǒng)動(dòng)作。在具體實(shí)現(xiàn)上,其中所述調(diào)試控制基本指令可以包括BREAK停止指令、DATA數(shù)據(jù)指令、GO運(yùn)行指令、 MAP映射指令、REGISTER寄存器指令、STEP單步指令、SYMBOL符號指令、SYSTEM系統(tǒng)指令中的一種或者多種;所述腳本控制指令可以包括STOP和CONTINUE腳本暫停和繼續(xù)執(zhí)行指令、DO和 RUN運(yùn)行腳本語言文件指令、IF和ELSE條件執(zhí)行指令、ENTER輸入指令、END腳本語言停止運(yùn)行并清除堆棧指令、ENDDO腳本語言停止運(yùn)行并不清楚堆棧指令、GOSUB和RETURN子程序調(diào)用和返回指令、GOTO和JUMPTO跳轉(zhuǎn)指令、INKEY等待按鍵指令、REPEAT重復(fù)執(zhí)行指令、 ON事件或狀態(tài)改變檢測指令、WAIT延時(shí)指令、WHILE循環(huán)執(zhí)行指令中的一種或者多種;所述圖形用戶界面指令可以包括AREA消息窗口指令、DIALOG對話框指令、 MENU菜單指令、MODE程序列表顯示方式指令、MSGBOX消息對話框指令、SCREEN屏幕刷新指令、TITLE系統(tǒng)界面標(biāo)題指令、WINCASCADE窗口層疊排列指令、UNCLEAR窗口清除指令、WINIC0NARRANGE排列窗口圖標(biāo)指令、WINPAGE窗口頁指令、WINPOS窗口位置指令、 WINTITILE窗口平鋪指令中的一種或者多種;所述操作系統(tǒng)指令,可以包括APPEND文件添加信息指令、BEEP蜂鳴指令、CHDIR 工作目錄指令、CLOSE文件關(guān)閉指令、WR顯示文件指令、HELP幫助指令、HISTORY指令歷史緩沖指令、LICENSE顯示軟件許可信息指令、MKDIR創(chuàng)建子目錄指令、OPEN打開文件指令、 PRINT打印信息指令、QUIT退出調(diào)試軟件指令、READ讀取文件指令、RMWR刪除子目錄指令、 VERSION顯示版本信息指令中的一種或者多種。所述宏包括ENTRY參數(shù)傳遞指令、GLOBAL定義全局變量指令、LOCAL定義局部變量指令中的一種或者多種。在一具體實(shí)現(xiàn)時(shí),可以是,所述宏用字符串前加’ &’符號來表示。操作符包括括號‘(’和‘)’、范圍‘一’和‘..’、負(fù)號‘_’、按位取反‘ ’、邏輯非 ‘! ’、左移位‘<<’、右移位‘>>’、乘號‘*’、除號‘/’、加號‘ + ’、減號‘_’、大于‘>’、小于,<’,等于‘==,不等于‘!=、大于等于‘> =、小于等于‘< =、按位與‘&’、按位異或 ‘~’、按位或‘I’、邏輯與‘&&’、邏輯異或‘~~’、邏輯或‘I I’、賦值‘=,中的一種或者多種。所述參數(shù)可以采用如下數(shù)據(jù)形式表示二進(jìn)制值、十進(jìn)制值、十六進(jìn)制值、范圍、浮點(diǎn)值、時(shí)間值、時(shí)間范圍、ASCII值、字符串、地址、地址范圍、十六進(jìn)制掩碼、二進(jìn)制掩碼、文件路徑、函數(shù)、標(biāo)簽、通配符、取模、下劃線中的一種或者多種。在另一實(shí)施例中,所述腳本語言還可以包括內(nèi)置函數(shù),其用以提供開發(fā)工具的狀態(tài)的函數(shù)。在具體實(shí)現(xiàn)上,所述內(nèi)置函數(shù)可以包括CLOCK時(shí)鐘函數(shù)、CONV數(shù)值格式轉(zhuǎn)換函數(shù)、 CPU和CPUFAMILY處理器函數(shù)、DATA數(shù)據(jù)函數(shù)、DIALOG對話框函數(shù)、FEXP等浮點(diǎn)數(shù)函數(shù)、OS 操作系統(tǒng)函數(shù)、RANDOM隨機(jī)函數(shù)、REG ISTER寄存器函數(shù)、SELECT ION選擇函數(shù)、STATE狀態(tài)函數(shù)、STRING字符串函數(shù)、SYSTEM系統(tǒng)函數(shù)、VERSION版本函數(shù)、WARNINGS警告函數(shù)、WINDOW 窗口函數(shù)中的一種或者多種。在另一實(shí)施例中,所述腳本語言還可以包括注釋,其用于標(biāo)注操作指令功能的描述性說明語句。所述注釋可以以例如分號開頭的字符串來表示。本發(fā)明針對嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具制定腳本語言,巧妙地利用腳本自動(dòng)解釋執(zhí)行的特點(diǎn),使用所述腳本語言編寫控制嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具自動(dòng)操作的腳本,據(jù)以實(shí)現(xiàn)控制嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具自動(dòng)操作的目的。本發(fā)明實(shí)施例還提供了一種解釋運(yùn)行所述腳本文件的方法,首先需要預(yù)先分配出一腳本程序區(qū)、一腳本數(shù)據(jù)區(qū)和一腳本堆棧區(qū)。之后,利用所述腳本程序區(qū)、所述腳本數(shù)據(jù)區(qū)和所述腳本堆棧區(qū)實(shí)現(xiàn)腳本文件解釋運(yùn)行。參見圖2,在執(zhí)行步驟S103時(shí),具體可以包括如下步驟步驟S201 將所述腳本文件存儲(chǔ)在腳本程序區(qū),將所述腳本文件中的全局變量存儲(chǔ)在腳本數(shù)據(jù)區(qū);步驟S202 順次解釋執(zhí)行所述程序區(qū)內(nèi)的腳本文件中各指令;步驟S203 在執(zhí)行步驟S202過程中,在執(zhí)行函數(shù)調(diào)用時(shí),將主函數(shù)的參數(shù)以及返回所述主函數(shù)的腳本程序指針存入腳本堆棧區(qū),然后將當(dāng)前腳本程序指針指向被調(diào)用的子函數(shù),將在所述子函數(shù)中定義的局部變量存入所述腳本堆棧區(qū),根據(jù)所述腳本堆棧中的所述參數(shù)和所述局部變量執(zhí)行所述子函數(shù);在所述子函數(shù)執(zhí)行完成后,根據(jù)所述腳本堆棧中的返回所述主函數(shù)的程序指針返回主函數(shù)。所述腳本堆棧區(qū)可以存儲(chǔ)有一堆棧,在執(zhí)行函數(shù)調(diào)用時(shí),通過執(zhí)行入棧操作將主函數(shù)的參數(shù)、返回所述主函數(shù)的腳本程序指針,以及子函數(shù)中定義的局部變量存入所述堆棧;在執(zhí)行子函數(shù)的過程中,通過修改堆棧指針從所述堆棧中獲取執(zhí)行所述子函數(shù)所需的參數(shù)、局部變量,在執(zhí)行完子函數(shù)后,通過修改堆棧指針從所述堆棧中獲取返回主函數(shù)的腳本程序指針。在返回主函數(shù)后,還可以對為執(zhí)行所述函數(shù)調(diào)用操作而在所述堆棧中存入的參數(shù)、局部變量、返回主函數(shù)的指針執(zhí)行出棧操作,以避免堆棧區(qū)有效存儲(chǔ)空間不足。在執(zhí)行函數(shù)時(shí),如需使用全局變量,則從所述腳本數(shù)據(jù)區(qū)獲取所需的全局變量。本發(fā)明巧妙地根據(jù)腳本執(zhí)行特點(diǎn),進(jìn)行功能分區(qū)將全局變量存儲(chǔ)至一單獨(dú)的存儲(chǔ)區(qū)域(腳本數(shù)據(jù)區(qū))進(jìn)行統(tǒng)一管理,如需使用,則去所述存儲(chǔ)區(qū)域查找,無需在腳本程序中每次使用時(shí)都必須賦值,實(shí)現(xiàn)了對全局變量的重復(fù)利用,節(jié)約了存儲(chǔ)空間,且在修改全局變量的賦值時(shí)也變的更加方便。另外,以單獨(dú)的堆棧區(qū)存儲(chǔ)函數(shù)調(diào)用所需的參數(shù)、局部變量和返回主函數(shù)的指針,實(shí)現(xiàn)了函數(shù)調(diào)用過程中,局部變量、參數(shù)、指針的重復(fù)利用,大大的節(jié)約了存儲(chǔ)空間。在一具體應(yīng)用中,本發(fā)明實(shí)施例中,所述腳本語言使用的可以是嵌入式調(diào)試系統(tǒng)(EDS)腳本語言。所述腳本程序區(qū)、所述腳本數(shù)據(jù)區(qū),和所述腳本堆棧區(qū)采用CArray類型實(shí)現(xiàn);所述全局變量、所述參數(shù)和所述局部變量采用string類型實(shí)現(xiàn);所述腳本程序指針和所述腳本堆棧指針采用int類型實(shí)現(xiàn),其作為CArray類型的索引值,用以訪問所述腳本程序區(qū)、所述腳本數(shù)據(jù)區(qū)和所述腳本堆棧區(qū)。為了增加腳本文件的可擴(kuò)展性,較佳地,本發(fā)明實(shí)施例設(shè)計(jì)指令、函數(shù)采用分級命
名方式,即其名稱包括第一級名字、第二級名字........以及第N級名字;N為正整數(shù)。例
如“第一級名字.第二級名字.第三級名字......”。進(jìn)一步地,在EDS腳本語言中,只有腳本控制指令影響腳本程序指針,其它指令都是順序執(zhí)行的。其中,所述名字以沈個(gè)英文字母中的任意字母打頭,后面的字符可以由字符、數(shù)字,以及下劃線組成。所述名字不區(qū)分大小寫,例如,abc和ABc表示同一個(gè)名字。為了在后續(xù)調(diào)用過程中能夠?qū)崿F(xiàn)快速輸入,還設(shè)計(jì)所述名字中的大寫字母用來作為整個(gè)名字的簡寫,如上例中的ABc可以簡寫為ab。其中,上述腳本文件可以是EDS腳本文件。在實(shí)現(xiàn)本發(fā)明開發(fā)工具時(shí),可以采用 Microsoft Visual C++6. 0 語言實(shí)現(xiàn)。以上僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、 等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法,其特征在于,包括 制定控制開發(fā)工具操作的腳本語言的規(guī)范;根據(jù)所述腳本語言的規(guī)范編寫腳本文件; 解釋運(yùn)行所述腳本文件。
2.如權(quán)利要求1所述的方法,其特征在于,所述腳本語言包括 控制指令,用以控制開發(fā)工具的操作;函數(shù),封裝有一個(gè)或者多個(gè)所述控制指令;所述函數(shù)包括主函數(shù)和子函數(shù); 宏,用以定義函數(shù)的全局變量、局部變變量和參數(shù); 操作符,用以對宏或者函數(shù)進(jìn)行運(yùn)算操作; 參數(shù),包括形參和實(shí)參,用以實(shí)現(xiàn)數(shù)值傳遞。
3.如權(quán)利要求2所述的方法,其特征在于,所述控制指令包括下述一種或者多種 調(diào)試控制基本指令,用于實(shí)現(xiàn)開發(fā)工具的調(diào)試控制功能;腳本控制指令,用于控制所述腳本文件中各指令被解釋執(zhí)行的順序; 圖形用戶界面指令,用于為用戶提供菜單和/或?qū)υ捒蛐问降牟僮鹘缑妫?操作系統(tǒng)指令,用于開發(fā)控制操作系統(tǒng)動(dòng)作。
4.如權(quán)利要求2所述的方法,其特征在于,所述腳本語言還包括下述一種或者多種 內(nèi)置函數(shù),用以提供開發(fā)工具的狀態(tài)的函數(shù);注釋,用于標(biāo)注操作指令功能的描述性說明語句。
5.如權(quán)利要求2所述的方法,其特征在于,所述解釋運(yùn)行所述腳本文件包括將所述腳本文件存儲(chǔ)在一預(yù)先分配的腳本程序區(qū),將所述腳本文件中的全局變量存儲(chǔ)在一預(yù)先分配的腳本數(shù)據(jù)區(qū);順次解釋執(zhí)行所述腳本程序區(qū)內(nèi)的所述腳本文件中各指令;在執(zhí)行函數(shù)調(diào)用時(shí),將主函數(shù)的參數(shù)以及返回所述主函數(shù)的腳本程序指針存入一預(yù)先分配的腳本堆棧區(qū),然后將當(dāng)前腳本程序指針指向被調(diào)用的子函數(shù),將在所述子函數(shù)中定義的局部變量存入所述腳本堆棧區(qū),根據(jù)所述腳本堆棧中的所述參數(shù)和所述局部變量執(zhí)行所述子函數(shù);在所述子函數(shù)執(zhí)行完成后,根據(jù)所述腳本堆棧中的返回所述主函數(shù)的程序指針返回主函數(shù)。
6.如權(quán)利要求1-5中任何一項(xiàng)所述的方法,其特征在于 所述腳本語言使用的是嵌入式調(diào)試系統(tǒng)EDS腳本語言。
7.如權(quán)利要求5所述的方法,其特征在于所述腳本程序區(qū)、所述腳本數(shù)據(jù)區(qū),和所述腳本堆棧區(qū)采用CArray類型實(shí)現(xiàn); 所述全局變量、所述參數(shù)和所述局部變量采用(String類型實(shí)現(xiàn); 所述腳本程序指針和所述腳本堆棧指針采用int類型實(shí)現(xiàn),其作為CArray類型的索引值,用以訪問所述腳本程序區(qū)、所述腳本數(shù)據(jù)區(qū)和所述腳本堆棧區(qū)。
8.如權(quán)利要求2所述的方法,其特征在于所述控制指令和函數(shù)采用分級命名方式,其名稱包括第一級名字、第二級名字........以及第N級名字;N為正整數(shù)。
9.如權(quán)利要求8所述的方法,其特征在于每一級名字均以沈個(gè)英文字母中的任意字母打頭,后面的字符可以由字符、數(shù)字,以及下劃線中的一個(gè)或者多個(gè)組成;所述名字不區(qū)分大小寫;所述名字中的大寫字母用來作為整個(gè)名字的簡寫。
全文摘要
本發(fā)明提供了一種操作嵌入式計(jì)算機(jī)系統(tǒng)開發(fā)工具的方法,包括制定控制開發(fā)工具操作的腳本語言的規(guī)范;根據(jù)所述腳本語言的規(guī)范編寫腳本文件;解釋運(yùn)行所述腳本文件。該方法能夠?qū)崿F(xiàn)開發(fā)工具執(zhí)行的自動(dòng)化和程序化。
文檔編號G06F9/45GK102567065SQ20101058267
公開日2012年7月11日 申請日期2010年12月10日 優(yōu)先權(quán)日2010年12月10日
發(fā)明者周慶華, 宋東劍, 肖揚(yáng), 鄭哲新 申請人:北京旋極信息技術(shù)股份有限公司