CN105786500A - 一种嵌入式控制器程序框架自动生成方法 - Google Patents
一种嵌入式控制器程序框架自动生成方法 Download PDFInfo
- Publication number
- CN105786500A CN105786500A CN201610105842.2A CN201610105842A CN105786500A CN 105786500 A CN105786500 A CN 105786500A CN 201610105842 A CN201610105842 A CN 201610105842A CN 105786500 A CN105786500 A CN 105786500A
- Authority
- CN
- China
- Prior art keywords
- code file
- embedded controller
- type
- generated
- code
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
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)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种嵌入式控制器程序框架自动生成方法,首先定义了基于五层结构+调用关系的程序框架,然后在此框架上通过(a)确定代码语言及编程规则,(b)建立代码资源库,(c)匹配生成平台层代码文件,(d)匹配生成接口层代码文件,(e)翻译生成编解码层代码文件,(f)匹配生成基本功能层代码文件,(g)自动生成内容为空的核心功能层代码文件,(h)匹配生成调用关系代码文件,自动生成规范的、完整的、可编译的嵌入式控制器程序框架。这个方法操作简单、生成速度快、代码规范性高、程序质量可靠,极大提高了新程序的开发效率,使得专业人员免除了大部分的重复性工作,可集中到核心模块的设计和调试工作中,从而促进核心技术的快速发展。
Description
技术领域
本发明涉及计算机应用技术领域,具体涉及一种嵌入式控制器程序框架自动生成方法。
背景技术
嵌入式控制器已经广泛地应用于现代工业,小到人们生活中的基本电器、大到航空航天等领域,成为了科技应用的典型标志之一。其中,嵌入式控制器的硬件开发、检测、生产都已形成一系列产业链,用以满足不同行业需求。
然而,由于嵌入式控制器程序具有规模小、针对性强、功能性能专业化、运行平台差异大、与硬件接口关系密切等特点,并不是软件行业关注和研究的热点,所以发展缓慢,往往还停留在对专业人员的依赖性开发模式上。通常,软件专业人员需要根据行业需求的变化,重新了解不同的嵌入式控制器特性并重新设计和调试程序,导致了程序开发专业性要求极高、质量水平不稳定、开发效率低、测试及维护成本高等问题。
虽然嵌入式控制器应用行业和专业需求各不相同,但是其程序设计还是有很多共性特征的,可以通过对共性的分析和优化来提高相应的程序开发和维护过程的效率和质量,只是目前还未有公开文献对此问题进行深入研究。
发明内容
针对现状本发明提出一种嵌入式控制器程序框架自动生成方法,其目的在于:针对嵌入式控制器的典型工作方式建立程序框架,并在此程序框架上实现各组成部分代码文件的自动生成,快速获得标准化、高质量的定制程序框架,以加速专业人员在核心功能上的技术改进,从而提升在行业/领域的研发效率。
本发明针对图1所示的嵌入式控制器典型工作方式,提出嵌入式控制器程序框架由如图2所示的五层分层结构+层间调用关系组成,其中各层的描述为:平台层用于对特定硬件平台和操作系统进行访问;接口层用于对指定硬件接口进行访问,并约定接口通信方式;编解码层用于将从硬件接口获取的数据包解码为功能模块调用的变量,也将新的变量进行编码封装成输出数据包;基本功能层用于描述行业/领域共有的常用功能,可能包括系统初始化、通信校验、故障/异常监控及处理、数据预处理、操控响应等;核心功能层用于描述该嵌入式控制器的独特功能和性能,可能包括核心算法、核心参数等,需要根据实际需求进行重新设计和/或调试。如图2所示,层间调用关系包括多种形式,每个嵌入式控制器的调用方式可能会不同,应根据实际需求进行明确。
本发明针对上述程序框架,提出的一种嵌入式控制器程序框架自动生成方法如图3所示,包括以下几个步骤:
(a)确定代码语言和编码规则,作为自动代码文件生成的基本依据;
(b)将行业/领域已测试或使用过的硬件平台和操作系统对应的访问代码文件、硬件接口类型和访问方式的代码文件、基本功能代码文件、嵌入式控制器程序类型对应的结构组织和调用关系代码文件分别纳入平台库、接口库、基本功能库和程序结构库,作为匹配过程的基本依据;
(c)根据当前指定的硬件平台类型和操作系统类型从平台库中自动匹配到对应的平台层代码文件并拷贝另存;
(d)根据当前指定的硬件接口类型和访问方式从接口库中自动匹配到对应的接口层代码文件并拷贝另存;
(e)将本次开发所确定的接口协议进行自动翻译,翻译包括但不限于数据名称、长度、结构、类型等内容,自动生成数据编码代码文件和数据解码代码文件并保存;
(f)根据当前指定的基本功能类型从基本功能代码库中自动匹配到对应的基本功能层代码文件并拷贝另存;
(g)根据指定的核心功能数量,自动编写对应数量的核心功能空函数并保存;
(h)根据当前指定的程序类型从结构代码库中匹配到对应的结构代码文件,根据选择的基本功能层代码文件和核心功能层代码文件自动修改层间调用关系并保存。
本发明与现有方法相比具有如下优点:
(1)本发明针对常见工作方式定义了嵌入式控制器程序框架,该框架包括了分层结构和层间调用关系,较为明确区分了程序中的共性特征和个性特征。
(2)本发明根据已有的编码规则和行业/领域的各种代码文件库,采用匹配和翻译的方式自动生成新的嵌入式控制器程序框架,整个过程操作简单、生成速度快、代码规范性高、程序质量可靠,极大提高了新程序的开发效率。
(3)本发明可自动生成新的嵌入式控制器程序框架,该框架为可编译的完整程序,使得专业人员免除了大部分的重复性工作,可集中到核心模块的设计和调试工作中,从而促进核心技术的快速发展。
(4)本发明自动生成新的嵌入式控制器程序框架带有结构清晰、代码规范性高的特点,可辅助提高软件测试人员和软件维护人员的工作效率。
附图说明
图1为嵌入式控制器典型工作方式示意图;
图2为嵌入式控制器程序框架组成示意图;
图3为嵌入式控制器程序框架自动生成过程流程图;
图4为匹配方式自动代码生成过程流程示意图;
图5为翻译方式自动代码生成过程流程示意图。
具体实施方式
以下结合附图对本发明的具体实施方式做详细说明。
如图1所示,常见嵌入式控制器程序有几大特点:(1)必然运行于某硬件平台上,由该平台完成与外部系统的交互,平台上可加载操作系统;对于嵌入式控制器程序而言,是否通过操作系统访问硬件都可抽象为一系列访问行为,所以将硬件平台+操作系统综合为平台层。(2)嵌入式程序收发硬件数据都需要借助相应的物理接口,包括但不限于串口、网口、ISA总线、PCI总线、光纤、LVDS信号等,相同平台层上可使用不同接口,所以将接口访问独立为接口层,便于适应不同接口类型。(3)嵌入式控制器都是根据已确定的接口协议来解释原始数据的,而每个嵌入式控制器的接口协议都可能不相同,需要进行定制,所以建立编解码层对接口协议进行自动翻译来适应不同的接口协议。(4)嵌入式控制器程序在同一行业/领域中必然有很多基本功能模块,比如初始化、通信校验、故障/异常监控及处理、数据预处理、操控响应等,基本上在不同嵌入式控制器上都是极为相似或者干脆相同,所以可以单独列为基本功能层。(5)每个行业/领域的嵌入式控制器程序均有其核心功能模块,用于完成实现关键指标/性能,需要进行更多的验证和测试,几乎每次都重新设计和/或调试,所以单列为核心功能层。(6)对同一行业/领域的同一系列产品,嵌入式控制器程序可能存在多种层次间的调用关系,将其列为程序框架的组成部分,才能形成完整可编译的程序框架。图1说明如下:(1)嵌入式控制器程序必然运行在某硬件平台上,但可能加载或不加载操作系统;(2)嵌入式控制器程序对接口的访问包括原始数据输入和输出,但在某些特定使用上可能只有其中一个,接口可包括一个或多个,输入和输出接口类型可能不同;(3)数据编码和解码过程与原始数据关联,其方向和内容均与接口匹配;(4)变量可提供给或来自于基本功能模块或者核心功能模块。
综上所述,本发明提出一个完整的嵌入式控制器程序框架由五层次模型+层次间调用关系组成,如图2所示。
本发明针对上述程序框架,提出的一种嵌入式控制器程序框架自动生成方法如图3所示,包括以下几个步骤:
(a)确定代码语言和编码规则,作为自动代码文件生成的基本依据;
(b)将行业/领域已测试或使用过的硬件平台和操作系统对应的访问代码文件、硬件接口类型和访问方式的代码文件、基本功能代码文件、嵌入式控制器程序类型对应的结构组织和调用关系代码文件分别纳入平台库、接口库、基本功能库和程序结构库,作为匹配过程的基本依据;
(c)根据当前指定的硬件平台类型和操作系统类型从平台库中自动匹配到对应的平台层代码文件并拷贝另存;
(d)根据当前指定的硬件接口类型和访问方式从接口库中自动匹配到对应的接口层代码文件并拷贝另存;
(e)将本次开发所确定的接口协议进行自动翻译,翻译包括但不限于数据名称、长度、结构、类型等内容,自动生成数据编码代码文件和数据解码代码文件并保存;
(f)根据当前指定的基本功能类型从基本功能代码库中自动匹配到对应的基本功能层代码文件并拷贝另存;
(g)根据指定的核心功能数量,自动编写对应数量的核心功能空函数并保存;
(h)根据当前指定的程序类型从结构代码库中匹配到对应的结构代码文件,根据选择的基本功能层代码文件和核心功能层代码文件自动修改层间调用关系并保存。
其中,步骤(a)和步骤(b)中内容一般为行业/领域共享资源,其建立和修改都应该遵照严格的管理流程进行变更控制,所以其对应的代码文件应该是经过测试的、可靠的、稳定的,作为后续步骤的基本依据。
步骤(c)~(g)则是在每次产生新的嵌入式控制器程序框架时都需要进行的步骤。其中,步骤(c)、(e)、(f)、(g)都采用匹配过程进行自动代码文件生成,其流程如图4所示,仅需将新的需求与代码资源库中进行条件匹配,其中对调用关系进行匹配时,会额外根据当前选择的基本功能类型和设置的核心功能数量自动修改对应的调用关系再进行文件的保存,其他步骤均可按照匹配之后另存的方式实现。步骤(d)采用翻译过程进行自动代码文件生成,其流程如图5所示,通过将接口协议中确定的数据长度、组合方式、变量类型、变量名称、变量初值等内容翻译,并编写成对应的代码文件进行保存,就可实现不同协议需求的自动适应,极大节约了开发调试时间,又能获得规范化的高质量代码文件。
步骤(c)~(f)自动生成的各个代码文件会按照指定路径进行自动保存,并按照步骤(g)中匹配的结构类型实现对步骤(c)~(f)生成的各个代码文件的组织架构和调用,最终形成一个规范的、完整的、可编译的嵌入式控制器程序框架。
综上所述,本发明提出的一种嵌入式控制器程序框架自动生成方法,能通过较少步骤、简单操作就能快速获得代码规范性高、程序质量可靠的完整程序框架,极大提高新程序的开发效率。并且,使得专业人员免除了大部分的重复性工作,可集中到核心模块的设计和调试工作中,从而促进核心技术的快速发展。同时,也能辅助提高软件测试人员和软件维护人员的工作效率,促进整个行业/领域的开发效率。
凡在不脱离本发明的技术和方法内容,依据本发明的技术和方法实质进行的简单修改、等同变化以及修饰,均属本发明保护范围。包括但不限于本发明中提出的嵌入式控制器程序框架定义中,根据行业/领域的具体情况进行的层间合并、拆分和变种等,均属于本发明的保护范围;包括但不限于本发明中提出的自动匹配和自动翻译过程的部分使用、变形使用等,均属于本发明的保护范围。
Claims (1)
1.一种嵌入式控制器程序框架自动生成方法,其特征在于:包括以下几个步骤:
(a)确定代码语言和编码规则,作为自动代码文件生成的基本依据;
(b)将行业/领域已测试或使用过的硬件平台和操作系统对应的访问代码文件、硬件接口类型和访问方式的代码文件、基本功能代码文件、嵌入式控制器程序类型对应的结构组织和调用关系代码文件分别纳入平台库、接口库、基本功能库和程序结构库,作为匹配过程的基本依据;
(c)根据当前指定的硬件平台类型和操作系统类型从平台库中自动匹配到对应的平台层代码文件并拷贝另存;
(d)根据当前指定的硬件接口类型和访问方式从接口库中自动匹配到对应的接口层代码文件并拷贝另存;
(e)将本次开发所确定的接口协议进行自动翻译,翻译包括但不限于数据名称、长度、结构、类型等内容,自动生成数据编码代码文件和数据解码代码文件并保存;
(f)根据当前指定的基本功能类型从基本功能代码库中自动匹配到对应的基本功能层代码文件并拷贝另存;
(g)根据指定的核心功能数量,自动编写对应数量的核心功能空函数并保存;
(h)根据当前指定的程序类型从结构代码库中匹配到对应的结构代码文件,根据选择的基本功能层代码文件和核心功能层代码文件自动修改层间调用关系并保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610105842.2A CN105786500B (zh) | 2016-02-26 | 2016-02-26 | 一种嵌入式控制器程序框架自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610105842.2A CN105786500B (zh) | 2016-02-26 | 2016-02-26 | 一种嵌入式控制器程序框架自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786500A true CN105786500A (zh) | 2016-07-20 |
CN105786500B CN105786500B (zh) | 2019-02-05 |
Family
ID=56403074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610105842.2A Active CN105786500B (zh) | 2016-02-26 | 2016-02-26 | 一种嵌入式控制器程序框架自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786500B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776102A (zh) * | 2016-12-27 | 2017-05-31 | 中国建设银行股份有限公司 | 一种应用系统健康检查方法及系统 |
CN107391149A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种硬件平台的代码生成方法及装置 |
CN107562486A (zh) * | 2017-08-15 | 2018-01-09 | 惠州Tcl移动通信有限公司 | 基于mtk平台的手机需求筛选方法、存储介质及设备 |
CN108829395A (zh) * | 2018-06-19 | 2018-11-16 | 中国电子科技集团公司第四十研究所 | 一种面向信号驱动程序代码自动生成方法及装置 |
CN109240672A (zh) * | 2018-07-20 | 2019-01-18 | 北京航空航天大学 | 数字飞行器单机部件信息传输源代码的人工智能书写方法 |
CN113947047A (zh) * | 2021-10-21 | 2022-01-18 | 杭州云合智网技术有限公司 | 用于验证待测设计的接口连接方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303580A (zh) * | 2008-06-24 | 2008-11-12 | 杭州义益自动化有限公司 | 支持多种cpu构造plc控制器的实现方法 |
CN101551747A (zh) * | 2009-04-09 | 2009-10-07 | 怯肇乾 | Arm系列微处理器的软件体系架构工具 |
US7730230B1 (en) * | 2006-12-29 | 2010-06-01 | Marvell International Ltd. | Floating frame timing circuits for network devices |
CN102866890A (zh) * | 2012-09-11 | 2013-01-09 | 哈尔滨商业大学 | 基于对象关联的Android嵌入式界面及程序框架的生成系统及生成方法 |
CN105242597A (zh) * | 2015-09-29 | 2016-01-13 | 中国科学院光电技术研究所 | 一种嵌入式控制器调试界面的自动生成方法 |
-
2016
- 2016-02-26 CN CN201610105842.2A patent/CN105786500B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730230B1 (en) * | 2006-12-29 | 2010-06-01 | Marvell International Ltd. | Floating frame timing circuits for network devices |
CN101303580A (zh) * | 2008-06-24 | 2008-11-12 | 杭州义益自动化有限公司 | 支持多种cpu构造plc控制器的实现方法 |
CN101551747A (zh) * | 2009-04-09 | 2009-10-07 | 怯肇乾 | Arm系列微处理器的软件体系架构工具 |
CN102866890A (zh) * | 2012-09-11 | 2013-01-09 | 哈尔滨商业大学 | 基于对象关联的Android嵌入式界面及程序框架的生成系统及生成方法 |
CN105242597A (zh) * | 2015-09-29 | 2016-01-13 | 中国科学院光电技术研究所 | 一种嵌入式控制器调试界面的自动生成方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776102A (zh) * | 2016-12-27 | 2017-05-31 | 中国建设银行股份有限公司 | 一种应用系统健康检查方法及系统 |
CN107391149A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种硬件平台的代码生成方法及装置 |
CN107562486A (zh) * | 2017-08-15 | 2018-01-09 | 惠州Tcl移动通信有限公司 | 基于mtk平台的手机需求筛选方法、存储介质及设备 |
CN107562486B (zh) * | 2017-08-15 | 2021-09-14 | 惠州Tcl移动通信有限公司 | 基于mtk平台的手机需求筛选方法、存储介质及设备 |
CN108829395A (zh) * | 2018-06-19 | 2018-11-16 | 中国电子科技集团公司第四十研究所 | 一种面向信号驱动程序代码自动生成方法及装置 |
CN109240672A (zh) * | 2018-07-20 | 2019-01-18 | 北京航空航天大学 | 数字飞行器单机部件信息传输源代码的人工智能书写方法 |
CN109240672B (zh) * | 2018-07-20 | 2022-02-11 | 北京航空航天大学 | 数字飞行器单机部件信息传输源代码的人工智能书写方法 |
CN113947047A (zh) * | 2021-10-21 | 2022-01-18 | 杭州云合智网技术有限公司 | 用于验证待测设计的接口连接方法及相关设备 |
CN113947047B (zh) * | 2021-10-21 | 2023-09-26 | 杭州云合智网技术有限公司 | 用于验证待测设计的接口连接方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105786500B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105786500A (zh) | 一种嵌入式控制器程序框架自动生成方法 | |
CN112558929B (zh) | 用于开发或创建工业应用的系统和方法及计算机可读介质 | |
EP3462268B1 (en) | Classification modeling for monitoring, diagnostics optimization and control | |
US10606562B2 (en) | Method and system for generating PLC code with a connectivity model | |
US10241852B2 (en) | Automated qualification of a safety critical system | |
US20220066409A1 (en) | Method and system for generating an artificial intelligence model | |
US11663292B2 (en) | Base analytics engine modeling for monitoring, diagnostics optimization and control | |
US11644823B2 (en) | Automatic modeling for monitoring, diagnostics, optimization and control | |
CN104423968A (zh) | 设计业务逻辑的方法、执行其的服务器和储存媒介 | |
JP6808588B2 (ja) | エレベータシステム | |
US20190102352A1 (en) | Multi-engine modeling for monitoring, diagnostics, optimization and control | |
Biró et al. | Safe and secure cyber‐physical systems | |
WO2022103685A1 (en) | Continuous integration and development of code in a secure environment | |
US20170372237A1 (en) | System and method for producing models for asset management from requirements | |
JP2018142271A (ja) | Api規約チェック装置、api規約チェック方法、およびプログラム | |
US20220334807A1 (en) | Method and system for generating engineering programs for an industrial domain | |
Larrinaga et al. | Implementation of a reference architecture for cyber physical systems to support condition based maintenance | |
US20080208364A1 (en) | Language-based organization of controller engine instances | |
CN116635843A (zh) | 分析工业工厂的日志文件的设备、计算平台和方法 | |
KR102046571B1 (ko) | 데이터 처리 룰 생성 방법 | |
Shanmugham et al. | Application of graphical specification methodologies to manufacturing control logic development: a classification and comparison | |
Novikov et al. | Application of the open operating system ‘MindSphere’in digital transformation of high-tech enterprises | |
EP4099240A1 (en) | System and method for building data exchange | |
Hagar | Classic IoT V&V/Test Concepts, Techniques, and Practices | |
US20140067747A1 (en) | Object based method to evaluate rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |