调用底层软件的方法、装置和嵌入式系统制造方法及图纸

技术编号:4157588 阅读:236 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例提供了一种底层软件的调用方法、装置和嵌入式系统,方法包括:接收应用层软件调用第一函数的调用请求;调用中间层函数获取底层软件中对应所述第一函数的第二函数的信息;接收所述中间层函数返回的第二函数的信息;根据所述调用第一函数的调用请求和所述第二函数的信息调用所述第二函数。通过中间层函数获取底层软件中函数的函数信息,因而应用层软件在需要调用底层软件中的函数时,并不需要了解底层软件中的函数信息,使得应用层软件和底层软件可以分开编译,实现了应用层软件和底层软件的解耦。

Method, device and embedded system for invoking underlying software

The embodiment of the invention provides a method, called the underlying software device and embedded system, the method includes: receiving the application layer software calls the first function call request; call the middle layer function to obtain the second function in the underlying software corresponding to the first function information; second function to receive the intermediate layer function returns information; according to the first call to the function call request and the second functions of the second function call information. Get the function function in the underlying software information through the middle layer function, and application layer software in the function call software in need, does not need to understand the underlying software function of information, making the application layer software and software can be compiled separately, realize decoupling of application layer software and software.

【技术实现步骤摘要】

本专利技术涉及嵌入式系统技术,特别涉及嵌入式系统中调用底层软件的方法和装置。
技术介绍
嵌入式系统应用越来越广泛,尤其在通信领域。嵌入式系统可以将其分成嵌入式 系统硬件和嵌入式系统软件两大部分。嵌入式系统硬件部分的核心部件就是嵌入式处理器。现在嵌入式处理器的品种已 经超过1000多种,流行的体系结构多达30多个,嵌入式处理器的寻址空间也从64KB到2GB 不等,其处理速度可以从0. IMIPS 2000MIPS等。一般来说可以把嵌入式处理器分成以下 4类MPU(Micro Processor Unit)嵌入式微处理器;MCU(Micro Controller Unit)嵌 入式微控制器;嵌入式DSP处理器(Digital Signal Processor);嵌入式片上系统(SOC)。嵌入式系统硬件部分除了嵌入式处理器核心部分外,还包括丰富的外围接口。通 常外围接口所连接的外部设备,需要驱动程序才能正常运行。嵌入式系统软件部分一般来说可以分为两个部分,应用层软件和底层软件。底层 软件主要包括嵌入式操作系统和与硬件相关的驱动程序。底层软件一般可以分成启动代码 (Boot Loader)、操作系统内核与驱动(Kernel&Driver)、板级支持包 BSP (Board Support Package)文件系统等几个部分。底层软件和硬件强相关,不同的硬件一般会有配套的底层软件。底层软件通过提 供各种接口供应用层软件调用以驱动硬件工作。应用层软件主要实现业务的相关处理,实现商业逻辑,通过底层软件提供的接口 驱动硬件工作,完成一定的业务处理。专利技术人发现,现有技术中存在如下问题,嵌入式系统中的应用层软件和底层软件 存在强耦合关系,导致应用层软件和底层软件需要一起编译生成映象文件,通常情况下,应 用层软件和底层软件一起编译成单板.bin文件,形成如图1所示的结构。
技术实现思路
本专利技术提供了一种调用底层软件的方法、装置和嵌入式系统,能够降低应用层软 件和底层软件之间的耦合度。本专利技术实施例一实施例提供了一种底层软件的调用方法,包括接收应用层软件调用第一函数的调用请求;调用中间层函数获取底层软件中对应所述第一函数的第二函数的信息;接收所述中间层函数返回的第二函数的信息;根据所述调用第一函数的调用请求和所述第二函数的信息调用所述第二函数。本专利技术另一实施例提供了一种调用底层软件的装置,包括 接收模块,用于接收应用层软件调用第一函数的调用请求;适配模块,用于调用中间层函数获取底层软件中对应所述第一函数的第二函数的 信息,并接收所述中间层函数返回的第二函数的信息;调用模块,用于根据所述接收模块和所述适配模块返回的第二函数信息调用所述 第二函数本专利技术另一实施例提供了一种嵌入式系统,包括上述的调用底层软件的装置,应 用层软件模块,底层软件模块和中间层模块;所述应用层软件模块与所述调用底层软件的装置直接耦合;所述中间层模块与所 述底层软件模块直接耦合;所述调用底层软件的装置,通过所述中间层模块调用所述底层 软件模块的函数。本专利技术实施例提供的技术方案,通过中间层函数获取底层软件中函数的函数信 息,因而应用层软件在需要调用底层软件中的函数时,并不需要了解底层软件中的函数信 息,使得应用层软件和底层软件可以分开编译,实现了应用层软件和底层软件的解耦。附图说明图1为现有技术中底层软件和应用层软件的耦合关系图;图2a为本专利技术一实施例提供的底层软件和应用层软件的耦合关系图;图2b为本专利技术一实施例提供的底层软件的调用方法的流程示意图;图3为本专利技术另一实施例提供的底层软件的调用方法的流程示意图;图4为本专利技术另一实施例提供的底层软件的调用方法的流程示意图;图5为本专利技术另一实施例提供的调用底层软件的装置示意图;图6为本专利技术另一实施例提供的应用调用底层软件的装置的嵌入式系统的结构 示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的几个 实施例作进一步地详细的描述。在本专利技术的实施例中,嵌入式系统由硬件和软件所组成,软件具体可分为两层,即 应用层软件和底层软件。底层软件主要面向底层操作,需要了解硬件的实现细节,可以直接 对硬件进行操作;而应用层软件主要面向于应用,并不需要了解硬件实现的细节,只需要通 过底层软件提供的接口驱动硬件工作。请参见图2a,在如图2a所示的实施例中,实现了应用层软件和底层软件的解耦。 图2a所示的嵌入式系统由两部分映像文件组成,适配层12和应用层软件11 一起编译成映 像文件,中间层函数13和底层软件14 一起编译成映像文件。以下详细叙述其原理。应用层软件需要调用底层软件提供的接口,接口是一种可供预先定义的由应用层 软件调用的函数。在代码实现的过程中,在适配层中定义所有对应于底层软件中每个接口 的适配函数,应用层软件直接调用适配层中定义的适配函数。通过这种方式,可以保证应用 层软件可以在脱离底层软件的情况下,编译成功。底层软件需要提供接口供应用层软件调用,在实现底层软件的过程中,定义中间 层函数,中间层函数和底层软件一起编译。由于二者一起编译,因此中间层函数可以查找到底层软件中所有接口在底层软件中的详细信息。中间层函数用于提供给适配层函数调用, 向适配层函数提供底层软件中接口的实际信息。在应用层软件运行的过程中,应用层软件调用适配层的适配层函数,适配层函数 则通过中间层函数查找底层软件的接口信息,并进行调用。以下结合一个示例,通过适配层 函数执行的动作,进一步解释应用层软件如何调用底层软件中的一个接口,在实现中,这个 接口可以是一个函数,为便于表述,这里将底层软件的这个接口称之为bSp_interface_n。 实施例一应用层软件通过适配层函数调用底层软件,这个适配层函数表述为interface』。 请参见图2b,适配层函数执行如下动作S21,接收应用层软件调用interact的调用请求。这里的interface)为第一函数的一个示例。第一函数位于适配层12中,是一种 适配层函数,可以和应用层软件11 一起编译。调用请求为调用函数时传递的参数或指令。在C语言中,调用一个函数的形式可 以为interfaces (varl, var2),其中,interface_n为适配层函数的名称,varl禾口 var2为 函数的参数,varl和var2是调用请求的一种示例。可以理解的是,调用请求也可以不存在 参数,也可以有1个或者任意多个参数。S22,调用中间层函数获取底层软件中对应interface_n的bsp_interface_n的信 肩、ο这里的bSp_interface_n*第二函数的一种示例,可以直接驱动硬件工作。第二 函数位于底层软件中,是底层软件中提供的接口。中间层函数13和底层软件14 一起编译,可以位于同一个映像文件中。中间层函 数13可供适配层函数调用,以查找第二函数在底层软件14中的信息,例如,与第一函数对 应的第二函数的名称,该第二函数的函数地址,第二函数需要的参数等。适配层函数和底层 软件14并没有一起编译,因此适配层函数只能通过中间层函数才能获取对应第一函数的 第二函数的信息。而中间层函数则作为所有适配层12中的适配层函数的接口,查找在底层 软件14中与适配层函数对应本文档来自技高网
...

