Sunday, April 17, 2011

Embedded System 修課紀錄(5)

延續 Embedded System 修課紀錄(3) 重編 uImage 的操作,這是實驗要啟動 TFT-LCD 並且執行視窗程式,將其呈現在觸碰螢幕之上。

檔案準備

mt-linux-2.6.15.3.tar.gz
linux-2.6.15.3-creator-pxa270.patch

//驗證結果的程式
access_fb.cpp
皆放在 /home/sn/lab6_project/ 底下

重新編譯 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
  • 製作組譯檔
cd /home/sn/lab6_project/microtime/linux
make creator_full_pxa270_defconfig
make creator_pxa270_defconfig
make menuconfig
[Device Driver] > (*)UCB1400 Touchscreen support
[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 可以找到

將 Linux Kernel 燒到板子

如同 Embedded System 修課紀錄(3) 這裡略過。

驗證燒錄結果並執行範例檔
  • 編譯範例程式
// 輸出執行檔為: test_fb
arm-unknown-linux-gnu-g++ -o test_fb access_fb.cpp
  • 傳送到 PXA270 板子上
簡易說明,編譯的環境是 Virtualbox 模擬的 Ubuntu 環境。而 TFTP 是放在 Windows XP (C:\\tftp)底下,並且設定檔案的位置 (Path)。因此,linux kernel(uImage)以及 test_fb 的檔案都必須藉由 windows 的 tftp 傳送到開發版運作。然而兩個檔案要進去的 Level 不同,燒錄 Kernel 要到 Bootloader,所以不要讓其載入OS,普通檔案函示(test_fb)則進入 OS (linux)在進行以下操作即可。

// 最後一個參數是 TFTP Server IP 位址
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.] 楊教授課程授課資料

No comments:

Post a Comment