一种嵌入式定制化开发平台自动生成系统的实现方法与流程

文档序号:12664463阅读:297来源:国知局
一种嵌入式定制化开发平台自动生成系统的实现方法与流程

本发明涉及嵌入式软件自动化设计领域,尤其涉及微控制器(MCU)软件的自动化设计和技术实现。



背景技术:

随着物联网的兴起,以及工业4.0时代的到来,嵌入式系统(尤其是MCU)的应用出现了快速增长。但同时物联网应用的碎片化问题也显得日益突出,其主要表现在:行业和领域多样性、终端设备众多、类型和功能千差万别、性能差别非常大等等。这使得物联网终端软件开发异常困难。而且,由于缺少统一的开发系统,设备终端不兼容问题突出,已经成为制约物联网技术大规模推广的主要原因。

四十多年来,嵌入式产品一直沿用这样的开发流程:首先设计产品硬件电路。其次在硬件电路基础上开发软件架构程序,然后开发处理器的初始化程序与配置程序,以及开发驱动程序、中间件程序以及特定功能程序等软件,这些软件构成了该项目独有的一个个性化基础平台。开发人员在此平台之上做进一步的应用层软件开发,进行软硬件整合调试,直至完成产品设计。其中搭建基础平台的代码量一般要占到整个项目全部代码量的70%~90%,是整个开发流程的重点,因此如果能提高这个平台的开发速度,就可以提高产品的开发效率。

嵌入式处理器生产厂商通常会提供软件辅助开发工具和固件库,以更好地为使用者提供服务。通常他们会提供自行设计的可视化处理器功能配置界面,以帮助使用者快速完成编写处理器的初始化程序与配置程序。这种方法通常需要用户手工选择配置,操作比较繁琐,而且可视化配置界面的设计也较为复杂。如果能够改进,提高使用者的开发体验,有助于促进处理器产品的销售。

综合以上几种情况,开发一个通用、可视化、适用多种处理器及外围设备的嵌入式软件开发平台的自动生成系统,显得很有意义。



技术实现要素:

本发明的目的是提供一种便捷高效的、由计算机自动编写代码的嵌入式定制化开发平台自动生成系统(以下简称自动生成系统)的实现方法。

本发明的技术方案如下:

第一步,通过PCB设计软件直接获取嵌入式产品硬件电路图特征文件或数据,然后把电路图特征文件或数据导入自动生成系统;

本发明所指的PCB设计软件,是指对外公开发行的收费或免费的、具有设计电路原理图以及PCB图等功能的专业工具软件。

本发明所指的电路图特征文件或数据,包含电路中用到的处理器芯片(比如MCU)、外围芯片、功能器件及模块等元器件型号以及反映电路连接关系的电路网络名称等信息。这些型号和名称等信息需要事先进行规范定义,不能互相冲突,使计算机能够自动识别。另外,一些诸如选择处理器工作频率、选择软件集成开发环境(IDE)等信息也可以预先进行设置。

本发明所指的定制化开发平台,是指以特定的硬件电路为基础,生成与之匹配的特殊软件开发平台,它包括软件架构程序、驱动程序、中间件程序以及特定功能程序等。开发人员可以在这个平台基础上,编写自己的应用层程序,完成产品的设计。

本发明的技术称之为定制化开发平台自动生成系统, 是指由计算机按照应用需求(例如按照硬件电路),辅助挑选所需的已有软件代码或软件库文件并自动编写程序,自动生成定制化开发平台。

本发明所指的自动编写程序,是指按照应用需求(例如按照硬件电路),对已有的软件代码进行移植、剪裁、特化与修改,或者添加新代码等操作。已有的软件代码可以是包含在自动生成系统软件中的嵌入代码,也可以是现成的软件库文件。剪裁是指去掉某些用不到的功能。特化与修改,是指按照应用需求,确定软件中的一些参数或配置(比如电路端口),以及修改部分代码。

第二步,确定软件架构(例如实时内核),软件架构是整个应用系统的基础;

第三步,根据电路图特征文件或数据,在选定软件架构基础上,由自动生成系统自动编写软件架构程序;

第四步,根据电路图特征文件或数据,在选定软件架构基础上,由“定制化开发平台自动生成系统”自动编写处理器芯片的初始化程序和功能配置程序;

第五步,根据电路图特征文件或数据,在选定软件架构基础上,由自动生成系统自动编写所用到的外围芯片、功能器件及模块等元器件的初始化程序以及驱动程序;

第六步,根据电路图特征文件或数据,在选定软件架构基础上,经过计算机智能分析,由自动生成系统自动选用或编写应用系统所需的中间件程序以及特定功能程序;

第七步,根据电路图特征文件或数据,在选定软件架构基础上,经过计算机智能分析,由自动生成系统自动编写应用系统的主运行程序;

第八步,自动编写以上所有自动编写程序及相关技术的说明文档,供开发人员参考。

以上第三至第七步的编写程序,并非每一步都是必须的,只要有一步即可。例如有些应用系统无需中间件程序以及特定功能程序,则第六步就可以直接跳过。

