Đồ án Nghiên cứu hệ thống nhúng và xây dựng ứng dụng giao tiếp webcam
Là máy tính Linux, có nhiệm vụ biên dịch source code tư các Developer bằng cách sử
dụng cross-compiler (toolchains). Do host có chạy SSH server, các Developer có thể sử
dụng console của host thông qua SSH client. Ngoài ra TFTP server có vai trò lưu trữ
các file ảnh sau khi đã đã biên dịch xong, sẵn sàng cho việc boot, chạy chương trình ứng
dụng trên target.
19 trang |
Chia sẻ: lylyngoc | Lượt xem: 2722 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Đồ án Nghiên cứu hệ thống nhúng và xây dựng ứng dụng giao tiếp webcam, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1 B GIÁO D C VÀ ĐÀO T OỘ Ụ Ạ
TR NG Đ I H CƯỜ Ạ Ọ S PH M K THU T TP. HCMƯ Ạ Ỹ Ậ
KHOA ĐI N-ĐI N TỆ Ệ Ử
BÔ MÔN ĐIÊN T VIÊN THÔNG̣ ̣ Ử ̃
------------------------
ĐÔ AN TÔT NGHIÊP̀ ́ ́ ̣
ĐÊ TAÌ ̀ :
NGHIÊN C U H TH NGỨ Ệ Ố
NHÚNG VÀ XÂY D NG NGỰ Ứ
DUNG GIAO TI P WEBCAṂ Ế
GVHH: THÂY TR NG NGOC S Ǹ ƯƠ ̣ Ơ
SVTH: ĐAO THANH MAI MSSV: 06119058̀
TR NG XUÂN KIM MSSV: 06119023ƯƠ
Tp. H Chí Minh - Tháng 7/2010ồ
2TOM TĂT NÔI DUNG ĐÊ TAI VA BAO CAÓ ́ ̣ ̀ ̀ ̀ ́ ́
I. TOM TĂT NÔI DUNG ĐÊ TAÍ ́ ̣ ̀ ̀
Đô an tôt nghiêp “nghiên c u hê thông nhung va xây d ng ng̀ ́ ́ ̣ ư ̣ ́ ́ ̀ ư ư
dung giao tiêp webcam” la đê tai nghiên c u vê môt linh v c m ị ́ ̀ ̀ ̀ ư ̀ ̣ ̃ ư ơ
cua Viêt Nam. Đo la lâp trinh nhung̉ ̣ ́ ̀ ̣ ̀ ́
Qua th c tê va khoa hoc ngay cang phat triên thi nhom đê tai tôtư ́ ̀ ̣ ̀ ̀ ́ ̉ ̀ ́ ̀ ̀ ́
nghiêp đa quyêt đinh chon đê tai h ng vê lâp trinh nhung nay đệ ̉ ́ ̣ ̣ ̀ ̀ ươ ̀ ̣ ̀ ́ ̀ ̉
tim hiêu vê cac kiên th c nên, kiên th c c ban vê lâp trinh nhung,̀ ̉ ̀ ́ ́ ư ̀ ́ ư ơ ̉ ̀ ̣ ̀ ́
hê thông nhung, vi điêu khiên nhung va hê điêu hanh ma nguôn ṃ ́ ́ ̀ ̉ ́ ̀ ̣ ̀ ̀ ̃ ̀ ơ
la linux.̀
Nôi dung đê tai co hai phân:̣ ̀ ̀ ́ ̀
Phân I la nghiên c u vê ly thuyêt̀ ̀ ứ ̀ ́ ́
phân ly thuyêt co nh ng nôi dung sau :̀ ́ ́ ́ ư ̣
- Nghiên c u vê thông nhung bao gôm nghiên c u nh ngư ̀ ́ ́ ̀ ư ư
đăt tr ng, đăt điêm kiên truc phân mêm hê thông nhung,̣ ư ̣ ̉ ́ ̀ ̀ ̣ ́ ́
- Nghiên c u vê hê điêu hanh th i gian th c , phân tich quyư ̀ ̣ ̀ ̀ ơ ư ́
trinh x ly cua hê điêu hanh̀ ư ́ ̉ ̣ ̀ ̀
- Phân tich môt hê thông nhung chay hê điêu hanh th i giań ̣ ̣ ́ ́ ̣ ̣ ̀ ̀ ơ
th cư
- Gi i thiêu kiên th c c ban vê hê điêu hanh linuxơ ̣ ́ ư ơ ̉ ̀ ̣ ̀ ̀
- Nghiên c u vê vi điêu khiên arm la vi điêu khiên ngư ̀ ̀ ̉ ̀ ̀ ̉ ư
dung nhiêu nhât trong hê thông nhung.̣ ̀ ́ ̣ ́ ́
- Nghiên c u cac tinh năng , câu truc, kiên truc va uư ́ ́ ́ ́ ́ ́ ̀ ư
nh c điêm cua vi điêu khiên arm so v i cac dong viươ ̉ ̉ ̀ ̉ ơ ́ ́
điêu khiên khac̀ ̉ ́
- Va nhom tiên hanh nghiên c u va biên dich lai nhân linux̀ ́ ́ ̀ ư ̀ ̣ ̣
đê chay trên board phat triên hê thông nhung, chay vỉ ̣ ́ ̉ ̣ ́ ́ ̣
điêu khiên arm AT91SAM9260.̀ ̉
3Phân 2 la phân xây d ng cac ng dung̀ ̀ ̀ ự ́ ứ ̣
chay trên board phat triên hê thông̣ ́ ̉ ̣ ́
nhunǵ
- Tr c tiên la nghiên c u cai đăt cho board phat triên hêươ ̀ ư ̀ ̣ ́ ̉ ̣
thông nhung KM9260. T viêc nghiên c u qua trinh hoăt́ ́ ư ̣ ư ́ ̀ ̣
đông chay hê điêu hanh nhung ma nhom tiên hanh cai đăṭ ̣ ̣ ̀ ̀ ́ ̀ ́ ́ ̀ ̀ ̣
hê điêu hanh cho board.̣ ̀ ̀
- Sau đo phat triên cac ng dung mô phong vê giao tiêp , lâṕ ́ ̉ ́ ư ̣ ̉ ̀ ́ ̣
trinh C/C++ . lâp trinh I/O , lâp trinh driver ̀ ̣ ̀ ̣ ̀
- ng dung nhom đô an lam gôm co xây d ng board phatƯ ̣ ́ ̀ ́ ̀ ̀ ́ ư ́
triên nhung chay tâp tin multimedia ̉ ́ ̣ ̣
- Trong đo gôm chay file audio phat nhać ̀ ̣ ́ ̣
- Giao tiêp v i Webcam USB truyên va nhân anh đê nǵ ơ ̀ ̀ ̣ ̉ ̉ ư
dung vao x ly anḥ ̀ ư ́ ̉
- Giao tiêp v i cac thiêt bi khac nh MOUSE, nut nhân , led́ ơ ́ ́ ̣ ́ ư ́ ́
đ n.ơ
Đo la nh ng nôi dung c ban ma nhom lam đô an tôt́ ̀ ư ̣ ơ ̉ ̀ ́ ̀ ̀ ́ ́
nghiêp đa hoan thanh . măt du con han chê vê kiên th c̣ ̉ ̀ ̀ ̣ ̀ ̀ ̣ ́ ̀ ́ ư
va kha năng nhiên c u nh ng nhom đa cô găn hoaǹ ̉ ư ư ́ ̉ ́ ́ ̀
thanh va xây d ng nhiêu ng dung mô phong đê co thề ̀ ư ̀ ư ̣ ̉ ̉ ́ ̉
hiêu sâu vê lâp trinh nhung va vi điêu khiên nhung.̉ ̀ ̣ ̀ ́ ̀ ̀ ̉ ́
II.TOM TĂT NÔI DUNG BAO CAÓ ́ ̣ ́ ́
Lý thuy t v các v n đ nghiên c u trong đ ánế ề ấ ề ứ ồ
Mô ph ng ch y t p tin mp3ỏ ạ ậ
Mô ph ng ch y ng d ng giao ti p webcamỏ ạ ứ ụ ế
PHU LUC XÂY D NG CAC H NG DÂN TH C HIÊṆ ̣ Ự ́ ƯƠ ̃ Ự ̣
TRÊN BOARD PHAT TRIÊN HÊ THÔNG NHUNǴ ̉ ̣ ́ ́
41 .BOOT LOADER CHO KM9260
Boot loader có vai trò quan tr ngọ trong hệ th ngố nhúng. Tùy theo lo iạ MPU khác
nhau mà ta có cơ ch , trình t bootế ư khách nhau. Đ iố v iơ AT91SAM9260, Khi c pấ
nguồn, AT9260 ch yạ chương trình boot bên trong ROM (đươc xây d ngư s n trong quáẵ
trình s n xu t chíả ấ p). Hình sau thể hi n ệ l u đ ROM boot ư ồ c a AT91SAM9260:ủ
5Hình: Trình t boot c aư ủ MPU
AT91SAM9260.
B1> Chương trình ch y v iạ ơ bộ dao đ ngộ n i,ộ ho cặ v iơ bộ dao đ ngộ th chạ anh.
B2> Ki mể tra sư t nồ t iạ c aủ ch ngươ trình AT91BootStrap trong SPI serial
dataflash device (NPCS0) hay không, n u ế t nồ t i,ạ MPU th cư hi nệ chép mã th cư thi c aủ
AT91BootStrap tư SPI serial dataflash device vào SRAM n iộ c a MPU, sauủ đó th c thiư
l nh nh y đ n đệ ả ế ịa chỉ đ uầ tiên c a SRAM đủ ể th cư thi chương trình AT91BootStrap.
N u không ế t n ồ t iạ chương trình boostrap trong SPI serial dataflash device, MPU th cư
hi n bệ ươc B3 sau đây.
B3> Ki mể tra sư t nồ t iạ c aủ chương trình AT91BootStrap trong SPI serial dataflash
device (NPCS1) hay không, n u ế t nồ t i,ạ MPU th cư hi nệ chép mã th cư thi c aủ
AT91BootStrap t SPI serial dataflash device ư vào SRAM n i c a MPU, sau đó th c thiộ ủ ư
l nh nh y đ n đệ ả ế ịa chỉ đ uầ tiên c a SRAM đủ ể th cư thi chương trình AT91BootStrap.
N u không ế t n ồ t iạ chương trình boostrap trong SPI serial dataflash device, MPU th cư
hi n bệ ươc B4 sau đây.
B4> Ki m ể tra s ư t nồ tại c aủ chương trình AT91BootStrap trong NAND FLASH device
hay không, n uế t n ồ tại, MPU th cư hi nệ chép mã th c thi cư ủa AT91BootStrap tư NAND
FLASH vào SRAM n iộ c aủ MPU, sau đó th c thiư l nhệ nh yả đ nế địa chỉ đ u ầ tiên c aủ
SRAM đ ể th c ư thi chương trình AT91BootStrap. N u ế không t n ồ tại chương
trình boostrap trong SPI serial dataflash device, MPU th c hi n bư ệ ươc B5 sau đây.
B5> N uế MPU nh nậ đươc ký tư bất kỳ tư bàn phím máy tính (qua c ngổ DBGU).
Ho c khi c mặ ắ cable USB vào máy tính chương trình s nh y sang SAM-BA boot.ẽ ả
Tư l uư đồ trên, ta có thể l u tr AT91BootStrap.bin theo 3 cư ư ách: SPI serial dataflash
(NPCS0 or NPCS2) hoặc l u tr trên NAND Fư ư lash. KM9260 s d ng SPI serialư ụ
dataflash (NPCS1) và NAND FLASH.
6
TRÌNH TỰ BOOT LINUX CỦ A KM9260:
Quá trình boot kernel Linux trên KM9260 đươc th cư thi qua 3 t ng,ầ hình sau biểu thị
cách ho t đạ ộng c a board:ủ
Hình : Trình t boot kernel c a KM9260.ư ủ
(1) KM9260 th cư thi ROM boot, load AT91AT91BootStrap.bin tư AT45DB041D-SU
(SPI NPCS1) vào SRAM, th c hi n ư ệ l nh nh y và tệ ả h thi ch ng trình Aư ươ T91BootStrap.
(2) KM9260 th cư hi n kh iệ ơ đ ng PLL cho system clock,ộ kh iơ đ ng SDRAM conộ troller,
load u-boot.bin tư AT45DB041D-SU t iạ offset 0x8400 vào địa chỉ 0x21F00000 c aủ
SDRAM. Sau đó th c hư i n ệ l nh nh y vào vùng SDRAM đ ệ ả ể ch y chạ ương trình U-Boot.
(3) U-Boot load kernel uImage tư nhi uề nguồn khác nhau (TFTP, NAND FLASH...)
chép vào đ aị chỉ 0x20000000 trên SDRAM, sau đó th cư hi nệ l nhệ boot hệ đi u hànhề
Linux.
72. CÀI Đ T CHO BOARD PHÁT TRI N NHÚNGặ Ể
1. T ch c ph n m m trong h th ng nhúng KM9260ổ ư ầ ề ệ ố
2. Cài đ t ch ng trình cho h th ngặ ươ ệ ố
2.1. Cài đ t BootStrap và U- boot .ặ
- BootStrap là m t ch ng trình kh i đ ng đ c n p xu ng tr c tiên cho cácộ ươ ơ ộ ươ ạ ố ươ
vi đi u khi n dòng ARM 9 c a Atmel.ề ể ủ
- BootStrap là m t module ng d ng, nó đ c s d ng đ th c hi n các ch cộ ư ụ ươ ư ụ ể ư ệ ư
năng sau:
o Kh i t o ph n c ng nh t n s xung clock, thi t l p các PIOơ ạ ầ ư ư ầ ố ế ậ
(programmable Input Output).
o Thi t l p các ngo i vi nh PIO, PCM, SDRAMC,.. ế ậ ạ ư
o Th c hi n các th c toán truy xu t v t lý các ngo i vi nh DataFlash,ư ệ ư ấ ậ ạ ư
NANDFlash, Paralell Flash..
o Đi u khi n các t p tin h th ng nh JFFS2, FAT..ề ể ậ ệ ố ư
o Th c thi các ng d ng nh ELF, Linux,ư ư ụ ư
- BootStrap có th đ c đ t trong vùng bootLoader, c th là đ c đ t trongể ươ ặ ụ ể ươ ặ
vùng DataFlash. BootStrap đ c chép lên RAM n i b i trình SAM-BA Boot.ươ ộ ơ
BootLoader th c hi n kh i t o vi x lý (PLL, PIO, SDRAMC, SPI).ư ệ ơ ạ ư
- BootStrap th c hi n load U-boot t DataFlash lên SRAM và tr đ n th cư ệ ư ỏ ế ư
hi n ch ng trình U-Boot.ệ ươ
- Cài đ t BootStrap và u-boot th c hi n theo h ng d n trong tài li u kèm theoặ ư ệ ươ ẫ ệ
board.
- U-boot (universal bootLoader) là m t t p mã ngu n m , h tr bootLoaderộ ậ ồ ơ ổ ơ
cho nhi u ki n trúc n n khác nhau. U-boot h tr các l nh t ng tác, cácề ế ề ổ ơ ệ ươ
bi n môi tr ng, các l nh th c thi và boot h th ng t các thi t b media bênế ươ ệ ư ệ ố ư ệ ị
BootStrap
U-boot
Kernel
File System
8ngoài. U-boot h tr nhi u l ai CPU và các h CPU thông d ng hi n nay. U-ổ ơ ề ọ ọ ụ ệ
boot h tr các board phát tri n trên n n các vi x lý thông d ng hi n nay.ổ ọ ể ề ư ụ ệ
- U-boot th c hi n c u hình các kh i ph n c ng trong m t board và đ t chúngư ệ ấ ố ầ ư ộ ặ
vào tr ng thái ho t đ ng. Nó có th load và th c th h đi u hành m t cáchạ ạ ộ ể ư ị ệ ề ộ
t đ ng (auto-boot) ho c ng c l i nó cho phép ng i dùng kh i đ ng hư ộ ặ ươ ạ ươ ơ ộ ệ
đi u hành thông qua các l nh giao ti p mà u-boot h tr . T p l nh chu n c aề ệ ế ổ ơ ậ ệ ẩ ủ
u-boot cung c p kh năng cho phép ng i s d ng thao tác trên b nh ,ấ ả ươ ư ụ ộ ơ
m ng và nhi u thao tác khác khi h th ng kh i đ ng.ạ ề ệ ố ơ ộ
- Thông th ng u-boot đ c đ t trong phân vùng đ u tiên c a Flash, b t đ uươ ươ ặ ầ ủ ắ ầ
t sector hay block nào đ c đ nh nghĩa b i vi x lý. U-boot kh i t o CPU vàư ươ ị ơ ư ơ ạ
m t vài ph n c ng trên board, t o m t vài c u trúc d li u đ cho kernel sộ ầ ư ạ ộ ấ ư ệ ể ư
d ng và load nó lên phân vùng đ u tiên c a b nh .ụ ầ ủ ộ ơ
- Khi quy n đi u khi n đ c chuy n đ n cho u-boot, nó s kh i t a các ng tề ề ể ươ ể ế ẽ ơ ọ ắ
và các thi t b ngo i vi. Sau đó u-boot ch nh p các l nh t ng i dùng. N uế ị ạ ơ ậ ệ ư ươ ế
u-boot nh n đ c l nh boot nh c a kernel ho c n u nó đ c s d ng đậ ươ ệ ả ủ ặ ế ươ ư ụ ể
boot kernel tr c ti p thì u-boot s gi i nén kernel image, load kernel lên bư ế ẽ ả ộ
nh và chuy n đi u khi n đ n kernel. Kernel s th c thi mà không có sơ ể ề ể ế ẽ ư ư
t ng tác v i u-boot.ươ ơ
- U-boot cung c p các hàm chu n đ hi u ch nh qúa trình kh i đ ng và kh iấ ẩ ể ệ ỉ ơ ộ ơ
t o kernel. Th ng thì nó cung c p các thao tác d i d ng các l nhạ ươ ấ ươ ạ ệ
(command-line).
- C u trúc th m c c a U-boot.ấ ư ụ ủ
-
2.2. Các thao tác trên u-boot
- Sau khi U-boot đã đ c load vào h th ng. Bootstrap th c thi, kh i t o cácươ ệ ố ư ơ ạ
thông s cho CPU, load uboot và th c thi uboot. Khi uboot th c thi, u-bootố ư ư
command cho phép ng i s d ng có th giao ti p v i h th ng thông quaươ ư ụ ể ế ơ ệ ố
các l nh u-boot h tr .ệ ổ ơ
- Tr c h t c n thi t l p các thông s môi tr ng cho h th ng ươ ế ầ ế ậ ố ươ ệ ố
- Đ thi t l p các thông s môi tr ng chúng ta s d ng command setenv nhể ế ậ ố ươ ư ụ ư
sau
o Thi t l p đ a ch IP cho board: setenv ipaddr ế ậ ị ỉ ị ỉ
o Thi t l p đ a ch IP cho host : setenv serverip ế ậ ị ỉ ị ỉ
o Thi t l p đ a ch ethernet(MAC): setenv ethaddr ế ậ ị ỉ
9o Thi t l p m t n : setenv netmask ế ậ ặ ạ
o L u l i các bi n môi tr ng vào dataflash : save ư ạ ế ươ
- Chu n b kernel cho h th ngẩ ị ệ ố
- T i command line c a uboot:ạ ủ
o Xóa vùng nh NAND FLASH đ chu n b cho kernel:ơ ể ẩ ị
nand erase offset length
nand erase 0x0 0x200000
l nh trên cho phép xóa 2 Mbyte b nh Nand Flash đ a chệ ộ ơ ơ ị ỉ
offset là 0. (vùng nh đ u tiên c a NandFlash)ơ ầ ủ
o Chép uImage t máy tính vào SRAM đ a ch 0x20000000ư ơ ị ỉ
Tftp 0x20000000 uImage
Đ có th chép thông qua giao th c tftp thì trên máy tính hostể ể ư
ph i cài đ t và ch y d ch v tftp, file uImage đ c l u trongả ặ ạ ị ụ ươ ư
th c m c c a tftp server. ư ụ ủ
U-boot s dò trong bi n môi tr ng xem đ a ch c a server làẽ ế ươ ị ỉ ủ
bao nhiêu và nó s lên sever này tìm file có tên uImage và chépẽ
vào b nh SRAM t đ a ch 0x20000000.ộ ơ ư ị ỉ
o Th c thi kernel ư
Bootm 0x20000000
H th ng s chuy n đ n đ a ch SRAM 0x20000000 đ bootệ ố ẽ ể ế ị ỉ ể
Umage
Trong tr ng h p này l n sau khi m đi n n i dung trên SRAMươ ơ ầ ơ ệ ộ
s m t đi. Đ có th s d ng uImage cho các l n kh i đ ngẽ ấ ể ể ư ụ ầ ơ ộ
sau chúng ta c n chep uImage lên NandFlaskầ
Nand write 0x20000000 0x0 0x200000
Chép 2 Mbyte t đ a ch SRAM 0x20000000 lên nandflash có đ aư ị ỉ ị
ch offset là 0 (vùng đ u tiên c a NandFlash)ỉ ầ ủ
Các l n kh i đ ng sau s chép uImage t Nanflash xu ngầ ơ ộ ẽ ư ố
SRAM và th c thi nó trên SRAMư
Nand read 0x20000000 0x0 0x200000
B n chú ý các thao tác chép uImage t Nandflash xu ng SRAMạ ư ố
và th c thi nó đ c thi t l p trong bi n môi tr ng uboot đư ươ ế ậ ế ươ ể
th c hi n m t cách t đ ng.ư ệ ộ ư ộ
o File system
Đ board có th h at đ ng thì ph n cu i cùng trong h th ngể ể ọ ộ ầ ố ệ ố
ph n m m nhúng làm File System. ầ ề
Đ i v i board KM9260 ho c các board t ng t s d ng chipố ơ ặ ươ ư ư ụ
c a Atmel có th s d ng Angstrom hay debian.ủ ể ư ụ
Vi c cài đ t file system theo tài li u kèm theo không đ c gi iệ ặ ệ ươ ơ
thi u đây.ệ ơ
3. Xây d ng và phát tri n h th ngư ể ệ ố
10
3.1. bootstrap : boostrap do nhà s n xu t h tr , download bootstrap.bin t i trangả ấ ổ ơ ạ
c a atmel.comủ
3.2. u-boot: uboot có nhi u phiên b n, tuy nhiên t phiên b n 1.3.4 tr đi thì m iề ả ư ả ơ ơ
h tr board AT91SAM9260.ổ ơ
- Sau khi download u-boot v , chép nó vào m t th m c nào đó trong máy tínhề ộ ư ụ
cài h đi u hành linux.ệ ề
- Vi c chép vào máy tính linux có th đ c th c hi n thông qua nhi u cách víệ ể ươ ư ệ ề
d b n có th dowanload tr c ti p trên máy tính Linux có n i m ng internet,ụ ạ ể ư ế ố ạ
ho c t máy tính Windows XP sao đó chép sang máy tính Linux th ng quaặ ư ố
d ch v truy n file c a SSH server – client, ho c có th chép b ng các thi tị ụ ề ủ ặ ể ằ ế
b l u tr nh USB..ị ư ư ư
- Biên d ch uboot cho arm không s d ng trình biên d ch gcc có s n trên máyị ư ụ ị ẵ
tính cài linux. Tr c h t b n c n cài gói ph n m m biên d ch arm-linux-gcc.ươ ế ạ ầ ầ ề ị
- Gói ph n m m biên d ch b n có th t i v t trên m ng.ầ ề ị ạ ể ả ề ư ạ
- Tr c khi biên d ch, c n thi t l p bi n môi tr ng v đ ng d n cho trìnhươ ị ầ ế ậ ế ươ ề ươ ẫ
biên d ch, ví d nh sau ị ụ ư
- PATH=/usr/local/arm/3.4/bin:$PATH
- Trong đó th m c PATH=/usr/local/arm/3.4/bin ch a các trình biên d ch như ụ ư ị ư
arm-linux-gcc….
- Biên d ch uboot cho h th ng ị ệ ố
o Make clean : xóa h t các c u hình biên d ch tr c đo ế ấ ị ươ
o Make at91sam9260ek_config : khai báo biên d ch uboot cho h th ngị ệ ố
board at91sam9260ek
o Make all
- N u quá trình biên d ch thành công trong th m c u-boot-1.3.4 s t n t i fileế ị ư ụ ẽ ồ ạ
u-boot.bin
- M t đi u chú ý là đây chúng ta s d ng make at91sam9260ek_config vìộ ề ơ ư ụ
board KM9260 co thi t k g n gi ng board chu n at91sam9260ek, nh ng doế ế ầ ố ẩ ư
các file c u hình cho board KM9260 ch a update lên nên t m th i có th sấ ư ạ ơ ể ư
d ng at91sam9260 đ biên d ch cho h th ng. Chính vè đi u đó mà khi t o raụ ể ị ệ ố ề ạ
uboot.bin s có m t s module không ho t đ ng đ c. ẽ ộ ố ạ ộ ươ
- Đ kh c ph c tr ng h p trên tr c khi biên d ch chúng ta c n s a m t sể ắ ụ ươ ơ ươ ị ầ ư ộ ố
c u hình trong t p mã ngu n uboot1.3.4.ấ ậ ồ
- Biên d ch l i uboot.ị ạ
3. PHÁT TRI N LINUX TRÊN KM9260Ể
G IƠ I THIỆU MỘ T S TOOL H U ÍCH:Ố Ữ
Putty.exe (WinXP):
Chương trình ch yạ cho console c aủ hệ th ngố nhúng hỗ trơ theo 2 ki uể k tế n iố RS232
và qua đương ethernet.
11
Connection type: Raw, Telnet, Rlogin, SSH, Serial.
Có th ể s ư d ng ụ putty làm terminal cho console chính của board KM9260. Ở
đây, baudrate của c ngổ COM đươc set ơ 115200. N uế máy Linux đang ch yạ ssh
server và đươc n iố trong m ngạ LAN, ta có thể s d ngư ụ console c a ủ máy Linux đó
thông qua putty b ng cách ằ s d ng kư ụ i u k t n i SSH nh hình trên.ể ế ố ư
Win SCP.exe ( Win XP):
Chương trình cho phép ta dễ dàng thao tác file c aủ máy Linux trên máy WinXP,
giao di nệ tương tư WinCommander, ta có thể chép file ra-vào tư máy WinXP v iơ máy
Linux. Đ s d ng chể ư ụ ương trình này, trên máy Linux c n ph i có ssh server.ầ ả
12
Hình : Đăng nh pậ vào WinSCP
Thông tin đăng nh p:ậ
Host name : Địa chỉ IP c a ủ máy Linux : 192.168.3.29
User name : root
Password : thanhmai06119058
Sau khi đi n thông tin, ề ấn nút "Save" và th c hiư ện k t n i.ế ố
13
Hình : Thao tác file trên WinSCP.
Ta có thể drop, drap file vào-ra tư màn hình destop WinXP để th cư hi nệ sao l uư file
v i ơ máy Linux.
Cross Toolchians (Linux):
Là trình biên dịch cho AT91SAM, ch yạ trên môi trương Linux. Ph nầ sau hương d nẫ
cách cài đ t toolchains trên ặ máy host Linux PC:
Trươc tiên ta t o th ạ ư mục làm vi c nhệ ư
sau:
$ mkdir -p /home/km9260-project/tool
Chép file arm-2007q3.tar.bz2 vào thư m cụ v aư t oạ ơ trên và th cư hi nệ gi iả nén gói
tarball c a toolchains:ủ
$ cd /home/km9260-project/tool
$ tar –jcvf arm-2007q3.tar.bz2
14
Đ có th sể ể ư d ng toolchains, ta khai báo bi n ụ ế môi trương như l nh sau:ệ
$ export PATH=$PATH:/home/km9260-project/tool/arm-2007q3/bin
Để ý r ngằ trong thư mục “arm-2007q3/bin” chưa nh ng fileư c nầ thi tế ph cụ vụ cho
vi c biênệ d chị cho KM9260, có thể xem tên các file này b ngằ cách dùng lệnh “ls”.
Các file này đươc đặt tên theo quy lu t. Prefix bao g mậ ồ chu i ký t “arỗ ư m-none-linux-
gnueabi-“
Và các suffix bao gồm: gcc, ld, as …
Ta có thể ki m ể tra vi cệ export bi nế môi trương PATH thành công hay không b ngằ cách
type l nh shell nh saệ ư u:
$ arm-none-linux-gnueabi-gcc
$ arm-none-linux-gnueabi-gcc: no input files
N uế có xu tấ hi nệ thông báo “no input files” thì thao tác export trên thành công, n uế
có thông báo “command not found” có nghĩa là ta ch a export đúng đư ương d n. Chú ýẫ
r ng bằ ươc export PATH r tấ quan tr ng,ọ m iỗ l nầ khơi đ ngộ máy Linux ho cặ sư d ngụ
console khác ta bắt bu c ph i exộ ả port l i đ đạ ể ảm b o toochains có tả h ể ho t đ ng đạ ộ ươc.
MÔ HÌNH MÔI TRƯỜ NG PHÁT TRIỂ N LINUX CHO KM9260:
Môi trương phát tri n Linux cho KM9260 có tể h áp d ngể ụ theo m t s ộ ố mô hình sau:
Mô hình cho nhi u ề me mber:
LAN SSH server
TFTP client
Developer
SSH server
TFTP server
Toolchains
LAN
UART
LAN
Target
Workstation
LAN
LAN
Developer
Developer
Developer:
Các thành viên có thể coding trên máy tính ch yạ WinXP ho cặ Linux. Các máy này có
th k tể ế n iố v iơ Workstation thông qua đương Ethernet. Việc biên dịch source có
thể th c hư i n trên Workstation, ệ và các máy Developer có th truy c pể ậ console, truy
xu t ấ file v i ơ Workstation ho c KM9260 thông qua giao th cặ ư c a SSH server.ủ
Workstation (host) :
Là máy tính Linux, có nhi m vệ ụ biên dịch source code tư các Developer b ngằ cách sư
d ngụ cross-compiler (toolchains). Do host có ch yạ SSH server, các Developer có th sể ư
d ng console c a host thông qua SSH client. Ngoài ra TFTP server có vai trò l u tụ ủ ư rư
các file nh sau khiả đã biên dịch xong, s n sang choẵ vi c boot, ch yệ ạ chương trình ngư
dụng trên target.
Target
Là đích mà chúng ta cần phát tri nể đ n.ế TFTP client trên target có nhi mệ vụ
download các file ảnh tư TFTP server (ơ host) và boot kernel thông qua bootloader (U-
Boot, RedBoot…). Console chính c aủ target đươc n iố v i ơ máy host (ho c làặ
Developer) thông qua đương UART.
CÀI Đ T DEBIAN CHO KM9260:Ặ
Đ iố v iơ user m iơ làm quen v iơ embedded Linux, thì Debian rootfs là l aư ch nọ hoàn h o,ả
do tính uư vi tệ về s ố lương l nơ gói ph nầ mềm mà Debian support, cơ chế qu nả lý các
gói ph n ầ mềm ch tặ chẽ và hệ th ng, cố ộng đ ng phátồ tri n r ng. Debian rootể ộ fs có dung
lư ng ơ khá l n, vì thơ ế ta nên dùng thẻ nhơ có dung lương 2GB trơ lên. Ph nầ này chỉ
cách cài đ t và boot Debian trên KM9260 s d ng th nh ặ ư ụ ẻ ơ microSD.
Trươc tiên ta chép “Debian_km9260_rootfs_121209.tar.bz2” vào máy PC Linux, gắn
đ uầ
đ c th ọ ẻ microSD vào. Gi s khi c m vào ả ư ắ máy PC Linux có thi t ế bị m i có tên g iơ ọ
là
/dev/sdb1, trươc tiên ta format card microSD theo định d ng ext2, và ạ mount vào thư
m cụ
“mnt/rootfs” ch ngẳ
h n.ạ
$ mkfs.ext2 /dev/sdb1
$ mkdir –p /mnt/rootfs
$ mount /dev/sdb1 /mnt/rootfs
Copy gói tarball Debian rootfs vào thư m cụ mnt và ti nế hành gi i nén.ả
$ cp Debian_km9260_rootfs_121209.tar.bz2 /mnt
$ cd /mnt/rootfs
$ tar –jxvf ../Debian_km9260_rootfs_121209.tar.bz2
Sau khi k tế thúc gi iả nén ta đã hoàn t tấ vi cệ chép Debian rootfs vào thẻ nhơ
microSD. Ph iả đ mả b oả r ngằ trong thư m cụ gốc c aủ microSD ph iả t nồ t iạ nh ngư
thư m cụ cơ b n c aả ủ Linux rootfs ví dụ nh :ư bin, dev, home, lib, etc… Đi uề này th cư
hi n b ngệ ằ cách dùng l nhệ “ls” để ki m ể tra, trươc khi tháo microSD ra kh iỏ máy Linux
PC ta nên unmount th ư m c /ụ mnt/rootfs trên:
$ ls /mnt/rootfs
$ umount /mnt/rootfs
Sau khi hoàn t t các ấ bươc trên, ta có th ti n hành boot thể ế ư
Debian:
- G nắ microSD vào socket trên KM9260 (chú ý th cư hi nệ tháo gỡ n pắ đ yậ
theo chi u ề mũi lên kéo lên-xu ng đố ươc ghi trên socket microSD c a KM9260).ủ
- K tế n iố c ngổ COM (115200) v iơ máy tính, dùng putty.exe ơ mode serial
làm console chính.
- B t công t c ngu n, n nút reset đ board KM9260 có thậ ắ ồ ấ ể ể vào màn hình U-Boot.
- Khai báo biến môi trương bootargs thông qua lệnh sau:
U-BOOT> setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootdelay=5
U-BOOT> save
n nút resetẤ đ boot h th ng, thông tin đang nhể ệ ố ập nh sau:ư
Username: root
Password: thanhmai06119058
C u hình ấ mạ ng cho Debian:
Có th c u hình ể ấ m ng cho Debian thông qua vạ i c edit file interfacesệ
$ nano /etc/network/interfaces
Dùng DHCP:
# The primary network interface
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp
pre-up ifconfig eth0 hw ether AA:AA:AA:AA:AA:AA
Trong đó AA:AA:AA:AA:AA:AA là địa chỉ MAC address.
Ho c dùng IP tặ ĩ nh:
# Use for home network
auto eth0
iface eth0 inet static address
192.168.1.35 netmask
255.255.255.0 network
192.168.1.1 broadcast
192.168.1.255 gateway
192.168.1.1
Khai báo nameserver:
$ nano /etc/resolv.conf
nameserver 192.168.1.1
L u file b ng cách n CTR-O, Enter, CTR-Xư ằ ấ
Các file đính kèm theo tài liệu này:
- ngoc4_6149.pdf