一种嵌入式系统软件中命令解析的偏移量方法技术方案

技术编号:2842299 阅读:276 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种嵌入式系统软件中命令解析的偏移量方法,用于各类软件的开发,其硬件包括处理器MCU、DMA控制器、图像处理专用芯片;该方法涉及的软件包括合理的数据结构、恰当有效的分析算法,是将逐段截取的分析方法进行如下优化:1)定义新MENU类型,包括命令的提示信息,可以支持不同树深度下实现重名命令;2)将子串分析的代码模块化为CParse过程;3)定义子串起始地址的字符指针数组argv[];4)命令集CS的增加,以后将是只增加MENU类型变量数组的工作;5)增加命令的备份和提取机制。该方法还涉及完整流程程序和子串定位过程程序。

【技术实现步骤摘要】

本专利技术涉及,属于嵌入式系统软件

技术介绍
在Fuji Xerox的eGret系列产品中,对嵌入式系统的软件升级、调试和维护等工作,目前都是通过PC以串行通信方式,向IOT主机发送命令,接着由系统软件(与CMX紧密结合的、基于状态机方式的IOT软件)首先对命令进行解析,然后按命令要求执行相应程序代码,以及向PC返回所需数据。作为接受者的角度看,PC端发来的只是一串字符,IOT需要将这个字符串分解成命令部分和数据参数部分,另外对于不符合命令格式的字符串要有异常处理的方法。这种分解和处理的过程就是命令解析。IOT能够分析执行一条命令,首先需要该命令被包含在设计者已经指定的命令集中;同时,如果命令后面带有数据参数,这部分又必须符合设计此命令的事先约定和取值范围。不仅如此,为了更好的向用户返回执行的情况和状态,在命令执行前后必要的提示和执行结果也是软件工程师需要关注的。所谓逐段截取法,在最初接受这样一个任务时,一般的软件工程师能够想到的最直接方法就是命令解析方法按空格自然地将一条控制台发来的命令分解成命令部分和参数部分。然后按照获得的中已知的命令进行逐项匹配(也就是比较判的查找过程),命令集就是软件设计者提供给维护人员可以使用的命令项的总和。如图1所示,这是逐段截取法的命令解析程序,其程序如下逐段截取方法,依次进入忽略头空格、截取命令部分,忽略中间空格、截取参数部分、忽略尾空格,命令部分、在命令集匹配,在命令集中吗?进行判断,如果是,将Paraeter作为参数传到Command对应的Routine,如果否,异常报错,然后共同到一次命令解析结束。这种方法存在如下几种缺点1)对于像图2-1那样的树型菜单(树的深度超过2),将无法识别重名的命令;2)这种方法未将连续字符的提取方法模块化,所以可读性差,不易维护;也不利于代码移植和模块化的程序风格;3)程序记录Str的游标i和CP/PP游标看上去较为混乱,而且没法保证参数个数可变的要求;4)命令集完全由后面的匹配判断语句决定,当命令扩充后势必代码变得冗长和不易维护;5)缺少命令备份和提取的机制,缺少必要的和用户交互提示信息。因此,有必要研发新的命令解析方法,来适应各类软件的开发。
技术实现思路
本专利技术的目的在于提供一种嵌入式系统软件中命令解析方法,该方法就是,偏移量方法OM,采用了合理的数据结构、恰当有效的分析算法,来适应各类软件的开发。为达到上述目的,本专利技术的技术方案是偏移量方法OM采用的硬件处理器MCU、DMA控制器、图像处理专用芯片;所采用软件包括合理的数据结构、恰当有效的分析算法;该方法是将逐段截取的分析方法进行如下优化1)、定义新MENU类型,包括命令的提示信息,可以支持不同树深度下实现重名命令; 2)、将子串分析的代码模块化为CParse过程;3)、定义子串起始地址的字符指针数组argv[];4)、命令集CS的增加,以后将是只增加MENU类型变量数组的工作;5)、增加命令的备份和提取机制。本专利技术的有益效果首先是引入了字符是否空格的标志iswhite和inwhite;而这两个标志总是表征相邻字符的情况。我们知道子串被空格分割的判断方法,就是当前字符和前一字符在空格的逻辑下互斥;所以子串开始条件为(inwhite && !iswhite)和子串结束条件为(!inwhite && iswhite);另外,引入记录子串起始地址的字符指针数组argv[],在前述子串起始判断条件成立的情况下,就将游标(str)的值(地址)顺序拷贝到argv、argv…、argv而且对子串的数目定义可以通过修改4.1中宏MAXARGS轻松实现。附图说明图1为与本专利技术相近的逐段截取法的命令解析程序;图2为本专利技术的命令解析偏移量法的完整流程程序;图3为本专利技术的命令解析偏移量法核心的子串定位过程程序。具体实施例方式以下结合附图和实施例对本专利技术作进一步说明。偏移量方法OM采用的硬件包括处理器MCU、DMA控制器、图像处理专用芯片参照图2,这是本专利技术的命令解析偏移量法的完整流程程序。如图所示,其流程如下从1,以下进入2、3、4进行判断,如果是,进入11;如果否,5,如果是,6,如果否,7,然否共同进入8,9,10,重新2。参照图3,这是本专利技术的命令解析偏移量法核心的子串定位过程程序。如图所示,其流程如下从12,以下进入13,14,进入到判断15,如果是,23;如果否,16,进入判断17,如果是,进入18;如果否,进入判断19,如果否,进入21,22,23;如果是,进入20,然后进入22,23。这里实现的关键有两点首先是引入了字符是否空格的标志iswhite和inwhite;而这两个标志总是表征相邻字符的情况。我们知道子串被空格分割的判断方法,就是当前字符和前一字符在空格的逻辑下互斥;所以子串开始条件为(inwhite &&!iswhite)和子串结束条件为(!inwhite && iswhite);另外,引入记录子串起始地址的字符指针数组argv[],在前述子串起始判断条件成立的情况下,就将游标(str)的值(地址)顺序拷贝到argv、argv...、argv而且对子串的数目定义可以通过修改4.1中宏MAXARGS轻松实现。权利要求1.嵌入式系统软件中命令解析的偏移量方法,用于各类软件的开发,其硬件包括包括处理器MCU、DMA控制器、图像处理专用芯片;其特征在于该方法所述的软件包括以下步骤(1)采用合理数据;(2)然后采用恰当有效的分析算法;所述的采用合理的数据结构并将逐段截取的分析方法进行如下优化后成为有效的分析算法定义新MENU类型,包括命令的提示信息,可以支持不同树深度下实现重名命令;将子串分析的代码模块化为CParse过程;定义子串起始地址的字符指针数组;命令集CS的增加,以后将是只增加MENU类型变量数组的工作;增加命令的备份和提取机制,oldstr[]字符数组和“!”命令;该方法涉及完整流程程序和子串定位过程程序。2.如权利要求1所述的命令解析的偏移量方法,其特征在于所述的偏移量方法完整流程程序,其流程如下从1,以下进入2、3、4进行判断,如果是,进入11;如果否,5,如果是,6,如果否,7,然否共同进入8,9,10,重新2。3.如权利要求1所述的命令解析的偏移量方法,其特征在于所述的偏移量方法核心的子串定位过程程序,其流程如下从12,以下进入13,14,进入到判断15,如果是,23;如果否,16,进入判断17,如果是,进入18;如果否,进入判断19,如果否,进入21,22,23;如果是,进入20,然后进入22,23。全文摘要本专利技术涉及,用于各类软件的开发,其硬件包括处理器MCU、DMA控制器、图像处理专用芯片;该方法涉及的软件包括合理的数据结构、恰当有效的分析算法,是将逐段截取的分析方法进行如下优化1)定义新MENU类型,包括命令的提示信息,可以支持不同树深度下实现重名命令;2)将子串分析的代码模块化为CParse过程;3)定义子串起始地址的字符指针数组argv[];4)命令集CS的增加,以后将是只增加MENU类型变量数组的工作;5本文档来自技高网
...

【技术保护点】
嵌入式系统软件中命令解析的偏移量方法,用于各类软件的开发,其硬件包括包括处理器MCU、DMA控制器、图像处理专用芯片;    其特征在于:    该方法所述的软件包括以下步骤:(1)采用合理数据;(2)然后采用恰当有效的分析算法;    所述的采用合理的数据结构并将逐段截取的分析方法进行如下优化后成为有效的分析算法:    定义新MENU类型,包括命令的提示信息,可以支持不同树深度下实现重名命令;    将子串分析的代码模块化为CParse过程;    定义子串起始地址的字符指针数组;    命令集CS的增加,以后将是只增加MENU类型变量数组的工作;    增加命令的备份和提取机制,oldstr[]字符数组和“!”命令;    该方法涉及完整流程程序和子串定位过程程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:金辉
申请(专利权)人:上海富士施乐有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1