Processing

Please wait...

Settings

Settings

Goto Application

1. WO2012055275 - METHOD AND DEVICE FOR CONTROLLING APPLICATION STARTUP IN EMBEDDED SYSTEM

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
一种嵌入式系统中控制应用程序启动的方法和装置

技术领域

本发明涉及通信领域, 尤其涉及一种嵌入式系统中控制应用程序启动 的方法和装置。

背景技术

随着嵌入式系统设备的快速普及,嵌入式系统的应用得到了快速的发 展。应用的范围也从军事和工业,向民用快速发展,而民用的发展速度, 又超越了前者。对很多已经在工业领域取得一定技术积累的企业,需要一 种能够快速向民用品过渡的方法。过渡的目的就是使得同类产品能够适用 于多个应用场景。比如,军用的定位系统过渡到民用定位系统等。因此, 对于嵌入式系统的相关技术,如果有通用的方法能够将其应用程序快速适 用于多个场景,有利于提高用户体验,改善嵌入式系统的功能。

发明内容

有鉴于此, 本发明的主要目的在于提供一种嵌入式系统中控制应用程 序启动的方法和装置,能够将一种嵌入式系统的应用程序快速应用于多个 场景中。

为达到上述目的,本发明的技术方案是这样实现的:

本发明提供了一种嵌入式系统中控制应用程序启动的方法, 所述方法 包括:

在设备启动过程中, 产生预配置数据,对所述预配置数据进行校验并 产生校验结果,在所述校验结果和次级启动程序中预置的校验值一致时, 执行所述次级启动程序;

所述次级启动程序根据预定义的空间地址,逐段读取所述预配置数据, 并将所述预配置数据设置到应用程序的全局变量中,作为应用程序启动的 参数。

在上述方案中, 所述对所述预配置数据进行校验,包括:在嵌入式系 统的只读内存(ROM ) 中固化一个启动程序,对所述预配置数据的校验。

在上述方案中, 所述对所述预配置数据进行校验包括:对所述预配置 数据的完整性和合法性进行校验。

在上述方案中,所述固化一个启动程序包括:

将启动加载器(boot loader )程序固化在所述 ROM中,在内存中预设一 个校验数字,存放在所述 boot loader中,作为预配置数据的校验值, boot loader开始运行后,从所述预配置数据的数据段的首地址 P1开始进行循环冗 余校验 CRC16校验。

在上述方案中, 所述次级启动程序根据预定义的空间地址,逐段读取 所述预配置数据,并将所述预配置数据设置到应用程序的全局变量中,作 为应用程序启动的参数之后,所述方法还包括:

所述应用程序获取所述次级启动程序设置的预配置数据, 并将所述预 置数据作为参数启动各子应用程序,完成各子应用程序的初始化并执行, 使得设备开始正常运行。

本发明还提供了一种嵌入式系统中控制应用程序启动的装置, 所述装 置包括预配置数据模块、校验模块、判断模块和次级启动模块;

所述预配置数据模块,用于在设备启动过程中,产生预配置数据; 所述校验模块, 用于对所述预配置数据模块产生的预配置数据进行校 验并产生校验结果,

所述判断模块, 用于判断所述校验模块产生的校验结果是否和预置的 校验值一致,如果一致,则启动所述次级启动模块,否则,不启动所述次 级启动模块;

所述次级启动模块, 用于执行次级启动程序,所述次级启动程序根据 预定义的空间地址,逐段读取所述预配置数据,并将所述预配置设置到应 用程序的全局变量中,作为应用程序启动的参数。

在上述方案中,所述校验模块,用于在嵌入式系统的 ROM中固化一个 启动程序,对所述预配置数据的校验。

在上述方案中,所述检验模块,还用于:将 boot loader^呈序固化在所述 ROM中, 在内存中预设一个校验数字 SO, 存放在 boot loader中,作为预配置 数据的校验结果, boot loader开始运行后,从所述预配置数据的数据段的首 地址 P1开始进行 CRC16校验。

