CN116225527A - 嵌入式系统 - Google Patents

嵌入式系统 Download PDF

Info

Publication number
CN116225527A
CN116225527A CN202211543375.3A CN202211543375A CN116225527A CN 116225527 A CN116225527 A CN 116225527A CN 202211543375 A CN202211543375 A CN 202211543375A CN 116225527 A CN116225527 A CN 116225527A
Authority
CN
China
Prior art keywords
layer
hardware
interface
operating system
register
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.)
Pending
Application number
CN202211543375.3A
Other languages
English (en)
Inventor
张伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudminds Shanghai Robotics Co Ltd
Original Assignee
Cloudminds Shanghai Robotics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cloudminds Shanghai Robotics Co Ltd filed Critical Cloudminds Shanghai Robotics Co Ltd
Priority to CN202211543375.3A priority Critical patent/CN116225527A/zh
Publication of CN116225527A publication Critical patent/CN116225527A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种嵌入式系统,该嵌入式系统包括:硬件层、操作系统层、通用操作系统接口以及适配层。操作系统层借助通用操作系统接口获取待写入文件。然后,调用适配层以确定硬件层对应的目标接口,并通过调用此目标接口,将待写入文件写入硬件层中的存储单元。上述系统中,借助通用操作系统接口对操作系统层的兼容能力,使得嵌入式系统实现多种操作系统层中部署的不同实时内核的兼容。再借助适配层提供的硬件层与操作系统层之间的传输适配功能使嵌入式系统兼容不同硬件层中部署的多种微控制器。因此,同时使用通用操作系统接口以及适配层能够实现多种实时内核和多种微控制器之间的适配,从而提升嵌入式操作系统移植的效率。

Description

嵌入式系统
技术领域
本发明涉及嵌入式系统领域,尤其涉及一种嵌入式系统。
背景技术
随着通信技术的发展,出现了各种不同的操作系统和不同的微控制器,其中,操作系统具体可以是实时内核。则由不同操作系统和不同微控制器进行组合可以形成不同的嵌入式系统,使得不同的嵌入式系统对数据处理具有不同运行效率和处理实时性。
嵌入式系统往往对不同的操作系统以及微控制器并不兼容,即当不同操作系统或者微控制器移植到嵌入式系统中时,往往需要与嵌入式系统进行适配,从而导致移植效率低下。
发明内容
有鉴于此,本发明实施例提供一种嵌入式系统,用以兼容多种实时内核和多种微控制器,提升操作系统移植的效率。
本发明实施例提供一种嵌入式系统,包括:硬件层、操作系统层、通用操作系统接口以及适配层;
所述操作系统层,用于借助所述通用操作系统接口获取待写入文件;
调用所述适配层,以确定所述硬件层对应的目标接口,所述目标接口为对所述硬件层中的存储单元的封装结果;
通过调用所述目标接口,将所述待写入文件写入所述硬件层中的存储单元。
本发明实施例提供的嵌入式系统,包括:硬件层、操作系统层、通用操作系统接口以及适配层。首先,操作系统层借助通用操作系统接口获取待写入文件。然后,操作系统层调用适配层以得到硬件层对应的目标接口。其中,目标接口为对硬件层中的存储单元的封装结果。最终,操作系统再通过调用目标接口,将待写入文件写入硬件层中的存储单元。
可见,由于通用操作系统接口能够提供一个统一的标准以支持多种操作系统,因此,嵌入式系统利用此通用操作系统接口能够实现多种操作系统层中部署的实时内核的兼容。同时,可以通过适配层提供的硬件层与操作系统层之间的传输适配功能以实现多种硬件层中多种微控制器的兼容。当嵌入式系统需要部署新的实时内核时,可以不对嵌入式系统中的其他部分进行修改,直接替换实时内核。因此,也即是实现多种实时内核和多种微控制器之间的适配,从而提升嵌入式系统移植的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种嵌入式系统的结构示意图;
图2为本发明实施例提供的另一种嵌入式系统的结构示意图;
图3为本发明实施例提供的一种硬件抽象层的结构示意图;
图4为本发明实施例提供的一种硬件特征描述文件的层级结构示意图;
图5为本发明实施例提供的又一种嵌入式系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
下面结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种嵌入式系统的结构示意图,如图1所示,该嵌入式系统包括:硬件层、操作系统层、通用操作系统接口以及适配层。
在对本发明各实施例提供的嵌入式系统中各部分的具体工作过程进行详细描述之前,还可以先对嵌入式系统的整体工作过程进行描述:
对于应用于不同领域中的嵌入式系统,其作为一个具有独立数据处理能力的器件能够接收到外部产生的各种指令,比如控制指令、配置指令等,并对该指令进行处理。处理结果可以作为待写入文件写入嵌入式系统中硬件层包含的存储单元中。可选地,存储单元是指硬件层中微控制器内配置的每一位寄存器。
基于上述的文件写入过程,嵌入式系统中各层的工作过程具体为:
操作系统层可以借助通用操作系统接口获取待写入文件。其中,通过对至少一种操作系统各自支持的操作系统接口提供的功能进行封装即可得到通用操作系统接口。即此通用操作系统接口支持至少一种操作系统中所有接口所提供的功能。并且由于操作系统中部署有实时内核,所以利用通用操作系统接口可以提供一个统一的标准以使嵌入式系统兼容多种实时内核。其中,待写入文件具体可以包括:嵌入式系统响应指令后产生的各自文件,如响应于配置指令产生的配置文件、响应于控制指令产的数据文件以及临时文件等等。
接着,在操作系统层获取到待写入文件后,其还可以进一步调用适配层,以确定硬件层对应的目标接口。然后,操作系统层再通过调用此目标接口,将待写入文件写入硬件层中的存储单元。可选地,适配层具体可以表现为函数,以由操作系统通过调用此函数来进一步实现目标接口的调用。其中,此适配层可以认为是操作系统层实现目标接口调用的中间媒介,以实现操作系统层向硬件层的文件写入。
另外,由于操作系统层中包含实时内核,硬件层包含配置有至少一个寄存器的微控制器,因此,借助适配层也即是使得不同的实时内核能够与不同的微控制器实现数据交互,即使得嵌入式系统能够兼容多种实时内核和微控制器。
其中,嵌入式系统中的硬件层包括的微控制器是嵌入式系统硬件层的核心,主要负责对信息的运算处理,相当于通用计算机的中央处理器。目前主流的微控制器的型号可以包括:8051单片机,AVR微控制器,以及高级精简指令集机器(Advanced RI SC Mach ines,简称ARM)微控制器等等。可选地,硬件层还可以包括与微控制器连接的外围设备。外围设备是嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。目前常用的外围设备按功能可以分为存储设备(如随机存取存储器、静态随机存取存储器、闪存等)、通信设备(如RS-232接口、串行外设接口、以太网接口等)和显示设备(如显示屏等)三类。
其中,嵌入式系统中的操作系统层包含的实时内核主要负责任务调度、同步机制、中断处理、文件处理等。目前主流的开源实时内核包括:免费实时操作系统(Free Rea l Time Operat i on System,简称FreeRTOS)和实时多线程操作系统(Rea l T ime-Thread,简称RT-Thread)。
其中,操作系统层调用的目标接口可以认为是对硬件层中存储单元的封装结果,可选地,目标接口具体可以包括:第一接口、第二接口以及第三接口中的至少一种。具体地,一个第一接口用于描述硬件层中一个寄存器的硬件配置,则通常来说,第一接口的数量与硬件层中寄存器的数量相等。其中,硬件配置具体可以包括寄存器的编号、类型、寄存器内存中的位置。第二接口可以用于描述硬件层中寄存器的功能类型。由于寄存器的功能类型包含在寄存器的硬件配置中,因此,第二接口可以认为是对第一接口进行进一步抽象后得到的。且第二接口的数量通常少于第一接口。第三接口用于描述硬件层中每一种功能类型的寄存器的具体工作方式。由于寄存器的功能类型中包括寄存器的工作方式,因此,第三接口可以认为是对第二接口进行进一步抽象后得到的。
可见,上述的第一接口至第三接口实际上是对硬件层中寄存器进行不同程度的抽象后得到的,也即是操作系统层借助适配层,能够调用抽象程度不同的接口。
其中,由于操作系统层和目标接口都是借助代码实现的,因此,操作系统层调用目标接口实际上就是代码之间的调用。
在实现代码调用的过程中,由于C语言的指针灵活且易于使用,操作系统层可以使用C语言进行编写。并且由于Rust语言具有内存安全的特性,适用于编写硬件相关的操作,所以可以使用Rust语言编写对硬件层中的寄存器抽象出的目标接口。
由于操作系统层与目标接口采用的编程语言不同,为了实现二者之间的相互调用即实现操作系统层和目标接口之间的调用,可以使用Rust语言构建一个可执行文件,通过执行此文件可以将操作系统层中实时内核的C语言源码编译为静态库类型的代码。然后,可以通过语言交互接口(Fore ign Funct i on I nterface,FFI)实现不同编程语言所写程序间的相互调用,使得操作系统中的C语言代码可以调用Rust语言实现的硬件抽象出的目标接口的代码,硬件抽象出的目标接口的Rust代码也可以调用C语言代码。
本实施例中,嵌入式系统包括:硬件层、操作系统层、通用操作系统接口以及适配层。首先,操作系统层借助通用操作系统接口获取待写入文件。然后,操作系统层调用适配层以得到硬件层对应的目标接口。其中,目标接口为对硬件层中的存储单元的封装结果。最终,操作系统再通过调用目标接口,将待写入文件写入硬件层中的存储单元。
可见,由于通用操作系统接口能够提供一个统一的标准以支持多种操作系统,因此,嵌入式系统利用此通用操作系统接口能够实现多种操作系统层中部署的实时内核的兼容。同时,可以通过适配层提供的硬件层与操作系统层之间的传输适配功能以实现多种硬件层中多种微控制器的兼容。当嵌入式系统需要部署新的实时内核时,可以不对嵌入式系统中的其他部分进行修改,直接替换实时内核。因此,也即是实现多种实时内核和多种微控制器之间的适配,从而提升嵌入式系统移植的效率。
图1所示实施例中已经公开了操作系统层可以借助通用操作系统接口获取待写入文件。可选地,通用操作系统接口可以利用嵌入式系统中的统一内核接口层生成。具体地,统一内核接口层可以先获取至少一种实时内核各自支持的操作系统接口,然后对至少一种实时内核各自支持的操作系统接口提供的功能进行封装,以生成通用操作系统接口。即通用操作系统接口能够实现多种操作系统层中部署的实时内核的兼容,从而节省操作系统开发的成本。
在实际中,为了更好地实现操作系统层中实时内核与硬件层中微控制器之间的适配,可以使用硬件抽象层对硬件层中的微控制器进行抽象,以便于操作系统层可以直接调用硬件抽象层封装的目标接口。
则图2为本发明实施例提供的另一种嵌入式系统的结构示意图。该嵌入式系统中可以包括:硬件层、操作系统层、统一内核接口层、通用操作系统接口、适配层以及硬件抽象层。
硬件抽象层位于硬件层和操作系统层之间,其目的在于对硬件层中的每位寄存器进行不同程度抽象,以分别得第一接口、第二接口以及第三接口。根据图1所示实施例中的描述可知,第一接口可以理解为最低抽象程度所抽象出的接口,即第一接口能够描述硬件层中每位寄存器的硬件配置。在第一接口的基础上,可以再对每位寄存器的硬件配置进一步抽象,即按照每位寄存器的功能类型抽象以得到第二接口。在第二接口的基础上,再按照每个工作类型的寄存器的不同工作方式高度抽象出第三接口。
另外,本实施例中未详细描述的内容还可以参见上述实施例中的相关描述,在此不再赘述。
本实施例中,嵌入式系统可以包括:硬件层、操作系统层、通用操作系统接口、适配层以及硬件抽象层。硬件抽象层位于硬件层和操作系统层之间,其目的在于按照不同程度对硬件层中的每位寄存器进行抽象,以得到第一接口、第二接口以及第三接口。具体地,第一接口用于描述硬件层中每位寄存器的硬件配置,在第一接口的基础上,对每位寄存器的硬件配置进一步抽象,即按照每位寄存器的功能类型抽象以得到第二接口。在第二接口的基础上,再对每类寄存器的不同工作方式进行高度抽象,以得到第三接口。
可见,嵌入式系统中的硬件抽象层可以按照不同程度抽象出多种接口,操作系统层能够借助适配层调用抽象程度不同的第一接口至第三接口中的至少一个接口,从而使得操作系统层无需关心硬件层中的微控制器相关的具体细节即可实现文件的写入,提高了写入效率即提高了嵌入式系统的工作效率。另外,本实施例中未详细描述的内容以及所能实现的技术效果均可以参见上述各实施例中的相关描述,在此不再赘述。
图3为本发明实施例提供的一种硬件抽象层的结构示意图。在图2所示的基础上,该嵌入式系统的硬件抽象层具体可以包括:第一抽象层,第二抽象层,第三抽象层,以及位于第一抽象层和第二抽象层之间的中间层。
硬件抽象层中的第一抽象层可以获取硬件层的硬件特征描述文件,然后根据该硬件特征描述文件封装出第一接口。可选地,从代码层面来说,第一抽象层抽象出的第一接口的过程可以描述为;用Rust语言提供的命令行工具svd2rust对硬件特征描述文件进行转换,转换结果即为封装得到的第一接口。其中,第一接口用于描述硬件层中每位寄存器的硬件配置。
其中,硬件特征描述文件是指微控制器软件接口标准-系统视图描述文件(CommonM i crocontro l l er Software I nterface Standard System Vi ew Descr i pt ion,简称CMS I S-SVD),此文件描述了硬件层中微控制器以及与微控制器连接的外围设备的硬件特性,并且基于可扩展标记语言(EXtens i b l eMarkup Language,简称XML)格式生成了外围设备信息和其他硬件设备参数。
具体的硬件特征描述文件的层级结构如图4所示,该文件分别从设备级别、外设级别、寄存器级别、字段级别、枚举值级别、供应厂商扩展的角度对硬件层包含的微控制器进行描述。其中,设备级别可以包括微控制器的名称、说明或版本。由于微控制器包含至少一个寄存器,且外设是寄存器的命名集合,所以可以从外设级别对微控制器进一步描述,即为微控制器包含的所有寄存器分配相应的地址块,以描述各个寄存器的位置。再从寄存器级别进一步对微控制器包含的至少一个寄存器的类型进行描述。并且由于寄存器可以由一个或多个字段组成,所以可以进一步划分到字段级别,即将寄存器划分为具有不同功能的位块。其中,字段的值范围又可以用枚举值进一步描述,因此,通过枚举值级别可以选择性地映射到说明字符串,以增强源代码的可读性。另外,还可以通过供应商扩展对当前描述的微控制器进行创新和扩展。
基于第一抽象层抽象出的第一接口,硬件抽象层中的第二抽象层可以获取硬件配置中的寄存器功能类型,然后按照寄存器的功能类型进一步抽象,以得到第二接口。其中,第二接口用于描述硬件层中寄存器的功能类型。则对第二接口的封装可以认为是基于第一接口中包含的每位寄存器的硬件配置,对每位寄存器的硬件配置进行功能分类。其中,寄存器的功能类型还能够表明寄存器提供该功能的具体工作方式。不同功能类型的寄存器可以将包括定时寄存器、计数寄存器、寻址存器以及指令指针寄存器等等。
对于寄存器功能类型的获取,可选地,第二抽象层可以借助位于第一抽象层与第二抽象层之间的中间层,即第二抽象层通过调用中间层,获取第一接口描述的硬件配置,并按照此硬件配置进行进一步封装,以得到第二接口。
基于第二抽象层抽象出的第二接口,硬件抽象层中的第三抽象层进一步按照根据寄存器的工作方式封装出第三接口。其中,第三抽象层通常为板级支持包(Board SupportPackage,简称BSP)。举例来说,假设第二接口描述的是的寄存器功能类型为计时,表明硬件层微控制器设置有定时寄存器并且定时寄存器具体又可以包括具有不同的定时方式寄存器,比如接通延时型定时器,断开延时型定时器以及脉冲型定时器。则第三抽象层可以按照定时寄存器的工作方式进一步抽象出第三接口,第三接口用于描述上述各种定时器的工作方式,也即是从更高层次的角度抽象出硬件层的硬件特性。
本实施例中,嵌入式系统的硬件抽象层具体包括:第一抽象层,第二抽象层,第三抽象层以及位于第一抽象层和第二抽象层之间的中间层。第一抽象层至第三抽象层按照不同程度对硬件层中的寄存器进行抽象,以提供硬件层调用对应的各种接口,以便于操作系统层可以对硬件进行读写等相关操作。
可选地,为了保证嵌入式系统中硬件层中各器件的正常工作,图5为本发明实施例提供的又一种嵌入式的结构示意图。在图3所示的基础上,还包括第一驱动层和第二驱动层。
第一驱动层用于驱动硬件层中的微控制器;第二驱动层用于驱动硬件层中的外围设备。可选地,两个驱动层均可以采用Rust语言进行编写。
具体来说,第一驱动层可以和硬件层包含的微控制器通信连接,并且第一驱动层中配置有适用于多种微控制器的多个驱动程序,其可以统称称为备选驱动程序。则在硬件层中部署有某种控制器时,操作系统可以从备选驱动程序中确定与硬件层包含的微控制器匹配的目标驱动程序,并利用该目标驱动程序驱动硬件层中部署的微控制器。举例来说,假设嵌入式系统的硬件层中部署的微控制器为ARM微控制器,则操作系统层可以从第一驱动层中包含的备选驱动程序,比如ARM微控制器和AVR微控制器各自对应的驱动程序中确定出与ARM微控制器匹配的目标驱动程序,以由第一驱动层驱动硬件层中部署的ARM微控制器。可选地,可以预先将多种微控制器对应的驱动程序编写成备用驱动程序,以支持任意数量的微控制器。
第二驱动层可以和硬件层包含的外围设备通信连接,用于驱动与硬件层包含的微控制器连接的外围设备,以便于微控制器的使用者可以直接对外围设备进行读写等操作。
本实施例中,在嵌入式系统中,硬件层中的微控制器和外围设备都需要有相应的驱动层程序来支撑。因此,开发者可以预先将不同微控制器的驱动程序编写成备用驱动程序,以便捷地实现微控制器的更换。
为便于理解,结合如下场景对以上提供的嵌入式系统的具体实现过程进行示例性说明。下述各种举例也可以结合图5所示的嵌入式系统理解。
嵌入式系统可以包括:通用操作系统接口、统一内核接口层、操作系统层、适配层、硬件抽象层以及硬件层。其中,硬件抽象层具体可以包括:第一抽象层、中间层、第二抽象层、第三抽象层、第一驱动层以及第二驱动层。
在此嵌入式系统中,利用通用操作系统接口以及适配层,可以实现多种实时内核与多种微控制器之间的适配。具体的适配过程可以从以下几种情况分别进行讨论。一种情况:固定微控制器,将此微控制器与不同类型的实时内核进行适配。即当嵌入式系统中已经部署有ARM微控制器以及FreeRTOS这种类型的内核也部署到嵌入式系统中。此时,当用户对嵌入式系统产生配置指令时,该嵌入式系统的具体工作过程可以描述为:
操作系统层可以借助通用操作系统接口获取配置指令对应的配置文件,并将此配置文件写入FreeRTOS中。接着,在操作系统层获取到待写入文件后,可以调用适配层,以确定ARM微控制器对应的目标接口。然后,操作系统层再通过调用此目标接口,将待写入文件写入ARM微控制器中的对应的寄存器。其中,适配层可以表现为函数,以由操作系统调用此函数来确定ARM微控制器对应的目标接口,即实现ARM微控制器与操作系统层之间的传输适配。对于目标接口的具体封装过程可参见上述各实施例中的描述。
其中,统一内核接口层可以获取FreeRTOS和RT-Thread各自支持的操作系统接口,然后对两种不同的实时内核支持的操作系统接口提供的功能进行统一,以得到上述的通用操作系统接口,能够兼容FreeRTOS和RT-Thread两种实时内核。由于统一内核接口层的上述获取方式,因此,在实际使用中,当用户对上述嵌入式系统中部署的实时内核进行修改,即将FreeRTOS替换为RT-Thread时,用户可以直接进行实时内核的替换,嵌入式系统中的其他部分无需进行改动,从而实现了实时内核的便捷移植。
可见,嵌入式系统通过通用操作系统接口可以兼容操作系统层中部署的多种实时内核,降低了操作系统开发的复杂性,从而提升嵌入式系统移植的效率。
另外,在实际中,在实时内核发生替换后,还可以利用适配层完成上述适配,即将适配层作为更换后实时内核进行接口调用的中间媒介。这样也能够降低操作系统开发的复杂性,从而提升嵌入式系统移植的效率。
另一种情况,固定实时内核,将此实时内核与不同的微控制器进行适配。即当嵌入式系统中已经部署有FreeRTOS以及ARM这种类型的微控制器也部署到嵌入式系统中。此时,当用户对嵌入式系统产生配置指令时,该嵌入式系统的具体工作过程可以描述为:
操作系统层可以借助通用操作系统接口获取配置指令对应的配置文件,并将此配置文件写入FreeRTOS中。其中,通用操作系统接口的生成过程可以参见上述场景实施例中的描述。
接着,在操作系统层获取到待写入文件后,可以调用适配层,以确定ARM微控制器对应的目标接口。然后,操作系统层再通过调用此目标接口,将待写入文件写入ARM微控制器中的对应的寄存器。其中,适配层具体可以表现为函数,以由操作系统调用此函数来确定ARM微控制器对应的目标接口,即实现ARM微控制器与操作系统层之间的传输适配。对于目标接口的具体封装过程可参见上述各实施例中的描述。
在实际使用中,根据实际需求,用户还可以对上述嵌入式系统中部署的微控制器进行修改,即将ARM微控制器替换为AVR微控制器。由于适配层可以提供硬件层与操作系统层之间的传输适配功能,也即是兼容了不同硬件层中部署的多种微控制器。因此,用户可以直接进行微控制器的替换,嵌入式系统中的其他部分无需进行改动,从而实现了微控制器的便捷移植。
此外,在嵌入式系统中,还包括第一驱动层和第二驱动层。第一驱动层可以和硬件层包含的微控制器通信连接,并且第一驱动层中配置有适用于多种微控制器的多个驱动程序,其可以统称称为备选驱动程序。则操作系统层可以从备选驱动程序中包含的备选驱动程序,比如ARM微控制器和AVR微控制器各自对应的驱动程序中确定出与ARM微控制器匹配的目标驱动程序,以由第一驱动层并驱动硬件层中部署的ARM微控制器。即可以预先将多种微控制器对应的驱动程序编写成备选驱动程序,以便于更换微控制器。第二驱动层可以和硬件层包含的外围设备通信连接,用于驱动与硬件层包含的微控制器连接的外围设备,以便于微控制器的使用者可以直接对外围设备进行读写等操作。
可见,嵌入式系统通过第一驱动层中包含的多个驱动程序可以兼容不同硬件层中部署的多种微控制器,降低了系统开发的复杂性,从而提升嵌入式系统移植的效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种嵌入式系统,其特征在于,包括:硬件层、操作系统层、通用操作系统接口以及适配层;
所述操作系统层,用于借助所述通用操作系统接口获取待写入文件;
调用所述适配层,以确定所述硬件层对应的目标接口,所述目标接口为对所述硬件层中的存储单元的封装结果;
通过调用所述目标接口,将所述待写入文件写入所述硬件层中的存储单元。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:统一内核接口层,用于获取至少一种操作系统各自支持的操作系统接口;对所述至少一种操作系统各自支持的操作系统接口提供的功能进行封装,以得到所述通用操作系统接口。
3.根据权利要求1所述的系统,其特征在于,所述系统还包括:硬件抽象层,用于将所述硬件层中的存储单元进行封装,以得到所述目标接口。
4.根据权利要求3所述的系统,其特征在于,所述目标接口包括:第一接口、第二接口以及第三接口中的至少一种;
所述第一接口用于描述所述硬件层中寄存器的硬件配置;
所述第二接口用于描述所述硬件层中寄存器的功能类型;
所述第三接口用于描述所述硬件层中寄存器的工作方式。
5.根据权利要求4所述的系统,其特征在于,所述硬件抽象层具体包括:第一抽象层,用于获取所述硬件层的硬件特征描述文件;根据所述硬件特征描述文件封装所述第一接口。
6.根据权利要求4所述的系统,其特征在于,所述硬件抽象层包括:第二抽象层,用于获取所述硬件配置中的寄存器类型;根据所述寄存器的类型封装所述第二接口。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:中间
层;
所述第二抽象层,用于调用所述中间层,获取所述硬件配置。
8.根据权利要求4所述的系统,其特征在于,所述硬件抽象层包括:第三抽象层,用于获取所述寄存器的工作方式;根据所述工作方式封装所述第三接口。
9.根据权利要求1所述的系统,其特征在于,所述系统还包括:第一驱动层,用于从备选驱动程序中确定与所述硬件层匹配的目标驱动程序;利用所述目标驱动程序驱动所述硬件层中部署的微控制器。
10.根据权利要求1所述的系统,其特征在于,所述系统还包括:第二驱动层,用于驱动与所述硬件层中部署的微控制器连接的外围设备。
CN202211543375.3A 2022-12-02 2022-12-02 嵌入式系统 Pending CN116225527A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211543375.3A CN116225527A (zh) 2022-12-02 2022-12-02 嵌入式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211543375.3A CN116225527A (zh) 2022-12-02 2022-12-02 嵌入式系统

Publications (1)

Publication Number Publication Date
CN116225527A true CN116225527A (zh) 2023-06-06

Family

ID=86588046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211543375.3A Pending CN116225527A (zh) 2022-12-02 2022-12-02 嵌入式系统

Country Status (1)

Country Link
CN (1) CN116225527A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117931412A (zh) * 2024-03-21 2024-04-26 北京邮电大学 一种双内核实时操作系统及任务调度方法
CN117931412B (zh) * 2024-03-21 2024-06-11 北京邮电大学 一种双内核实时操作系统及任务调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117931412A (zh) * 2024-03-21 2024-04-26 北京邮电大学 一种双内核实时操作系统及任务调度方法
CN117931412B (zh) * 2024-03-21 2024-06-11 北京邮电大学 一种双内核实时操作系统及任务调度方法

Similar Documents

Publication Publication Date Title
US7712104B2 (en) Multi OS configuration method and computer system
US9396013B2 (en) Method for controlling a virtual machine and a virtual machine system
US5752032A (en) Adaptive device driver using controller hardware sub-element identifier
US6212489B1 (en) Optimizing hardware and software co-verification system
US5771370A (en) Method and apparatus for optimizing hardware and software co-simulation
US6009476A (en) Device driver architecture supporting emulation environment
US20020099863A1 (en) Software support layer for processors executing interpreted language applications
WO1997019400A1 (en) Context virtualizing device driver architecture
CN110515641A (zh) 服务器固件的更新方法、装置及系统
JP4157771B2 (ja) 組込み制御環境におけるリモート入出力機能への効率的なアクセスのための方法およびシステム
CN112015522B (zh) 系统功能扩展方法、装置及计算机可读存储介质
US20040098639A1 (en) Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems
US10452364B2 (en) Method and system for preparing code to be executed by programmable control devices
JPH1021094A (ja) リアルタイム制御方式
CN111857839B (zh) 一种基于Linux的PXI/PXIe总线设备驱动系统
US20080028384A1 (en) Interconnection interface for flexible online/offline deployment of an n-layered software application
CN116225527A (zh) 嵌入式系统
CN1312583C (zh) 仿真装置和仿真方法
Lyu et al. A procedure-based dynamic software update
CN112306539B (zh) 一种单片机应用层开发方法、系统、终端及介质
US7043565B1 (en) System and method for transferring data over an external transmission medium
US10055367B2 (en) Integrated-circuit radio
JP5421914B2 (ja) Sip及びsdpプロトコルのユーザーカスタマイズ用コルーチンインターフェース
US6941549B1 (en) Communicating between programs having different machine context organizations
WO1998029807A1 (en) Real time services in backwardly compatible operating systems

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