Đồ á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.

pdf19 trang | Chia sẻ: lylyngoc | Lượt xem: 2731 | Lượt tải: 3download
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.̀ ̉ 3Phâ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:

  • pdfngoc4_6149.pdf
Luận văn liên quan