在上述方案中, 所述装置还包括:应用程序模块,用于获取所述次级 启动程序设置的预配置数据,并将所述预置数据作为参数启动各子应用程 序,完成各子应用程序的初始化并执行,使得设备开始正常运行。

本发明中嵌入式系统中控制应用程序启动的方法及装置, 通过执行次 级启动程序,根据预定义的空间地址,逐段读取预配置数据,并将所述预 配置数据设置到应用程序的全局变量中,作为应用程序启动的参数,从而 启动应用程序,即使是对于多个不同的场景,均可以通过次级启动程序为 应用程序配置启动所需的参数, 实现了应用程序在多个不同场景下的启动 执行,可以对所有要启动的应用程序进行控制,解决了对应用程序的启动 进行控制的难点。此外,本发明具有较大的通用性,针对所有需要控制多 个功能模块启动的终端设备均适用,而且简单易行。

附图说明

图 1是本发明实施例中启动次级启动程序的流程示意图;

图 2是本发明实施例中次级启动程序执行、设置预配置数据的流程示意 图;

图 3是本发明实施例中为应用程序启动,加载配置数据的流程示意图; 图 4是本发明嵌入式系统中控制应用程序启动的装置的组成结构示意 图。

具体实施方式

鉴于嵌入式系统对于不同应用场景控制应用程序启动的需要, 本发明 提出了一种嵌入式系统中控制应用程序启动的方法, 以解决对应用程序的 启动进行控制的难点。

其中, 所述方法主要包括:在设备启动过程中,产生预配置数据,对 所述预配置数据进行校验并产生校验结果,在所述校验结果和次级启动程 序中预置的校验值一致时,执行所述次级启动程序;所述次级启动程序根 据预定义的空间地址,逐段读取所述预配置数据,并将所述预配置数据设 置到应用程序的全局变量中,作为应用程序启动的参数。

具体地,在嵌入式系统的只读内存( ROM , Read-Only Memory ) 中固 化一个启动程序,增加对预配置数据的校验。所述校验可以包括对预配置 数据的完整性和合法性的校验。

这里,所述固化一个启动程序包括:将 boot loader^呈序固化在只读内存 ( ROM )中,在内存中预设一个校验数字,存放在所述 boot loader中,作为 预配置数据的校验值; boot loader开始运行后,从所述预配置数据的数据段 的首地址 P1开始进行循环冗余校验码 16 ( CRC16 , Cyclic Redundancy Checkl6 )校验。

这里, 完成对预配置数据的校验之后,开始执行次级启动程序。次级 启动程序从随机存取存储器(RAM, Random Access Memory ) 中的预设固 定地址处开始读取预配置数据。

次级启动执行完毕后, 开始执行应用程序。应用程序通过读取预设固 定地址处的预配置数据,设置应用程序启动的开或关。

具体地, 所述次级启动程序根据预定义的空间地址,逐段读取所述预 配置数据,并将所述预配置数据设置到应用程序的全局变量中,作为应用 程序启动的参数之后,所述方法还包括:获取所述次级启动程序设置的预 配置数据,并将所述预置数据作为参数启动各子应用程序,完成各子应用 程序的初始化并执行,使得设备开始正常运行。

下面结合附图和具体实施例对本发明做详细说明。

本发明公开了一种在嵌入式系统上通过预配置数据的方式控制应用程 序启动的方法,满足了不同应用领域控制应用程序启动的需要。

本发明提供的这种在嵌入式系统上通过预配置数据的方式控制应用程 序启动的方法,是通过设备启动过程中,增加一个次级启动程序来控制应 用程序的启动。首先有个 boot loader是固化在 ROM中,系统加电之后, boot loader开始运行,在内存中预设一个校验数字 SO, 存放在 boot loader中,作 为预配置数据的校验值。然后,从预设置数据的数据段的首地址 P1开始进 行 CRC16校验,将所述校验的校验结果和预置的校验值进行比较,如果一 致,则认为次级启动程序的值完整有效,开始执行次级启动程序,否则, 认为次级启动程序损坏,次级启动程序异常退出。

