Embedded System 修課紀錄(5)
延續 Embedded System 修課紀錄(3) 重編 uImage 的操作,這是實驗要啟動 TFT-LCD 並且執行視窗程式,將其呈現在觸碰螢幕之上。
檔案準備
重新編譯 Linux Kernel
[Graphics support] > (*)PXA LCD framebuffer support > [LCD Type] > (*)MTLCD-0353224 3.5 inches (Portrait)
儲存後離開
將 Linux Kernel 燒到板子
如同 Embedded System 修課紀錄(3) 這裡略過。
驗證燒錄結果並執行範例檔
修改範例程式
Reference
[1.] 楊教授課程授課資料
檔案準備
mt-linux-2.6.15.3.tar.gz
linux-2.6.15.3-creator-pxa270.patch
//驗證結果的程式
access_fb.cpp
皆放在 /home/sn/lab6_project/ 底下linux-2.6.15.3-creator-pxa270.patch
//驗證結果的程式
access_fb.cpp
重新編譯 Linux Kernel
- 利用前一次實驗的 Toolchain,並且加入環境變數
/home/sn/lab4_project//opt/microtime/pro/devkit/arm/pxa270/gcc-4.0.2-glibc-2.3.3/arm-unknown-linux-gnu/bin/:$PATH
- 核心和驅動程式解壓縮
cd /home/sn/lab6_project/
// 解壓縮linuxkernelsource
tar -zxvfmt-linux-2.6.15.3.tar.gz
// Patch
cp linux-2.6.15.3-creator-pxa270.patch microtime/pro/devkit/lsp/create-pxa270/
cd microtime/pro/devkit/lsp/create-pxa270
patch -p0 < linux-2.6.15.3-creator-pxa270.patch cd /home/sn/lab6_project/microtime ./pxa270.sh
// 解壓縮linuxkernelsource
tar -zxvfmt-linux-2.6.15.3.tar.gz
// Patch
cp linux-2.6.15.3-creator-pxa270.patch microtime/pro/devkit/lsp/create-pxa270/
cd microtime/pro/devkit/lsp/create-pxa270
patch -p0 < linux-2.6.15.3-creator-pxa270.patch cd /home/sn/lab6_project/microtime ./pxa270.sh
- 製作組譯檔
cd /home/sn/lab6_project/microtime/linux
make creator_full_pxa270_defconfig
make creator_pxa270_defconfig
make menuconfig
[Device Driver] > (*)UCB1400 Touchscreen supportmake creator_full_pxa270_defconfig
make creator_pxa270_defconfig
make menuconfig
[Graphics support] > (*)PXA LCD framebuffer support > [LCD Type] > (*)MTLCD-0353224 3.5 inches (Portrait)
儲存後離開
- 製作 uImage
cd /home/sn/lab6_project/microtime/linux
make uImage
成功後,在 /home/sn/lab6_project/microtime/linux/arch/arm/boot 可以找到make uImage
將 Linux Kernel 燒到板子
如同 Embedded System 修課紀錄(3) 這裡略過。
驗證燒錄結果並執行範例檔
- 編譯範例程式
// 輸出執行檔為: test_fb
arm-unknown-linux-gnu-g++ -o test_fb access_fb.cpp
arm-unknown-linux-gnu-g++ -o test_fb access_fb.cpp
- 傳送到 PXA270 板子上
// 最後一個參數是 TFTP Server IP 位址
tftp -g -r test_fb 192.168.0.10
tftp -g -r test_fb 192.168.0.10
修改範例程式
int pixel_loc, location; for(pixel_loc=0; pixel_loc < screensize; pixel_loc++){ *(fb_address + pixel_loc) = 255; } int x,y; location = 0; for (y = 20; y < 40; y++){ location = (fix_info.line_length * y) + 50; for (x = 50; x < 100; x++){ *(fb_address + location + 0) = 0x00; *(fb_address + location + 1) = 0xf8; location += (var_info.bits_per_pixel / 8); } }大意上是,清空螢幕變成白色,在畫上紅色矩形。
Reference
[1.] 楊教授課程授課資料
Comments
Post a Comment