欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種應用于國產非x86平臺上實現顯卡初始化的方法

文檔序號:10552700閱讀:260來源:國知局
一種應用于國產非x86 平臺上實現顯卡初始化的方法
【專利摘要】本發(fā)明公開一種應用于國產非X86平臺上實現顯卡初始化的方法,涉及計算機領域,首先確認顯卡初始化程序,然后將整個顯卡初始化程序復制到內存區(qū)域,并調用編碼解析模塊,進行解析顯卡初始化程序,同時調用內存操作模擬模塊、IO操作模擬模塊和寄存器模擬器,最終將顯存地址映射到系統(tǒng)中,通過向顯存寫入數據進行顯示輸出。本發(fā)明能夠從根本上解決非X86平臺計算機系統(tǒng)引導啟動過程中,因顯卡無法進行初始化導致無法顯示LOGO和配置菜單等問題,解決了顯卡初始化及顯示功能缺失問題。
【專利說明】一種應用于國產非X86平臺上實現顯卡初始化的方法
[0001]
技術領域
[0002]本發(fā)明具體涉及計算機領域,具體的說就是一種應用于國產非X86平臺上實現顯卡初始化的方法。
【背景技術】
[0003]目前國產非X86架構服務器、臺式計算機和筆記本等產品中,在搭配通用顯示芯片(即顯卡)時,啟動引導階段無法像X86平臺計算機一樣通過顯卡進行顯示輸出用于LOGO顯示、配置菜單顯示。由于顯卡廠商通常僅提供用于X86平臺的顯示控制器初始化程序,并將其集成在顯卡上,該部分程序無法直接用于非X86平臺。因此在非X86平臺上,如果需要達到以上顯示信息的目的,通常需要增加其他具有顯示輸出能力的芯片進行輸出控制。或者將內核驅動程序進行裁剪加入到固件程序當中。第一種方案,從技術角度講,增大了產品開發(fā)復雜度,并且顯著增加了固件開發(fā)過程中顯示控制部分的開發(fā)工作量,由此帶來了產品可靠性降低的隱患;從產品角度講,成本有所提高。第二種方案,硬件成本雖沒有增加,但是對內核驅動進行裁剪,對技術要求較高,同時由于內核驅動相互之間的依賴性,裁剪過程中會導致一系列依賴性問題,開發(fā)難度和復雜度很高。

【發(fā)明內容】

