CN107391149A - 一种硬件平台的代码生成方法及装置 - Google Patents
一种硬件平台的代码生成方法及装置 Download PDFInfo
- Publication number
- CN107391149A CN107391149A CN201710630721.4A CN201710630721A CN107391149A CN 107391149 A CN107391149 A CN 107391149A CN 201710630721 A CN201710630721 A CN 201710630721A CN 107391149 A CN107391149 A CN 107391149A
- Authority
- CN
- China
- Prior art keywords
- code
- file
- mark
- skeleton
- platform
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种硬件平台的代码生成方法及装置,该方法包括:获取第一差异代码文件和框架代码文件;其中,第一差异代码文件包括标识和平台相关性代码,框架代码文件包括标识和平台无关性代码;利用解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,并将框架代码文件中的标识替换为平台相关性代码;本发明可以通过解析工具将第一差异代码文件中的平台相关性代码合并到框架代码文件中的标识的位置,从而可以组成完整的项目代码,使项目的平台无关性代码可以得到充分复用,提高了项目开发的效率,达到了兼容多硬件平台的效果。
Description
技术领域
本发明涉及计算机应用技术领域,特别涉及一种硬件平台的代码生成方法及装置。
背景技术
随着现代科技的发展,计算机应用中各种产品层出不穷。产品的研发过程中,在第一个创新项目完成之后,会有较多的衍生项目,对项目的部分模块进行升级更新,以体现性能和价格上的优势等等;但是其功能往往是类似的,这样在开发新项目编码过程中就会有很高的耦合性。
现有技术中,对于这种功能类似的新项目的开发,是通过单个项目独立开发的方式,导致重复模块(平台无关性代码)的重复开发,影响开发的效率。因此,如何在类似衍生项目的开发中,避免对平台无关性代码的重复开发,做到尽可能的平台无关性代码的复用,是现今急需解决的问题。
发明内容
本发明的目的是提供一种硬件平台的代码生成方法及装置,以通过如tcl(toolcommand language,工具控制语言)工具的解析工具将平台相关性代码与平台无关性代码合并,对平台无关性代码进行充分的复用,提高项目开发的效率,兼容多硬件平台。
为解决上述技术问题,本发明提供一种硬件平台的代码生成方法,包括:
获取第一差异代码文件和框架代码文件;其中,所述第一差异代码文件包括标识和平台相关性代码,所述框架代码文件包括所述标识和平台无关性代码;
利用解析工具对所述第一差异代码文件进行解析,根据所述第一差异代码文件中的所述标识,查找所述框架代码文件中的所述标识,并将所述框架代码文件中的所述标识替换为所述平台相关性代码。
可选的,所述框架代码文件的获取过程,包括:
接收所述框架代码文件的名称参数;
根据所述名称参数从存储端获取所述框架代码文件。
可选的,所述接收所述框架代码文件的名称参数之前,还包括:
提取所述框架代码文件对应的源文件中的所述标识的位置对应的平台相关性代码,并加入所述标识;
生成并存储所述框架代码文件和提取的平台相关性代码对应的第二差异代码文件。
可选的,所述第一差异代码文件具体为pkg格式文件,所述框架代码文件为.c格式文件。
可选的,所述解析工具具体为tcl工具。
此外,本发明还提供了一种硬件平台的代码生成装置,包括:
获取模块,用于获取第一差异代码文件和框架代码文件;其中,所述第一差异代码文件包括标识和平台相关性代码,所述框架代码文件包括所述标识和平台无关性代码;
解析模块,用于利用解析工具对所述第一差异代码文件进行解析,根据所述第一差异代码文件中的所述标识,查找所述框架代码文件中的所述标识,并将所述框架代码文件中的所述标识替换为所述平台相关性代码。
可选的,所述获取模块,包括:
接收子模块,用于接收所述框架代码文件的名称参数;
查找子模块,用于根据所述名称参数从存储端获取所述框架代码文件。
可选的,所述获取模块,还包括:
提取子模块,用于提取所述框架代码文件对应的源文件中的所述标识的位置对应的平台相关性代码,并加入所述标识;
存储子模块,用于生成并存储所述框架代码文件和提取的平台相关性代码对应的第二差异代码文件。
本发明所提供的一种硬件平台的代码生成方法,包括:获取第一差异代码文件和框架代码文件;其中,第一差异代码文件包括标识和平台相关性代码,框架代码文件包括标识和平台无关性代码;利用解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,并将框架代码文件中的标识替换为平台相关性代码;
可见,本发明通过利用解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,并将框架代码文件中的标识替换为平台相关性代码,可以利用解析工具将第一差异代码文件中的平台相关性代码合并到框架代码文件中的标识的位置,从而可以组成完整的项目代码,使项目的平台无关性代码可以得到充分复用,提高了项目开发的效率,达到了兼容多硬件平台的效果。此外,本发明还提供了一种硬件平台的代码生成装置,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种硬件平台的代码生成方法的流程图;
图2为本发明实施例所提供的一种硬件平台的代码生成装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种硬件平台的代码生成方法的流程图。该方法可以包括:
步骤101:获取第一差异代码文件和框架代码文件;其中,第一差异代码文件包括标识和平台相关性代码,框架代码文件包括标识和平台无关性代码。
可以理解的是,本步骤的目的可以为获取标识需要替换为平台相关性代码的框架代码文件和包含需要替换的标识和平台相关性代码的第一差异代码文件。对于框架代码文件和第一差异代码文件的具体格式,可以由设计人员根据实用场景和用户需求自行设置,如框架代码文件可以为与现有技术中的项目代码相同的.c格式文件,而第一差异代码文件可以为对应的解析文件可以解析的格式文件,如tcl工具可以解析的pkg(package)格式文件。本实施例对此不受任何限制。
具体的,第一差异代码文件和框架代码文件的具体内容,可以由设计人员自行设置,如框架代码文件中的内容可以为将框架代码文件对应的源文件需要改动的平台相关性代码替换为的对应的标识和不需要改动的平台无关性代码;还可以包括以通过本实施例所提供的方法由标识替换的平台相关性代码。第一差异代码文件中的内容可以包括标识和需要替换的平台相关性代码,还可以包括如第一差异代码文件的被提取的源文件的名称。本实施例对此不受任何限制。
需要说明的是,本步骤中获取第一差异代码文件和框架代码文件的具体过程,可以由设计人员自行设置,可以直接接收用户发送的第一差异代码文件和框架代码文件,还可以根据接收的用户发送的参数信息,查找预先存储的第一差异代码文件和/或框架代码文件,如可以直接接收用户发送的第一差异代码文件和框架代码文件的名称参数;再根据名称参数从存储端获取框架代码文件。本实施例对此不受任何限制。
其中,名称参数可以为对原有项目的源文件和衍生项目的源文件的进行区分的标注,如project_name,以项目名区分。只要可以根据接收的名称参数查找获取到对应的框架代码文件,名称参数的具体内容,本实施例不做任何限制。
具体的,本实施例所提供的方法还可以包括框架代码文件的生成存储过程,也就是说,本实施例所提供的方法还可以包括提取框架代码文件对应的源文件中的标识的位置对应的平台相关性代码,并加入标识;生成并存储框架代码文件和提取的平台相关性代码对应的第二差异代码文件的步骤。如可以区分原有项目与衍生项目的差异,并将原有项目的源文件进行模块划分,区分要改动的模块(平台相关性代码)和不改动的模块(平台无关性代码);将源文件要修改的平台相关性代码提取,并在该位置上添加一个标识SECTION,并起一个section_name,则要改动的平台相关性代码,可以通过如下的标识取代:
/*SECTION:START:section_name*/
/*SECTION:END:section_name*/
则原有项目的源文件(file_proto.c),变成了对应的框架代码文件(file_arch.c),可以存储到存储端。对应的,提取的源文件中的要修改的平台相关性代码可以以project_name为区分统一添加到pkg文件(第二差异代码文件);将原有项目与衍生项目的差异内容都提取出来,可以实现框架代码文件对应的多项目的兼容。
具体的,第二差异代码文件可以使用如下的编译格式:
FOR_PRJECT_NAME project_name
IN_SECTION section_name
code be added,将在源文件中修改的内容添加到这里,实现动态加载,编译配置。
END_BLOCK
步骤102:利用解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,并将框架代码文件中的标识替换为平台相关性代码。
其中,本步骤的目的可以为将第一差异代码文件中的平台相关性代码替换框架代码文件中的标识,对于具体的替换过程,可以通过解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,然后再完成替换,也就是通过第一差异代码文件中的标识查找框架代码文件中的标识;也可以为通过第一差异代码文件中的框架代码文件中标识对应的信息,查找框架代码文件中的标识,然后再完成替换,也就是说第一差异代码文件中包含的可以为标识对应的信息,而不是标识本身。本实施例对此不做任何限制。
可以理解的是,本实施例所提供的方法的步骤101中获取框架代码文件的过程可以在步骤102中进行,如可以使用tcl语言完成一个解析第一差异代码文件(pkg文件)的脚本(parse.tcl,tcl工具),通过接收的project_name,将第一差异代码文件中的平台相关性代码添加到框架代码文件的SECTION位置,组成一个完整的项目代码。本实施例对此不做任何限制。
需要说明的是,通过接收框架代码文件的名称参数(project_name),可以确定要编译哪个项目的代码,达到多个项目的共用,模块复用,开发效率大大的提高的效果。
本实施例中,本发明实施例通过利用解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,并将框架代码文件中的标识替换为平台相关性代码,可以利用解析工具将第一差异代码文件中的平台相关性代码合并到框架代码文件中的标识的位置,从而可以组成完整的项目代码,使项目的平台无关性代码可以得到充分复用,提高了项目开发的效率,达到了兼容多硬件平台的效果。
请参考图2,图2为本发明实施例所提供的一种硬件平台的代码生成装置的结构图。该装置可以包括:
获取模块100,用于获取第一差异代码文件和框架代码文件;其中,第一差异代码文件包括标识和平台相关性代码,框架代码文件包括标识和平台无关性代码;
解析模块200,用于利用解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,并将框架代码文件中的标识替换为平台相关性代码。
可选的,获取模块100,可以包括:
接收子模块,用于接收框架代码文件的名称参数;
查找子模块,用于根据名称参数从存储端获取框架代码文件。
可选的,获取模块100,可以还包括:
提取子模块,用于提取框架代码文件对应的源文件中的标识的位置对应的平台相关性代码,并加入标识;
存储子模块,用于生成并存储框架代码文件和提取的平台相关性代码对应的第二差异代码文件。
本实施例中,本发明实施例通过解析模块200利用解析工具对第一差异代码文件进行解析,根据第一差异代码文件中的标识,查找框架代码文件中的标识,并将框架代码文件中的标识替换为平台相关性代码,可以利用解析工具将第一差异代码文件中的平台相关性代码合并到框架代码文件中的标识的位置,从而可以组成完整的项目代码,使项目的平台无关性代码可以得到充分复用,提高了项目开发的效率,达到了兼容多硬件平台的效果。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的硬件平台的代码生成方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种硬件平台的代码生成方法,其特征在于,包括:
获取第一差异代码文件和框架代码文件;其中,所述第一差异代码文件包括标识和平台相关性代码,所述框架代码文件包括所述标识和平台无关性代码;
利用解析工具对所述第一差异代码文件进行解析,根据所述第一差异代码文件中的所述标识,查找所述框架代码文件中的所述标识,并将所述框架代码文件中的所述标识替换为所述平台相关性代码。
2.根据权利要求1所述的硬件平台的代码生成方法,其特征在于,所述框架代码文件的获取过程,包括:
接收所述框架代码文件的名称参数;
根据所述名称参数从存储端获取所述框架代码文件。
3.根据权利要求2所述的硬件平台的代码生成方法,其特征在于,所述接收所述框架代码文件的名称参数之前,还包括:
提取所述框架代码文件对应的源文件中的所述标识的位置对应的平台相关性代码,并加入所述标识;
生成并存储所述框架代码文件和提取的平台相关性代码对应的第二差异代码文件。
4.根据权利要求1至3任一项所述的硬件平台的代码生成方法,其特征在于,所述第一差异代码文件具体为pkg格式文件,所述框架代码文件为.c格式文件。
5.根据权利要求4所述的硬件平台的代码生成方法,其特征在于,所述解析工具具体为tcl工具。
6.一种硬件平台的代码生成装置,其特征在于,包括:
获取模块,用于获取第一差异代码文件和框架代码文件;其中,所述第一差异代码文件包括标识和平台相关性代码,所述框架代码文件包括所述标识和平台无关性代码;
解析模块,用于利用解析工具对所述第一差异代码文件进行解析,根据所述第一差异代码文件中的所述标识,查找所述框架代码文件中的所述标识,并将所述框架代码文件中的所述标识替换为所述平台相关性代码。
7.根据权利要求6所述的硬件平台的代码生成装置,其特征在于,所述获取模块,包括:
接收子模块,用于接收所述框架代码文件的名称参数;
查找子模块,用于根据所述名称参数从存储端获取所述框架代码文件。
8.根据权利要求7所述的硬件平台的代码生成装置,其特征在于,所述获取模块,还包括:
提取子模块,用于提取所述框架代码文件对应的源文件中的所述标识的位置对应的平台相关性代码,并加入所述标识;
存储子模块,用于生成并存储所述框架代码文件和提取的平台相关性代码对应的第二差异代码文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710630721.4A CN107391149A (zh) | 2017-07-28 | 2017-07-28 | 一种硬件平台的代码生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710630721.4A CN107391149A (zh) | 2017-07-28 | 2017-07-28 | 一种硬件平台的代码生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391149A true CN107391149A (zh) | 2017-11-24 |
Family
ID=60342792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710630721.4A Pending CN107391149A (zh) | 2017-07-28 | 2017-07-28 | 一种硬件平台的代码生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391149A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760300A (zh) * | 2021-09-13 | 2021-12-07 | 武汉联影智融医疗科技有限公司 | 软件持续集成方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122854A (zh) * | 2007-09-13 | 2008-02-13 | 上海交通大学 | 结构化的代码自动配置方法及装置 |
CN104035754A (zh) * | 2013-03-05 | 2014-09-10 | 北大方正集团有限公司 | 一种基于xml的自定义代码生成方法及生成器 |
CN105022620A (zh) * | 2014-04-28 | 2015-11-04 | 上海未达数码科技有限公司 | 一种基于移动平台的应用软件开发方法 |
CN105354121A (zh) * | 2015-11-20 | 2016-02-24 | 浪潮集团有限公司 | 一种用于验证多种读写方式存储模块的验证平台的搭建方法 |
CN105786500A (zh) * | 2016-02-26 | 2016-07-20 | 中国科学院光电技术研究所 | 一种嵌入式控制器程序框架自动生成方法 |
US20170010958A1 (en) * | 2012-11-09 | 2017-01-12 | Coherent Logix, Incorporated | Real Time Analysis and Control for a Multiprocessor System |
CN106528165A (zh) * | 2016-11-11 | 2017-03-22 | 深圳中兴网信科技有限公司 | 代码生成方法及代码生成系统 |
-
2017
- 2017-07-28 CN CN201710630721.4A patent/CN107391149A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122854A (zh) * | 2007-09-13 | 2008-02-13 | 上海交通大学 | 结构化的代码自动配置方法及装置 |
US20170010958A1 (en) * | 2012-11-09 | 2017-01-12 | Coherent Logix, Incorporated | Real Time Analysis and Control for a Multiprocessor System |
CN104035754A (zh) * | 2013-03-05 | 2014-09-10 | 北大方正集团有限公司 | 一种基于xml的自定义代码生成方法及生成器 |
CN105022620A (zh) * | 2014-04-28 | 2015-11-04 | 上海未达数码科技有限公司 | 一种基于移动平台的应用软件开发方法 |
CN105354121A (zh) * | 2015-11-20 | 2016-02-24 | 浪潮集团有限公司 | 一种用于验证多种读写方式存储模块的验证平台的搭建方法 |
CN105786500A (zh) * | 2016-02-26 | 2016-07-20 | 中国科学院光电技术研究所 | 一种嵌入式控制器程序框架自动生成方法 |
CN106528165A (zh) * | 2016-11-11 | 2017-03-22 | 深圳中兴网信科技有限公司 | 代码生成方法及代码生成系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760300A (zh) * | 2021-09-13 | 2021-12-07 | 武汉联影智融医疗科技有限公司 | 软件持续集成方法、装置、计算机设备和存储介质 |
CN113760300B (zh) * | 2021-09-13 | 2023-10-27 | 武汉联影智融医疗科技有限公司 | 软件持续集成方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101104035B1 (ko) | 자원 매니페스트 | |
EP2273361B1 (en) | Method and system for updating versions of content stored in a storage device | |
CN106844643A (zh) | 一种基于模板引擎的数据库动态生成方法 | |
CN102841886B (zh) | 拆分文档的方法和装置 | |
CN111026567B (zh) | 基于区块链的handle标识编码系统及方法 | |
CN107797823A (zh) | 业务规则管理方法、装置、存储介质和计算机设备 | |
CN109933331A (zh) | 一种客户端服务器间数据转换方法及相关组件 | |
CN100371936C (zh) | 用于树型结构文件的数据查找方法 | |
CN101556579A (zh) | 用于动态报表区域的公式处理系统及其方法 | |
CN114327477A (zh) | 智能合约执行方法、装置、电子装置和存储介质 | |
CN107391149A (zh) | 一种硬件平台的代码生成方法及装置 | |
CN110262797A (zh) | 一种应用模块化及路由跳转方法 | |
US20080196009A1 (en) | Apparatus and method for componentizing legacy system | |
CN105488197A (zh) | 垂直搜索中按域检索方法、新增文档处理方法和装置 | |
CN112596706A (zh) | 模式化代码生成方法、装置和计算机可读存储介质 | |
CN109933325A (zh) | 一种dex文件构建方法、装置及系统 | |
US7536377B1 (en) | Component naming | |
WO2021031110A1 (zh) | 配置文件生成方法及装置、存储介质 | |
CN104199929B (zh) | 一种元数据之间相互关系描述的方法 | |
CN107463423A (zh) | 依赖包工具的验证方法、存储介质、电子设备及系统 | |
Hudík et al. | The integration of moses into localization industry | |
CN109254774A (zh) | 软件开发系统中代码的管理方法和装置 | |
Lapierre et al. | Datrix™ source code model and its interchange format: lessons learned and considerations for future work | |
CN106897049A (zh) | 一种安装包的打包方法和装置 | |
CA2717423A1 (en) | System, apparatus and method for processing content on a computing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171124 |
|
RJ01 | Rejection of invention patent application after publication |