基于非x86平台在Linux操作系统下显示的方法技术方案

技术编号:14058660 阅读:152 留言:0更新日期:2016-11-27 11:54
本发明专利技术实施例公开了一种基于非x86平台在Linux操作系统下显示的方法,其方法包括:对非x86平台的嵌入式系统进行扩展;对非x86平台的嵌入式系统上电;基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信;在系统初始化阶段,为非x86平台加入x86模拟器;基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器;启动linux内核;启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。实施本发明专利技术实施例,通过在非x86平台的嵌入式硬件条件下,驱动显卡正常工作,从而提高图形显示界面的显示效果。

【技术实现步骤摘要】

本专利技术涉及计算机嵌入式系统
,尤其涉及一种基于非x86平台在Linux操作系统下显示的方法
技术介绍
人机交互在现代计算机的意义至关重要,计算机加电启动后的第一要务就是显示输出,并向用户报告系统是否健康。计算机系统的显示输出一般由显示控制器设备完成,由于历史原因,显示控制器常简称为显卡。显卡在加电后,需要由CPU对其进行初始化配置,才能进入正常的显示数据转换和信号输出状态,此时显示器上才会有信息输出。因此显卡的初始化速度是影响计算机开机显示速度的重要因素。随着嵌入式系统的不断发展和应用,嵌入式系统的对图形界面的要求越来越高,许多企业也基于嵌入式硬件上提出了可视化图形界面的要求。现有的非x86平台的嵌入式系统因为其专用性的限制,无法满足可视化图形界面的应用。通用的Linux桌面操作系统无法应用在工业领域的苛刻环境中。这使得需要找到一种方法,通过较少的硬件扩展和软件配置,让嵌入式硬件满足工业领域可视化的需求。
技术实现思路
本专利技术的目的在于克服现有技术的不足,本专利技术提供了一种在非x86平台的嵌入式硬件条件下,通过少量的硬件扩展和软件配置,使系统的图形界面性能能达到更高的要求。为了解决上述问题,本专利技术提出了一种基于非x86平台在Linux操作系统下显示的方法,包括如下步骤:对非x86平台的嵌入式系统进行扩展,将显卡通过PCI总线接口接入非x86平台的嵌入式系统;对非x86平台的嵌入式系统上电,启动系统初始化,并在系统初始化过程中对显卡进行控制初始化;基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;在系统初始化过程中,为非x86平台加入x86模拟器,并完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存;基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射;将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;设置Linux内核启动参数,启动linux内核;启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。所述PCI总线接口获取显卡设备信息包括:PCI总线接口获取到显卡设备ID、供应商、型号、显卡属性和地址空间信息。所述完成x86模拟器初始化过程中还包括:记录显卡的IO寄存器和内存的写操作指令。所述基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射包括:根据PCI总线上的信息,查询显卡ROM中的BIOS镜像的物理地址和Frame buffer的物理地址以及它们所对应的长度;将显卡中BIOS镜像的物理地址、Frame buffer的物理地址和它们的长度保存在PCI总线上;将BIOS镜像的物理地址、Frame buffer的物理地址做PCI地址映射;将BIOS镜像和frame buffer映射后的地址和长度保存到PCI总线上,然后延时等待下一步的执行。所述方法还包括:在基于PCI总线检测到显卡处于不可通信时,基于非x86平台报警提醒显卡故障。在本专利技术实施例中,通过在非x86平台的嵌入式硬件条件下,通过少量的硬件扩展和软件配置,其通过外接显卡,通过x86的模拟器和Linux操作系统的显卡驱动,驱动显卡正常工作,使系统的图形界面性能能达到更高的要求,嵌入式系统能正确启动并识别显卡,显卡能够和系统的其他硬件相互配合工作,从而提高图形显示界面的显示效果,满足嵌入式硬件在工业领域对图形界面苛刻要求。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本专利技术实施例中的基于非x86平台在Linux操作系统下显示的方法流程图;图2是本专利技术实施例中的基于非x86平台在Linux操作系统下显示方法的软件流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例中所涉及的基于非x86平台在Linux操作系统下显示的方法,其通过对非x86平台的嵌入式系统进行扩展,将显卡通过PCI总线接口接入非x86平台的嵌入式系统;对非x86平台的嵌入式系统上电,启动系统初始化,并在系统初始化过程中对显卡进行控制初始化;基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;在系统初始化阶段,为非x86平台加入x86模拟器,并完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存;基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射;将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;设置Linux内核启动参数,启动linux内核;启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。相应的,图1示出了本专利技术实施例中的基于非x86平台在Linux操作系统下显示的方法流程图,该流程图包括如下步骤:S101、对非x86平台的嵌入式系统进行扩展;具体实施过程中,首先对嵌入式系统进行扩展,将显卡通过PCI总线接口接入非X86平台的嵌入式系统。S102、对非x86平台的嵌入式系统上电;非X86平台的嵌入式系统上电,启动系统初始化,并在系统初始化的过程中对显卡进行控制初始化。S103、基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,如果显卡处于可通信时,则进入S104,否则进入S111;具体实施过程中,在初始化过程中,PCI总线端口可以通过侦测的方式探测到显卡是否能实现与x86平台的通信功能,其保障了显卡接入能正常工作。S104、在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;在PCI总线检测到显卡,PCI总线接口获取到显卡设备ID、供应商、型号、显卡属性和地址空间信息。S105、在系统初始化过程中,为非x86平台加入x86模拟器,对X86模拟器初始化;由于非X86平台的嵌入式系统无法直接执行显卡BIOS代码(显卡的BIOS代码是X86框架的二进制码)。在系统初始化过程中,即uboot启动过程中,加入X86模拟器并初始化,完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存。在具体实施过程中,在初始化过程中还记录了本文档来自技高网...
基于非x86平台在Linux操作系统下显示的方法

【技术保护点】
一种基于非x86平台在Linux操作系统下显示的方法,其特征在于,包括如下步骤:对非x86平台的嵌入式系统进行扩展,将显卡通过PCI总线接口接入非x86平台的嵌入式系统;对非x86平台的嵌入式系统上电,启动系统初始化,并在系统初始化过程中对显卡进行控制初始化;基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;在系统初始化过程中,为非x86平台加入x86模拟器,并完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存;基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射;将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;设置Linux内核启动参数,启动linux内核;启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。

【技术特征摘要】
1.一种基于非x86平台在Linux操作系统下显示的方法,其特征在于,包括如下步骤:对非x86平台的嵌入式系统进行扩展,将显卡通过PCI总线接口接入非x86平台的嵌入式系统;对非x86平台的嵌入式系统上电,启动系统初始化,并在系统初始化过程中对显卡进行控制初始化;基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;在系统初始化过程中,为非x86平台加入x86模拟器,并完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存;基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射;将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;设置Linux内核启动参数,启动linux内核;启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。2.如权利要求1所述的基于非x86平台在Linux操作系统下显示的方法,其特征...

【专利技术属性】
技术研发人员:黄顺玉朱云华吴崇峰吴健余世清
申请(专利权)人:广东中兴新支点技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1