由此,根据电路图特征文件或数据,在选定软件架构基础上,自动生成一个在指定的IDE使用的、适合特定的电路图特征文件或数据的特定程序集合,这些程序构成了一个定制化开发平台。开发人员可以在这个平台基础上编写自己的用户程序、整合调试,最终完成产品设计。

本发明的有益效果:

1、本发明提供了一种便捷高效的嵌入式定制化开发平台的自动生成系统的实现方法,它具有通用、可视化、适用多种处理器及外围设备等特点,这有助于解决物联网应用的碎片化问题。而且,在同一个通用系统开发出来的不同产品,可以方便地达成共识,遵守共同标准以使相互兼容,这一点有助于物联网技术的推广。

2、嵌入式产品开发通常需要构建一个自有的基础开发平台,这个平台包括软件架构及各种软件模块,一般要占到整个项目软件代码量的70%以上。本发明提供了一种自动快速生成定制化开发平台的方法,由计算机代替人工工作,极大提高了软件开发效率,降低开发成本,缩短开发周期,而且也克服了人工容易出错的缺陷,提高了产品的可靠性。

3、本发明借用了PCB设计软件实现了编程可视化,电路图设计直接替代软件图形可视化设计,大大简化了自动生成代码系统的设计。而且,也省去了用户进行配置的中间步骤。这一点对于处理器厂商尤其有意义,使他们可以节省辅助软件开发工具的开发成本,为用户提供更简便、更直观的辅助软件开发工具,更好地为客户服务。

附图说明

图1本发明的技术方案流程图;

图2本发明的举例之电路原理图;

图3本发明的举例之应用实例工作流程图。

具体实施方式

以下我们结合附图和实例对本发明做进一步阐述。

一、本发明涉及的技术用语及定义

1、PCB设计软件

本发明所指的PCB设计软件,是指对外公开发行的收费或免费的、具有设计电路原理图以及PCB图等功能的专业工具软件。例如,常用的有Protel 99SE、Altium Designer系列、Cardence OrCAD/SPB/PSD、Mentor PADS/EN/WG、CadSoft EAGLE等。

2、电路图特征文件或数据

本发明所指的电路图特征文件或数据,包含电路中用到的处理器芯片(比如MCU)、外围芯片、功能器件及模块等元器件型号以及反映电路连接关系的电路网络名称等信息。这些型号和名称等信息需要事先进行规范定义,不能互相冲突,使计算机能够自动识别。另外,一些诸如选择处理器工作频率、选择软件集成开发环境(IDE)等信息也可以预先进行设置。

最典型的电路图特征文件是PCB设计软件Protel 99SE自动生成的尾缀为.NET的网络表(Netlist)文件,它包含了电路原理图中各种元器件的型号、编号和封装等信息,也包含了元器件之间的电路连接关系,即电路网络。这种网络表文件采用文本格式,是生成PCB图的基础,可直接为本发明所用。

部分网络表例如下:

[

U1

LQFP48

ATMEGA16L

]

[

U2

SO-8

PCF8563T

]

(

RXD

U1-9

)

(

SCL

U1-19

U2-6

)

(

SDA

U1-20

U2-5

)

(

TXD

U1-10

)

……

需要说明的是,出于计算机自动识别的需要,在设计电路图时,必须采用一套事先规定好的电路图符号集。这套符号集定义了各种元器件名称和电路网络名称,以及其它信息。这些名称和信息要求互不冲突,计算机可以准确识别且不会产生歧义。芯片或设备等元器件名称一般可以直接采用厂家的命名,而电路网络命名则可以采用一些容易理解的符号,例如,MCU的串口收发端连线的电路网络可命名为RXD、TXD,I2C总线可用SDA、SCL表示。

另外,一些诸如选择处理器工作频率、软件集成开发环境(IDE)的选用等信息也可以预先在电路图中进行设置。例如,可以在处理器名称后面加上“_12MHz”,以表示系统时钟是12MHz。

3、定制化开发平台

本发明所指的定制化开发平台,是指以特定的硬件电路为基础,生成与之匹配的特殊软件开发平台,它包括软件架构程序、驱动程序、中间件程序以及特定功能程序等。开发人员可以在这个平台基础上,编写自己的应用层程序,完成产品的设计。

以一种称为电子水平仪的项目为例(使用TreeOS构件化操作系统),其定制化开发平台包含了以下程序组件(注:这些组件包括.c程序文件和.h头文件):

TreeOS_MCU (MCU配置程序)

TreeOS_HD61202 (图形点阵LCD驱动程序)

TreeOS_IRR (红外遥控器驱动程序)

TreeOS_AP890XX (语音存储器驱动程序)

TreeOS_MXD2020E (加速度测量器件驱动程序)

TreeOS_EEPROM (EEPROM器件驱动程序)

TreeOS_STDLIB (常用数字与字符转换程序(中间件))

TreeOS_IO (IO口数字量输入输出驱动程序)

TreeOS_Main (主程序)

4、定制化开发平台自动生成系统

