bootloader中顯示nk載入進度

2021-05-09 12:25:06 字數 899 閱讀 9731

原始出處

、作者資訊和本宣告。否則將追究法律責任。

由於bootloader本身大小的限制,不可能將的c陣列放到bootloader中去,要想實現顯示載入的進度,只能對framebuffer進行操作。

在不理解的時候我很土的以為對framebuffer的操作是不太可能的。其實很簡單,無非就是用資料填到framebuffer中的合適位置。我現在用的是水平方向填充的,例如320x240,16位真彩色,那麼一行中需要320x2個byte。這樣就可以很容易實現在framebuffer中畫很簡單的圖了,例如矩形,和填充矩形。進度條無非也就是這樣搞的。

首先要在bootloader的main函式中initdisplay,這個和cfw.c中一樣可以拷貝過來用,如果你的bootloader的main執行是在還沒有使能mmu時,那麼就要修改framebuffer和lcd的控制器等的位址為實體地址才行。

接下來就是在配置好lcd(initdisplay)之後用固定顏色填充整個framebuffer,再在特定的位置填充別的顏色以實現進度條的矩形。

最後就是在bootloader從flash拷貝nk到ram中的實現函式中呼叫矩形填充函式,根據nk的大小和進度條的長度(象素數)決定每拷貝多少個512b填充進度條的一格(bootloader中讀flash是以sector為單位的,1sector=512b);

下面是我實現畫矩形和填充矩形的函式:

void drawprocess()

}

void drawmark(int index)

}

本文出自 「bluefish

」 部落格,請務必保留此出處http://bluefish.blog.51cto.com/214870/58109

WinCE開發中Boot Loader的點點滴滴

wince開發中boot loader的點點滴滴 boot loader是定製windows ce作業系統過程中乙個重要的開發環節。boot loader的作用正如名字中的兩個單詞 boot,既引導系統,如果基於ce的產品採用bios實現硬體初始化和配置,那麼boot loader只需引導軟體系統。...

bootloader中的偽指令分析

偽指令 pseudo instruction 是用於告訴匯程式設計序如何進行彙編的指令。它既不控制機器的操作也不被彙編成機器 只能為匯程式設計序所識別並指導彙編如何進行。比如 ldr r0,0x48000000 由於0x48000000比較簡單,可以表示成立即數 每個立即數由乙個8位的常數迴圈右移偶...

WinCE開發中Boot Loader的點點滴滴

我很慶幸在公司的產品開發過程中並沒有受到boot loader帶來的阻力,因為我們採用msdos loadcepc來啟動ce作業系統。顯然這樣的幸運不是永遠的,所以對boot loader應該有足夠的研究和了解,做到未雨綢繆。boot loader是定製windows ce作業系統過程中乙個重要的開...