[0004]本發(fā)明針對現有技術存在的不足之處,提供了一種應用于國產非X86平臺上實現顯卡初始化的方法。
[0005]本發(fā)明所述一種應用于國產非X86平臺上實現顯卡初始化的方法,解決上述技術問題采用的技術方案如下:所述一種應用于國產非X86平臺上實現顯卡初始化的方法,首先確認顯卡初始化程序,然后將整個顯卡初始化程序復制到內存區(qū)域,并調用編碼解析模塊,進行解析顯卡初始化程序,同時調用內存操作模擬模塊、1操作模擬模塊和寄存器模擬器,最終將顯存地址映射到系統(tǒng)中,通過向顯存寫入數據進行顯示輸出。
[0006]優(yōu)選的,所述確認顯卡初始化程序這一步驟,主要通過固件中提供的接口,得到顯卡上集成的初始化程序入口地址,通過分析該段程序第三個字節(jié)得到程序長度,將整個初始化程序復制到內存區(qū)域中備用。
[0007]優(yōu)選的,將整個顯卡初始化程序復制到內存區(qū)域中,首先申請至少256K內存空間用于模擬X86平臺B1S中的256K內存地址,將顯卡初始化程序復制到該段內存偏移量OxCOOO處,并聲明若干個變量和數組用于模擬X86 CPU寄存器,將OxCOOO賦值給模擬的CS段寄存器,并將模擬的IP寄存器設置為0x03。
[0008]優(yōu)選的,所述編碼解析模塊負責從顯卡初始化程序的第四個字節(jié)開始進行解析;根據讀取的二進制數據,查找操作碼對照表,確認需要調用的函數和需要操作的數據,并移動模擬的IP指針進行數據讀取操作。
[0009]優(yōu)選的,所述內存操作模擬模塊負責將X86平臺內存操作轉換成平臺相應的內存操作;調用內存操作模擬模塊,由對應的操作函數調用內存操作模擬模塊,配合傳入的參數完成內存的讀取或寫入操作。
[0010]優(yōu)選的,所述1操作模擬模塊負責將X861操作轉換為目標平臺相應的1操作;調用1操作模擬模塊,由對應函數調用1操作模擬模塊完成1讀取或寫入操作。
[0011 ]優(yōu)選的,若是JMP跳轉命令,則調用內存操作模擬模塊對CS、IP模擬的程序執(zhí)行寄存器變量進行操作。
[0012]本發(fā)明的一種應用于國產非X86平臺上實現顯卡初始化的方法與現有技術相比具有的有益效果是:本發(fā)明通過在目標平臺上模擬X86 CPU運行,執(zhí)行預先存儲在顯卡上的程序(已經由顯卡廠商提供),完成顯卡的初始化和配置,使得國產非X86平臺也可以在引導啟動階段,使用顯卡進行顯示輸出L0G0、配置菜單等,能夠從根本上解決非X86平臺計算機系統(tǒng)引導啟動過程中,因顯卡無法進行初始化導致無法顯示LOGO和配置菜單等問題,解決了顯卡初始化及顯示功能缺失問題。
【具體實施方式】
[0013]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,對本發(fā)明所述一種應用于國產非X86平臺上實現顯卡初始化的方法進一步詳細說明。
[0014]本發(fā)明提出了一種應用于國產非X86平臺上實現顯卡初始化的方法,通過在目標平臺上模擬X86 CPU運行,執(zhí)行預先存儲在顯卡上的程序,完成顯卡的初始化和配置,使得國產非X86平臺在引導啟動階段使用顯卡進行顯示輸出L0G0、配置菜單等,解決了非X86平臺引導啟動過程中顯卡的初始化和顯示功能缺失的問題。
[0015]實施例:
本實施例所述一種應用于國產非X86平臺上實現顯卡初始化的方法,其主要步驟包括:首先確認顯卡初始化程序,然后將整個顯卡初始化程序復制到內存區(qū)域,并調用編碼解析模塊,進行解析顯卡初始化程序,同時調用10操作模擬模塊、內存操作模擬模塊和寄存器模擬器,最終將顯存地址映射到系統(tǒng)中,通過向顯存寫入數據實現顯示輸出功能。
[0016]該實現顯卡初始化的方法中,所述確認顯卡初始化程序這一步驟,主要通過固件中提供的接口,得到顯卡上集成的初始化程序入口地址,通過分析該段程序第三個字節(jié)得到程序長度,第三個字節(jié)為該段程序的長度,將整個初始化程序復制到內存區(qū)域中備用。
[0017]該實現顯卡初始化的方法中,將整個顯卡初始化程序復制到內存區(qū)域這一步驟,主要包括:首先申請至少256K內存空間用于模擬X86平臺B1S中的256K內存地址,將顯卡初始化程序復制到該段內存偏移量OxCOOO處,并聲明若干個變量和數組用于模擬X86 CPU寄存器,將OxCOOO賦值給模擬的CS段寄存器,并將模擬的IP寄存器設置為0x03。
[0018]該實現顯卡初始化的方法中,所述調用編碼解析模塊這一步驟,主要內容是指,所述編碼解析模塊負責從顯卡初始化程序的第四個字節(jié)開始進行解析,由于前兩個字節(jié)為規(guī)范定義的固定值,用于校驗,第三個字節(jié)為程序長度。
[0019]該實現顯卡初始化的方法中,根據讀取的二進制數據,查找操作碼對照表,確認需要調用的函數和需要操作的數據,并移動模擬的IP指針進行數據讀取操作。二進制數據對應的操作,可在Intel公布的X86平臺技術手冊中查到。每個操作碼對應一個函數,讀取的數據作為參數傳遞給該函數,并完成操作。調用內存操作模擬模塊,主要內容是指,由對應的操作函數調用內存操作模擬模塊,配合傳入的參數完成內存的讀取或寫入操作;所述內存操作模擬模塊負責將X86平臺內存操作轉換成平臺相應的內存操作。
[0020]該實現顯卡初始化的方法中,調用1操作模擬模塊,主要內容是指,由對應函數調用1操作模擬模塊完成1讀取或寫入操作;所述1操作模擬模塊負責將X86 1操作轉換為目標平臺相應的1操作。
[0021]如果是JMP等跳轉命令,則調用內存操作模擬模塊對CS、IP等模擬的程序執(zhí)行寄存器變量進行操作,達到與X86 CPU—致的跳轉、返回操作。由于在編碼解析模塊取參數過程中模擬的IP指針不斷移動,因此通過該方法所述模擬器可以像真實的X86機器一樣,連續(xù)運行直至二進制編碼全部被執(zhí)行完畢。
[0022]采用本實施例所述實現顯卡初始化的方法,顯卡自身集成的初始化程序執(zhí)行完畢后,顯卡能夠進入可用狀態(tài);通過設置傳送給編碼解析模擬模塊的操作碼和對應的數據,能夠設置顯卡的CRTC寄存器組,達到修改分辨率、刷新率等效果。最終通過將顯存地址映射到系統(tǒng)中,即可通過向顯存寫入數據實現顯示輸出功能。
[0023]上述【具體實施方式】僅是本發(fā)明的具體個案,本發(fā)明的專利保護范圍包括但不限于上述【具體實施方式】,任何符合本發(fā)明的權利要求書的且任何所屬技術領域的普通技術人員對其所做的適當變化或替換,皆應落入本發(fā)明的專利保護范圍。
【主權項】
1.一種應用于國產非X86平臺上實現顯卡初始化的方法,其特征在于,首先確認顯卡初始化程序,然后將整個顯卡初始化程序復制到內存區(qū)域,并調用編碼解析模塊,進行解析顯卡初始化程序,同時調用內存操作模擬模塊、1操作模擬模塊和寄存器模擬器,最終將顯存地址映射到系統(tǒng)中,通過向顯存寫入數據進行顯示輸出。2.根據權利要求1所述一種應用于國產非X86平臺上實現顯卡初始化的方法,其特征在于,所述確認顯卡初始化程序,主要通過固件中提供的接口,得到顯卡上集成的初始化程序入口地址,通過分析該段程序第三個字節(jié)得到程序長度,將整個初始化程序復制到內存區(qū)域中備用。3.根據權利要求2所述一種應用于國產非X86平臺上實現顯卡初始化的方法,其特征在于,將整個顯卡初始化程序復制到內存區(qū)域中,首先申請至少256K內存空間用于模擬X86平臺B1S中的256K內存地址,將顯卡初始化程序復制到該段內存偏移量OxCOOO處,并聲明若干個變量和數組用于模擬X86 CPU寄存器,將OxCOOO賦值給模擬的CS段寄存器,并將模擬的IP寄存器設置為0x03。4.根據權利要求3所述一種應用于國產非X86平臺上實現顯卡初始化的方法,其特征在于,所述編碼解析模塊負責從顯卡初始化程序的第四個字節(jié)開始進行解析;根據讀取的二進制數據,查找操作碼對照表,確認需要調用的函數和需要操作的數據,并移動模擬的IP指針進行數據讀取操作。5.根據權利要求4所述一種應用于國產非X86平臺上實現顯卡初始化的方法,其特征在于,所述內存操作模擬模塊負責將X86平臺內存操作轉換成平臺相應的內存操作;調用內存操作模擬模塊,由對應的操作函數調用內存操作模擬模塊,配合傳入的參數完成內存的讀取或寫入操作。6.根據權利要求5所述一種應用于國產非X86平臺上實現顯卡初始化的方法,其特征在于,所述1操作模擬模塊負責將X86 1操作轉換為目標平臺相應的1操作;調用1操作模擬模塊,由對應函數調用1操作模擬模塊完成1讀取或寫入操作。7.根據權利要求6所述一種應用于國產非X86平臺上實現顯卡初始化的方法,其特征在于,若是JMP跳轉命令,則調用內存操作模擬模塊對CS、IP模擬的程序執(zhí)行寄存器變量進行操作。
【文檔編號】G06F9/44GK105912337SQ201610226289
【公開日】2016年8月31日
【申請日】2016年4月13日
【發(fā)明人】張雁鵬, 劉強, 梁智豪
【申請人】浪潮集團有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
屏南县| 靖边县| 崇阳县| 石林| 宝鸡市| 蒙阴县| 巴林右旗| 珠海市| 嫩江县| 仁化县| 临洮县| 大关县| 商都县| 台中县| 彭水| 阿克苏市| 永州市| 莎车县| 平远县| 弥勒县| 建昌县| 平果县| 五莲县| 福贡县| 游戏| 伊金霍洛旗| 辉县市| 玉山县| 新沂市| 察隅县| 筠连县| 万载县| 彝良县| 江达县| 拜泉县| 特克斯县| 西宁市| 龙泉市| 新疆| 湄潭县| 杨浦区|