用于嵌入式系统的应用程序sdk的构建方法及装置的制造方法

文档序号:9505996阅读:495来源:国知局
用于嵌入式系统的应用程序sdk的构建方法及装置的制造方法
【技术领域】
[0001]本发明涉及一种嵌入式系统,特别是一种用于嵌入式系统的应用程序SDK的构建方法及装置。
【背景技术】
[0002]嵌入式系统软件产品追求精简、实时、高效和低成本,因此大部分嵌入式软件的各个模块都是基于RTOS整体开发、测试和调试,由于是混合编程导致应用程序和基础服务程序经常相互影响,对于多个嵌入式产品软件的并行开发和维护更加困难,软件研发团队的工程技术人员需要掌握各种知识和技能,不利于嵌入式产品特别是物联网硬件产品的大规模发展。

【发明内容】

[0003]本发明为解决上述问题,提供了一种用于嵌入式系统的应用程序SDK的构建方法及装置,其通过将嵌入式系统软件按层关系分为应用软件层和基础服务软件层,并开发独立的抽象模块和SDK模块,从而实现了基于SDK独立开发嵌入式应用程序软件的方式。
[0004]为实现上述目的,本发明采用的技术方案为:
[0005]一种用于嵌入式系统的应用程序SDK的构建方法,所述的嵌入式系统划分为应用软件层和基础服务软件层,所述的应用软件层与基础服务软件层非直接耦合并设有共用堆栈,所述的应用程序SDK的构建包括以下步骤:
[0006]10.分析应用软件层的功能需求,并根据该功能需求提出对于基础服务软件层的API需求;
[0007]20.在基础服务软件层中构建抽象模块,并在该抽象模块中实现所述的API需求;
[0008]30.建立所述的API对应的指向API函数入口地址的数组,并将该数组的起始地址固定链接于嵌入式系统的固定地址;
[0009]40.建立一个指向函数指针数组的类型,并将所述的API函数入口地址的数组的起始地址强制转换为指向该函数指针数组的类型;
[0010]50.在应用软件层中构建SDK模块,并构建SDK中的API函数,该SDK的API函数直接调用步骤40所述的函数指针数组。
[0011]优选的,所述的步骤40中,将所述的API函数入口地址的数组的起始地址强制转换为所建立的函数指针数组的类型,是通过采用C语言的指针强制转换方式将所述的API函数入口地址的数组的起始地址强制转换为所建立的函数指针数组的类型,并指向抽象模块的API函数入口地址。
[0012]优选的,在基础服务软件层中,采用跳转指令直接跳转至应用软件层的应用程序的起始地址进行启动应用程序。
[0013]优选的,所述的步骤50中,在应用软件层中构建SDK模块,包括设置SDK中的API的入口地址以及入口函数。
[0014]优选的,进一步在抽象模块中设置基础服务软件层对应用软件层的回调注册函数,应用软件层通过该回调注册函数向基础服务软件层传递应用程序事件处理函数的入口地址。
[0015]优选的,进一步在抽象模块中设置有反注册函数,通过该反注册函数进行清除已经传递至基础服务软件层的应用程序事件处理函数。
[0016]优选的,所述的嵌入式系统划分为应用软件层和基础服务软件层,所述的应用软件层与基础服务软件层非直接耦合并设有共用堆栈,所述的应用程序SDK的构建装置进一步包括:
[0017]API需求分析模块,其通过分析应用软件层的功能需求,并根据该功能需求提出对于基础服务软件层的API需求;
[0018]抽象模块,其通过在基础服务软件层中构建抽象模块,并在该抽象模块中实现所述的API需求;
[0019]API数组构建模块,用于建立所述的API对应的指向API函数入口地址的数组,并将该数组的起始地址固定链接于嵌入式系统的固定地址;
[0020]API数组转换模块,其通过建立一个指向函数指针数组的类型,并将所述的API函数入口地址的数组的起始地址强制转换为指向该函数指针数组的类型;
[0021]SDK模块,其通过在应用软件层中构建SDK模块,并构建SDK中的API函数,该SDK的API函数直接调用所述的函数指针数组。
[0022]优选的,还包括函数回调模块,其通过在抽象模块中设置基础服务软件层对应用软件层的回调注册函数和反注册函数,应用软件层通过所述的回调注册函数向基础服务软件层传递应用程序事件处理函数的入口地址,并通过所述的反注册函数进行清除已经传递至基础服务软件层的应用程序事件处理函数。
[0023]优选的,所述的基础服务软件层进一步包括硬件驱动模块、操作系统模块、通信服务模块。
[0024]优选的,所述的应用软件层进一步包括用户接口模块、应用通信协议模块、功能模块。
[0025]本发明的有益效果是:
[0026]本发明的一种用于嵌入式系统的应用程序SDK的构建方法及装置,其通过将所述的嵌入式系统划分为应用软件层和基础服务软件层,并在所述的应用软件层中构建有SDK模块,在所述的基础服务软件层中构建有抽象模块,其中,所述的应用软件层与基础服务软件层非直接耦合并设有共用堆栈,从而实现了基于SDK独立开发嵌入式应用程序软件的方式,开发者能够只基于SDK独立开发各种应用程序,而且应用程序支持对基础服务软件API和基础服务软件对应用软件API的相互调用,同时基础服务软件可以自动加载应用软件。
【附图说明】
[0027]此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0028]图1为本发明的嵌入式系统的结构示意图;
[0029]图2为本发明用于嵌入式系统的应用程序SDK的构建方法的流程简图;
[0030]图3为本发明用于嵌入式系统的应用程序SDK的构建装置的结构示意图。
【具体实施方式】
[0031]为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0032]如图1所示,所述的嵌入式系统划分为应用软件层和基础服务软件层,所述的应用软件层中构建有SDK模块,所述的基础服务软件层中构建有抽象模块,其中,所述的应用软件层与基础服务软件层非直接耦合并设有共用堆栈。
[0033]如图2所示,本发明的用于嵌入式系统的应用程序SDK的构建方法包括以下步骤:
[0034]10.分析应用软件层的功能需求,并根据该功能需求提出对于基础服务软件层的API需求;
[0035]20.在基础服务软件层中构建抽象模块,并在该抽象模块中实现所述的API需求;
[0036]30.建立所述的API对应的指向API函数入口地址的数组,并将该数组的起始地址固定链接于嵌入式系统的固定地址(如A0);
[0037]40.建立一个指向函数指针数组的类型,并将所述的API函数入口地址的数组的起始地址AO强制转换为指向该函数指针数组的类型;
[0038]50.在应用软件层中构建SDK模块,并构建SDK中的API函数,该SDK的API函数直接调用步骤40所述的函数指针数组。
[0039]其中,所述的步骤40中,将API数组的起始地址强制转换为所建立的函数指针数组的类型,是通过采用C语言的指针强制转换方式将API数组的起始地址强制转换为所建立的函数指针数组的类型,并指向抽象模块的API函数入口地址。在基础服务软件层中,采用跳转指令直接跳转至应用软件层的应用程序的起始地址进行启动应用程序。所述的步骤50中,在应用软件层中构建SDK模块,包括设置SDK中的API的入口地址(例如:OxBOOOOOOO)以及入口函数。
[0040]本实施例中,进一步在抽象模块中设置基础服务软件层对应用软件层的回调注册函数(Callback函数)和反注册函数,应用软件层通过所述的回调注册函数向基础服务软件层传递应用程序事件处理函数的入口地址,并通过所述的反注册函数进行清除已经传递至基础服务软件层的应用程序事件处理函数。当基础服务软件有事件发生需要由应用程序处理时,直接根据已经获得的应用程序事件处理入口地址调用应用程序事件处理函数;当应用程序不需要处理某些特定事件时,调用反注册函数清除事件处理入口地址,相应的事件发生时如果基础服务程序判断到地址被清除就直接丢弃此事件后返回,从而实现基础服务软件对应用软件模块的直接调用。
[0041]如图3所示,本发明还根据所述的用于嵌入式系统的应用程序SDK的构建方法提供对应的构建装置100,其包括:
[0042]API需求分析模块101,其通过分析应用软件层的功能需求,并根据该功能需求提出对于基础服务软件层的API需求;
[0043]抽象模块102,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1