1.方案分析ARM-Linux啟動時會先在LCD左上角顯示一個ARMLINUX的小企鵝圖案,也就是我們所說的bootlogo。
首先分析一下Logo的顯示程式碼:
不難發現Logo顯示是在載入顯示驅動fb後由kernel/drivers/video/fbcon.c中的fbcon_show_logo函式來完成的。
fbcon_show_logo函式中有很多相容性程式碼,不是都會用到的!我們用的是SHARP(夏普)的TFT真彩屏.
再仔細看一下,這裡用到的顯示資料均來自kernel/include/linux/linux_logo.h。這裡同樣也有一些相容性的資料,其中對我們有用的是:
linux_logo_red[] —— 調色盤中的紅色分量
linux_logo_green[] —— 調色盤中的綠色分量
linux_logo_blue[] —— 調色盤中的藍色分量
linux_logo[] —— Logo圖案的點陣
以上資料都是不需要你修改的 在fbcon_show_logo裡只做了256色的顯示,所以要先設定一個RGB調色盤。這裡的調色盤是從0x20色開始編的,所以實際好象只有最多224色的顯示。linux_logo.h裡預設是做了一個214級的灰度調色盤,如果想要更多色彩的話可以自已修改(注意調色盤的顏色不能超過224種)
再看linux_logo[],這是Logo圖案的點陣。因為是256色的圖,所以每點為一個Byte。Logo圖案是80*80大小,所以這裡總共有6400 Byte。一共是800行,每行8 Byte即8 Point,每10行資料對應Logo圖案中一行。可以先自己試試放一些簡單圖形進去顯示看看。(同樣注意顏色要從0x20開始,0-0x1f的32種顏色是不確定的)。
1.方案分析ARM-Linux啟動時會先在LCD左上角顯示一個ARMLINUX的小企鵝圖案,也就是我們所說的bootlogo。
首先分析一下Logo的顯示程式碼:
不難發現Logo顯示是在載入顯示驅動fb後由kernel/drivers/video/fbcon.c中的fbcon_show_logo函式來完成的。
fbcon_show_logo函式中有很多相容性程式碼,不是都會用到的!我們用的是SHARP(夏普)的TFT真彩屏.
再仔細看一下,這裡用到的顯示資料均來自kernel/include/linux/linux_logo.h。這裡同樣也有一些相容性的資料,其中對我們有用的是:
linux_logo_red[] —— 調色盤中的紅色分量
linux_logo_green[] —— 調色盤中的綠色分量
linux_logo_blue[] —— 調色盤中的藍色分量
linux_logo[] —— Logo圖案的點陣
以上資料都是不需要你修改的 在fbcon_show_logo裡只做了256色的顯示,所以要先設定一個RGB調色盤。這裡的調色盤是從0x20色開始編的,所以實際好象只有最多224色的顯示。linux_logo.h裡預設是做了一個214級的灰度調色盤,如果想要更多色彩的話可以自已修改(注意調色盤的顏色不能超過224種)
再看linux_logo[],這是Logo圖案的點陣。因為是256色的圖,所以每點為一個Byte。Logo圖案是80*80大小,所以這裡總共有6400 Byte。一共是800行,每行8 Byte即8 Point,每10行資料對應Logo圖案中一行。可以先自己試試放一些簡單圖形進去顯示看看。(同樣注意顏色要從0x20開始,0-0x1f的32種顏色是不確定的)。