CN102567065A - 一种操作嵌入式计算机系统开发工具的方法 - Google Patents
一种操作嵌入式计算机系统开发工具的方法 Download PDFInfo
- Publication number
- CN102567065A CN102567065A CN2010105826768A CN201010582676A CN102567065A CN 102567065 A CN102567065 A CN 102567065A CN 2010105826768 A CN2010105826768 A CN 2010105826768A CN 201010582676 A CN201010582676 A CN 201010582676A CN 102567065 A CN102567065 A CN 102567065A
- Authority
- CN
- China
- Prior art keywords
- script
- function
- order
- instruction
- name
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种操作嵌入式计算机系统开发工具的方法,包括:制定控制开发工具操作的脚本语言的规范;根据所述脚本语言的规范编写脚本文件;解释运行所述脚本文件。该方法能够实现开发工具执行的自动化和程序化。
Description
技术领域
该语言涉及嵌入式计算机系统的开发工具领域,尤其涉及到操作开发工具的方法。
背景技术
嵌入式计算机系统的开发工具的操作有多种方式。最常用的方式是菜单和对话框及窗口组成的图形用户界面。这种方式中,用户通过菜单和对话框输入操作指令,通过窗口观察结果。这种操作方式的好处就是用户操作可视化、简单。但是,这种操作方式也存在很大的弊端,就是用户必须要亲手完成这些操作,不能实现自动化、程序化操作,不利于提高效率。
发明内容
本发明要解决的技术问题是,提出一种操作嵌入式计算机系统开发工具的方法,能够实现开发工具执行的自动化和程序化。
为了解决上述技术问题,本发明提出一种操作嵌入式计算机系统开发工具的方法,包括:
制定控制开发工具操作的脚本语言的规范;
根据所述脚本语言的规范编写脚本文件;
解释运行所述脚本文件。
进一步地,上述方法还可具有以下特点:
所述脚本语言包括:
控制指令,用以控制开发工具的操作;
函数,封装有一个或者多个所述控制指令;所述函数包括主函数和子函数;
宏,用以定义函数的全局变量、局部变变量和参数;
操作符,用以对宏或者函数进行运算操作;
参数,包括形参和实参,用以实现数值传递。
进一步地,上述方法还可具有以下特点:
所述控制指令包括下述一种或者多种:
调试控制基本指令,用于实现开发工具的调试控制功能;
脚本控制指令,用于控制所述脚本文件中各指令被解释执行的顺序;
图形用户界面指令,用于为用户提供菜单和/或对话框形式的操作界面;
操作系统指令,用于开发控制操作系统动作。
进一步地,上述方法还可具有以下特点:
所述脚本语言还包括下述一种或者多种:
内置函数,用以提供开发工具的状态的函数;
注释,用于标注操作指令功能的描述性说明语句。
进一步地,上述方法还可具有以下特点:
所述解释运行所述脚本文件包括:
将所述脚本文件存储在一预先分配的脚本程序区,将所述脚本文件中的全局变量存储在一预先分配的脚本数据区;
顺次解释执行所述脚本程序区内的所述脚本文件中各指令;
在执行函数调用时,将主函数的参数以及返回所述主函数的脚本程序指针存入一预先分配的脚本堆栈区,然后将当前脚本程序指针指向被调用的子函数,将在所述子函数中定义的局部变量存入所述脚本堆栈区,根据所述脚本堆栈中的所述参数和所述局部变量执行所述子函数;在所述子函数执行完成后,根据所述脚本堆栈中的返回所述主函数的程序指针返回主函数。
进一步地,上述方法还可具有以下特点:
所述脚本语言使用的是嵌入式调试系统EDS脚本语言。
进一步地,上述方法还可具有以下特点:
所述脚本程序区、所述脚本数据区,和所述脚本堆栈区采用CArray类型实现;
所述全局变量、所述参数和所述局部变量采用CString类型实现;
所述脚本程序指针和所述脚本堆栈指针采用int类型实现,其作为CArray类型的索引值,用以访问所述脚本程序区、所述脚本数据区和所述脚本堆栈区。
进一步地,上述方法还可具有以下特点:
所述控制指令和函数采用分级命名方式,其名称包括第一级名字、第二级名字、......,以及第N级名字;N为正整数。
进一步地,上述方法还可具有以下特点:
每一级名字均以26个英文字母中的任意字母打头,后面的字符可以由字符、数字,以及下划线中的一个或者多个组成;所述名字不区分大小写;所述名字中的大写字母用来作为整个名字的简写。
本发明提出的一种操作嵌入式计算机系统开发工具的方法,能够实现开发工具执行的自动化和程序化。
附图说明
图1是本发明实施例一种操作嵌入式计算机系统开发工具的方法流程图;
图2是本发明实施例一种解释运行所述脚本文件的方法流程图。
具体实施方式
下面将结合附图来详细说明本发明实施方式。
参见图1,该图示出了本发明实施例一种操作嵌入式计算机系统开发工具的方法,包括:
步骤S101:制定控制开发工具操作的脚本语言的规范;
步骤S102:根据所述脚本语言的规范编写脚本文件;
步骤S103:解释运行所述脚本文件。
本发明实施例巧妙地通过制定针对嵌入式计算机系统开发工具的脚本语言规范,以脚本文件的形式实现开发工具自动化执行。
步骤S101中,本发明设计的脚本语言主要包括:
控制指令,用以控制开发工具的操作;
函数,封装有一个或者多个所述控制指令;所述函数包括主函数和子函数;
宏,用以定义函数的全局变量、局部变变量和参数;
操作符,用以对宏或者函数进行运算操作;
参数,包括形参和实参,用以实现数值传递。
其中,所述控制指令可以包括下述一种或者多种:
调试控制基本指令,用于实现开发工具的调试控制功能;
脚本控制指令,用于控制所述脚本文件中各指令被解释执行的顺序;
图形用户界面指令,用于为用户提供菜单和/或对话框形式的操作界面;
操作系统指令,用于开发控制操作系统动作。
在具体实现上,其中:
所述调试控制基本指令可以包括BREAK停止指令、DATA数据指令、GO运行指令、MAP映射指令、REGISTER寄存器指令、STEP单步指令、SYMBOL符号指令、SYSTEM系统指令中的一种或者多种;
所述脚本控制指令可以包括STOP和CONTINUE脚本暂停和继续执行指令、DO和RUN运行脚本语言文件指令、IF和ELSE条件执行指令、ENTER输入指令、END脚本语言停止运行并清除堆栈指令、ENDDO脚本语言停止运行并不清楚堆栈指令、GOSUB和RETURN子程序调用和返回指令、GOTO和JUMPTO跳转指令、INKEY等待按键指令、REPEAT重复执行指令、ON事件或状态改变检测指令、WAIT延时指令、WHILE循环执行指令中的一种或者多种;
所述图形用户界面指令可以包括AREA消息窗口指令、DIALOG对话框指令、MENU菜单指令、MODE程序列表显示方式指令、MSGBOX消息对话框指令、SCREEN屏幕刷新指令、TITLE系统界面标题指令、WINCASCADE窗口层叠排列指令、WINCLEAR窗口清除指令、WINICONARRANGE排列窗口图标指令、WINPAGE窗口页指令、WINPOS窗口位置指令、WINTITILE窗口平铺指令中的一种或者多种;
所述操作系统指令,可以包括APPEND文件添加信息指令、BEEP蜂鸣指令、CHDIR工作目录指令、CLOSE文件关闭指令、DIR显示文件指令、HELP帮助指令、HISTORY指令历史缓冲指令、LICENSE显示软件许可信息指令、MKDIR创建子目录指令、OPEN打开文件指令、PRINT打印信息指令、QUIT退出调试软件指令、READ读取文件指令、RMDIR删除子目录指令、VERSION显示版本信息指令中的一种或者多种。
所述宏包括ENTRY参数传递指令、GLOBAL定义全局变量指令、LOCAL定义局部变量指令中的一种或者多种。在一具体实现时,可以是,所述宏用字符串前加’&’符号来表示。
操作符包括括号‘(’和‘)’、范围‘--’和‘..’、负号‘-’、按位取反‘~’、逻辑非‘!’、左移位‘<<’、右移位‘>>’、乘号‘*’、除号‘/’、加号‘+’、减号‘-’、大于‘>’、小于’<’,等于‘==,不等于‘!=、大于等于‘>=、小于等于‘<=、按位与‘&’、按位异或‘^’、按位或‘|’、逻辑与‘&&’、逻辑异或‘^^’、逻辑或‘||’、赋值‘=’中的一种或者多种。
所述参数可以采用如下数据形式表示:二进制值、十进制值、十六进制值、范围、浮点值、时间值、时间范围、ASCII值、字符串、地址、地址范围、十六进制掩码、二进制掩码、文件路径、函数、标签、通配符、取模、下划线中的一种或者多种。
在另一实施例中,所述脚本语言还可以包括内置函数,其用以提供开发工具的状态的函数。
在具体实现上,所述内置函数可以包括CLOCK时钟函数、CONV数值格式转换函数、CPU和CPUFAMILY处理器函数、DATA数据函数、DIALOG对话框函数、FEXP等浮点数函数、OS操作系统函数、RANDOM随机函数、REGISTER寄存器函数、SELECTION选择函数、STATE状态函数、STRING字符串函数、SYSTEM系统函数、VERSION版本函数、WARNINGS警告函数、WINDOW窗口函数中的一种或者多种。
在另一实施例中,所述脚本语言还可以包括注释,其用于标注操作指令功能的描述性说明语句。所述注释可以以例如分号开头的字符串来表示。
本发明针对嵌入式计算机系统开发工具制定脚本语言,巧妙地利用脚本自动解释执行的特点,使用所述脚本语言编写控制嵌入式计算机系统开发工具自动操作的脚本,据以实现控制嵌入式计算机系统开发工具自动操作的目的。
本发明实施例还提供了一种解释运行所述脚本文件的方法,首先需要预先分配出一脚本程序区、一脚本数据区和一脚本堆栈区。之后,利用所述脚本程序区、所述脚本数据区和所述脚本堆栈区实现脚本文件解释运行。参见图2,在执行步骤S103时,具体可以包括如下步骤:
步骤S201:将所述脚本文件存储在脚本程序区,将所述脚本文件中的全局变量存储在脚本数据区;
步骤S202:顺次解释执行所述程序区内的脚本文件中各指令;
步骤S203:在执行步骤S202过程中,在执行函数调用时,将主函数的参数以及返回所述主函数的脚本程序指针存入脚本堆栈区,然后将当前脚本程序指针指向被调用的子函数,将在所述子函数中定义的局部变量存入所述脚本堆栈区,根据所述脚本堆栈中的所述参数和所述局部变量执行所述子函数;在所述子函数执行完成后,根据所述脚本堆栈中的返回所述主函数的程序指针返回主函数。
所述脚本堆栈区可以存储有一堆栈,在执行函数调用时,通过执行入栈操作将主函数的参数、返回所述主函数的脚本程序指针,以及子函数中定义的局部变量存入所述堆栈;在执行子函数的过程中,通过修改堆栈指针从所述堆栈中获取执行所述子函数所需的参数、局部变量,在执行完子函数后,通过修改堆栈指针从所述堆栈中获取返回主函数的脚本程序指针。在返回主函数后,还可以对为执行所述函数调用操作而在所述堆栈中存入的参数、局部变量、返回主函数的指针执行出栈操作,以避免堆栈区有效存储空间不足。
在执行函数时,如需使用全局变量,则从所述脚本数据区获取所需的全局变量。
本发明巧妙地根据脚本执行特点,进行功能分区:将全局变量存储至一单独的存储区域(脚本数据区)进行统一管理,如需使用,则去所述存储区域查找,无需在脚本程序中每次使用时都必须赋值,实现了对全局变量的重复利用,节约了存储空间,且在修改全局变量的赋值时也变的更加方便。另外,以单独的堆栈区存储函数调用所需的参数、局部变量和返回主函数的指针,实现了函数调用过程中,局部变量、参数、指针的重复利用,大大的节约了存储空间。
在一具体应用中,本发明实施例中,所述脚本语言使用的可以是嵌入式调试系统(EDS)脚本语言。所述脚本程序区、所述脚本数据区,和所述脚本堆栈区采用CArray类型实现;所述全局变量、所述参数和所述局部变量采用CString类型实现;所述脚本程序指针和所述脚本堆栈指针采用int类型实现,其作为CArray类型的索引值,用以访问所述脚本程序区、所述脚本数据区和所述脚本堆栈区。
为了增加脚本文件的可扩展性,较佳地,本发明实施例设计指令、函数采用分级命名方式,即其名称包括第一级名字、第二级名字、......,以及第N级名字;N为正整数。例如“第一级名字.第二级名字.第三级名字......”。
进一步地,在EDS脚本语言中,只有脚本控制指令影响脚本程序指针,其它指令都是顺序执行的。
其中,所述名字以26个英文字母中的任意字母打头,后面的字符可以由字符、数字,以及下划线组成。所述名字不区分大小写,例如,abc和ABc表示同一个名字。
为了在后续调用过程中能够实现快速输入,还设计所述名字中的大写字母用来作为整个名字的简写,如上例中的ABc可以简写为ab。
其中,上述脚本文件可以是EDS脚本文件。在实现本发明开发工具时,可以采用Microsoft Visual C++6.0语言实现。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种操作嵌入式计算机系统开发工具的方法,其特征在于,包括:
制定控制开发工具操作的脚本语言的规范;
根据所述脚本语言的规范编写脚本文件;
解释运行所述脚本文件。
2.如权利要求1所述的方法,其特征在于,所述脚本语言包括:
控制指令,用以控制开发工具的操作;
函数,封装有一个或者多个所述控制指令;所述函数包括主函数和子函数;
宏,用以定义函数的全局变量、局部变变量和参数;
操作符,用以对宏或者函数进行运算操作;
参数,包括形参和实参,用以实现数值传递。
3.如权利要求2所述的方法,其特征在于,所述控制指令包括下述一种或者多种:
调试控制基本指令,用于实现开发工具的调试控制功能;
脚本控制指令,用于控制所述脚本文件中各指令被解释执行的顺序;
图形用户界面指令,用于为用户提供菜单和/或对话框形式的操作界面;
操作系统指令,用于开发控制操作系统动作。
4.如权利要求2所述的方法,其特征在于,所述脚本语言还包括下述一种或者多种:
内置函数,用以提供开发工具的状态的函数;
注释,用于标注操作指令功能的描述性说明语句。
5.如权利要求2所述的方法,其特征在于,所述解释运行所述脚本文件包括:
将所述脚本文件存储在一预先分配的脚本程序区,将所述脚本文件中的全局变量存储在一预先分配的脚本数据区;
顺次解释执行所述脚本程序区内的所述脚本文件中各指令;
在执行函数调用时,将主函数的参数以及返回所述主函数的脚本程序指针存入一预先分配的脚本堆栈区,然后将当前脚本程序指针指向被调用的子函数,将在所述子函数中定义的局部变量存入所述脚本堆栈区,根据所述脚本堆栈中的所述参数和所述局部变量执行所述子函数;在所述子函数执行完成后,根据所述脚本堆栈中的返回所述主函数的程序指针返回主函数。
6.如权利要求1-5中任何一项所述的方法,其特征在于:
所述脚本语言使用的是嵌入式调试系统EDS脚本语言。
7.如权利要求5所述的方法,其特征在于:
所述脚本程序区、所述脚本数据区,和所述脚本堆栈区采用CArray类型实现;
所述全局变量、所述参数和所述局部变量采用CString类型实现;
所述脚本程序指针和所述脚本堆栈指针采用int类型实现,其作为CArray类型的索引值,用以访问所述脚本程序区、所述脚本数据区和所述脚本堆栈区。
8.如权利要求2所述的方法,其特征在于:
所述控制指令和函数采用分级命名方式,其名称包括第一级名字、第二级名字、......,以及第N级名字;N为正整数。
9.如权利要求8所述的方法,其特征在于:
每一级名字均以26个英文字母中的任意字母打头,后面的字符可以由字符、数字,以及下划线中的一个或者多个组成;所述名字不区分大小写;所述名字中的大写字母用来作为整个名字的简写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105826768A CN102567065A (zh) | 2010-12-10 | 2010-12-10 | 一种操作嵌入式计算机系统开发工具的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105826768A CN102567065A (zh) | 2010-12-10 | 2010-12-10 | 一种操作嵌入式计算机系统开发工具的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102567065A true CN102567065A (zh) | 2012-07-11 |
Family
ID=46412566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105826768A Pending CN102567065A (zh) | 2010-12-10 | 2010-12-10 | 一种操作嵌入式计算机系统开发工具的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567065A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799528A (zh) * | 2012-07-12 | 2012-11-28 | 中国科学院声学研究所 | 一种用于电路板级测试的脚本调试方法、装置及其系统 |
CN104536722A (zh) * | 2014-12-23 | 2015-04-22 | 大唐移动通信设备有限公司 | 基于业务处理流程的栈空间优化方法和系统 |
CN104899012A (zh) * | 2014-03-06 | 2015-09-09 | 昆达电脑科技(昆山)有限公司 | 扩展基于脚本的应用程序的装置和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841328A (zh) * | 2005-04-02 | 2006-10-04 | 华为技术有限公司 | 脚本语言的自动机方法 |
CN1967475A (zh) * | 2006-04-29 | 2007-05-23 | 华为技术有限公司 | 脚本命令行开发系统 |
-
2010
- 2010-12-10 CN CN2010105826768A patent/CN102567065A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841328A (zh) * | 2005-04-02 | 2006-10-04 | 华为技术有限公司 | 脚本语言的自动机方法 |
CN1967475A (zh) * | 2006-04-29 | 2007-05-23 | 华为技术有限公司 | 脚本命令行开发系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799528A (zh) * | 2012-07-12 | 2012-11-28 | 中国科学院声学研究所 | 一种用于电路板级测试的脚本调试方法、装置及其系统 |
CN102799528B (zh) * | 2012-07-12 | 2015-12-09 | 中国科学院声学研究所 | 一种用于电路板级测试的脚本调试方法、装置及其系统 |
CN104899012A (zh) * | 2014-03-06 | 2015-09-09 | 昆达电脑科技(昆山)有限公司 | 扩展基于脚本的应用程序的装置和方法 |
CN104536722A (zh) * | 2014-12-23 | 2015-04-22 | 大唐移动通信设备有限公司 | 基于业务处理流程的栈空间优化方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6715132B1 (en) | Datasheet browsing and creation with data-driven datasheet tabs within a microcontroller design tool | |
US9886268B1 (en) | Dual programming interface | |
US7086014B1 (en) | Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming | |
CN103729188B (zh) | Android系统应用程序的开发方法、运行方法、运行装置 | |
WO2017065991A1 (en) | Generation of application behaviors | |
CN102364437A (zh) | 多语言站点开发系统及其实现方法 | |
CN101702126A (zh) | 一种图形界面编辑方法及装置 | |
EP2992420A1 (en) | Content-based directional placement application launch | |
CN101263484B (zh) | 用于声明性定义的控件动作的方法和系统 | |
CN104850498A (zh) | 一种填充信息测试方法及系统 | |
CN102567065A (zh) | 一种操作嵌入式计算机系统开发工具的方法 | |
CN103345402A (zh) | 基于中间代码的显示模组图形化组态方法 | |
Chapman | Picoblaze 8-bit microcontroller for virtex-e and spartan-ii/iie devices | |
CN202177891U (zh) | 一种操作嵌入式计算机系统开发工具的装置 | |
CN109032936B (zh) | 一种桌面自动化测试开发方法及系统 | |
US20220067272A1 (en) | Robotic Process Automation Systems and Methods Using A Helper Spreadsheet | |
CN102662662A (zh) | 嵌入式图形界面生成系统及方法 | |
Cornelius | Fearless Cross-Platform Development with Delphi: Expand your Delphi skills to build a new generation of Windows, web, mobile, and IoT applications | |
Stephens | Start Here! Fundamentals of Microsoft. NET Programming | |
CN103294470A (zh) | 内嵌自然语言的编程语言系统 | |
WO2016176159A1 (en) | Cross-platform command extensibility | |
Yang et al. | Professional Microsoft Smartphone Programming | |
CN104267954A (zh) | 一种用户界面中所包含的部件的生成方法和装置 | |
CN113704819B (zh) | 一种应用日志的打码输出方法、装置及计算机可读存储介质 | |
US8069405B1 (en) | User interface for efficiently browsing an electronic document using data-driven tabs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120711 |