一种基于RTOS实时系统的初始化启动方法、启动单元和系统技术方案

技术编号:35035395 阅读:15 留言:0更新日期:2022-09-24 23:11
本发明专利技术本发明专利技术属于计算机技术领域,公开了一种基于RTOS实时系统的初始化启动方法,所述方法具体包括如下步骤:步骤1:RTOS系统初始化;步骤2:定义各功能模块的调用等级;步骤3:调用模块初始化模型,完成各功能模块的初始化操作;所述模块初始化模型建立在链接器脚本中、用于按照调用等级依序调用各功能模块的初始化函数;所述初始化函数用于使功能模块初始化。该方法无需main函数调用,直接通过初始化模型调用即可,处理速率比main函数的C代码更快;在代码中的任何位置,非函数体内都能使用初始化模型的接口初始化功能模块;增强代码逻辑可读性,提高开发人员开发效率。同时,本发明专利技术还提供了一种RTOS实时系统的初始化启动单元和RTOS实时系统。和RTOS实时系统。和RTOS实时系统。

【技术实现步骤摘要】
一种基于RTOS实时系统的初始化启动方法、启动单元和系统


[0001]本专利技术属于计算机
,更具体而言,涉及一种基于RTOS实时系统的初始化启动方法、启动单元和系统。

技术介绍

[0002]RTOS实时操作系统,用于及时响应事件变化并作出快速处理,对实时性要求非常高的,具有优先级的任务抢占式操作系统。该操作系统广泛应用与各个领域的大型项目中。
[0003]在项目开发过程中,RTOS操作系统一般承载在STM系列的单片机上;由于RTOS系统实时性非常高,所以用于项目整机启动过程中,最早启动的一个部分;该部分启动后,再初始化其他功能板块,进而实现整机的启动。
[0004]整机系统各个功能板块的启动,是基于RTOS系统;RTOS系统启动时,就涉及到了对其他功能板块的初始化过程;整机系统越大,RTOS系统所需要初始化的功能板块就越多,对RTOS初始化过程要求就越高。
[0005]参考图1,通用的RTOS启动流程,一般是在主函数中,调用各个初始化模块的函数,并在模块函数中,实现模块初始化的实例代码。但是,当所需初始化的模块过多时,就会导致主函数调用过多,增加了代码的冗余性,复杂度,可读性变差。

技术实现思路