参考图 1所示,本发明实施例中启动次级启动程序的流程主要可以包括 以下步驟:

S101 : 系统加电, bootloader开始执行;

S102: 预设一个校验数字 SO作为检验值;

S103: 对预配置数据的数据段进行 CRC16校验;

如果一致,进入步驟 S106, 如果不一致,进入步驟 S105;

S105: 次级启动程序损坏,程序异常退出;

S106: 次级启动程序数据完整有效,开始执行次级启动程序。

本实施例中,次级启动程序开始执行之后,首先对应用程序进行校验。 校验的过程与次级启动程序启动时的校验算法一致。校验计算结束后,对 校验结果和应用程序内置的校验值进行对比,如果不一致,程序异常退出; 如果一致,次级启动程序开始读取预配置数据的数据段,预配置数据的数 据段用于控制应用程序的启动。次级启动程序根据预定义的空间地址,逐 段读取预配置数据,并将预配置数据设置到应用程序的全局变量中,作为 应用程序启动的参数。

参考图 2 , 本发明实施例中次级启动程序启动应用程序的流程主要可以 包括如下步驟:

S201 : 次级启动程序开始执行;

S202: 对应用程序进行检验,将校验结果与应用程序内置的校验值进 行比较,如果不一致,转入步驟 S203 , 如果一致,则转入步驟 S204;

S203: 程序异常退出,流程结束。

S204: 读取预配置数据的数据段;

S205: 将所述预配置数据设置到应用程序的全局变量中,流程结束。 其中,应用程序的主要任务就是完成各个应用程序模块的初始化并执 行。在初始化的过程中,首先获取次级启动程序设置的预配置数据,然后 开始将所述预配置数据作为参数启动应用程序的各子应用程序, 全部初始 化完成后,设备开始正常运行。

请参考图 3 , 本实施例中为各子应用程序启动、加载配置数据的流程包 括以下步驟:

S301 : 子应用程序开始启动;

S302: 加载已作为全局变量的配置数据;

S303: 以所述作为全局变量的配置数据为参数启动应用程序;

S304: 完成初始化,设备开始正常使用。

请参考图 4所示,是本发明嵌入式系统中控制应用程序启动的装置实施 例示意图,如图 4所示,所述装置包括预配置数据模块、校验模块、判断模 块、次级启动模块、应用程序模块。其中,所述预配置数据模块,用于在 设备启动过程中,产生预配置数据;所述校验模块,用于对所述预配置数 据模块产生的预配置数据进行校验并产生校验结果, 所述判断模块,用于 判断所述校验模块产生的校验结果是否和预置的校验值一致, 如果一致, 则启动所述次级启动模块,否则,不启动所述次级启动模块;所述次级启 动模块,用于执行次级启动程序,所述次级启动程序根据预定义的空间地 址,逐段读取所述预配置数据,并将所述预配置设置到应用程序的全局变 量中,作为应用程序启动的参数。

具体地,所述校险模块,用于在嵌入式系统的 ROM中固化一个启动程 序,对所述预配置数据的校验。这里,所述检验模块,可以用于将 boot loader 程序固化在所述 ROM中,在内存中预设一个校验数字 SO,存放在 boot loader 中,作为预配置数据的校验结果, boot loader开始运行后,从所述预配置数 据的数据段的首地址 P1开始进行 CRC16校验。

所述次级启动模块,可以从 RAM中的预设固定地址处开始读取预配置 数据。

其中,应用程序模块用于次级启动执行完毕后,开始执行应用程序。 具体地,用于获取所述次级启动程序设置的预配置数据,并将所述预置数 据作为参数启动各子应用程序,完成各子应用程序的初始化并执行,使得 设备开始正常运行。

以上所描述的仅为本发明较佳实例,当然不能以此来限定本发明的权 利范围,因此,在不背离本发明精神及其实质的情况下,熟悉本领域的技 术人员都可根据本发明做出各种相应的改变和变形,但这些相应的改变和 变形都应当属于本发明所附的权利要求的保护范围。