Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 138 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
138
Dung lượng
3,54 MB
Nội dung
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ KHOA CÔNG NGHỆ THÔNG TIN CHUYÊN NGHÀNH MẠNG-MÁY TÍNH ……… Y Z……… KHÓA LUẬN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU LINUX TRÊN HỆ THỐNG NHÚNG VÀ ỨNG DỤNG GVHD:THS HUỲNH HỮU THUẬN SVTH: TRẦN QUANG THUẬN 104102130 PHAN BÁ MINH 103102110 TP Hồ Chí Minh-Tháng 3/2008 Lời cảm ơn Đầu tiên chúng em xin gửi lời cảm ơn sâu sắc đến Ban giám hiệu trường Đại học Kỹ Thuật Công Nghệ,Khoa Công Nghệ Thông Tin tận tình giảng dạy, truyền đạt cho chúng em kiến thức quý báu Bên cạnh đó, quý thầy cô tạo cho chúng em điều kiện tốt học tập rèn luyện nhân cách suốt năm học vừa qua Chúng em xin gửi lời biết ơn đặc biệt chân thành đến thầy Th.s Huỳnh Hữu Thuận hướng dẫn tận tình quan tâm chu chúng em hoàn thành đề tài cách tốt đẹp Chúng xin gửi đến bố mẹ chúng tình cảm lòng tri ân tận đáy lòng Bố mẹ bên chúng để động viên giúp đỡ chúng mặt giai đoạn khó khăn thực đề tài Và cuối xin gửi lời cảm ơn đến tất bạn bè khoa giúp đỡ tình cảm bạn năm tháng nơi giảng đường đại học thân yêu Sinh viên thực Trần Quang Thuận,Phan Bá Minh Lời nói đầu Ngày nay,với phát triển linh kiện điện tử công nghiệp sản xuất vi mạch,hệ thống Linux nhúng xuất khắp khía cạnh sống, từ thiết bị điện tử dân dụng thông thường đến thiết bị mạng cao cấp Nếu so sánh thiết bị với hệ thống nhúng truyền thống mức độ phức tạp khả đáp ứng cao nhiều.Việc tích hợp hệ điều hành lên hệ thống nhúng làm đơn giản hóa trình nghiên cứu phát triển sản phẩm, rút ngắn thời gian chi phí xây dựng hệ thống hệ thống thừa hưởng tính chất ưu việt hệ điều hành nói chung Linux nói riêng, tính ổn định, nhỏ gọn, thực thi nhanh có khả can thiệp sâu vào phần cứng Hơn nữa, với cộng đồng sử dụng Linux rộng lớn khắp giới phần mềm mã nguồn mở đa dạng làm cho việc phát triển hệ thống Linux nhúng trở thành chiến lược công ty lựa chọn hàng đầu Nhờ phần mểm mã nguồn mở khiến cho việc tùy biến ứng dụng phù hợp yêu cầu trở nên dễ dàng Nhận thức tầm quan trọng này, đề tài thực việc tìm hiểu Linux cho hệ thống nhúng ứng dụng hệ thống nhúng Phần cứng đề cập đến đề tài kit XUP Virtex-II Pro Development Syste Xilinx (XUPV2P) Cụ thể tiến hành việc cài đặt hệ điều hành MontaVista Linux – gói Linux chuyên dành cho hệ thống nhúng – lên kiến trúc vi xử lý PowerPC405 tích hợp kit XUPV2P Đồng thời xây dựng ứng dụng chạy hệ điều hành Ứng dụng trọng tâm giao tiếp truyền liệu qua TCP/IP, với server ứng dụng chạy hệ thống nhúng cài đặt client ứng dụng chạy hệ điều hành Windows Ứng dụng cung cấp khả upload, download liệu có phân quyền với giao diện người dùng thân thiện Mục lục Chương Linux hệ thống nhúng 1.1 Khái niệm 1.2 Hệ điều hành Linux nhúng (Embedded Linux) 1.3 Real-time Linux 1.4 Phân loại hệ thống Linux nhúng 1.4.1 Kích thước .10 1.4.2 Khả đáp ứng theo thời gian 11 1.4.3 Khả kết nối .11 1.4.4 Khả tương tác với người dùng 12 1.5 Kiến trúc tổng quát hệ thống Linux nhúng 12 1.5.1 Khối Data Acquisition 13 1.5.2 Khối Control 14 1.5.3 Khối System management .15 1.5.4 Khối User interface 16 1.6 Tổng quan kernel Linux/Unix 16 1.6.1 Mô hình process/kernel: 16 1.6.2 Thi hành process 18 1.6.3 Tái thực thi process 18 1.6.4 Không gian địa tiến trình: 20 1.6.5 Sự đồng hóa vùng then chốt: 21 1.6.6 Việc giao tiếp tín hiệu liên tiến trình 22 1.6.7 Quản lí tiến trình: 23 1.6.8 Quản lý nhớ 25 1.6.9 Device Drivers .28 Chương Thiết kế hệ thống Linux nhúng .30 2.1 Phần cứng hỗ trợ 30 2.1.1 Kiến trúc CPU 30 U 2.1.2 Bus chuẩn giao tiếp 31 2.1.3 Các thiết bị lưu trữ 31 2.1.4 Kết nối mạng 32 2.2 Các công cụ phát triển 33 2.3 Chọn lựa biên dịch Linux kernel 34 2.3.1 MontaVista Linux 37 2.3.2 uClinux 38 2.3.3 Cấu hình kernel .38 2.4 Xây dựng hệ thống thư mục gốc (root filesystem) 40 2.4.1 Hệ thống tập tin (File Systems) .40 2.4.2 Các thư mục Linux 40 Chương Kit XUPV2P gói phần mềm phát triển Xilinx 44 3.1 Kiến trúc phần cứng Kit XUPV2P 44 3.1.1 Tổng quan 44 3.1.2 Khối FPGA Virtex II Pro 46 3.1.3 System ACE 47 3.1.4 Ethernet adaptor 58 3.1.5 Cấu trúc MicroBlaze .69 3.1.6 PowerPC 78 3.2 Các gói phần mềm phát triển Xilinx .85 3.2.1 Xilinx EDK 86 3.2.2 BSB Winzard (Base System Builder) .86 Chương Thiết kế hệ thống nhúng dùng Linux 88 4.1 Những công cụ thực 88 4.1.1 Hardware 88 4.1.2 Software 88 4.2 Kiểm tra kit XUPV2P 89 4.3 Thiết kế phần cứng cho hệ thống với Xilinx BSB 90 4.3.1 Cấu hình sử dụng xử lý PowerPC 90 4.3.2 Cấu hình thiết bị ngoại vi 93 4.3.3 Cấu hình phần mềm .96 4.4 Thiết lập môi trường biên dịch chéo 98 4.5 Biên dịch nhân MontaVista Linux kiến trúc PowerPC405 100 4.5.1 Tải kernel source chuẩn bị driver .100 4.5.2 Cấu hình nhân 102 4.5.3 Tạo ACE file cấu hình cho FPGA nạp ảnh kernel 105 4.5.4 Quá trình khởi động Linux kit XUPV2P .107 4.6 Xây dựng cấu trúc thư mục gốc cho hệ điều hành 108 Chương Lập trình ứng dụng Server chạy hệ thống nhúng Client Windows 112 5.1 Mô tả hệ thống file server uClinux .112 5.2 Cấu trúc lập trình: 113 5.3 Lưu đồ thiết kế: 114 5.4 Chương trình File Client MP3 Visual C++ MFC: .115 5.4.1 Giới thiệu : 115 5.4.2 Chương trình File Client MP3: .116 5.4.3 Giao diện File Client MP3: .Error! Bookmark not defined Chương Giới hạn đề tài hướng phát triển tương lai .118 6.1 Tổng kết phần thực 118 6.2 Giới hạn .118 6.3 Hướng phát triển tương lai .118 Nghiên cứu Linux hệ thống nhúng ứng dụng Chương Linux hệ thống nhúng 1.1 Khái niệm Linux từ thay cho nhân Linux, hệ thống Linux hay phân phối Linux (Linux distribution) Khái niệm Linux hiểu đơn giản hệ điều hành Chính xác Linux dùng để hạt nhân Linus Tovalds phát triển trì Mã tảng bao gồm hạt nhân ứng dụng kèm theo khác Hạt nhân cung cấp cho phần lõi hệ thống khả quản lý phần cứng dễ dàng Nó phần mềm hệ thống thực thi, thực chất bootloader thực thi trước Tuy nhiên, hạt nhân thực thi, không thoát hay trao quyền điều khiển hệ thống hệ thống tắt Nó có tác dụng điều khiển tất phần cứng cung cấp khả quản lý cấp độ logic cao, ví dụ tiến trình, sockets, tập tin ứng dụng khác chạy hệ thống Linux dùng để thiết kế chuyên biệt cho hệ thống phần cứng với nhiều ứng dụng khác Một nhóm phát triển thường đề cập đến vấn đề họ sử dụng Linux sản phẩm họ, họ muốn nói đến không hạt nhân Linux mà kèm theo ứng dụng sản phẩm Điều có ý nghĩa hệ thống Linux hạt nhân kèm theo số lượng lớn phần mềm chạy với hạt nhân Thông thường phần mềm GNU, thư viện C tập tin nhị phân ứng dụng Cũng bao gồm giao diện đồ họa khả đáp ứng real-time Hệ thống Linux xây dựng theo tùy thích, dựa vào gói phân phối nhà cung cấp Nhóm phát triển xây dựng hệ thống theo ý thích họ, ngược lại, bạn dùng phiên có giao diện đổ họa tiện ích tiện lợi khác gói Red Hat, Debian hay Fedora Core Những hệ thống Linux có nhiều mục đích sử dụng khác nhau, chạy ứng dụng khác SVTH: Trần Quang Thuận – Phan Bá Minh -7- Nghiên cứu Linux hệ thống nhúng ứng dụng ngoại trừ phần hạt nhân có tác dụng không thay đổi hệ thống Các phân phối Red Hat, Mandrake, SuSE, Debian, Slackware, Caldera, MontaVista, Embedix, BlueCat, PeeWeeLinux, phân phối Linux khác khác kích thước, giá cả, mục đích sử dụng lại có điểm chung nhất: cung cấp cho người dùng tập hợp file cách thức cài đặt để người dùng xây dựng hạt nhân ứng dụng khác nhiều loại phần cứng tùy theo mục đích xác định Cách thức cài đặt hoàn toàn tự động bước chi tiết tài liệu cung cấp tùy theo người dùng thông thường hay nhà phát triển hệ thống 1.2 Hệ điều hành Linux nhúng (Embedded Linux) Thông thường bạn sử dụng phiên Linux thức cung cấp hãng cung cấp phần mềm cho hệ thống bạn Nhưng đôi khi, bạn lại muốn dùng gói Linux thiết kế với hạt nhân phù hợp với thiết bị đặc biệt hỗ trợ chuyên biệt cho ứng dụng Các gói Linux cung cấp nhiều nhân khác nhau, ví dụ nhân Linux thông thường không tối ưu kèm vá để hỗ trợ khả chạy công cụ debug, chẵng hạn công cụ debug cho nhân Điểm khác biệt chủ yếu nhân dùng cho hệ thống nhúng khác với dùng cho máy tính (workstation) hay máy phục vụ (server) cách cấu hình hạt nhân biên dịch Thuật ngữ “hệ thống Linux nhúng” hệ thống nhúng dựa nhân Linux bao hàm ý nghĩa sử dụng thư viện đặc biệt công cụ người dùng với hạt nhân Một gói cung cấp hệ điều hành Linux nhúng bao gồm nhóm gói công cụ phát triển (development framework), nhóm phần mềm thay đổi để sử dụng hệ thống nhúng hai Nhóm gói công cụ phát triển bao gồm phần mềm phục vụ cho việc dễ dàng phát triển hệ thống nhúng Như trình duyệt mã nguồn (source browser), biên dịch chéo, sửa lỗi, phần mềm quản lý dự án, tạo boot image…Gói công cụ phát triển cài đặt máy host Ngược lại, nhóm phần mềm ứng dụng hệ thống nhúng thực thi target hệ thống nhúng, thư viện đặc biệt, tập tin thực thi tập tin cấu hình, với giải pháp tổng SVTH: Trần Quang Thuận – Phan Bá Minh -8- Nghiên cứu Linux hệ thống nhúng ứng dụng quát bao gồm công cụ tạo cấu trúc thư mục gốc cho hệ thống (root filesystem) Như đến có khái niệm host target Host dùng để máy tính phát triển cho hệ thống nhúng, target để hệ thống nhúng Hình 1-1: Khái niệm host target 1.3 Real-time Linux Ban đầu, real-time Linux dùng để dự án RTLinux đưa vào năm 1996 Michael Barabanov dự giám sát Victor Yodaiken Dự án nhằm cung cấp khả đáp ứng thời gian xác môi trường Linux Tuy nhiên, ngày có nhiều dự án cung cấp khả đáp ứng real-time môi trường hệ điều hành Linux RTAI, Kurt hay Linux/RK cung cấp khả real-time Một số dự án cải tiến khả real-time cách thêm hạt nhân thứ vào hạt nhân Linux, số khác cải thiện vá tối ưu Các khái niệm real-time khó hiểu hiểu đơn giản hơn, hệ thống đảm bảo hoạt động đáp ứng gần tức thời có độ tin cậy cao Như hệ thống audio stream hay máy công nghiệp, đặc biệt trọng đáp ứng thời gian Chúng ta hiểu thêm vào phân loại hệ thống Linux nhúng 1.4 Phân loại hệ thống Linux nhúng Những hệ thống nhúng sử dụng Linux? Vì lại chọn Linux? Những vấn đề quan trọng phát sinh sử dụng Linux hệ thống nhúng? Hay có người thực dùng Linux hệ thống nhúng họ? Và dùng nào? Có lẽ nhiều câu hỏi khác phát sinh làm quen với Linux hệ thống nhúng Đây có lẽ câu hỏi khó trả lời thời điểm này, phần cố gắng giúp bạn có nhìn tổng quát phần tìm câu trả lời SVTH: Trần Quang Thuận – Phan Bá Minh -9- Nghiên cứu Linux hệ thống nhúng ứng dụng Chúng ta thấy đơn giản thiết bị mạng thông dụng, router hay máy in mạng cho phép người dùng cấu hình thông qua web-base Chúng tích hợp nhân Linux để thực công việc Nếu xem xét nhiều lĩnh vực có diện Linux nhúng Ở điểm qua cách phân loại hệ thống linux nhúng theo tiêu chí: kích thước, khả đáp ứng thời gian, kết nối khả tương tác với bên 1.4.1 Kích thước Kích thước hệ thống Linux nhúng xác định nhiều phương diện khác Đầu tiên kích thước thực bên đến đơn vị kích thước máy tính tốc độ CPU, dung lượng RAM lưu trữ Điều đáng ý Linux chạy hệ thống 16-bit , so sánh với thiết bị nhúng truyền thống hệ thống Linux nhúng coi hệ thống lớn Đối với hệ thống nhỏ sử dụng CPU tốc độ thấp, với khoảng 2MB ROM 4MB RAM Điều nghĩa Linux chạy với dung lượng RAM thấp hơn, khó thực Hiện có phân phối Linux cần lưu trữ đĩa mềm Những hệ thống trung bình tích hợp CPU có tốc độ tương đối dùng khoảng 32MB ROM 64MB RAM Hầu hết sản phẩm tiêu dùng nằm kích thước Như máy PDA, máy chơi MP3 hay hệ thống giải trí, thiết bị mạng Một số thiết bị có khả mở rộng lưu trữ thẻ nhớ, CompactFlash card, chí đĩa cứng thông thường Các hệ thống lớn sử dụng xử lý mạnh đa xử lý, kết hợp với dung lượng RAM dung lượng lưu trữ lớn Thông thường hệ thống sử dụng môi trường cần xử lý khối lượng lớn phép tính để thực tác vụ chuyên biệt Hệ thống chuyển mạch thông tin thoại, hay việc giả lập bay Các hệ Nói Linux chạy hệ thống 16-bit không hoàn toàn xác, có dự án Embeddable Linux Kernel Subset (ELKS), chạy Linux hệ thống xử lý cũ Intel 8086 hay 268 Nhưng với phát triển Linux hệ thống cũ giải pháp không khả thi SVTH: Trần Quang Thuận – Phan Bá Minh - 10 - Nghiên cứu Linux hệ thống nhúng ứng dụng else { file_name_lenght=strlen((entry)->d_name); if((!strcmp(folder_1,(entry>d_name)))||(!strcmp(folder_2,(entry->d_name)))) printf("foleder"); else { number_of_file= number_of_file+1; strcat(name,(entry)->d_name); strcat(name,"#"); printf(" %40s",(entry)->d_name); printf(" FILE LENGHT= %d ",file_name_lenght); } } } strcat(name,"@"); file_list_lenght=strlen(name); while(file_list_lenght[...]... PowerPC làm bộ xử lý Hệ thống TiVO phổ biến dựa trên CPU PowerPC Cũng như x86, ARM là họ xử lý được hỗ trợ đầy đủ trên hệ điều hành Linux SVTH: Trần Quang Thuận – Phan Bá Minh - 30 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng Ngoài những CPU kể trên, MIPS, Hitachi SuperH hay Motorola 68000 cũng được sử dụng trong các hệ thống Linux nhúng 2.1.2 Bus và các chuẩn giao tiếp Bus và các chuẩn giao tiếp... - 34 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng Có nguồn gốc từ mã nguồn mở Debian GNU /Linux, được thay đổi để hỗ trợ thêm nhiều thiết bị chuyên dụng cùng các công cụ cấu hình hệ thống Hỗ trợ smallfootprint, diskless, Flash-based, đòi hỏi hệ thống headless • Coollogic: Coollinux Coollinux AE (Appliance Edition) kết hợp sức mạnh của hệ điều hành Linux nhúng và công nghệ Java thành một hệ điều.. .Nghiên cứu Linux trên hệ thống nhúng và ứng dụng thống này đặt chức năng lên hàng đầu và các yếu tố kích thước, giá thành và độ phức tạp chỉ là thứ yếu 1.4.2 Khả năng đáp ứng theo thời gian Có hai mức độ đáp ứng theo thời gian cho hệ thống nhúng: nghiêm ngặt và thông thường Đối với hệ thống đòi hỏi đáp ứng nghiêm ngặt về thời gian, nó phải phản ứng lại trong một thời gian... những hoạt động được yêu cầu trên phần cứng Hình 1-5: Device driver interface SVTH: Trần Quang Thuận – Phan Bá Minh - 29 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng Chương 2 Thiết kế một hệ thống Linux nhúng 2.1 Phần cứng hỗ trợ 2.1.1 Kiến trúc CPU Linux có thể chạy trên rất nhiều kiến trúc CPU khác nhau, tuy nhiên không phải kiến trúc nào cũng được sử dụng trong hệ thống nhúng, phần này chỉ giới... Minh - 13 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng Khối DAQ thường khởi động từ flash trên khối và sử dụng RAM Vì vậy nó dễ dàng thay đổi nếu như hệ thống bị lỗi Cấu hình phần mềm bao gồm một hạt nhân được tạo riêng chỉ chạy trên một hệ thống (có thể là máy PC hay một hệ thống dùng PowerPC) Khối DAQ không có giao tiếp với bên ngoài mà chỉ liên lạc với khối SYSM DAQ cũng không phải hệ thống đa... triển hệ thống thường dùng những công cụ và phương pháp riêng cho thiết bị đó SVTH: Trần Quang Thuận – Phan Bá Minh - 31 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng Hình 2-1: Các bộ nhớ MTD Mặc dầu chỉ có một phần nhỏ các thiết bị nhúng truyền thống sử dụng không gian lưu trữ lớn như trên một đĩa cứng IDE, nhưng hầu hết lại có nhiều hệ thống nhúng lại sử dụng các thiết bị flash tương thích ATA... những phần cứng phức tạp Nó cũng có IP tĩnh và có thể bao gồm gói BusyBox như DAQ SVTH: Trần Quang Thuận – Phan Bá Minh - 14 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng 1.5.3 Khối System management Khối SYSM quản lý sự ảnh hưởng qua lại giữa các thành phần khác trong hệ thống Khối này gồm 3 giao tiếp với khối DAQ, Control và một kết nối ra mạng lưới bên ngoài SYSM là một hệ thống nhúng lớn có... phân mảnh bộ nhớ • Cùng với những hệ thống phụ quản lí bộ nhớ khác để mượn và giải thoát các page Nhiều loại KMA khác nhau được đề xuất dựa trên nhiều thuật toán khác nhau: • Bộ định vị bản đồ tài nguyên hệ thống SVTH: Trần Quang Thuận – Phan Bá Minh - 26 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng • Danh sách Power-of-two • Bộ định vị McKusick-Karels • Hệ thống Buddy • Bộ định vị Mach’s Zone... thống nhúng Hỗ trợ từ các thiết bị nhỏ đến những hệ thống lớn đa bộ xử lý và co tính khả dụng cao, hỗ trợ các dòng xử lý X86, PowerPC, ARM, MIPS… SVTH: Trần Quang Thuận – Phan Bá Minh - 35 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng • Mizi: Linu@ Linu@ là một hệ điều hành Linux nhúng với giao diện người dùng trên Qt/Embedded Tính hiệu quả và kích thước nhỏ gọn nên rất phù hợp với các thiết bị... 1993 bởi hơn 50 công ty với mục tiêu tạo ra và đẩy mạnh sử dụng thiết bị kết nối hồng ngoại giá thành thấp.) và Bluetooth được sử dụng nhiều trên các thiết bị nhúng do khả năng đem lại của nó.Ethernet hiện SVTH: Trần Quang Thuận – Phan Bá Minh - 32 - Nghiên cứu Linux trên hệ thống nhúng và ứng dụng nay là thiết bị thâm nhập nhiều nhất, tài liệu nhiều nhất và giá thành thấp nhất trong những chuẩn giao