[0006]本专利技术的主要目的在于提供一种基于RTOS实时系统的初始化启动方法,该方法无需main函数调用,直接通过初始化模型调用即可;程序处理机制上是在链接器脚本文件中的汇编代码执行,处理速率比main函数的C代码更快;对于RTOS系统开发人员,在代码中的任何位置,非函数体内都能使用初始化模型的接口初始化功能模块;根据初始化模型接口,可灵活改变功能模块初始化先后顺序,增强代码逻辑可读性,提高开发人员开发效率。
[0007]同时,本专利技术还提供了一种RTOS实时系统的初始化启动单元和RTOS实时系统;
[0008]根据本专利技术的第一方面,提供了一种基于RTOS实时系统的初始化启动方法,所述方法具体包括如下步骤:
[0009]步骤1:RTOS系统初始化;
[0010]步骤2:定义各功能模块的调用等级;
[0011]步骤3:调用模块初始化模型,完成各功能模块的初始化操作;
[0012]所述模块初始化模型建立在链接器脚本中、用于按照调用等级依序调用各功能模块的初始化函数;所述初始化函数用于使功能模块初始化。
[0013]在上述的基于RTOS实时系统的初始化启动方法中,还包括步骤4:
[0014]各功能模块初始化完成后,创建应用任务,调用各功能模块完成应用任务。
[0015]在上述的基于RTOS实时系统的初始化启动方法中,所述步骤2具体为:选择需要初始化的功能模块并定义各功能模块的调用等级。
[0016]同时,本专利技术还公开了一种RTOS实时系统的初始化启动单元,包括如下模块:
[0017]RTOS系统初始化模块:用于初始化RTOS系统;
[0018]调用等级设定模块:用于定义各功能模块的调用等级;
[0019]链接器:内置有模块初始化模型;
[0020]模型调用模块:用于调用模块初始化模型,所述模块初始化模型用于根据调用等级依序调用各功能模块的初始化函数,完成各功能模块的初始化。
[0021]在上述的RTOS实时系统的初始化启动单元中,所述调用等级设定模块用于选择需要初始化的功能模块并定义各功能模块的调用等级。
[0022]最后本专利技术还提供了一种RTOS实时系统,包括如下单元:
[0023]如上所述的初始化启动单元;
[0024]应用任务创建单元:用于创建应用任务;
[0025]功能模块调用单元:用于调用各功能模块完成应用任务。
[0026]本专利技术上述技术方案中的一个技术方案至少具有如下优点或有益效果之一:
[0027](1)优点:本专利技术针对任何使用该RTOS系统架构的芯片,可提高处理器执行效率,让系统具有更强的实时性。
[0028]原因:无需main函数调用,直接通过初始化模型调用即可;程序处理机制上是在链接器脚本文件中的汇编代码执行,处理速率比main函数的C代码更快。
[0029]效果:当所需RTOS系统初始化的功能模块过多时,有显著提高启动时间的效果。
[0030](2)优点:更完善的开发框架,更高效灵活的开发方法。
[0031]原因:对于RTOS系统开发人员,在代码中的任何位置,非函数体内都能使用初始化模型的接口初始化功能模块;根据初始化模型接口,可灵活改变功能模块初始化先后顺序。
[0032]效果:增强代码逻辑可读性,提高开发人员开发效率。
附图说明
[0033]下面结合附图和实施例对本专利技术进一步地说明;
[0034]图1是现有技术中RTOS的初始化流程;
[0035]图2是本专利技术实施例1的流程图;
[0036]图3是本专利技术实施例1的初始化流程;
[0037]图4是本专利技术实施例2的结构框图。
具体实施方式
[0038]下面详细描述本专利技术的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。
[0039]实施例1
[0040]参考图2和4,一种基于RTOS实时系统的初始化启动和运行方法,所述方法具体包括如下步骤:
[0041]步骤1:硬件系统启动;
[0042]步骤2:RTOS系统初始化;
[0043]步骤3:在主函数中选定所需调用的功能模块和定义各功能模块的调用等级;
[0044]其主要通过initcall.c文件来完成;
[0045]initcall.c文件包括等级数组、初始化数组和初始化函数,初始化函数中设定了调用关系;
[0046]具体来说,等级数组如下:
[0047]static initcall_t*initcall_levels[]={
[0048]__initcall0_start,
[0049]__initcall1_start,
[0050]__initcall2_start,
[0051]__initcall3_start,
[0052]__initcall4_start,
[0053]__initcall5_start,
[0054]__initcall6_start,
[0055]__initcall7_start,
[0056]__initcall_end,
[0057]};
[0058]上述函数规定了功能模块的数量和顺序;
[0059]初始化数组如下:
[0060]extern initcall_t__initcall_start[];
[0061]extern initcall_t__ini本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于RTOS实时系统的初始化启动方法,其特征在于,所述方法具体包括如下步骤:步骤1:RTOS系统初始化;步骤2:定义各功能模块的调用等级;步骤3:调用模块初始化模型,完成各功能模块的初始化操作;所述模块初始化模型建立在链接器脚本中、用于按照调用等级依序调用各功能模块的初始化函数;所述初始化函数用于使功能模块初始化。2.根据权利要求1所述的基于RTOS实时系统的初始化启动方法,其特征在于,还包括步骤4:各功能模块初始化完成后,创建应用任务,调用各功能模块完成应用任务。3.根据权利要求1所述的基于RTOS实时系统的初始化启动方法,其特征在于,所述步骤2具体为:选择需要初始化的功能模块并定义各功能模块的调用等级。4.一种RTOS...

【专利技术属性】
技术研发人员:黎明哲招嘉焕黄章良陈小军
申请(专利权)人:广州鲁邦通物联网科技股份有限公司
类型:发明
国别省市:

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

1