2012-06-01 48 views
3

我建立一個操作系統在Windows CE 6.0R3定位爲ARM9架構(特別是對於iMX28系列),我想改變開機畫面顯示自定義圖像當設備第一次啓動時。非x86的引導程序自定義啓動畫面目標

我該怎麼做?我通過一些相當vague and sparse bits of documentation暗示你需要在.bmx格式創建它並啓用視頻閱讀,但無處我知道如何開始變化當設備啓動時顯示的閃屏。

+0

蘇聯國旗。僅僅因爲它涉及到創建操作系統,並不意味着它是用於SO –

+0

@ColeJohnson:我不同意。蘇的範圍似乎是根據他們的常見問題向「電腦愛好者,高級用戶」。這真的不是這種情況。 –

+0

同意,這是一個開發問題 - 特別是關於操作系統/平臺開發 - 這是一個公平的遊戲。 – ctacke

回答

2

這要看情況。一般來說,它是自舉程序,用於控制顯示控制器的初始化並將數據發送到控制器,以獲取在OS加載之前出現的初始圖像,並且顯示驅動程序接管。在使用外的現成的BIOS引導程序附帶平臺生成器,它會加載splash.bmx(壓縮BMP),並顯示一個典型目標設備。

在我知道的所有基於ARM的情況下,BIOS啓動加載程序是而不是用於加載映像的代碼是BSP或供應商特定的加載程序。我已經看到了從自定義OEM引導程序到redboot派生的各種東西。在這些情況下,您必須知道如何設置引導加載程序以顯示啓動圖像以及如何配置它(如果甚至可以 - 有些是硬編碼的)。

因爲我們不知道你使用的是什麼引導程序,我甚至不會妄自猜測,具體情況爲你的工作方式。您最好的選擇是檢查您的平臺文檔並查看是否有描述,或與OEM協商。如果您碰巧是OEM,那麼您必須查看您使用的任何引導程序的源代碼。

+0

謝謝。這實際上有助於大大指向我去哪裏。我們已經(稍微)修改了BSP中包含的引導加載程序。 –

+1

看看幀緩衝區的初始化區域。通常情況下,它會在此之後被繪製。 – ctacke

0

在調查了ctacke推薦的內容之後,我發現對於在我的OS項目中使用的iMX28-eVK-PDK1_9 BSP,我需要修改display.c中的代碼。

具體而言,它是在平臺項目iMX28-EVK-PDK1_9\SRC\BOOTLOADER\COMMON\display.c下發現的。函數ShowBmp用於從固定內存位置加載位圖。我不得不調整ShowBmp的代碼,而不是默認的飛思卡爾圖像,而是將所需的位圖寫入屏幕。

默認情況下,ShowBmp從存儲器位置的位圖圖像的讀取和通過像素寫入它的像素到裝置屏幕。我們唯一改變的是我們正在從我們的記憶位置讀取。