基于嵌入式技術的MultiBus-CPU模塊設計
若要先設定幀緩沖區(qū)的物理地址和長度,就要在S1D13506.h里指定,然后在驅動程序里通過對fb_fix_screeninfo賦值來實現:
定義當前顯示輸出狀態(tài),通過對fb_var_screeninfo結構賦值來實現:
Linux下驅動程序總是先調用module_init(),因此LCD初始化通過調用module_init(sldl3xxxfb_init)來實現。sldl3xxxfb_init初始化函數部分代碼如下:
首先對LCD的背光燈進行點亮。LCD顯示是一種被動的顯示模式,不能發(fā)光,只能依靠控制透射或反射周圍環(huán)境的光來達到顯示的目的。因此,必須通過寫寄存器用高電平指示對LCD加3.2 V電壓來實現背光燈的點亮。其函數的部分代碼如下:
系統(tǒng)采用的彩色LCD最佳分辨率是800×600,但通過前面對結構Struct fb_var_screeninfo的賦值并不能真正設定其分辨率。因為結構Struct fb_var_screeninfo的值只是作為一個顯示記錄來用,必須通過設定寄存器的值才能達到需要的分辨率。本系統(tǒng)在S1D13506.h頭文件里用一個數組對寄存器的設置作了一個預定義,然后在初始化函數里利用sldReg和sldValue兩個實參寫入,從而設定了寄存器的值。
評論