CN109814852B - 一种分区实时操作系统的分区配置方法 - Google Patents
一种分区实时操作系统的分区配置方法 Download PDFInfo
- Publication number
- CN109814852B CN109814852B CN201910029203.6A CN201910029203A CN109814852B CN 109814852 B CN109814852 B CN 109814852B CN 201910029203 A CN201910029203 A CN 201910029203A CN 109814852 B CN109814852 B CN 109814852B
- Authority
- CN
- China
- Prior art keywords
- partition
- compiling
- manifest file
- version
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种分区实时操作系统的分区配置方法,首先在Manifest文件中规定分区配置信息、交叉工具链的版本信息和编译链接参数,然后设计代码自动生成器,使得源代码和链接脚本自动生成,并对代码生成器进行形式化验证,在进行程序编译时,通过获取Manifest文件中规定的交叉工具链编译器和链接器的版本信息,对编译器和链接器的版本进行验证,然后根据Manifest中的编译链接参数进行程序的编译和链接。本发明消除了因编译器和链接器版本不同造成编译链接结果不正确的可能性,简化了程序开发过程,同时也保证了源代码和链接脚本的可靠性,消除了因手动编写源代码和链接脚本而引入错误的可能性。
Description
技术领域
本发明涉及计算机应用技术领域,尤其是操作系统的分区实现方法。
背景技术
分区实时操作系统(PRTOS)在传统实时操作系统的基础上引入了分区的概念,每个分区拥有自己独自的内存空间和时间窗口,实现分区间时空域的隔离,防止一个分区中出现的故障蔓延至其它分区,提高了系统的可靠性;另一方面分区实时操作系统通过采用多级安全架构(MLS),严格控制不同安全级别分区间的信息交流,为信息安全提供保障。
分区配置文件中规定了分区的时间配置参数、空间配置参数、分区关键等级、分区所使用的外部设备以及分区健康监测表等信息,实现分区间的时间隔离、空间隔离以及分区健康状态监测。
在进行分区配置时,需要根据分区配置文件进行源代码和链接脚本的编写,手动编写代码增加引入错误的可能性;同时,随着交叉工具链的不断升级,使用不同版本的交叉工具链,得到的可执行文件也会存在差异性,增加程序运行出错的可能性。
发明内容
为了克服现有技术的不足,本发明提供一种分区实时操作系统的分区配置方法。本发明采用Manifest文件作为分区配置文件,将分区配置信息和交叉工具链的版本以及编译链接参数写入到文件中,设计代码生成器自动生成源代码和链接脚本,并检查所使用交叉工具链的版本信息,保证得到二进制文件的正确性。
本发明解决其技术问题所采用的技术方案的实现步骤如下:
步骤一、用户编写Manifest文件;
Manifest文件以XML格式表示,将分区作为Manifest文件的根元素,通过元素属性的方式规定交叉工具链的版本信息以及编译链接参数,然后通过标签描述分区的分区名称、分区空间配置、分区时间配置、分区关键等级、分区使用的外部设备和分区健康监测表;
用户根据实际使用需求,确定分区数量,建立与分区数量对应的分区元素,然后根据每个分区功能需求的不同,对分区名称、分区空间配置、分区时间配置、分区关键等级、分区使用的外部设备和分区健康监测表的标签进行设定;
步骤二、通过数据软总线获取Manifest文件的信息;
将步骤一完成的Manifest文件挂接到数据软总线上,数据软总线获取Manifest文件中的数据信息;
步骤三、使用ARINC 653 XML-SCHEMA对获取到的Manifest信息进行校验;
Manifest文件中的信息包含两部分:一部分是分区配置信息,另一部分是交叉工具链版本信息和编译链接参数;
依据ARINC 653标准的要求,使用ARINC 653 XML-SCHEMA对分区配置信息进行校验,通过校验的Manifest文件作为分区配置文件继续使用;
步骤四、设计代码生成器,并对代码生成器进行形式化验证;
从步骤三通过校验的Manifest文件的分区信息中提取各个分区的参数,根据提取参数编写源代码和链接脚本;
通过文本替换的方式设计代码生成器,采用形式化的方法对代码生成器进行验证;
步骤五、获取步骤三通过校验的Manifest文件中的交叉工具链编译器版本信息和编译参数,并对编译器版本进行检查;
通过代码生成器产生的源代码在进行编译之前,根据步骤三通过校验的Manifest文件中规定的编译器版本信息对与实际使用的编译器版本进行对比,确保编译器版本的正确性;
步骤六、编译代码生成器生成的源代码。
获取步骤三通过校验的Manifest文件中的编译参数,使用版本相同的编译器编译源代码;
步骤七、获取步骤三通过校验的Manifest中的交叉工具链链接器版本信息和链接参数,并对链接器版本进行检查;
完成步骤六中源代码的编译之后,对比Manifest中规定的交叉工具链链接器版本信息和实际使用的链接器版本信息,确保所使用的链接器为规定版本;
步骤八、根据代码生成器产生的链接脚本,将应用程序链接到指定的位置;
在完成链接器版本的验证之后,根据Manifest文件中的链接参数和代码生成器产生的链接脚本,根据Manifest文件中的链接参数和代码生成器产生的链接脚本,交叉工具链中的链接器执行链接环节,将程序的各个段链接到指定的位置。
本发明的有益效果在于由于采用在Manifest文件中加入交叉工具链的版本信息和编译链接参数,消除了因编译器和链接器版本不同造成编译链接结果不正确的可能性;设计代码生成器来自动生成源代码和链接脚本,并通过形式化的方法对代码生成器进行验证,简化了程序开发过程,同时也保证了源代码和链接脚本的可靠性,消除了因手动编写源代码和链接脚本而引入错误的可能性。
附图说明
图1是本发明分区实时操作系统分区实现方法的示意图;
图2是本发明Manifest文件组成示意图;
图3是本发明代码生成器及交叉工具链版本检查示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
Manifest文件最初为了解决Windows操作系统下同一个DLL文件不同版本的问题,本发明将其用作解决同一个交叉工具链因版本不同导致可执行文件出错的问题,并在Manifest文件中进行分区参数的配置。
首先在Manifest文件中规定分区配置信息、交叉工具链的版本信息和编译链接参数,然后设计代码自动生成器,使得源代码和链接脚本自动生成,并对代码生成器进行形式化验证,从数学和逻辑学的角度证明代码生成器生成的代码与Manifest文件中数据的一致性。在进行程序编译时,通过获取Manifest文件中规定的交叉工具链编译器和链接器的版本信息,对编译器和链接器的版本进行验证,然后根据Manifest中的编译链接参数进行程序的编译和链接。
步骤一、用户编写Manifest文件;
Manifest文件以XML格式表示,将分区作为Manifest文件的根元素,通过元素属性的方式规定交叉工具链的版本信息以及编译链接参数,然后通过标签描述分区的分区名称、分区空间配置、分区时间配置、分区关键等级、分区使用的外部设备和分区健康监测表;
用户根据实际使用需求,确定分区数量,建立与分区数量对应的分区元素,然后根据每个分区功能需求的不同,对分区名称、分区空间配置、分区时间配置、分区关键等级、分区使用的外部设备和分区健康监测表的标签进行设定,例如,根据某一分区内代码功能的关键等级,来确定分区的关键等级,分区空间配置通过设定分区的起止地址定义每个分区所独有的存储空间,分区时间配置通过设定分区内任务的执行时间和调度顺序定义了分区的时间调度信息;
步骤二、通过数据软总线获取Manifest文件的信息;
将步骤一完成的Manifest文件挂接到数据软总线上,数据软总线获取Manifest文件中的数据信息;
步骤三、使用ARINC 653 XML-SCHEMA对获取到的Manifest信息进行校验;
Manifest文件中的信息包含两部分:一部分是分区配置信息,另一部分是交叉工具链版本信息和编译链接参数;
依据ARINC 653标准的要求,使用ARINC 653 XML-SCHEMA对分区配置信息进行校验,通过校验的Manifest文件作为分区配置文件继续使用;
步骤四、设计代码生成器,并对代码生成器进行形式化验证;
从步骤三通过校验的Manifest文件的分区信息中提取各个分区的参数,根据提取参数编写源代码和链接脚本,不但使得程序的开发变得繁琐,同时增加了引入错误的可能;
通过文本替换的方式设计代码生成器,提高了代码的复用性,简化程序开发过程;采用形式化的方法对代码生成器进行验证,从数学的角度保证了所生成的源代码和链接脚本的可靠性,消除了因手动编写源代码和链接脚本引入错误的可能性;
步骤五、获取步骤三通过校验的Manifest文件中的交叉工具链编译器版本信息和编译参数,并对编译器版本进行检查;
通过代码生成器产生的源代码在进行编译之前,根据步骤三通过校验的Manifest文件中规定的编译器版本信息对与实际使用的编译器版本进行对比,确保编译器版本的正确性,防止因编译器版本不同造成的编译结果错误;
步骤六、编译代码生成器生成的源代码。
获取步骤三通过校验的Manifest文件中的编译参数,使用版本相同的编译器编译源代码;
步骤七、获取步骤三通过校验的Manifest中的交叉工具链链接器版本信息和链接参数,并对链接器版本进行检查;
完成步骤六中源代码的编译之后,对比Manifest中规定的交叉工具链链接器版本信息和实际使用的链接器版本信息,确保所使用的链接器为规定版本,防止因链接器版本不同导致链接结果错误;
步骤八、根据代码生成器产生的链接脚本,将应用程序链接到指定的位置。
在完成链接器版本的验证之后,根据Manifest文件中的链接参数和代码生成器产生的链接脚本,根据Manifest文件中的链接参数和代码生成器产生的链接脚本,交叉工具链中的链接器执行链接环节,将程序的各个段链接到指定的位置。
参照图1-3,本发明的实施例关于分区实时操作系统的分区实现方法步骤如下:
第一步、用户编写Manifest文件。Manifest文件以XML格式表示,描述了分区的分区名称、分区空间配置、分区时间配置、分区关键等级、分区使用的外部设备和分区健康监测表等信息,除此之外,还规定了交叉工具链的版本信息以及编译链接参数。
用户根据实际使用需求,对分区数量进行设定,然后根据每个分区功能需求的不同,对分区的各个参数进行设定,分区空间配置定义了每个分区所独有的存储空间,分区时间配置定义了分区的时间调度信息。
第二步、通过数据软总线获取Manifest文件的信息。完成Manifest文件的编制,将Manifest挂接到数据软总线上,数据软总线获取到Manifest中的数据信息。
第三步、使用ARINC 653 XML-SCHEMA对获取到的Manifest信息进行校验。
Manifest文件中的信息主要包含两部分:一是分区配置信息,另一部分是交叉工具链版本信息和编译链接参数。
依据ARINC 653标准中要求,使用ARINC 653 XML-SCHEMA对分区配置信息进行校验,通过校验后的Manifest文件才会作为分区配置文件继续使用。
第四步、设计代码生成器,并对代码生成器进行形式化验证。根据Manifest文件,手动编写源代码和链接脚本,不但使得程序的开发变得繁琐,同时增加了引入错误的可能。
通过设计代码生成器,提高了代码的复用性,简化程序开发过程。采用形式化的方法对代码生成器进行验证,从数学和逻辑学的角度保证了所生成的源代码和链接脚本的可靠性,消除了因手动编写源代码和链接脚本引入错误的可能性。
第五步、获取Manifest中的交叉工具链编译器版本信息和编译参数,并对编译器版本进行检查。
通过代码生成器产生的源代码在进行编译之前,根据Manifest中规定的编译器版本信息对编译器版本进行检查,确保编译器版本的正确性,防止因编译器版本不同造成的编译结果错误。
第六步、编译代码生成器生成的源代码。获取Manifest文件中的编译参数,使用规定版本的编译器编译源代码。
第七步、获取Manifest中的交叉工具链链接器版本信息和链接参数,并对链接器版本进行检查。完成源代码的编译之后,根据Manifest中规定的交叉工具链链接器版本信息对链接器版本进行检查,确保所使用的链接器为规定版本,防止因链接器版本不同导致链接结果错误。
第八步、根据代码生成器产生的链接脚本,将应用程序链接到指定的位置。在完成链接器版本的验证之后,根据Manifest中的链接参数和代码生成器产生的链接脚本,执行链接环节,将程序的各个段链接到指定位置。
Claims (1)
1.一种分区实时操作系统的分区配置方法,其特征在于包括下述步骤:
步骤一、用户编写Manifest文件;
Manifest文件以XML格式表示,将分区作为Manifest文件的根元素,通过元素属性的方式规定交叉工具链的版本信息以及编译链接参数,然后通过标签描述分区的分区名称、分区空间配置、分区时间配置、分区关键等级、分区使用的外部设备和分区健康监测表;
用户根据实际使用需求,确定分区数量,建立与分区数量对应的分区元素,然后根据每个分区功能需求的不同,对分区名称、分区空间配置、分区时间配置、分区关键等级、分区使用的外部设备和分区健康监测表的标签进行设定;
步骤二、通过数据软总线获取Manifest文件的信息;
将步骤一完成的Manifest文件挂接到数据软总线上,数据软总线获取Manifest文件中的数据信息;
步骤三、使用ARINC 653XML-SCHEMA对获取到的Manifest信息进行校验;
Manifest文件中的信息包含两部分:一部分是分区配置信息,另一部分是交叉工具链版本信息和编译链接参数;
依据ARINC 653标准的要求,使用ARINC 653XML-SCHEMA对分区配置信息进行校验,通过校验的Manifest文件作为分区配置文件继续使用;
步骤四、设计代码生成器,并对代码生成器进行形式化验证;
从步骤三通过校验的Manifest文件的分区信息中提取各个分区的参数,根据提取参数编写源代码和链接脚本;
通过文本替换的方式设计代码生成器,采用形式化的方法对代码生成器进行验证;
步骤五、获取步骤三通过校验的Manifest文件中的交叉工具链编译器版本信息和编译参数,并对编译器版本进行检查;
通过代码生成器产生的源代码在进行编译之前,将步骤三中通过校验的Manifest文件中规定的编译器版本信息与实际使用的编译器版本进行对比,确保编译器版本的正确性;
步骤六、编译代码生成器生成的源代码;
获取步骤三通过校验的Manifest文件中的编译参数,使用版本相同的编译器编译源代码;
步骤七、获取步骤三通过校验的Manifest中的交叉工具链链接器版本信息和链接参数,并对链接器版本进行检查;
完成步骤六中源代码的编译之后,对比Manifest中规定的交叉工具链链接器版本信息和实际使用的链接器版本信息,确保所使用的链接器为规定版本;
步骤八、根据代码生成器产生的链接脚本,将应用程序链接到指定的位置;
在完成链接器版本的验证之后,根据Manifest文件中的链接参数和代码生成器产生的链接脚本,交叉工具链中的链接器执行链接环节,将程序的各个段链接到指定的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910029203.6A CN109814852B (zh) | 2019-01-12 | 2019-01-12 | 一种分区实时操作系统的分区配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910029203.6A CN109814852B (zh) | 2019-01-12 | 2019-01-12 | 一种分区实时操作系统的分区配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814852A CN109814852A (zh) | 2019-05-28 |
CN109814852B true CN109814852B (zh) | 2021-12-31 |
Family
ID=66603392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910029203.6A Active CN109814852B (zh) | 2019-01-12 | 2019-01-12 | 一种分区实时操作系统的分区配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814852B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966687B (zh) * | 2020-08-18 | 2024-04-16 | 中国银行股份有限公司 | 一种大型机db2数据库表分区方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019742A (zh) * | 2012-12-31 | 2013-04-03 | 清华大学 | 一种多dsp平台上的自动代码生成方法 |
CN105183507A (zh) * | 2015-08-24 | 2015-12-23 | 汉柏科技有限公司 | 一种应用程序间版本的匹配方法及系统 |
CN105700900A (zh) * | 2014-11-25 | 2016-06-22 | 青岛海信移动通信技术股份有限公司 | 一种优化无线局域网功能的方法及装置 |
CN106919386A (zh) * | 2017-02-15 | 2017-07-04 | 北京航空航天大学 | 基于arinc653操作系统生成代码的方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706697B2 (en) * | 2010-12-17 | 2014-04-22 | Microsoft Corporation | Data retention component and framework |
-
2019
- 2019-01-12 CN CN201910029203.6A patent/CN109814852B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019742A (zh) * | 2012-12-31 | 2013-04-03 | 清华大学 | 一种多dsp平台上的自动代码生成方法 |
CN105700900A (zh) * | 2014-11-25 | 2016-06-22 | 青岛海信移动通信技术股份有限公司 | 一种优化无线局域网功能的方法及装置 |
CN105183507A (zh) * | 2015-08-24 | 2015-12-23 | 汉柏科技有限公司 | 一种应用程序间版本的匹配方法及系统 |
CN106919386A (zh) * | 2017-02-15 | 2017-07-04 | 北京航空航天大学 | 基于arinc653操作系统生成代码的方法与装置 |
Non-Patent Citations (1)
Title |
---|
多核平台下分区操作系统的安全关键任务调度方法;朱怡安等;《计算机工程》;20171215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109814852A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020140820A1 (zh) | 软件测试方法、系统、装置、设备、介质及计算机程序产品 | |
CN108509336B (zh) | 一种操作系统规范形式化验证与测试方法 | |
Daniel et al. | ReAssert: Suggesting repairs for broken unit tests | |
US20030046029A1 (en) | Method for merging white box and black box testing | |
US9594543B2 (en) | Activity diagram model-based system behavior simulation method | |
US20060041864A1 (en) | Error estimation and tracking tool for testing of code | |
CN106909510A (zh) | 一种获取测试用例的方法以及服务器 | |
CN109189479B (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
US8719771B2 (en) | Method and system for test reduction and analysis | |
CN104156314A (zh) | 一种应用于测试系统的代码重用方法 | |
Cunha et al. | PETTool: a pattern-based GUI testing tool | |
US9507680B2 (en) | Verification system and method for automated verification of register information for an electronic system | |
CN107329889B (zh) | 一种c编译器自动化测试的方法 | |
EP3693860B1 (en) | Generation of test models from behavior driven development scenarios based on behavior driven development step definitions and similarity analysis using neuro linguistic programming and machine learning mechanisms | |
Yang et al. | Specification-based test repair using a lightweight formal method | |
CN104915287A (zh) | 单元测试方法及系统 | |
CN106649094A (zh) | 一种基于EventViewer开发过程中的测试方法 | |
Davis et al. | Extreme modelling in practice | |
CN109814852B (zh) | 一种分区实时操作系统的分区配置方法 | |
CN116090380B (zh) | 数字集成电路验证的自动化方法及装置、存储介质和终端 | |
Makady et al. | Validating pragmatic reuse tasks by leveraging existing test suites | |
CN112783769A (zh) | 一种自定义的自动化软件测试方法 | |
Granda et al. | Costest: A tool for validation of requirements at model level | |
Rapos et al. | Simevo: A toolset for simulink test evolution & maintenance | |
CN109144849A (zh) | 一种嵌入式软件调测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |