CN107145343A - 一种动态适配外围设备的系统及方法 - Google Patents
一种动态适配外围设备的系统及方法 Download PDFInfo
- Publication number
- CN107145343A CN107145343A CN201710218058.7A CN201710218058A CN107145343A CN 107145343 A CN107145343 A CN 107145343A CN 201710218058 A CN201710218058 A CN 201710218058A CN 107145343 A CN107145343 A CN 107145343A
- Authority
- CN
- China
- Prior art keywords
- peripheral hardware
- tree
- internal memory
- ancillary equipment
- hardware
- 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.)
- Withdrawn
Links
Classifications
-
- 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
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式设备领域,公开了一种动态适配外围设备的系统,包括初始化模块、资源配置模块和扩展模块,初始化模块用于初始化硬件设备,并加载设备树和linux内核到内存;资源配置模块,其用于通过FPGA模拟外设得到外设的资源配置;扩展模块,其用于根据外设的资源配置信息,对加载到内存中的设备树节点进行相应的添加、删除或替换操作;其中,所述设备树用于根据外设的资源配置进行外设逻辑的描述,所述linux内核用于根据设备树的描述进行外设的驱动。本发明还公开了一种动态适配外围设备的方法。本发明能够有效提高操作系统的利用率。
Description
技术领域
本发明涉及嵌入式设备领域,具体涉及一种动态适配外围设备的系统和一种动态适配外围设备的方法。
背景技术
相较于其它可编程逻辑单元,SOC(System on Chip,系统级芯片)类FPGA(Field-Programmable GateArray,现场可编程逻辑门阵列)具有更高的集成度、更低的功耗、更小的电路尺寸等优势,因而被大多数开发人员所使用。同时,为了充分发挥FPGA的灵活性,许多FPGA的厂商已开始研发和销售集成了硬核处理器的FPGA器件,并为之提供系统方案,在此基础上设计的扣板产品,可动态管理外设资源,更好的对核心硬件电路进行复用。
通过替换逻辑器件的可执行文件,即可使上述FPGA器件支持不同的应用场景,从而减少硬件和核心代码的维护成本,但是,若采用当前主流的linux操作系统下对外设进行描述的方案,如设备树情况下,由于随着外设的变化,设备树的描述文件也必须跟随着进行相应替换,以便于与外设适配,导致上层的操作系统必须随着设备树文件的变化而重新编译,致使操作系统难以复用。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种动态适配外围设备的系统和一种动态适配外围设备的方法,有效提高操作系统的利用率。
为达到以上目的,本发明采取的技术方案是,包括:
初始化模块,其用于初始化硬件设备,并加载设备树和linux内核到内存;
资源配置模块,其用于通过FPGA模拟外设得到外设的资源配置;
扩展模块,其用于根据外设的资源配置信息,对加载到内存中的设备树节点进行相应的添加、删除或替换操作;
其中,所述设备树用于根据外设的资源配置进行外设逻辑的描述,所述linux内核用于根据设备树的描述进行外设的驱动。
在上述技术方案的基础上,所述扩展模块中的执行代码由uboot 代码修改后生成,所述执行代码用于对设备树节点进行添加、删除或替换操作。
在上述技术方案的基础上,所述设备树由uboot加载至内存中,并由uboot将设备树传递给已加载到内存中的linux内核。
在上述技术方案的基础上,所述初始化模块用于对硬件设备进行初始化及上电操作,所述硬件设备包括内存、调试串口、外部存储器以及外设的硬核处理器。
本发明还提供一种动态适配外围设备的方法,包括:
S1:对硬件设备进行上电并初始化;
S2:加载一FPGA用以模拟外设,得到外设的资源配置,并标记出FPGA版本标识,所述FPGA版本标识用于表示设备树中需进行修改的节点;
S3:加载设备树和linux内核至内存中;
S4:根据标记出的FPGA版本标识,对设备树节点进行添加、删除或替换操作;
S5:完成linux系统的启动。
在上述技术方案的基础上,所述硬件设备包括内存、调试串口、外部存储器以及外设的硬核处理器。
在上述技术方案的基础上,所述设备树用于根据外设的资源配置进行外设逻辑的描述。
在上述技术方案的基础上,所述S5具体为:linux内核根据设备树的描述驱动外设。
与现有技术相比,本发明的优点在于:当接入不同的外设时,将设备树以及linux内核加载到内存中,进行初始化,通过一FPGA模拟当前所接入的外设,得到外设的资源配置,然后对加载到内存中的设备树进行相应修改,以便于加载到内存中的linux内核对当前所接外设进行驱动,而原始的设备树未做修改,即设备树原始的描述文件未做修改,因此linux操作系统无需随着外设的改变而重新编译,从而达到操作系统复用的目的。
附图说明
图1为本发明一种动态适配外围设备的方法的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明提供一种动态适配外围设备的系统,该系统基于linux操作系统,动态适配的外围设备为采用FPGA逻辑创建的外设,即SOC 类FPGA中采用逻辑动态创建的外设或其它共CPU(Central Processing Unit,中央处理器)子系统但使用环境有所差异的外设。优选的,本发明的动态适配外围设备的系统在基于CYCLONE V系列设计出的扣板平台上实施,使用linux操作系统,适用于扣板应用于不同底板的场景。
本动态适配外围设备的系统包括初始化模块、资源配置模块和扩展模块,初始化模块用于初始化硬件设备,并加载设备树、linux内核到内存;资源配置模块用于得到外设的资源配置,外设的资源配置可以通过多种方式的得到,本实施例中,通过一FPGA来模拟外设,得到外设的资源配置,因外设为基于FPGA设计,因此可以通过另一 FPGA进行外设逻辑文件的模拟,从而得到外设的资源配置;扩展模块用于根据外设的资源配置信息,对加载到内存中的设备树节点进行相应的添加、删除或替换操作,从而达到动态适配SOC类FPGA外设的目的。
设备树用于根据外设的资源配置进行外设逻辑的描述,linux内核用于根据设备树的描述进行外设的驱动,根据当前接入的外设的资源配置,对系统中的设备树进行适应性修改,从而linux内核能够根据修改后的设备树驱动外设,达到动态设备不同外设的目的。设备树由uboot加载至内存中,并由uboot将设备树传递给已加载到内存中的linux内核。
扩展模块中的执行代码由uboot代码修改后生成,执行代码用于对设备树节点进行添加、删除或替换操作,扩展模块依赖于uboot,但扩展模块为独立的模块,扩展模块能够单独进行重遍以改变功能。初始化模块通过uboot加载设备树至内存中,并将设备树传递给linux 内核。Uboot,全称Universal Boot Loader,用于系统引导,linux操作系统通常使用Uboot进行系统的引导。扩展模块用于执行除系统启动外的其它功能。
初始化模块还用于对硬件设备进行初始化及上电操作,硬件设备包括内存、调试串口、外部存储器以及外设的硬核处理器。
当接入不同的外设时,将设备树以及linux内核加载到内存中,进行初始化,通过一FPGA模拟当前所接入的外设,得到外设的资源配置,然后对加载到内存中的设备树进行相应修改,以便于加载到内存中的linux内核对当前所接外设进行驱动,而原始的设备树未做修改,即设备树原始的描述文件未做修改,因此linux操作系统无需随着外设的改变而重新编译,从而达到操作系统复用的目的。
参见图1所示,本发明还提供一种基于上述系统的动态适配外围设备的方法,该方法包括以下步骤:
S1:对硬件设备上电并初始化,硬件设备包括内存、调试串口、外部存储器以及外设的硬核处理器等需要使用到的基础设备。
S2:加载一FPGA用以模拟外设,得到外设的资源配置,并标记出FPGA版本标识,FPGA版本标识用于表示设备树中需进行修改的节点,因外设为FPGA逻辑的外设,基于可编程的逻辑器件,因此可以用另一FPGA对接入的外设进行模拟,得到所接入外设内逻辑代码等资源配置,便于后续根据设备树与外设资源配置之间的映射关系,对设备树进行适应性修改,根据外设的资源配置进行外设逻辑的描述。
S3:加载设备树和linux内核至内存中。
S4:根据标记出的FPGA版本标识,对设备树节点进行添加、删除或替换操作。若当前接入的外设与之前接入的外设相同,则FPGA 版本标识为空,即无需对设备树的节点进行修改操作。
S5:完成linux系统的启动,从而能够对外设进行驱动并操作。
通过一FPGA模拟所接入的外设,得到外设的资源配置,从而对 linux操作系统中加载到内存中的设备树进行适应性修改,使得加载到内存中的linux内核能够驱动外设,从而适配不同应用场景下所接入的不同外设,原始的设备树无需修改,即原始的设备树描述文件无需休息,当接入下一外设时,再次加载设备树至内存中并初始化,然后进行相应修改即可,即原始的设备树始终是无需修改的,因而能够仅通过替换与外设相匹配的FPGA,来修改内存中的设备树,即可适配当前接入的采用FPGA逻辑创建的外设,提高了操作系统的复用率,降低FPGA产品核心代码的维护成本。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (8)
1.一种动态适配外围设备的系统,基于linux操作系统,所述外围设备为采用FPGA逻辑创建的外设,其特征在于,包括:
初始化模块,其用于初始化硬件设备,并加载设备树和linux内核到内存;
资源配置模块,其用于通过FPGA模拟外设得到外设的资源配置;
扩展模块,其用于根据外设的资源配置信息,对加载到内存中的设备树节点进行相应的添加、删除或替换操作;
其中,所述设备树用于根据外设的资源配置进行外设逻辑的描述,所述linux内核用于根据设备树的描述进行外设的驱动。
2.如权利要求1所述的一种动态适配外围设备的系统,其特征在于:所述扩展模块中的执行代码由uboot代码修改后生成,所述执行代码用于对设备树节点进行添加、删除或替换操作。
3.如权利要求1所述的一种动态适配外围设备的系统,其特征在于:所述设备树由uboot加载至内存中,并由uboot将设备树传递给已加载到内存中的linux内核。
4.如权利要求1所述的一种动态适配外围设备的系统,其特征在于:所述初始化模块用于对硬件设备进行初始化及上电操作,所述硬件设备包括内存、调试串口、外部存储器以及外设的硬核处理器。
5.一种基于权利要求1所述系统的动态适配外围设备的方法,其特征在于,包括:
S1:对硬件设备进行上电并初始化;
S2:加载一FPGA用以模拟外设,得到外设的资源配置,并标记出FPGA版本标识,所述FPGA版本标识用于表示设备树中需进行修改的节点;
S3:加载设备树和linux内核至内存中;
S4:根据标记出的FPGA版本标识,对设备树节点进行添加、删除或替换操作;
S5:完成linux系统的启动。
6.如权利要求5所述的一种动态适配外围设备的方法,其特征在于:所述硬件设备包括内存、调试串口、外部存储器以及外设的硬核处理器。
7.如权利要求5所述的一种动态适配外围设备的方法,其特征在于:所述设备树用于根据外设的资源配置进行外设逻辑的描述。
8.如权利要求7所述的一种动态适配外围设备的方法,其特征在于,所述S5具体为:linux内核根据设备树的描述驱动外设。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710218058.7A CN107145343A (zh) | 2017-04-05 | 2017-04-05 | 一种动态适配外围设备的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710218058.7A CN107145343A (zh) | 2017-04-05 | 2017-04-05 | 一种动态适配外围设备的系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107145343A true CN107145343A (zh) | 2017-09-08 |
Family
ID=59773598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710218058.7A Withdrawn CN107145343A (zh) | 2017-04-05 | 2017-04-05 | 一种动态适配外围设备的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107145343A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582391A (zh) * | 2018-12-04 | 2019-04-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于xml的设备树配置方法 |
CN109683820A (zh) * | 2018-12-18 | 2019-04-26 | 山东超越数控电子股份有限公司 | 一种基于Linux的存储设备树实现方法 |
CN109947486A (zh) * | 2019-03-11 | 2019-06-28 | 深圳市智微智能科技开发有限公司 | 一种修改系统内核的方法 |
CN110502352A (zh) * | 2019-08-21 | 2019-11-26 | 广州慧营智能科技有限公司 | 一种外部设备管理系统及使用方法及具备该系统的自助机 |
CN111143258A (zh) * | 2019-12-29 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质 |
CN111381892A (zh) * | 2018-12-29 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、设备和机器可读介质 |
CN112256281A (zh) * | 2020-09-23 | 2021-01-22 | 深圳市芯盛智能信息有限公司 | 一种嵌入式系统应用程序动态加载的方法 |
CN113076143A (zh) * | 2021-04-21 | 2021-07-06 | 扬州万方电子技术有限责任公司 | 一种国产平台人工智能环境适配方法及兼容性测试方法 |
CN113835695A (zh) * | 2021-11-25 | 2021-12-24 | 之江实验室 | 基于统一后端引擎的深度学习框架与硬件设备适配方法 |
WO2022052739A1 (zh) * | 2020-09-10 | 2022-03-17 | 华为技术有限公司 | 设备树修复方法、系统及计算机可读存储介质 |
CN114691240A (zh) * | 2022-04-01 | 2022-07-01 | 武汉深之度科技有限公司 | 驱动硬件配置信息加载方法、装置和系统,以及计算设备 |
CN116303149A (zh) * | 2023-05-18 | 2023-06-23 | 湖南博匠信息科技有限公司 | 基于bmc芯片实现控制器接口拓展的方法及系统 |
WO2023184309A1 (en) * | 2022-03-31 | 2023-10-05 | Intel Corporation | Apparatus, device, method, and computer program for a computer system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246545A (zh) * | 2013-05-07 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 面向多虚拟域可定制的PICe外设设备树生成方法 |
CN104572181A (zh) * | 2014-12-19 | 2015-04-29 | 大唐移动通信设备有限公司 | 启动备份引导程序的方法和装置 |
CN106354498A (zh) * | 2016-08-25 | 2017-01-25 | 睿芯信息科技(上海)有限公司 | 一种Linux系统加载设备的方法 |
-
2017
- 2017-04-05 CN CN201710218058.7A patent/CN107145343A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246545A (zh) * | 2013-05-07 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 面向多虚拟域可定制的PICe外设设备树生成方法 |
CN104572181A (zh) * | 2014-12-19 | 2015-04-29 | 大唐移动通信设备有限公司 | 启动备份引导程序的方法和装置 |
CN106354498A (zh) * | 2016-08-25 | 2017-01-25 | 睿芯信息科技(上海)有限公司 | 一种Linux系统加载设备的方法 |
Non-Patent Citations (1)
Title |
---|
杨伟 等: "PowerPC平台的Linux设备移植", 《电子元器件应用》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582391B (zh) * | 2018-12-04 | 2022-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于xml的设备树配置方法 |
CN109582391A (zh) * | 2018-12-04 | 2019-04-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于xml的设备树配置方法 |
CN109683820B (zh) * | 2018-12-18 | 2022-02-08 | 超越科技股份有限公司 | 一种基于Linux的存储设备树实现方法 |
CN109683820A (zh) * | 2018-12-18 | 2019-04-26 | 山东超越数控电子股份有限公司 | 一种基于Linux的存储设备树实现方法 |
CN111381892B (zh) * | 2018-12-29 | 2023-04-28 | 斑马智行网络(香港)有限公司 | 一种数据处理方法、装置、设备和机器可读介质 |
CN111381892A (zh) * | 2018-12-29 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、设备和机器可读介质 |
CN109947486A (zh) * | 2019-03-11 | 2019-06-28 | 深圳市智微智能科技开发有限公司 | 一种修改系统内核的方法 |
CN110502352A (zh) * | 2019-08-21 | 2019-11-26 | 广州慧营智能科技有限公司 | 一种外部设备管理系统及使用方法及具备该系统的自助机 |
CN111143258B (zh) * | 2019-12-29 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质 |
CN111143258A (zh) * | 2019-12-29 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质 |
WO2022052739A1 (zh) * | 2020-09-10 | 2022-03-17 | 华为技术有限公司 | 设备树修复方法、系统及计算机可读存储介质 |
CN112256281A (zh) * | 2020-09-23 | 2021-01-22 | 深圳市芯盛智能信息有限公司 | 一种嵌入式系统应用程序动态加载的方法 |
CN113076143A (zh) * | 2021-04-21 | 2021-07-06 | 扬州万方电子技术有限责任公司 | 一种国产平台人工智能环境适配方法及兼容性测试方法 |
CN113076143B (zh) * | 2021-04-21 | 2024-05-28 | 扬州万方科技股份有限公司 | 一种国产平台人工智能环境适配方法及兼容性测试方法 |
CN113835695A (zh) * | 2021-11-25 | 2021-12-24 | 之江实验室 | 基于统一后端引擎的深度学习框架与硬件设备适配方法 |
WO2023092626A1 (zh) * | 2021-11-25 | 2023-06-01 | 之江实验室 | 基于统一后端引擎的深度学习框架与硬件设备适配方法 |
US11941532B2 (en) | 2021-11-25 | 2024-03-26 | Zhejiang Lab | Method for adapting deep learning framework to hardware device based on unified backend engine |
WO2023184309A1 (en) * | 2022-03-31 | 2023-10-05 | Intel Corporation | Apparatus, device, method, and computer program for a computer system |
CN114691240A (zh) * | 2022-04-01 | 2022-07-01 | 武汉深之度科技有限公司 | 驱动硬件配置信息加载方法、装置和系统,以及计算设备 |
CN116303149A (zh) * | 2023-05-18 | 2023-06-23 | 湖南博匠信息科技有限公司 | 基于bmc芯片实现控制器接口拓展的方法及系统 |
CN116303149B (zh) * | 2023-05-18 | 2023-07-21 | 湖南博匠信息科技有限公司 | 基于bmc芯片实现控制器接口拓展的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145343A (zh) | 一种动态适配外围设备的系统及方法 | |
CN101382905B (zh) | 用于虚拟机环境中的仿真设备的开发的系统和方法 | |
CN106933570A (zh) | 一种基于插件技术的航天测发控软件平台 | |
CN103577308B (zh) | 移动设备的日志文件的获取方法 | |
CN109144712A (zh) | 内存池构建、内存分配方法及装置 | |
CN103718159B (zh) | 图像处理软件开发方法、图像处理软件开发装置 | |
CN103970559A (zh) | 一种基于Android系统的设备加载方法及装置 | |
CN111857840B (zh) | 基本输入输出系统bios启动方法及装置 | |
CN103049363B (zh) | 一种NAND Flash控制器的验证方法 | |
CN113672342B (zh) | 嵌入式虚拟化系统及构建、测试方法、终端及介质 | |
CN106933583A (zh) | 操作系统中识别硬件设备的方法及计算机设备 | |
CN114089975B (zh) | 计算软件的扩展方法、装置、非易失性存储介质及处理器 | |
CN106371847A (zh) | Windows xp系统下CPCI总线RS422通信驱动方法及系统 | |
CN103853586A (zh) | 一种在uefi层实现无线网卡驱动的方法 | |
CN105068860A (zh) | 一种基于ARM的Linux采煤机管理主机系统 | |
CN111123737A (zh) | 一种数字硬件虚拟仿真系统 | |
CN110275716A (zh) | 设备部署方法及装置、设备运行方法及电子设备 | |
CN103176838A (zh) | 兼容Android本机程序的方法及系统 | |
CN116069648A (zh) | 一种软件测试方法、系统、设备以及存储介质 | |
CN110637521B (zh) | 一种基于模型仿真的数据实时存储方法和系统 | |
CN103514074A (zh) | Mvb网卡开发方法及平台 | |
CN114063472A (zh) | 一种数字化仿真设计系统、方法、存储介质及电子设备 | |
CN114490023A (zh) | 一种基于arm和fpga的高能物理可计算存储设备 | |
CN106909350A (zh) | 一种适用于国产处理器平台的raid卡配置和驱动方法 | |
CN102857817B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170908 |