CN116166328B - 一种VxWorks操作系统下驱动MIO设备的方法 - Google Patents
一种VxWorks操作系统下驱动MIO设备的方法Info
- Publication number
- CN116166328B CN116166328B CN202211701560.0A CN202211701560A CN116166328B CN 116166328 B CN116166328 B CN 116166328B CN 202211701560 A CN202211701560 A CN 202211701560A CN 116166328 B CN116166328 B CN 116166328B
- Authority
- CN
- China
- Prior art keywords
- mio
- driver
- function
- current
- interface
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4406—Loading of operating system
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
本申请提供了一种VxWorks操作系统下驱动MIO设备的方法,属于机载显示的技术领域,具体包括:从MIO设备驱动层获取自定的MIO设备组件描述文件和MIO驱动注册函数原型;根据编译规则在内核层注册MIO设备驱动,并初始化MIO设备驱动,以及配置MIO设备资源。应用层实时在线更改当前接口状态,内核层对更改后的接口重新进行设备初始化;MIO设备驱动层通过Ioctl函数确认当前接口状态,并对当前接口进行对应设备的初始化;接口对应的设备初始化完成后,以相应的接口与外界进行通信。通过本申请的处理方案,能够在线改变当前MIO的接口状态,提高了效率。
Description
技术领域
本申请涉及机载显示的领域,尤其是涉及一种VxWorks操作系统下驱动MIO设备的方法。
背景技术
飞腾X100是一款主CPU配套芯片,其主要功能是实现GPU系统和PCIE、USB、SATA等高速接口扩展,同时实现整机系统的上下电控制等功能。
飞腾2000/4平台是一款面向桌面应用的高性能通用4核处理器。每2个核构成1个处理器核簇(Cluster),并共享L2 Cache。处理器核通过片内高速互联网络及相关控制器与存储系统、I/O系统相连。存储系统包含Cache子系统和DDR,I/O子系统包括PCIE、高速I/O子系统、千兆以太网GMAC和低速I/O系统。
VxWorks是美国Wind River公司开发的嵌入式实时操作系统,具有高性能、可高度裁剪等特点,能够支持多种微处理器,如PowerPC、X86、ARM、MIPS等。它以其良好的可靠性和卓越的实时性能够被广泛的应用在通信、军事、航空、航天等高精尖技术及对实时要求极高的领域中。
MIO接口英文名称为MULTUSE IO,即为多功能接口IO。它仅通过两个GPIO口便可拥有三种功能,分别为I2C、PWM、UART功能。并且三个控制器拥有相同的配置空间。正是因为三者拥有相同的配置空间,那么他们无法同时被初始
化,这就导致了每次需要使用另一功能时,必须修改程序,重新烧写系统。这5样操作复杂,并且效率不高,容易出错。
发明内容
有鉴于此,本申请提供一种VxWorks操作系统下驱动MIO设备的方法,解决了现有技术中的问题,能够在线改变当前MIO的接口状态,提高了效率。
本申请提供的一种VxWorks操作系统下驱动MIO设备的方法采用如下的技0术方案:
一种VxWorks操作系统下驱动MIO设备的方法,其特征在于,包括:
步骤1,从MIO设备驱动层获取自定的MIO设备组件描述文件和MIO驱动注册函数原型;
步骤2,根据自定义的MIO设备组件描述文件和MIO驱动注册函数原型,5形成MIO驱动的编译规则;
步骤3、根据编译规则在内核层提供的对下接口函数iosDrvInstall和iOSDevAdd向内核层的I/O子系统注册MIO设备驱动,并初始化MIO设备驱动,以及配置MIO设备资源。
步骤4,应用层实时在线更改当前接口状态,内核层对更改后的接口重新进行设备初始化;
步骤5,MIO设备驱动层通过Ioctl函数确认当前接口状态,并对当前接口进行对应设备的初始化;
步骤6、接口对应的设备初始化完成后,以相应的接口与外界进行通信。
可选的,MIO设备驱动层包括MIO设备和MIO驱动单元;
在MIO驱动单元设置有用户自定义的MIO设备组件描述文件和MIO驱动注册函数原型;
MIO驱动注册函数原型中包括MIO驱动初始化函数和MIO驱动服务函数;
MIO驱动初始化函数包括设置MIO全局控制寄存器基址,读取MIO版本号,读取当前MIO功能状态。
可选的,编译规则以Makefile文件的形式存储在MIO驱动单。
可选的,根据编译规则编写MIO驱动注册函数代码并存储在MIO驱动单元。
可选的,所述步骤5中,Ioctl函数设置如下:针对读取的参数进行判定:若参数为0x0,则控制当前MIO功能为I2C,读取MIO功能状态确认为I2C功能后,进行I2C设备的初始化;若参数为1,则控制当前MIO功能为UART,读取MIO功能状态确认为UART功能后,进行UART设备的初始化;若参数为2,则控制当前MIO功能为PWM,读取当前MIO功能为PWM后,进行PWM设备的初始化。
可选的,所述步骤4中,应用层上通过在应用程序设置ioctl函数或输入命令,以在线改变当前MIO的接口状态。
综上所述,本申请包括以下有益技术效果:
本申请在VxWorks下建立自定义的MIO设备描述文件,进而编写MIO驱动的编译规则,接着注册MIO驱动以及初始化MIO驱动,然后设计MIO驱动中Ioctl函数,最后应用层上可利用ioctl函数控制MIO接口当前的状态,从而达到实时切换接口的目的。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请Vxworks下MIO驱动设备实现方法的流程图;
图2为本申请VxWorks下MIO驱动设备具体设计流程图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本申请实施例提供一种VxWorks操作系统下驱动MIO设备的方法。
如图1和图2所示,一种VxWorks操作系统下驱动MIO设备的方法,包括:
步骤1,从MIO设备驱动层获取自定的MIO设备组件描述文件和MIO驱动注册函数原型;MIO设备驱动层包括MIO设备和MIO驱动单元;在MIO驱动单元设置有用户自定义的MIO设备组件描述文件和MIO驱动注册函数原型;MIO驱动注册函数原型中包括MIO驱动初始化函数(如xxxDrv,xxxDevCreate)和MIO驱动服务函数(如xxxOpen、xxxRead、xxxWrite等);MIO驱动初始化函数包括设置MIO全局控制寄存器基址,读取MIO版本号,读取当前MIO功能状态。
步骤2,根据自定义的MIO设备组件描述文件和MIO驱动注册函数原型,形成MIO驱动的编译规则;编译规则以Makefile文件的形式存储在MIO驱动单。
步骤3、根据编译规则编写MIO驱动注册函数代码并存储在MIO驱动单元,根据编译规则在内核层(IOSLib)提供的对下接口函数iosDrvInstall和iOSDevAdd向内核层的I/O子系统注册MIO设备驱动,并初始化MIO设备驱动,以及配置MIO设备资源。
步骤4,应用层实时在线更改当前接口状态,内核层对更改后的接口重新进行设备初始化。应用层上通过在应用程序设置ioctl函数或输入命令,以在线改变当前MIO的接口状态。
步骤5,MIO设备驱动层通过Ioctl函数确认当前接口状态,并对当前接口进行对应设备的初始化。
具体的,Ioctl函数设置如下:针对读取的参数进行判定:若参数为0x0,则控制当前MIO功能为I2C,读取MIO功能状态确认为I2C功能后,进行I2C设备的初始化;若参数为1,则控制当前MIO功能为UART,读取MIO功能状态确认为UART功能后,进行UART设备的初始化;若参数为2,则控制当前MIO功能为PWM,读取当前MIO功能为PWM后,进行PWM设备的初始化。
步骤6、接口对应的设备初始化完成后,以相应的接口(I2C、UART、PWM三者之一))与外界进行通信。
本申请在VxWorks下建立自定义的MIO设备描述文件,进而编写MIO驱动的编译规则,接着注册MIO驱动以及初始化MIO驱动,然后设计MIO驱动中Ioctl函数,最后应用层上可利用ioctl函数控制MIO接口当前的状态,从而达到实时切换接口的目的。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (5)
1.一种VxWorks操作系统下驱动MIO设备的方法,其特征在于,包括:
步骤1,从MIO设备驱动层获取自定的MIO设备组件描述文件和MIO驱动注册函数原型;
步骤2,根据自定义的MIO设备组件描述文件和MIO驱动注册函数原型,形成MIO驱动的编译规则;
步骤3、根据编译规则在内核层提供的对下接口函数iosDrvInstall和iOSDevAdd向内核层的I/O子系统注册MIO设备驱动,并进行MIO设备初始化,所述MIO设备初始化包括初始化MIO设备驱动,以及配置MIO设备资源;
步骤4,应用层实时在线更改当前接口状态,内核层对更改后的接口重新进行MIO设备初始化;
步骤5,MIO设备驱动层通过Ioctl函数确认当前接口状态,并对当前接口进行对应设备的初始化,针对读取的参数进行判定:若参数为0x0,则控制当前MIO功能为I2C,读取MIO功能状态确认为I2C功能后,进行I2C设备的初始化;若参数为1,则控制当前MIO功能为UART,读取MIO功能状态确认为UART功能后,进行UART设备的初始化;若参数为2,则控制当前MIO功能为PWM,读取当前MIO功能为PWM后,进行PWM设备的初始化;
步骤6、接口对应的设备初始化完成后,以相应的接口与外界进行通信。
2.根据权利要求1所述的VxWorks操作系统下驱动MIO设备的方法,其特征在于,MIO设备驱动层包括MIO设备和MIO驱动单元;
在MIO驱动单元设置有用户自定义的MIO设备组件描述文件和MIO驱动注册函数原型;
MIO驱动注册函数原型中包括MIO驱动初始化函数和MIO驱动服务函数;
MIO驱动初始化函数包括设置MIO全局控制寄存器基址,读取MIO版本号,读取当前MIO功能状态。
3.根据权利要求2所述的VxWorks操作系统下驱动MIO设备的方法,其特征在于,编译规则以Makefile文件的形式存储在MIO驱动单元。
4.根据权利要求3所述的VxWorks操作系统下驱动MIO设备的方法,其特征在于, 根据编译规则编写MIO驱动注册函数代码并存储在MIO驱动单元。
5.根据权利要求1所述的VxWorks操作系统下驱动MIO设备的方法,其特征在于,所述步骤4中,应用层上通过在应用程序设置Ioctl函数或输入命令,以在线改变当前MIO的接口状态。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211701560.0A CN116166328B (zh) | 2022-12-28 | 2022-12-28 | 一种VxWorks操作系统下驱动MIO设备的方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211701560.0A CN116166328B (zh) | 2022-12-28 | 2022-12-28 | 一种VxWorks操作系统下驱动MIO设备的方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116166328A CN116166328A (zh) | 2023-05-26 |
| CN116166328B true CN116166328B (zh) | 2025-12-23 |
Family
ID=86410574
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211701560.0A Active CN116166328B (zh) | 2022-12-28 | 2022-12-28 | 一种VxWorks操作系统下驱动MIO设备的方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116166328B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104965700A (zh) * | 2015-06-09 | 2015-10-07 | 航天科工深圳(集团)有限公司 | VxWorks操作系统下实现驱动SPI设备的方法和系统 |
| CN114237725A (zh) * | 2021-12-14 | 2022-03-25 | 龙芯中科技术股份有限公司 | 设备驱动调用方法、装置及系统 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102866966B (zh) * | 2012-08-28 | 2015-07-29 | 大唐移动通信设备有限公司 | 一种Linux操作系统的设备驱动控制方法和装置 |
| US10657073B2 (en) * | 2018-04-26 | 2020-05-19 | Microsoft Technology Licensing, Llc | Driver module framework enabling creation and execution of reliable and performant drivers |
-
2022
- 2022-12-28 CN CN202211701560.0A patent/CN116166328B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104965700A (zh) * | 2015-06-09 | 2015-10-07 | 航天科工深圳(集团)有限公司 | VxWorks操作系统下实现驱动SPI设备的方法和系统 |
| CN114237725A (zh) * | 2021-12-14 | 2022-03-25 | 龙芯中科技术股份有限公司 | 设备驱动调用方法、装置及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116166328A (zh) | 2023-05-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20250200259A1 (en) | Verification system, verification method, electronic device, and storage medium | |
| CN106557340B (zh) | 一种配置方法及装置 | |
| CN107346293B (zh) | 动态重新配置系统的至少一外围总线交换器的方法及系统 | |
| CN1650276B (zh) | Ata/sata组合控制器 | |
| CN112131147B (zh) | 一种控制器验证方法、装置、系统、电子设备及存储介质 | |
| CN105279127B (zh) | 一种基于PCI或PCIe总线的FPGA程序下载系统及方法 | |
| CN107436762B (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
| CN102650975A (zh) | 用于多硬件平台飞腾服务器的i2c总线的实现方法 | |
| US20180329847A1 (en) | Selectable peripheral logic in programmable apparatus | |
| US6917998B1 (en) | Reusable complex multi-bus system hardware prototype system | |
| CN102388366A (zh) | 实现不同处理器兼容的方法及装置 | |
| TWI556110B (zh) | 用於提供存取裝置函數的設備、系統及方法 | |
| CN105446920A (zh) | 基于龙芯的fpga嵌入式计算机及其配置方法 | |
| CN109408445A (zh) | 一种图形处理器板卡 | |
| WO2023121815A1 (en) | Dynamic provisioning of pcie devices at run time for bare metal servers | |
| CN116166328B (zh) | 一种VxWorks操作系统下驱动MIO设备的方法 | |
| CN103677745A (zh) | 一种在龙芯主板中写入和读取设备标识的方法 | |
| CN119166391A (zh) | 一种bios与bmc之间内存共享的交互方法及装置 | |
| CN119536764A (zh) | 固件更新方法、系统、装置、计算机设备、可读存储介质和程序产品 | |
| CN105243040A (zh) | 一种基于PCIe总线支持USBTMC协议的仪器程控系统及方法 | |
| US9875329B1 (en) | Method and system for import of mask layout data to a target system | |
| US20130318487A1 (en) | Programmable Circuit Characteristics Analysis | |
| CN113392052B (zh) | 一种基于四路服务器的bios系统、方法及计算机可读存储介质 | |
| CN116627496A (zh) | 基于uvm的寄存器模型构建、验证方法、系统与电子设备 | |
| CN106294143B (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 |