【技术保护点】
一种底层软件的调用方法,其特征在于,所述方法包括:接收应用层软件调用第一函数的调用请求;调用中间层函数获取底层软件中对应所述第一函数的第二函数的信息;接收所述中间层函数返回的第二函数的信息;根据所述调用第一函数的调用请求和所述第二函数的信息调用所述第二函数。

【技术特征摘要】
一种底层软件的调用方法,其特征在于,所述方法包括接收应用层软件调用第一函数的调用请求;调用中间层函数获取底层软件中对应所述第一函数的第二函数的信息;接收所述中间层函数返回的第二函数的信息;根据所述调用第一函数的调用请求和所述第二函数的信息调用所述第二函数。2.如权利要求1所述的底层软件的调用方法,其特征在于,所述调用中间层函数获取 底层软件中对应所述第一函数的第二函数的信息,包括获取所述中间层函数的函数地址;将所述第一函数或所述第一函数的别名作为所述中间层函数的参数,根据所述函数 地址调用所述中间层函数,以便于所述中间层函数根据所述第一函数或所述第一函数的别 名,查找所述底层软件中对应所述第一函数的第二函数的信息。3.如权利要求1或2所述的底层软件的调用方法,其特征在于,所述第二函数的信息包 括所述第二函数的函数地址;所述根据所述调用第一函数的调用请求和所述第二函数的信息调用所述所述第二函 数,包括将所述第二函数的函数地址赋值给预先定义的函数指针;将所述第一函数的调用请求包括的参数作为所述函数指针的参数,利用所述函数指针 调用所述第二函数。4.如权利要求1或2所述的底层软件的调用方法,其特征在于,所述接收所述中间层函 数返回的第二函数的信息,包括获取所述中间层函数返回的调用结果;如果所述调用结果包括调用成功信息,从所述调用结果获取所述第二函数的信息。5.如权利要求2所述的底层软件的调用方法,其特征在于,所述方法在获取所述中间 层函数的函数地址之前,还包括,所述中间层函数加载后,将所述中间层函数的函数地址写入预设的存储地址或者预设 的文件中;所述获取所述中间层函数的函数地址,包括,从所述预设的存储地址或者所述预设的文件中读取所述中间层函数的函数地址。6.一种调用底层软件的装置,其特征在于,所述装置包括接收模块,用于接收应用层软件调用第一函数的调用请求;适配模块,用于调用中间层函数获取底层软件中对应所述第一函数的第二函数的信...

【专利技术属性】
技术研发人员:崔爱国
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1