本发明的技术称之为定制化开发平台自动生成系统, 是指由计算机按照应用需求(例如按照硬件电路),辅助挑选所需的已有软件代码或软件库文件并自动编写程序,自动生成定制化开发平台。

本发明所指的自动编写程序,是指按照应用需求(例如按照硬件电路),对已有的软件代码进行移植、剪裁、特化与修改,或者添加新代码等操作。已有的软件代码可以是包含在自动生成系统软件中的嵌入代码,也可以是现成的软件库文件。剪裁是指去掉某些用不到的功能。特化与修改,是指按照应用需求,确定软件中的一些参数或配置(比如电路端口),以及修改部分代码。

定制化开发平台自动生成系统实际上是已有软件代码或软件库文件的管理工具。这些已有的软件代码一般包括处理器芯片初始化及配置程序、周边芯片和设备的驱动程序、中间件程序以及特定功能程序等。这是一种软件复用,避免了软件开发过程中的重复劳动。通过软件复用,软件开发不再采用一切从零开始的模式,而是在已有的工作的基础上,充分利用过去积累的知识和经验。

二、本发明的具体实施步骤

步骤一,把电路图特征文件或数据导入自动生成系统

在电路图设计完成之后,本发明的第一步工作是通过PCB设计软件直接获取嵌入式产品硬件电路图特征文件或数据,然后把电路图特征文件或数据导入自动生成系统。

步骤二,确定软件架构

本发明的第二步工作是确定软件架构(例如实时内核),软件架构是整个应用系统的基础。

软件架构可以是像FreeRTOS这样的实时内核操作系统,也可以是像TreeOS这样的无核构件化操作系统,也可以是其它类型的操作系统,当然也可以是开发人员自己定义的软件架构,等等。

步骤三,编写软件架构程序

本发明的第三步工作是根据电路图特征文件或数据,在选定软件架构基础上,由自动生成系统自动编写软件架构程序;

例如,对于FreeRTOS这样的实时内核,有一套内核程序,可以直接移植过来;而对于TreeOS这样的无核构件化操作系统,没有专门的内核程序,则无需编写。

步骤四,编写处理器芯片的初始化程序和功能配置程序

如果需要,本发明的第三步工作是根据电路图特征文件或数据,在选定软件架构基础上,由自动生成系统自动编写处理器芯片的初始化程序和功能配置程序。

处理器芯片通常都有丰富的功能,比如信号输入输出、定时器/计数器、中断、串口、PWM等等,这些功能有的要用到,就要进行初始化和配置,而用不到的功能就把它关闭。

步骤五,编写外围器件的初始化程序以及驱动程序

如果需要,本发明的第四步工作是根据电路图特征文件或数据,在选定软件架构基础上,由自动生成系统自动编写所用到的外围芯片、功能器件及模块等元器件的初始化程序以及驱动程序。

外围芯片、功能器件及模块等元器件,如数据存储器、实时钟、数据转换、通讯、控制等功能芯片或模块,这些元器件一般都需有初始化程序以及驱动程序,自动生成系统将自动编写这些程序。

步骤六,编写中间件程序以及特定功能程序

如果需要,本发明的第五步工作是根据电路图特征文件或数据,在选定软件架构基础上,经过计算机智能分析,由自动生成系统自动选用或编写应用系统所需的中间件程序以及特定功能程序。

这些中间件程序以及特定功能程序包括文件系统、通信栈、用户图形界面、本地功能计算、边缘计算、接口协议等等。

步骤七,编写应用系统的主程序

如果需要,本发明的第六步工作是根据电路图特征文件或数据,在选定软件架构基础上,经过计算机智能分析,由自动生成系统自动编写应用系统的主运行程序。

本发明自动完成的一般是初始化工作,包括调用处理器芯片配置及初始化、外围器件初始化等工作。开发人员可以在此基础上进行进一步完善,比如完成应用系统的自检、调用工作任务等。

步骤八,编写技术说明文档

本发明的第六步工作是自动编写以上所有自动编写程序及相关技术的说明文档,供开发人员参考。

以上第三至第七步的编写程序,并非每一步都是必须的,只要有一步即可。例如有些应用系统无需中间件程序以及特定功能程序,则第六步就可以直接跳过。

由此,根据电路图特征文件或数据,在选定软件架构基础上,自动生成一个在指定的IDE使用的、适合特定的电路图特征文件或数据的特定程序集合,这些程序构成了一个定制化开发平台。开发人员可以在这个特定平台基础上编写自己的用户程序以及整合调试,最终完成产品设计。

三、应用实例

本发明所述的嵌入式软件定制化开发平台自动生成系统,可大大提高开发效率,并使嵌入式编程更加智能化。该技术已应用于AlphaMcu自动写代码系统(参见图3),并成功应用于多个MCU应用项目上,取得了显著效果。实践表明,本发明所述的编程技术可使绝大多数MCU应用项目实现70%以上代码的自动化编程。

四、适应性

本发明所述的所有编程技术,为了便于描述,虽然只涉及到嵌入式系统,但实际上其适用范围可以更加广泛。因此本发明所述的所有编程技术可适用于符合本发明所述要求的任何其它计算机系统。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1