CN115826938B - 实时操作系统的生成、使用方法及装置、电子设备、介质 - Google Patents
实时操作系统的生成、使用方法及装置、电子设备、介质 Download PDFInfo
- Publication number
- CN115826938B CN115826938B CN202210111217.4A CN202210111217A CN115826938B CN 115826938 B CN115826938 B CN 115826938B CN 202210111217 A CN202210111217 A CN 202210111217A CN 115826938 B CN115826938 B CN 115826938B
- Authority
- CN
- China
- Prior art keywords
- osal
- generating
- kernel
- operating system
- autosar
- 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
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000011161 development Methods 0.000 claims abstract description 65
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000004806 packaging method and process Methods 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 32
- 230000003068 static effect Effects 0.000 claims description 26
- 238000013461 design Methods 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 206010068065 Burning mouth syndrome Diseases 0.000 description 60
- 239000008186 active pharmaceutical agent Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 208000009766 Blau syndrome Diseases 0.000 description 9
- 230000004913 activation Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种实时操作系统的生成、使用方法及装置、电子设备、介质,生成方法包括:基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核,OSAL内核用于使得实时操作系统RTOS在AUTOSAR标准下运行;基于OSAL内核对RTOS相应的应用程序接口API进行封装;获取OSAL代码生成工具,OSAL代码生成工具用于将用户对OSAL内核中的配置以及对RTOS的调用过程生成与OSAL内核相一致的代码文件;基于OSAL内核、封装API后的RTOS以及OSAL代码生成工具,生成基于AUTOSAR的实时操作系统,既能够降低BMS项目的开发成本,又能够实现项目的快速开发。
Description
技术领域
本申请涉及电池管理技术领域,尤其涉及一种实时操作系统的生成方法、使用方法、生成装置、使用装置、电子设备以及计算机可读存储介质。
背景技术
MICROSAR OS作为一种抢先式实时多任务操作系统,已经广泛应用于汽车电子领域。而MICROSAR OS在开发汽车电子领域需要购买Davinci系列工具和Vector提供的静态代码包,导致开发成本非常高。并且,一旦Davinci系列工具和Vector提供的静态代码包更新不及时,还会严重影响电池管理系统(Battery Management System,BMS)等项目的开发进度。
发明内容
鉴于上述问题,本申请提供一种实时操作系统的生成方法、使用方法、生成装置、使用装置、电子设备以及计算机可读存储介质,既能够降低BMS项目的开发成本,又能够实现项目的快速开发。
第一方面,本申请实施例提供了实时操作系统的生成方法,所述生成方法包括:基于汽车开放系统架构(AUTomotive Open SystemArchitecture,AUTOSAR)标准生成操作系统抽象层(Operating System Abstraction Layer,OSAL)内核,所述OSAL内核用于使得实时操作系统(Real Time Operating System,RTOS)在AUTOSAR标准下运行;基于所述OSAL内核对所述RTOS相应的应用程序接口(Application Programming Interface,API)进行封装;获取OSAL代码生成工具,所述OSAL代码生成工具用于将用户对所述OSAL内核中的配置以及对所述RTOS的调用过程生成与所述OSAL内核相一致的代码文件;基于所述OSAL内核、封装API后的RTOS以及所述OSAL代码生成工具,生成基于AUTOSAR的实时操作系统。
此时得到的基于AUTOSAR的实时操作系统,能够按照AUTOSAR标准运行,即实现了MICROSAR OS中的全部或者部分功能。这样,无需再购买MICROSAR OS以及MICROSAR OS中的Davinci系列工具和Vector提供的静态代码包,也能够实现BMS项目的开发,节省了BMS项目的开发成本。并且,基于AUTOSAR的实时操作系统中由于配置了OSAL内核以及OSAL代码生成工具,进而在进行BMS项目开发时,也无需重新构建软件架构,也无需手动编写大量代码,从而实现BMS项目的快速开发。
在一些实施例中,所述基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核,包括:基于所述AUTOSAR标准生成包含汽车开放系统架构操作系统AUTOSAR OS中多个对象的所述OSAL内核。
通过AUTOSAR OS中的多个对象,基于AUTOSAR标准生成OSAL内核,能够减少基于AUTOSAR标准生成OSAL内核时的工作量,进而基于OSAL内核能够更加便捷以及全面的模拟MICROSAR OS中的各项功能。
在一些实施例中,所述基于所述AUTOSAR标准生成包含汽车开放系统架构操作系统AUTOSAR OS中多个对象的所述OSAL内核,包括:生成操作系统抽象层OSAL调度器,所述OSAL调度器用于管理内核参数初始化、内核启停、当前核获取、应用初始化、中断初始化、时钟初始化以及外部接口调用;基于所述AUTOSAR标准生成所述AUTOSAR OS中多个对象的数据结构;基于所述OSAL调度器和所述数据结构生成所述OSAL内核。
在生成OSAL内核的过程中,通过生成OSAL调度器,以实现多个对象的管理,以及生成AUTOSAR OS中多个对象的数据结构,进而结合OSAL调度器生成OSAL内核,能够使得OSAL内核通过OSAL调度器对其各项功能实现统一管理,强化了OSAL内核。
在一些实施例中,所述基于所述AUTOSAR标准生成所述AUTOSAR OS中多个对象的数据结构,包括:当所述多个对象中包括应用时,基于所述AUTOSAR标准生成应用堆栈、任务关联属性表、任务句柄表、时钟关联属性表、时钟句柄表、信号关联属性表、事件关联属性表、事件句柄表、ISRs嵌套标志、计算属性表、源属性表、应用的静态代码和配置化代码架构;当所述多个对象中包括时钟时,基于所述AUTOSAR标准生成标识、时钟名称、周期运行时间、超时时间、时钟实现接口。
根据AUTOSAR OS中不同对象的类型,配置不同的数据结构,能够使OSAL内核管理和配置RTOS中AUTOSAR OS的相关对象,从而确保RTOS能够基于AUTOSAR实现各项功能。
在一些实施例中,所述获取OSAL代码生成工具,包括:生成多种链接文件生成模板,不同的链接文件生成模板对应不同的编译器;基于所述链接文件生成模板,按照代码定义的静态变量与所述OSAL内核中的数据结构一致的规则,生成所述OSAL代码生成工具。
通过与不同编译器对应的链接文件生成模板生成OSAL代码生成工具,无论开发人员选择何种RTOS,通过OSAL代码生成工具都能够生成符合RTOS的代码,能够提高OSAL代码生成工具针对不同RTOS的可适用性。
第二方面,本申请实施例提供了实时操作系统的使用方法,所述使用方法应用于上述的生成方法生成的实时操作系统中,所述使用方法包括:从所述基于AUTOSAR的实时操作系统中下载所述OSAL内核,以及从开源网站中下载与车辆电池管理开发项目相匹配的目标实时操作系统;获取用户基于所述车辆电池管理开发项目在所述OSAL内核中的配置;基于所述配置在所述目标实时操作系统中的运行结果,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
将用户在OSAL内核中的配置在目标RTOS中运行,进而使用OSAL代码生成工具将运行结果转换为相应的代码文件,从而使得BMS项目能够基于该代码文件进行相应的开发。在进行BMS项目开发的过程中,无需再购买MICROSAR OS以及MICROSAR OS中的Davinci系列工具和Vector提供的静态代码包,降低了BMS项目的开发成本。并且,基于AUTOSAR的实时操作系统中由于配置了OSAL内核以及OSAL代码生成工具,进而在进行BMS项目开发时,也无需重新构建软件架构,也无需手动编写大量代码,从而实现BMS项目的快速开发。
在一些实施例中,所述基于所述配置在所述目标实时操作系统中的运行结果,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件,包括:针对不同的配置,根据所述OSAL代码生成工具生成的宏加载所述目标实时操作系统中与所述不同的配置对应的接口;在加载所述接口时,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
通过OSAL代码生成工具生成的宏确定当前用户的配置在RTOS中的接口,进而加载该接口运行用户的配置,再采用OSAL代码生成工具对运行结果进行处理,得到当前BMS项目所需的代码文件。由于RTOS中加载的接口是基于用户的配置进行的,因此,生成的代码文件能够满足BMS项目开发所需,进而确保BMS项目能够正常顺利的开发。
在一些实施例中,所述针对不同的配置,根据所述OSAL代码生成工具生成的宏加载所述目标实时操作系统中与所述不同的配置对应的接口,包括:当所述配置为时钟设置时,根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为FreeRTOS;若是,则加载所述FreeRTOS中的Clock_setTimeout、Clock_setPeriod、Clock_start,以及调用xTimerStart;当所述配置为应用设置时,根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为FreeRTOS;若是,则加载所述FreeRTOS中的vTaskStartScheduler,以及调用xSemaphoreCreateMutex、xSemaphoreCreateMutex、Semaphore_post;以及根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为SYSbios;若是,则加载所述SYSbios中的BIOS_start()。
针对Alarm配置和Application配置,根据OSAL代码生成工具生成的宏确定目标RTOS是否为FreeRTOS,进而在确定目标RTOS为FreeRTOS时,给出了具体调用的接口,避免接口调用错误,进而提高代码文件生成的准确性,进一步确保BMS项目能够正常顺利的开发。
第三方面,本申请实施例提供了一种实时操作系统的生成装置,所述生成装置包括:设计模块,用于基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核,所述OSAL内核用于使得实时操作系统RTOS在AUTOSAR标准下运行;封装模块,用于基于所述OSAL内核对所述RTOS相应的应用程序接口API进行封装;获取模块,用于获取OSAL代码生成工具,所述OSAL代码生成工具用于将用户对所述OSAL内核中的配置以及对所述RTOS的调用过程生成与所述OSAL内核相一致的代码文件;生成模块,用于基于所述OSAL内核、封装API后的RTOS以及所述OSAL代码生成工具,生成基于AUTOSAR的实时操作系统。
第四方面,本申请实施例提供了一种实时操作系统的使用装置,所述使用装置应用于上述的生成装置生成的实时操作系统中,所述使用装置包括:下载模块,用于从所述基于AUTOSAR的实时操作系统中下载所述OSAL内核,以及从开源网站中下载与车辆电池管理开发项目相匹配的目标实时操作系统;配置模块,用于获取用户基于所述车辆电池管理开发项目在所述OSAL内核中的配置;生成模块,用于基于所述配置在所述目标实时操作系统中的运行结果,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
第五方面,本申请实施例提供了一种电子设备,包括:处理器、存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行第一方面中的生成方法或者第二方面中的使用方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行第一方面中的生成方法或者第二方面中的使用方法。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读对下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在全部附图中,用相同的附图标号表示相同的部件。在附图中:
图1为本申请实施例中实时操作系统的生成方法的流程示意图;
图2为本申请实施例中基于AUTOSAR的实时操作系统的架构示意图;
图3为本申请实施例中实时操作系统的使用方法的流程示意图;
图4为本申请实施例中OSAL调度器的核心处理流程的示意图;
图5为本申请实施例中实时操作系统的生成装置的结构示意图;
图6为本申请实施例中实时操作系统的使用装置的结构示意图;
图7为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:存在A,同时存在A和B,存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。
在本申请实施例的描述中,技术术语“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请实施例的限制。
在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。
目前,为了实现BMS的快速开发,主要通过购买MICROSAR OS,进而通过MICROSAROS实现BMS的快速开发。MICROSAR OS是Vector公司开发的一种抢先式实时多任务操作系统,完全符合AUTOSAR标准,其主体思想是使得软件设计方更易于管理,软件系统更易于移植、裁剪,更好的维护和质量保证。MICROSAR OS当前已经广泛应用于汽车电子领域,其具有静态操作系统、完全抢占、事件触发、功能和大小可配置等诸多优点。
然而,MICROSAR OS在开发汽车电子领域需要购买Davinci系列工具和Vector提供的静态代码包。额外购买系统工具和代码包,都需要一定的费用,进而导致BMS开发成本非常高。并且,现有技术平台的微控制单元(Micro Control Unit,MCU)资源不断变更,以及Vector开发受限(例如:Vector尚未开发新一代芯片代码包和配置工具),这就导致在新的BMS项目中无法继续采用Vector提供的MICROSAR OS,进而严重影响MBS项目的开发。
而如果采用市面上开源或商用的RTOS开发BMS项目,需要大量手写代码,并且需要重新开发新的软件架构,这根本无法满足当前BMS项目快速开发的需求。
发明人经过研究发现,MICROSAR OS导致的BMS项目发开成本高。以及条件受限,无法满足BMS项目快速开发需求的根本原因在于:使用MICROSAR OS进行BMS项目开发时,需要使用Davinci系列工具和静态代码包。而Davinci系列工具和静态代码包的价格和更新不受BMS项目开发人员的控制。RTOS导致的无法满足BMS项目快速开发需求的根本原因在于:需要BMS项目开发人员重新构建软件架构,以及手写大量代码。
有鉴于此,基于发明人的研究发现,本申请实施例提供一种实时操作系统的生成方法、使用方法、生成装置、使用装置、电子设备以及计算机可读存储介质,在RTOS的基础上,基于AUTOSAR标准生成能够模拟AUTOSAR中各功能的OSAL内核,进而将OSAL内核配置于RTOS中,并结合相应的代码生成工具,能够自动生成相应的配置文件,进而模拟出类似于AUTOSAR的实时操作系统。由于避免了使用MICROSAR OS时需要购买Davinci系列工具和静态代码包,能够节省BMS项目的开发成本,并且在RTOS的结构中实现BMS项目的快速开发,也无需重新构建软件架构,以及手写大量代码,因此,采用本申请实施例提供的实时操作系统的生成方法、使用方法、生成装置、使用装置、电子设备以及计算机可读存储介质,能够在缩减BMS项目开发成本的同时,仍然能够实现BMS项目的快速开发。
首先,针对本申请实施例提供的实时操作系统的生成方法进行详细说明。
图1为本申请实施例中实时操作系统的生成方法的流程示意图,参见图1所示,该方法可以包括:
S1:基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核。
其中,OSAL内核用于使得实时操作系统RTOS在AUTOSAR标准下运行。
在进行BMS项目开发时,需要遵循AUTOSAR标准。若想在RTOS的基础上,无需重新构建软件架构,以及无需大量手写代码,还能够实现BMS项目的快速开发,可以通过在RTOS中配置一个OSAL内核,使得该OSAL内核能够在AUTOSAR标准下模拟MICROSAR OS中的全部或者部分功能。这样,采用加入OSAL内核后的RTOS无需重新搭建软件架构,也无需大量手写代码,就能够实现MICROSAR OS中的全部或者部分功能。
而基于AUTOSAR标准生成OSAL内核的具体方式,可以采用现有的任何一种生成OSAL内核的方式,只需要生成的OSAL内核能够使RTOS在AUTOSAR标准下运行即可。也就是说,配置有OSAL内核的RTOS能够模拟MICROSAR OS中的全部或者部分功能。对于OSAL内核的具体生成方式,此处不做限定。
S2:基于OSAL内核对RTOS相应的应用程序接口API进行封装。
由于需要将OSAL内核配置于RTOS中,使得RTOS通过OSAL内核能够模拟MICROSAROS中的全部或者部分功能,因此,需要将OSAL内核与在RTOS中相应的API处进行封装。
一般来说,在RTOS中会存在多个API。至于采用哪个API对OSAL内核进行封装,可以根据配置时的实际情况确定,此处不做具体限定。以及进行封装时所采用的具体封装方式,可以是现有的任何一种封装方式,此处也不做具体限定。
S3:获取OSAL代码生成工具。
其中,OSAL代码生成工具用于将用户对OSAL内核中的配置以及对RTOS的调用过程生成与OSAL内核相一致的代码文件。
在将OSAL内核配置于RTOS中后,若想要RTOS能够按照AUTOSAR标准正常运行,还需要用户对RTOS中与OSAL内核的相关内容进行配置。而用户的配置一般与OSAL内核所使用的代码有所差异,因此,还需要一个代码生成工具将用户的配置以及基于用户的配置在RTOS中产生的调用过程转换为与OSAL内核相一致的代码文件,这个代码生成工具就是OSAL代码生成工具。
在实际应用中,可以将现有的代码生成工具进行改进,使其能够将用户对OSAL内核中的配置以及对RTOS的调用过程生成与OSAL内核相一致的代码文件。也可以自定义生成一个OSAL代码生成工具。OSAL代码生成工具的生成过程与其它代码生成工具的过程类似,只需其最终的功能能够将用户对OSAL内核中的配置以及对RTOS的调用过程生成与OSAL内核相一致的代码文件即可,其中所采用的设计手段都是现有常用的代码生成工具的设计方式。对于OSAL代码生成工具的具体获取方式,此处不做限定。
S4:基于OSAL内核、封装API后的RTOS以及OSAL代码生成工具,生成基于AUTOSAR的实时操作系统。
在获得OSAL内核,并将OSAL内核在RTOS中的API进行封装,以及将OSAL代码生成工具载入到RTOS中之后,RTOS中就具有了OSAL内核和OSAL代码生成工具。此时的RTOS就能够按照AUTOSAR标准运行,即实现了MICROSAR OS中的全部或者部分功能。
由上述内容可知,本申请实施例提供的实时操作系统的生成方法,首先,基于AUTOSAR标准生成OSAL内核;然后,基于OSAL内核对RTOS相应的API进行封装;接着,获取OSAL代码生成工具;最后,基于OSAL内核、封装API后的RTOS以及OSAL代码生成工具,生成基于AUTOSAR的实时操作系统。此时得到的基于AUTOSAR的实时操作系统,能够按照AUTOSAR标准运行,即实现了MICROSAR OS中的全部或者部分功能。这样,无需再购买MICROSAR OS以及MICROSAR OS中的Davinci系列工具和Vector提供的静态代码包,也能够实现BMS项目的开发,节省了BMS项目的开发成本。并且,基于AUTOSAR的实时操作系统中由于配置了OSAL内核以及OSAL代码生成工具,进而在进行BMS项目开发时,也无需重新构建软件架构,也无需手动编写大量代码,从而实现BMS项目的快速开发。
进一步地,作为对图1所示方法中步骤S1的细化和扩展,在基于AUTOSAR标准生成OSAL内核的过程中,还可以参照AUTOSAR OS中的多个对象,进而能够更加便捷以及全面的生成用于模拟MICROSAR OS中各项功能的OSAL内核。
具体来说,上述步骤S1具体可以包括:
S11:基于AUTOSAR标准生成包含汽车开放系统架构操作系统AUTOSAR OS中多个对象的OSAL内核。
AUTOSAR OS中的每个对象都能够实现相应的功能,进而,参照AUTOSAR OS中的各个对象,生成基于AUTOSAR标准的OSAL内核,能够更加便捷以及全面的模拟MICROSAR OS中的各项功能。
具体来说,AUTOSAR OS中的对象至少可以包括:Core、Application、Task、Interrupt Service、Alarm、Counter、Resource、IOC等等。也就是说,在OSAL内核的设计中,以实现Core、Application、Task、Interrupt Service、Alarm、Counter、Resource、IOC为输出目标。
当然,如果AUTOSAR OS中还存在其它对象,在OSAL内核的设计中,还可以以实现其它对象为输出目标。对于AUTOSAR OS中对象的具体内容,此处不做限定。
由上述内容可知,通过AUTOSAR OS中的多个对象,基于AUTOSAR标准生成OSAL内核,能够减少基于AUTOSAR标准生成OSAL内核时的工作量,进而基于OSAL内核能够更加便捷以及全面的模拟MICROSAR OS中的各项功能。
进一步地,作为对上述步骤S11的细化和扩展,OSAL内核在运行的过程中,需要一个能够对其各项功能进行调度的总控制,这个总控制就可以是操作系统抽象层OSAL调度器。进而再结合AUTOSAR OS中多个对象的数据结构,就得到了能够基于AUTOSAR标准运行的OSAL内核。
具体来说,上述步骤S11具体可以包括:
S111:生成操作系统抽象层OSAL调度器。
其中,OSAL调度器用于管理内核参数初始化、内核启停、当前核获取、应用初始化、中断初始化、时钟初始化以及外部接口调用。
OSAL内核中设计的OSAL调度器,其实是用来管理OS内核(Core)参数初始化、内核(Core)启停、当前核(Core)获取、Application初始化、中断初始化,Alarm初始化等。同时,还能够管理OS服务,提供外部调用接口,可兼容AUTOSAR中的RTE模块。实际上,OSAL调度器与AUTOSAR OS中的Trap类似,但是处理过程又完全不同,其关键核心处理在于不同的RTOS类型判断,这将在后文实时操作系统的使用方法中进行详细阐述。
S112:基于AUTOSAR标准生成AUTOSAR OS中多个对象的数据结构。
在参照AUTOSAR OS中多个对象生成满足AUTOSAR标准的OSAL内核的过程中,并不是直接将AUTOSAR OS中的多个对象直接搬入OSAL内核,而是在OSAL内核中构建AUTOSAR OS中多个对象的数据结构,因此,需要基于AUTOSAR标准生成AUTOSAR OS中多个对象的数据结构。
S113:基于OSAL调度器和数据结构生成OSAL内核。
在获得了OSAL调度器以及AUTOSAR OS中多个对象的数据结构后,将OSAL调度器以及AUTOSAR OS中多个对象的数据结构进行结合,就得到了OSAL内核。进而在OSAL内核中,通过OSAL调度器,就能够实现符合AUTOSAR标准的各项功能。
由上述内容可知,在生成OSAL内核的过程中,通过生成OSAL调度器,以实现多个对象的管理,以及生成AUTOSAR OS中多个对象的数据结构,进而结合OSAL调度器生成OSAL内核,能够使得OSAL内核通过OSAL调度器对其各项功能实现统一管理,强化了OSAL内核。
进一步地,作为对上述步骤S112的细化和扩展,为了能够使OSAL内核管理和配置RTOS中AUTOSAR OS的相关对象,同时可以适配OSAL代码生成工具要求,按照AUTOSAR标准要求,需要对在OSAL内核中设计Application、Alarm、Interrupt、Counter、Task数据结构。
在生成AUTOSAR OS中多个对象的数据结构时,不同的对象类型,对应的数据结构也不同,因此,需要针对不同对象的具体类型,生成相应的数据结构。
具体来说,上述步骤S112具体可以包括:
S1121:当多个对象中包括应用时,基于AUTOSAR标准生成应用堆栈、任务关联属性表、任务句柄表、时钟关联属性表、时钟句柄表、信号关联属性表、事件关联属性表、事件句柄表、ISRs嵌套标志、计算属性表、源属性表、应用的静态代码和配置化代码架构。
也就是说,当对Application进行配置时,其Application的结构体中需要具备Application堆栈(创建Application时动态状态标识)、任务关联属性表、任务句柄表、Alarm关联属性表、Alarm句柄表、信号关联属性表、事件关联属性表、事件句柄表、ISRs嵌套标志、Counters属性表、Resources属性表等。
同时,还需要设计Application的静态代码和配置化代码架构。按照AUTOSAR标准,Application的静态代码负责AUTOSAR中相应资源初始化,根据Applications配置列表,完成权利所有任务列表、Alarm列表、事件列表、资源初始化。
这其中的设计关键在于能够通过读取代码生成工具的宏来判断不同类型的RTOS来实现AUTOSAR OS中RTE任务激活的功能。具体的实施方式将在后文实时操作系统的使用方法中进行详细阐述。
S1122:当多个对象中包括时钟时,基于AUTOSAR标准生成标识、时钟名称、周期运行时间、超时时间、时钟实现接口。
具体来说,当对Alarm进行配置时,其Alarm的结构体中需要具备ID、Alarm名称、周期运行时间、超时时间、Alarm实现接口。
也就是说,按照AUTOSAR标准要求,定义Alarm结构。这其中的设计关键在于能够通过读取代码生成工具的宏来判断不同类型的RTOS来实现AUTOSAR OS中RTE Alarm启停的功能。具体的实施方式将在后文实时操作系统的使用方法中进行详细阐述。
这里需要说明的是,上述步骤S1121、S1122并无执行上的先后顺序,而是配置数据结构时的两种情况。
由上述内容可知,根据AUTOSAR OS中不同对象的类型,配置不同的数据结构,能够使OSAL内核管理和配置RTOS中AUTOSAR OS的相关对象,从而确保RTOS能够基于AUTOSAR实现各项功能。
进一步地,作为对图1所示方法中步骤S3的细化和扩展,在自行生成OSAL代码生成工具时,可以基于不同的编译器生成OSAL代码生成工具,进而提高OSAL代码生成工具针对不同RTOS的可适用性。
具体来说,上述步骤S3具体可以包括:
S31:生成多种链接文件生成模板。
其中,不同的链接文件生成模板对应不同的编译器。
按照AUTOSAR标准,要求RTOS中的软件模块化和可配置性,因此,需要设计一套OSAL代码生成工具,其代码可以根据开发人员所选的RTOS去生成。与此同时,还需要生成与编译器关联的链接文件和构建文件,该文件用于工程开发构建所用。因此,要求OSAL代码生成工具设计中有一套其与不同编译器的链接文件生成模板。进而通过不同的链接文件生成模板连接不同的编译器,进而实现代码的编译。
S32:基于链接文件生成模板,按照代码定义的静态变量与OSAL内核中的数据结构一致的规则,生成OSAL代码生成工具。
在得到不同编译器对应的链接文件生成模板后,由于需要OSAL代码生成工具生成的代码定义的静态变量与OSAL内核中设计的结构保持一致,因此,基于链接文件生成模板,需要按照代码定义的静态变量与OSAL内核中的数据结构一致的规则,生成OSAL代码生成工具。
由上述内容可知,通过与不同编译器对应的链接文件生成模板生成OSAL代码生成工具,无论开发人员选择何种RTOS,通过OSAL代码生成工具都能够生成符合RTOS的代码,能够提高OSAL代码生成工具针对不同RTOS的可适用性。
在采用以上实时操作系统的生成方法后,就能够获得基于AUTOSAR的实时操作系统了。
图2为本申请实施例中基于AUTOSAR的实时操作系统的架构示意图,参见图2所示,在基于AUTOSAR的实时操作系统中,包括:OSAL和EOS。这里的EOS其实就是RTOS。
BMS APP/RTE为BMS项目,这不属于基于AUTOSAR的实时操作系统,但其与基于AUTOSAR的实时操作系统连接,以根据BMS项目的具体内容对基于AUTOSAR的实时操作系统中的各个模块进行选择和配置,从而基于选择和配置完成的基于AUTOSAR的实时操作系统进行BMS项目的快速开发。
在EOS中,包括有:Semaphore、Event、Queue、Task、Timer、IPC、Interupt、、Clock。这些都属于EOS中的现有模块。不同的EOS,其中的模块稍有不同,但大致都是相同的。用户选择了哪种EOS,此处就配置何种EOS。
在OSAL中,包括有:OSAL内核、OS代码生成工具、OS manager和系统服务。其中,OSAL能够兼容Autoosar运行时环境。OSAL内核包括有:APP管理、Alarm管理、OSAL调度器、Memony管理。用户能够通过APP管理和Alarm管理进行配置。通过OSAL调度器,能够实现Memony管理,控制EOS中的Clock,通过OS manager以及OS API与EOS进行信息Interface交互,从而实现系统服务。OSAL调度器在调度的过程中,OS代码生成工具还能够将其运行过程生成配置代码,从而实现基于AUTOSAR的实时操作系统的自动化配置。
得到了基于AUTOSAR的实时操作系统,接下来,就能够使用该实时操作系统在低开发成本下,实现BMS项目的快速开发了。
接下来,针对本申请实施例提供的实时操作系统的使用方法进行详细说明。该实时操作系统,就是采用前述实施例中实时操作系统的生成方法生成的基于AUTOSAR的实时操作系统。
图3为本申请实施例中实时操作系统的使用方法的流程示意图,参见图3所示,该方法可以包括:
S5:从基于AUTOSAR的实时操作系统中下载OSAL内核,以及从开源网站中下载与车辆电池管理开发项目相匹配的目标实时操作系统。
在基于AUTOSAR的实时操作系统中,存在有预先设计好的OSAL内核。该OSAL内核能够按照AUTOSAR标准进行仿真。因此,在使用基于AUTOSAR的实时操作系统进行BMS项目的快速开发时,需要先将OSAL内核下载下来。
不同的BMS开发项目,其所适用的RTOS不同,因此,需要根据当前开发的BMS项目,选择其需要的RTOS。一般来说,RTOS可以从开源网站中直接下载获得。
S6:获取用户基于车辆电池管理开发项目在OSAL内核中的配置。
在OSAL内核下载完成后,由于OSAL内核中包含有各种功能模块,以及具有各种功能模块的配置功能,用户可以通过OSAL内核进行相应的配置,使得基于AUTOSAR的实时操作系统能够符合当前BMS项目的开发需求。
用户在OSAL内核中配置完成后,就可以获取用户的配置,从而在目标RTOS中运行用户的配置,进而使用基于AUTOSAR的实时操作系统中的OSAL代码生成工具生成相应的代码文件,进而基于该代码文件实现BMS项目的快速开发。
S7:基于配置在目标实时操作系统中的运行结果,采用OSAL代码生成工具,生成车辆电池管理开发项目所需的代码文件。
在将用户在OSAL内核中的配置在目标RTOS中运行后,目标RTOS在运行过程完成后就会产生运行结果,进而通过基于AUTOSAR的实时操作系统中的OSAL代码生成工具将该运行结果转换为代码文件,该代码文件就是BMS项目实现快速开发所需要的内容。从而就可以基于该代码文件实现BMS项目的快速开发。
由上述内容可知,将用户在OSAL内核中的配置在目标RTOS中运行,进而使用OSAL代码生成工具将运行结果转换为相应的代码文件,从而使得BMS项目能够基于该代码文件进行相应的开发。在进行BMS项目开发的过程中,无需再购买MICROSAR OS以及MICROSAR OS中的Davinci系列工具和Vector提供的静态代码包,降低了BMS项目的开发成本。并且,基于AUTOSAR的实时操作系统中由于配置了OSAL内核以及OSAL代码生成工具,进而在进行BMS项目开发时,也无需重新构建软件架构,也无需手动编写大量代码,从而实现BMS项目的快速开发。
进一步地,作为对图3所示方法中步骤S7的细化和扩展,在生成相应的代码文件时,不同的配置,调用的接口不同,需要加载相应的接口生成代码文件,能够确保代码文件生成的准确性,进而确保BMS项目能够正常顺利的开发。
具体来说,上述步骤S7具体可以包括:
S71:针对不同的配置,根据OSAL代码生成工具生成的宏加载目标实时操作系统中与不同的配置对应的接口。
为了确定不同的配置对应的接口,可以根据OSAL代码生成工具生成的宏进行相应接口的加载。通过OSAL代码生成工具生成的宏,能够确定目标RTOS具体为何种类型,进而根据不同类型的RTOS加载相应的接口。
S72:在加载接口时,采用OSAL代码生成工具,生成车辆电池管理开发项目所需的代码文件。
在基于OSAL代码生成工具生成的宏确定当前配置对应的接口后,就可以继续加载该接口,进而在RTOS中运行该配置,再采用OSAL代码生成工具对运行结果进行处理,就能够得到当前BMS项目所需的代码文件。
由上述内容可知,通过OSAL代码生成工具生成的宏确定当前用户的配置在RTOS中的接口,进而加载该接口运行用户的配置,再采用OSAL代码生成工具对运行结果进行处理,得到当前BMS项目所需的代码文件。由于RTOS中加载的接口是基于用户的配置进行的,因此,生成的代码文件能够满足BMS项目开发所需,进而确保BMS项目能够正常顺利的开发。
进一步地,作为对上述步骤S71的细化和扩展,不同的配置,具体调用的接口也有所不同,下面分别从Alarm配置和Application配置这两大方面对其调用的具体接口进行说明。
具体来说,上述步骤S71具体可以包括:
S711:当配置为时钟Alarm设置时,根据OSAL代码生成工具生成的宏确定目标RTOS是否为FreeRTOS;若是,则加载FreeRTOS中的Clock_setTimeout、Clock_setPeriod、Clock_start,以及调用xTimerStart。
通过调用Clock_setTimeout、Clock_setPeriod、Clock_start,能够实现Alarm的功能。而如果要实现AUTOSAR OS中的SetRelAlarm功能,那么就需要OSAL调度器对应接口调用FreeRTOS的xTimerStart接口API。
S712:当配置为应用Application设置时,根据OSAL代码生成工具生成的宏确定目标RTOS是否为FreeRTOS;若是,则加载FreeRTOS中的vTaskStartScheduler,以及调用xSemaphoreCreateMutex、xSemaphoreCreateMutex、Semaphore_post;以及根据OSAL代码生成工具生成的宏确定目标RTOS是否为SYSbios;若是,则加载SYSbios中的BIOS_start()。
OSAL调度器还具备AUTOSAR OS中Core模块的大部分功能。例如:AUTOSAR OS中Core模块的Os_Api_StartOS。OSAL调度器通过调用内部的Application模块,该模块首先也是判断当前宏是否是FreeRTOS,如果是则调用FreeRTOS的API接口vTaskStartScheduler来启动OS。如果是TI的SYSbios,则调用SYSbios的API接口BIOS_start()来启动OS。最后,OSAL调度器还能够实现AUTOSAR中RTE模块调用的相关接口。例如:任务激活(ActivateTask)、告警器设置(SetRelAlarm)等。
至此,再针对OSAL调度器的核心处理流程进行说明。
图4为本申请实施例中OSAL调度器的核心处理流程的示意图,参见图4所示,该流程可以包括:
首先,通过ECUM模块控制OSAL内核中OS启停和OS内核初始,以及通过RTE模块控制OSAL内核中OS任务激活和ALARM设置。
然后,在OSAL内核中,判断是否满足支持的RTOS类型。若RTOS的类型支持,则OSAL加载对应的RTOS相关API接口。若RTOS的类型不支持,则结束流程。
接着,调用RTOS接口进行处理,即运行用户的配置,进而生成相应的代码文件。
最后,结束整个流程。
如果当前通过代码生成工具配置的RTOS是FreeRTOS时,需要调用xSemaphoreCreateMutex创建任务激活的信号标志,调用xSemaphoreCreateMutex接口来实现运行时环境RTE的启动中任务激活接口(ActivateTask),调用FreeRTOS的Semaphore_post信号量接口来实现。
而在RTE启动前由于OS已进行了初始化,调用了FreeRTOS中的启动调度,即任务都在运行中,显然不符合AUTOSAR规范。因此,需要引入FreeRTOS的信号量,让任务在RTE启动前都为挂起状态,再根据RTE的配置要求,通过提交信号量来激活任务。
由上述内容可知,针对Alarm配置和Application配置,根据OSAL代码生成工具生成的宏确定目标RTOS是否为FreeRTOS,进而在确定目标RTOS为FreeRTOS时,给出了具体调用的接口,避免接口调用错误,进而提高代码文件生成的准确性,进一步确保BMS项目能够正常顺利的开发。
基于同一发明构思,作为对上述生成方法的实现,本申请实施例还提供了一种实时操作系统的生成装置。图5为本申请实施例中实时操作系统的生成装置的结构示意图,参见图5所示,该装置可以包括:
设计模块51,用于基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核,所述OSAL内核用于使得实时操作系统RTOS在AUTOSAR标准下运行;
封装模块52,用于基于所述OSAL内核对所述RTOS相应的应用程序接口API进行封装;
获取模块53,用于获取OSAL代码生成工具,所述OSAL代码生成工具用于将用户对所述OSAL内核中的配置以及对所述RTOS的调用过程生成与所述OSAL内核相一致的代码文件;
生成模块54,用于基于所述OSAL内核、封装API后的RTOS以及所述OSAL代码生成工具,生成基于AUTOSAR的实时操作系统。
进一步地,所述设计模块,具体用于基于所述AUTOSAR标准生成包含汽车开放系统架构操作系统AUTOSAR OS中多个对象的所述OSAL内核。
进一步地,所述设计模块,具体用于生成操作系统抽象层OSAL调度器,所述OSAL调度器用于管理内核参数初始化、内核启停、当前核获取、应用初始化、中断初始化、时钟初始化以及外部接口调用;基于所述AUTOSAR标准生成所述AUTOSAR OS中多个对象的数据结构;基于所述OSAL调度器和所述数据结构生成所述OSAL内核。
进一步地,所述设计模块,具体用于当所述多个对象中包括应用时,基于所述AUTOSAR标准生成应用堆栈、任务关联属性表、任务句柄表、时钟关联属性表、时钟句柄表、信号关联属性表、事件关联属性表、事件句柄表、ISRs嵌套标志、计算属性表、源属性表、应用的静态代码和配置化代码架构;当所述多个对象中包括时钟时,基于所述AUTOSAR标准生成标识、时钟名称、周期运行时间、超时时间、时钟实现接口。
进一步地,所述获取模块,具体用于生成多种链接文件生成模板,不同的链接文件生成模板对应不同的编译器;基于所述链接文件生成模板,按照代码定义的静态变量与所述OSAL内核中的数据结构一致的规则,生成所述OSAL代码生成工具。
这里需要指出的是,以上生成装置实施例的描述,与上述生成方法实施例的描述是类似的,具有同生成方法实施例相似的有益效果。对于本申请生成装置实施例中未披露的技术细节,请参照本申请生成方法实施例的描述而理解。
基于同一发明构思,作为对上述使用方法的实现,本申请实施例还提供了一种实时操作系统的使用装置。该使用装置应用于采用上述生成装置生成的实时操作系统中。图6为本申请实施例中实时操作系统的使用装置的结构示意图,参见图6所示,该装置可以包括:
下载模块61,用于从所述基于AUTOSAR的实时操作系统中下载所述OSAL内核,以及从开源网站中下载与车辆电池管理开发项目相匹配的目标实时操作系统;
配置模块62,用于获取用户基于所述车辆电池管理开发项目在所述OSAL内核中的配置;
生成模块63,用于基于所述配置在所述目标实时操作系统中的运行结果,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
进一步地,所述生成模块,具体用于针对不同的配置,根据所述OSAL代码生成工具生成的宏加载所述目标实时操作系统中与所述不同的配置对应的接口;在加载所述接口时,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
进一步地,所述生成模块,具体用于当所述配置为时钟设置时,根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为FreeRTOS;若是,则加载所述FreeRTOS中的Clock_setTimeout、Clock_setPeriod、Clock_start,以及调用xTimerStart;当所述配置为应用设置时,根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为FreeRTOS;若是,则加载所述FreeRTOS中的vTaskStartScheduler,以及调用xSemaphoreCreateMutex、xSemaphoreCreateMutex、Semaphore_post;以及根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为SYSbios;若是,则加载所述SYSbios中的BIOS_start()。
这里需要指出的是,以上使用装置实施例的描述,与上述使用方法实施例的描述是类似的,具有同使用方法实施例相似的有益效果。对于本申请使用装置实施例中未披露的技术细节,请参照本申请使用方法实施例的描述而理解。
基于同一发明构思,作为对上述生成方法以及使用方法的实现,本申请实施例还提供了一种电子设备。图7为本申请实施例中电子设备的结构示意图,参见图7所示,该电子设备可以包括:处理器71、存储器72、总线73;其中,处理器71、存储器72通过总线73完成相互间的通信;处理器71用于调用存储器72中的程序指令,以执行上述一个或多个实施例中的生成方法或使用方法。
这里需要指出的是,以上电子设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请电子设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
基于同一发明构思,作为对上述生成方法以及使用方法的实现,本申请实施例还提供了一种计算机可读存储介质,该存储介质可以包括:存储的程序;其中,在程序运行时控制存储介质所在设备执行上述一个或多个实施例中的生成方法或使用方法。
这里需要指出的是,以上存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
最后,再次对本申请实施例中基于AUTOSAR仿真的实时操作系统设计的过程进行说明。
通过设计AUTOSAR仿真的内核(OSAL)使得主流的实时操作系统都得快速的以AUTOSAR的标准去开发车载应用软件。以及使开发的软件有完整的内核标准和统一的程序接口,软件的复用性得到了很大提高。
基于AUTOSAR仿真的实时操作系统的设计,按AUTOSAR OS标准要求,通过设计OSAL内核(对RTOS进行封装调用)及OS代码生成工具,使当前流行的实时操作系统(RTOS)达到AUTOSAR OS要求。
OSAL内核设计以实现AUTOSAR OS中相关对象(Core、Application、Task、Interrupt Service、Alarm、Counter、Resource、IOC)为输出目标,以RTOS提供的模块API接口为输入对象(如TI公司的SYSbios,相关接口有Semaphores、MailBoxs、Queues、Clock,HWI/SWI等),OSAL内核对RTOS相应的API接口进行封装设计,同时设计后的OSAL内核可兼容AUTOSAR运行时环境,并可结合通过设计的OS代码生成工具生成的配置代码,使得RTOS在功能上与AUTOSAR OS完全保持一致。
OS代码生成工具可以根据芯片需要,选择需要的RTOS(如FreeRTOS),然后对选择的RTOS实现AUTOSAR OS对象Core、Application、Task、Interrupt Service、Alarm、Counter、Resource、IOC的相关配置来生成与OSAL内核匹配的配置代码、工程构建配置文件及链接文件。
详细设计如下:
按AUTOSAR标准,传统的RTOS要实现AUTOSAR OS,OSAL内核设计需要做到如下步骤:
1、OSAL内核需要设计一个OSAL调度器,用来管理OS内核(Core)参数初始化,内核(Core)启停、当前核(Core)获取、Application初始化、中断初始化,Alarm初始化等。同时能管理OS服务,提供外部调用接口,可兼容AUTOSAR中RTE模块。OSAL调度器与AUTOSAR OS中的Trap类似,但是处理过程完全不同,其关键核心处理在于不同的RTOS类型判断,如对Alarm的设置,在OSAL内核中首先要通过OS代码工具生成的宏来确定当前RTOS是否是FreeRTOS,如果是则OSAL内核会加载FreeRTOS相关的Clock_setTimeout、Clock_setPeriod、Clock_start来实现对Alarm的功能实现。同时OSAL调度器又具备AUTOSAR OS中Core模块的大部分功能。如AUTOSAR OS中Core模块的Os_Api_StartOS,OSAL调度器通过调用内部的Application模块,该模块首先也是判断当前宏是否是FreeRTOS,如果是则调用FreeRTOS的API接口vTaskStartScheduler来启动OS。如果是TI的SYSbios,则调用SYSbios的API接口BIOS_start()来启动OS。最好OSAL调度器实现了AUTOSAR中RTE模块调用的相关接口,如任务激活(ActivateTask)、告警器设置(SetRelAlarm)等。
2、为了能使OSAL内核管理和配置RTOS中AUTOSAR OS相关对象,同时可以适配OSAL代码生成工具要求,按照AUTOSAR标准要求,需要对在OSAL内核中设计Application、Alarm、Interrupt、Counter、Task数据结构。
a)如对Application配置化要求,其Application的结构体中需要具备Application堆栈(创建Application时动态状态标识)、任务关联属性表、任务句柄表、Alarm关联属性表、Alarm句柄表、信号关联属性表、事件关联属性表、事件句柄表、ISRs嵌套标志、Counters属性表、Resources属性表等,同时需要设计Application的静态代码和配置化代码架构。按AUTOSAR标准,Application的静态代码负责AUTOSAR中相应资源初始化,根据Applications配置列表,完成权利所有任务列表、Alarm列表、事件列表、资源初始化。其设计关键在于能通过读取代码生成工具的宏来判断不同类型的RTOS来实现AUTOSAR OS中RTE任务激活的功能,如当前通过代码生成工具配置的RTOS是FreeRTOS时,需要调用xSemaphoreCreateMutex创建任务激活的信号标志,调用xSemaphoreCreateMutex接口来实现运行时环境RTE的启动中任务激活接口(ActivateTask),需要调用FreeRTOS的Semaphore_post信号量接口来实现,在RTE启动前由于OS已进行了初始化,调用了FreeRTOS中的启动调度,即任务都在运行中,显然不符合AUTOSAR规范,因此需要引入FreeRTOS的信号量,让任务在RTE启动前都为挂起状态,再根据RTE的配置要求,通过提交信号量来激活任务。
b)如对Alarm配置化要求,其Alarm的结构体中需要具备ID、Alarm名称、周期运行时间、超时时间、Alarm实现接口,按照AUTOSAR标准要求,定义Alarm结构。按AUTOSAR标准,其设计关键在于能通过读取代码生成工具的宏来判断不同类型的RTOS来实现AUTOSAR OS中RTE Alarm启停的功能,如当前通过代码生成工具配置的RTOS是FreeRTOS时,要实现AUTOSAR OS中的SetRelAlarm功能,需要OSAL调度器对应接口调用FreeRTOS的xTimerStart接口API。
3、按AUTOSAR标准,要求软件模块化和可配置性,通过设计一套OSAL代码生成工具,其代码可以根据开发人员所选的RTOS去生成,同时生成与编译器关联的链接文件和构建文件,该文件用于工程开发构建所用。因此要求OSAL代码生成工具设计中有一套其于不同编译器的链接文件生成模板。另外OSAL代码生成工具生成的代码定义的静态变量与OSAL内核中设计的结构保持一致。
最后应说明的是,以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
Claims (12)
1.一种实时操作系统的生成方法,其特征在于,所述生成方法包括:
基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核,所述OSAL内核用于在AUTOSAR标准下,模拟抢先式实时多任务操作系统MICROSAR OS的功能,使得实时操作系统RTOS在AUTOSAR标准下运行;
基于所述OSAL内核对所述RTOS相应的应用程序接口API进行封装;
获取OSAL代码生成工具,所述OSAL代码生成工具用于将用户对所述OSAL内核中的配置以及对所述RTOS的调用过程生成与所述OSAL内核相一致的代码文件;
基于所述OSAL内核、封装API后的RTOS以及所述OSAL代码生成工具,生成基于AUTOSAR的实时操作系统。
2.根据权利要求1所述的生成方法,其特征在于,所述基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核,包括:
基于所述AUTOSAR标准生成包含汽车开放系统架构操作系统AUTOSAR OS中多个对象的所述OSAL内核。
3.根据权利要求2所述的生成方法,其特征在于,所述基于所述AUTOSAR标准生成包含汽车开放系统架构操作系统AUTOSAR OS中多个对象的所述OSAL内核,包括:
生成操作系统抽象层OSAL调度器,所述OSAL调度器用于管理内核参数初始化、内核启停、当前核获取、应用初始化、中断初始化、时钟初始化以及外部接口调用;
基于所述AUTOSAR标准生成所述AUTOSAR OS中多个对象的数据结构;
基于所述OSAL调度器和所述数据结构生成所述OSAL内核。
4.根据权利要求3所述的生成方法,其特征在于,所述基于所述AUTOSAR标准生成所述AUTOSAR OS中多个对象的数据结构,包括:
当所述多个对象中包括应用时,基于所述AUTOSAR标准生成应用堆栈、任务关联属性表、任务句柄表、时钟关联属性表、时钟句柄表、信号关联属性表、事件关联属性表、事件句柄表、ISRs嵌套标志、计算属性表、源属性表、应用的静态代码和配置化代码架构;
当所述多个对象中包括时钟时,基于所述AUTOSAR标准生成标识、时钟名称、周期运行时间、超时时间、时钟实现接口。
5.根据权利要求1所述的生成方法,其特征在于,所述获取OSAL代码生成工具,包括:
生成多种链接文件生成模板,不同的链接文件生成模板对应不同的编译器;
基于所述链接文件生成模板,按照代码定义的静态变量与所述OSAL内核中的数据结构一致的规则,生成所述OSAL代码生成工具。
6.一种实时操作系统的使用方法,其特征在于,所述使用方法应用于采用权利要求1至5中任一项所述的生成方法生成的实时操作系统中,所述使用方法包括:
从所述基于AUTOSAR的实时操作系统中下载所述OSAL内核,以及从开源网站中下载与车辆电池管理开发项目相匹配的目标实时操作系统;
获取用户基于所述车辆电池管理开发项目在所述OSAL内核中的配置;
基于所述配置在所述目标实时操作系统中的运行结果,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
7.根据权利要求6所述的使用方法,其特征在于,所述基于所述配置在所述目标实时操作系统中的运行结果,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件,包括:
针对不同的配置,根据所述OSAL代码生成工具生成的宏加载所述目标实时操作系统中与所述不同的配置对应的接口;
在加载所述接口时,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
8.根据权利要求7所述的使用方法,其特征在于,所述针对不同的配置,根据所述OSAL代码生成工具生成的宏加载所述目标实时操作系统中与所述不同的配置对应的接口,包括:
当所述配置为时钟设置时,根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为FreeRTOS;若是,则加载所述FreeRTOS中的Clock_setTimeout、Clock_setPeriod、Clock_start,以及调用xTimerStart;
当所述配置为应用设置时,根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为FreeRTOS;若是,则加载所述FreeRTOS中的vTaskStartScheduler,以及调用xSemaphoreCreateMutex、xSemaphoreCreateMutex、Semaphore_post;以及根据所述OSAL代码生成工具生成的宏确定所述目标实时操作系统是否为SYSbios;若是,则加载所述SYSbios中的BIOS_start()。
9.一种实时操作系统的生成装置,其特征在于,所述生成装置包括:
设计模块,用于基于汽车开放系统架构AUTOSAR标准生成操作系统抽象层OSAL内核,所述OSAL内核用于模拟抢先式实时多任务操作系统MICROSAR OS的功能,使得实时操作系统RTOS在AUTOSAR标准下运行;
封装模块,用于基于所述OSAL内核对所述RTOS相应的应用程序接口API进行封装;
获取模块,用于获取OSAL代码生成工具,所述OSAL代码生成工具用于将用户对所述OSAL内核中的配置以及对所述RTOS的调用过程生成与所述OSAL内核相一致的代码文件;
生成模块,用于基于所述OSAL内核、封装API后的RTOS以及所述OSAL代码生成工具,生成基于AUTOSAR的实时操作系统。
10.一种实时操作系统的使用装置,其特征在于,所述使用装置应用于采用权利要求9所述的生成装置生成的实时操作系统中,所述使用装置包括:
下载模块,用于从所述基于AUTOSAR的实时操作系统中下载所述OSAL内核,以及从开源网站中下载与车辆电池管理开发项目相匹配的目标实时操作系统;
配置模块,用于获取用户基于所述车辆电池管理开发项目在所述OSAL内核中的配置;
生成模块,用于基于所述配置在所述目标实时操作系统中的运行结果,采用所述OSAL代码生成工具,生成所述车辆电池管理开发项目所需的代码文件。
11.一种电子设备,其特征在于,包括:处理器、存储器、总线;
其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至5中任一项所述的生成方法或者权利要求6至8中任一项所述的使用方法。
12.一种计算机可读存储介质,其特征在于,包括:存储的程序;
其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1至5中任一项所述的生成方法或者权利要求6至8中任一项所述的使用方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210111217.4A CN115826938B (zh) | 2022-01-29 | 2022-01-29 | 实时操作系统的生成、使用方法及装置、电子设备、介质 |
PCT/CN2023/071367 WO2023143020A1 (zh) | 2022-01-29 | 2023-01-09 | 实时操作系统的生成、使用方法及装置、电子设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210111217.4A CN115826938B (zh) | 2022-01-29 | 2022-01-29 | 实时操作系统的生成、使用方法及装置、电子设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115826938A CN115826938A (zh) | 2023-03-21 |
CN115826938B true CN115826938B (zh) | 2023-11-17 |
Family
ID=85522409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210111217.4A Active CN115826938B (zh) | 2022-01-29 | 2022-01-29 | 实时操作系统的生成、使用方法及装置、电子设备、介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115826938B (zh) |
WO (1) | WO2023143020A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688017B (zh) * | 2023-11-15 | 2024-07-05 | 北京西能电子科技发展有限公司 | 一种适配autosar标准的保护区地址自动更新方法及装置 |
CN117555553B (zh) * | 2023-12-18 | 2024-05-28 | 上海烜翊科技有限公司 | 一种基于autosar建模的通用软件协议接口生成方法及系统 |
CN118113637A (zh) * | 2024-03-01 | 2024-05-31 | 镁佳(武汉)科技有限公司 | 信息处理方法、装置、计算机设备及存储介质 |
CN117931483B (zh) * | 2024-03-21 | 2024-07-23 | 宁德时代新能源科技股份有限公司 | 操作系统及生成方法、电子设备、存储介质和程序产品 |
CN118642754A (zh) * | 2024-08-14 | 2024-09-13 | 曜石机器人(上海)有限公司 | 一种机器人操作系统及跨平台开发架构、开发方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080065814A (ko) * | 2007-01-10 | 2008-07-15 | 재단법인서울대학교산학협력재단 | 실시간 운영체제 기반 임베디드 소프트웨어 자동생성장치및 그 방법 |
CN101946234A (zh) * | 2007-12-21 | 2011-01-12 | 开放协同有限公司 | 机动车辆控制装置 |
CN102385530A (zh) * | 2011-08-11 | 2012-03-21 | 浙江大学 | 一种应用于rte代码生成的os资源分配冲突解决方法 |
CN102622470A (zh) * | 2012-02-21 | 2012-08-01 | 重庆邮电大学 | 一种通用汽车代码转换方法 |
CN105912334A (zh) * | 2016-04-08 | 2016-08-31 | 浙江大学 | 一种autosar软件组件的内部行为对象代码生成方法 |
CN106325970A (zh) * | 2016-10-17 | 2017-01-11 | 宁德时代新能源科技股份有限公司 | 编译方法和编译系统 |
WO2017109386A1 (fr) * | 2015-12-21 | 2017-06-29 | Valeo Equipements Electriques Moteur | Procede hors ligne d'allocation d'un logiciel embarque temps reel sur une architecture multicontrôleur multicoeur, et son utilisation pour des applications embarquees dans un vehicule automobile |
CN109491806A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种内核与第三方应用之间的适配方法与装置 |
CN109895656A (zh) * | 2019-01-22 | 2019-06-18 | 合肥中科昂辉科技有限公司 | 一种基于autosar的车载管理系统 |
CN109976737A (zh) * | 2019-03-27 | 2019-07-05 | 北京经纬恒润科技有限公司 | 一种rte代码的生成方法及装置 |
CN111752550A (zh) * | 2020-06-28 | 2020-10-09 | 吉林大学 | 嵌入式实时Linux与AUTOSAR OS的跨平台开发实现系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681898B (zh) * | 2012-03-13 | 2014-07-09 | 浙江大学 | 提高autosar os mcal驱动代码可移植性的方法 |
KR102217255B1 (ko) * | 2015-10-12 | 2021-02-17 | 현대자동차주식회사 | 네트워크에서 통신 노드의 동작 방법 |
CN112622574A (zh) * | 2019-10-08 | 2021-04-09 | 佛吉亚(中国)投资有限公司 | 汽车空调出风口电机的驱动系统和驱动方法 |
-
2022
- 2022-01-29 CN CN202210111217.4A patent/CN115826938B/zh active Active
-
2023
- 2023-01-09 WO PCT/CN2023/071367 patent/WO2023143020A1/zh unknown
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080065814A (ko) * | 2007-01-10 | 2008-07-15 | 재단법인서울대학교산학협력재단 | 실시간 운영체제 기반 임베디드 소프트웨어 자동생성장치및 그 방법 |
CN101946234A (zh) * | 2007-12-21 | 2011-01-12 | 开放协同有限公司 | 机动车辆控制装置 |
CN102385530A (zh) * | 2011-08-11 | 2012-03-21 | 浙江大学 | 一种应用于rte代码生成的os资源分配冲突解决方法 |
CN102622470A (zh) * | 2012-02-21 | 2012-08-01 | 重庆邮电大学 | 一种通用汽车代码转换方法 |
WO2017109386A1 (fr) * | 2015-12-21 | 2017-06-29 | Valeo Equipements Electriques Moteur | Procede hors ligne d'allocation d'un logiciel embarque temps reel sur une architecture multicontrôleur multicoeur, et son utilisation pour des applications embarquees dans un vehicule automobile |
CN105912334A (zh) * | 2016-04-08 | 2016-08-31 | 浙江大学 | 一种autosar软件组件的内部行为对象代码生成方法 |
CN106325970A (zh) * | 2016-10-17 | 2017-01-11 | 宁德时代新能源科技股份有限公司 | 编译方法和编译系统 |
CN109491806A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种内核与第三方应用之间的适配方法与装置 |
CN109895656A (zh) * | 2019-01-22 | 2019-06-18 | 合肥中科昂辉科技有限公司 | 一种基于autosar的车载管理系统 |
CN109976737A (zh) * | 2019-03-27 | 2019-07-05 | 北京经纬恒润科技有限公司 | 一种rte代码的生成方法及装置 |
CN111752550A (zh) * | 2020-06-28 | 2020-10-09 | 吉林大学 | 嵌入式实时Linux与AUTOSAR OS的跨平台开发实现系统 |
Non-Patent Citations (1)
Title |
---|
卫军 ; 吴长水.基于AUTOSAR操作系统的任务搭建及验证.《农业装备与车辆工程》.2021,第140-143页. * |
Also Published As
Publication number | Publication date |
---|---|
WO2023143020A1 (zh) | 2023-08-03 |
CN115826938A (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115826938B (zh) | 实时操作系统的生成、使用方法及装置、电子设备、介质 | |
Hahm et al. | Operating systems for low-end devices in the internet of things: a survey | |
Massa | Embedded software development with eCos | |
US8516508B1 (en) | Automated application programming interface (API) generation | |
Anssi et al. | Enabling scheduling analysis for AUTOSAR systems | |
CN103309792B (zh) | 一种日志信息的控制方法及系统 | |
CN110471647B (zh) | 基于微内核架构的嵌入式分区操作系统及其设计方法 | |
CN109358839B (zh) | 一种嵌入式单片机软件开发的方法及存储介质 | |
JP5270330B2 (ja) | マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置 | |
CN111507676A (zh) | 业务订单流程创建和实现方法、装置、存储介质和系统 | |
CN111880863B (zh) | 应用程序的运行方法、装置、电子设备及存储介质 | |
CN109710320A (zh) | 一种两级驱动的启动引导BootLoader方法 | |
CN115373720A (zh) | 一种多个c2000 dsp启动及在线升级方法及装置 | |
CN115390809A (zh) | 一种仿真调度方法及系统 | |
US20070300054A1 (en) | Universal BSP tool for porting on embedded systems and an application thereof | |
CN114691234A (zh) | 基于autosar的程序配置方法、系统、设备及介质 | |
CN114647451A (zh) | 测试设备驱动器及驱动方法 | |
CN109901999B (zh) | 基于uvm的可编程逻辑的仿真方法和系统 | |
CN115809128A (zh) | 应用于汽车ecu的多核任务调度方法及系统 | |
US11520597B2 (en) | Operating system architecture for microkernel generations support | |
CN110688099B (zh) | 远距离无线电集成可编程片上系统的微处理器开发方法 | |
Delic et al. | Validation of a SIL3 middleware for safety-related system-on-chips | |
US8135943B1 (en) | Method, apparatus, and computer-readable medium for generating a dispatching function | |
Yin et al. | Embedded Software System Testing: Automatic Testing Solution Based on Formal Method | |
US7434201B2 (en) | Method and apparatus providing for extendable interaction between firmware and operating systems on digital devices |
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 |