Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
2,32 MB
Nội dung
Mục lục Mở đầu Phần A : Lý thuyết chung Chương Hệ điều hành nhúng uClinux 1.1 Nhân hệ điều hành Linux 1.1.1 Lịch sử nhân hệ điều hành Linux 1.1.2 Tổ chức nhân hệ điều hành Linux 1.1.3 Tổ chức thư mục 1.2 Hệ điều hành nhúng uClinux 1.2.1 Quá trình phát triển hệ điều hành nhúng uClinux 1.2.2 Kiến trúc hệ điều hành uClinux 1.2.3 Các thư viện sử dụng để phát triển hệ điều hành uClinux 1.2.4 Driver ngoại vi 1.2.5 Mã nguồn hệ điều hành uClinux 10 Chương Vi điều khiển S3C44B0X kit phát triển 12 2.1 Vi điều khiển S3C44B0X 12 2.1.1 Các đặc điểm vi điều S3C44B0X 12 2.1.2 Sơ đồ chân 16 2.1.3 Sơ đồ khối 17 2.1.4 Chức số khối 18 2.2 Kit phát triển HT44B0 33 Phần B : Thực nghiệm 36 Chương Biên dịch mã nguồn uClinux xây dựng ứng dụng 36 3.1 Biên dịch mã nguồn hệ điều hành uClinux 36 3.1.1 Môi trường công cụ cần để biên dịch 36 3.1.2 Lưu đồ trình biên dịch bước tiến hành 36 3.2 Nhúng hệ điều hành vào vi điều khiển 42 3.2.1 Thiết lập giao tiếp kit máy tính 42 3.2.1 Đưa file ảnh hệ điều hành vào vi điều khiển 44 3.3 Xây dựng ứng dụng 49 Kết luận 53 Các tài liệu tham khảo 54 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Mở đầu Trong thập niên gần hệ thống nhúng nghiên cứu mạnh mẽ có nhiều ứng dụng thực tế Các sản phẩm ứng dụng hệ thống nhúng đa dạng từ hệ thống dẫn đường tên lửa , robot thơng đến sản phẩm tiêu dùng máy giặt , máy in , thiết bị giải trí điện thoại , máy nghe nhạc Hệ thống nhúng phát triển dựa phát triển phần cứng phần mềm Phần cứng phải mạnh , đầy đủ tính cho hệ thống phần mềm phải phát triển khai thác tài nguyên phần cứng đồng thời phải đáp ứng đặc tính hệ thống nhúng tính thời gian thực , điều khiển xác , ổn định Ứng dụng hệ điều hành mã nguồn mở uClinux cho hệ thống nhúng dùng vi điều khiển có nhân vi xử lý 32 bit giúp cho trình phát triển phần mềm cho hệ thống nhanh chi phí thấp khai thác sức mạnh tài nguyên phần cứng Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Phần A : Lý thuyết chung Chương Hệ điều hành nhúng uClinux 1.1 Nhân hệ điều hành Linux 1.1.1 Lịch sử nhân hệ điều hành Linux Linux nhân hệ điều hành phát triển Linus Torvalds vào năm 1991 sở cải tiến phiên UNIX có tên Minix giáo sư Andrew S.Tanenbaum xây dựng phổ biến Sau Linus Torvalds cơng bố mã nguồn cho người mong muốn người đóng góp ý kiến , phát lỗi phát triển ngày tốt Và từ thời điểm , theo tư tưởng GNU nhiều chuyên gia tồn giới tham gia vào q trình phát triển Linux Linux ngày phát triển , mạnh mẽ , ổn định , có độ tin cậy cao đáp ứng nhu cầu người dùng Một số mốc lịch sử quan trọng trình phát triển nhân hệ điều hành Linux : Sau ba năm nhân Linux đời , đến ngày 14-3-1994, hệ điều hành Linux phiên 1.0 phổ biến Thành công lớn Linux 1.0 hỗ trợ giao thức mạng TCP/IP chuẩn UNIX , sánh với giao thức socket BSD- tương thích cho lập trình mạng Trình điều khiển thiết bị bổ sung để chạy IP mạng Ethernet tuyến đơn qua modem Hệ thống file Linux 1.0 vượt xa hệ thống file Minix thơng thường , ngồi hỗ trợ điều khiển SCSI truy nhập đĩa tốc độ cao Điều khiển nhớ ảo mở rộng để hỗ trợ điều khiển trang cho file swap ánh xạ nhớ file đặc quyền Vào tháng 3-1995 , nhân 1.2 phổ biến Điều đáng kể Linux 1.2 so với Linux 1.0 chỗ hỗ trợ phạm vi rộng phong phú phần cứng , bao gồm kiến trúc tuyến phần cứng PCI Nhân Linux 1.2 nhân kết thúc dòng nhân Linux hỗ trợ PC Cách đánh số dòng nhân (hệ điều hành) Linux : Hệ thống số chia thành số mức, chẳng hạn hai mức 2.4 ba mức 2.2.5 Trong cách đánh số , quy ước với số từ mức thứ hai trở , số chẵn Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp dịng nhân ổn định tương đối hồn thiện , cịn số lẻ dịng nhân phát triển tiếp Tháng 6-1996 , nhân Linux 2.0 phổ biến Có hai đặc trưng bật Linux 2.0 hỗ trợ kiến trúc phức hợp , bao gồm cổng Alpha 64-bit đầy đủ , hỗ trợ kiến trúc đa xử lý Phân phối nhân Linux 2.0 thi hành xử lý Motorola 68000 kiến trúc SPARC SUN Tới năm 2000 , nhân Linux 2.4 phổ biến Một đặc điểm quan tâm nhân hỗ trợ mã ký tự Unicode 32 bít , thuận lợi cho việc xây dựng giải pháp tồn diện triệt để vấn đề ngơn ngữ tự nhiên phạm vi toàn giới Nhân Linux phần mềm tự phân phối theo Giấy phép sở hữu công cộng phần mềm GNU GPL ( General Public License ) Vật lấy phước nhân Linux chim cánh cụt - Tux Hình 1: Linus Torvalds vật lấy phước chim cánh cụt 1.1.2 Tổ chức nhân hệ điều hành Linux Nhân ví trái tim hệ điều hành Về chất nhân chương trình phần mềm máy tính cấp độ hệ thống có vai trị điều khiển thành phần hệ thống máy tính , quản lý tài nguyên hệ thống , cung cấp số dịch vụ phần mềm cho máy tính , cung cấp mơi trường thực thi có ứng Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp dụng khác chạy hệ thống Nhân cầu nối phần cứng vật lý máy tính với chương trình ứng dụng Các dịch vụ nhân chạy chế độ đặc quyền xử lý Trái lại , chương trình ứng dụng chạy chế độ người dùng hoàn toàn cách ly với hệ điều hành Khi ứng dụng chạy chế độ người dùng gọi tới dịch vụ hệ thống thông qua giao diện , xử lý chặn lại lời gọi thi hành dịch vụ mức nhân hệ điều hành Thông thường việc thi thực thi mức nhân đơn giản nhanh khơng bị chuyển chế độ đặc quyền không đặc quyền Nhân Linux gồm năm tiểu hệ thống : - Bộ phân thời gian cho tiến trình ( Process Schedule – SCHED ) : Hoạt động máy tính , thời điểm có lệnh thực thi Tuy nhiên hệ điều hành đa nhiệm Windows , Linux … cho phép nhiều chương trình chạy lúc Các hệ điều hành đa nhiệm làm cách chuyển quyền thực thi qua lại chương trình thật nhanh làm cho người dùng có cảm giác chương trình chạy lúc với Vi dụ người dùng vừa soạn thảo văn vừa nghe Trong hệ điều hành đa nhiệm phân thời gian tiến trình đảm nhiệm nhiệm vụ SCHED chia thành bốn khối : Khối luật định thời (scheduling policy): chịu trách nhiệm phân bố xem tiến trình ( process ) quyền truy xuất CPU Hệ thống hoạt động có thơng suốt hay không nhờ vào luật này, tránh trường hợp tiến trình lợi dụng sơ hở điều luật mà chiếm thời gian hệ thống nhiều làm tiến trình khác bị đóng băng (freeze) Khối phụ thuộc kiến trúc ( architeture-specific ): khối gồm mã assembly phụ thuộc vào loại CPU dùng để tạm ngưng hoạt động tiến trình Khối độc lập kiến trúc (architeture-independent): Khối gọi hàm từ khối phụ thuộc kiến trúc khối luật để chuyển giửa tiến trình đồng thời cịn gọi hàm MM để thiết lập nhớ ảo cho tiến trình hồi phục lại Khối phụ thuộc kiến trúc khác loại CPU (ỉ386, apha, v.v) khối độc lập kiến trúc khơng đổi Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Khối hàm gọi hệ thống ( system call ) Gồm hàm mà người dùng dùng để tương tác với SCHED Khi lập trình Linux Unix quen với hàm gọi hệ thống - Bộ quản lý nhớ ( Memory Manager - MM) : Bộ nhớ qui ước máy tính có 640KB Do BIOS quản lý tới FFFF , vùng nhớ cao từ A0000 trở lên dùng để ánh xạ BIOS , video card memory thiết bị ngoại vi khác , vùng nhớ lại tử 9FFFF trở xuống tương đương với 640KB Trong chế độ bảo vệ ( protect mode ) CPU 32 bit đưa khái niệm nhở ảo ( Virtual Memory ) Lúc tiến trình cấp tới 4GB nhớ ảo Nhưng nhân hệ điều hành tạo bảng mô tả trang nhớ ảo với nhớ vật lý Bộ nhớ vật lý bao gồm nhớ RAM vùng nhớ hoán vị đĩa cứng - Hệ thống file ảo : Hệ thống không cung cấp truy suất đến hệ thống file đĩa cứng mà tất ngoại vi Trong Linux tất tập tin , thư mục thiết bị coi file Ví dụ máy in , cổng nối tiếp , ổ đĩa … truy cập file Linux cung cấp thuộc tính truy cập cho file thư mục , thuộc tính thiết lập cho phép đọc , cho phép ghi , cho phép thực thi Linux thiết lập chế độ bảo vệ file hệ thống hạn chế quyền truy cập thiết bị - Giao diện mạng ( Network Interface - NET) : Trong nhân Linux dựng sẵn giao thức TCP/UDP , IP Ethernet - Bộ truyền thong nội (Inter-process communication IPC) : Một tiến trình Linux giao tiếp với tiến trình khác với nhân hệ điều hành thông qua chế gọi truyền thông nội - IPC Nó cho phép tiến trình gửi nhận thơng điệp từ tiến trình khác , sử dụng chung vùng nhớ chia sẻ đồng với tiến trình khác 1.1.3 Tổ chức thư mục Các file hệ thống Linux đặt theo trật tự thư mục Có thư mục chứa thư mục file Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Thư mục /bin : Chứa file thực thi dạng nhị phân chương trình khởi dộng hệ thống Thư mục /boot : Thư mục chứa file ảnh ( image file ) nhân dùng cho trình khởi động Thư mục /dev : Thư mục chứa file thiết bị Thư mục /etc : Thư mục chứa file cấu hình tồn cục hệ thống Thư mục /home : Thư mục chứa thư mục đại diện cho người dùng đăng nhập Đây nơi làm việc thường xuyên người dùng Khi người quản trị tạo tài khoản cho người dùng cấp cho người dùng thư mục tên với tài khoản người dùng nằm thư mục /home Người dùng cho quyền thao tác thư mục khơng ảnh hưởng đến người dùng khác Thư mục /lib : Thư mục chứa file thư viện so a Các thư viện C lien kết động cần cho chương trình chạy cho toàn hệ thống Thư mục /lost+found : Khi chạy chương trình fsck , tìm thấy chuỗi liệu thất lạc đĩa cứng không lien quan đến tập tin , Linux gom chúng lại đặt thư mục để cần người dùng đọc giữ lại liệu bị Thư mục /mnt : Thư mục chứa kết gán ( mount ) tạm thời đến ổ đĩa thiết bị khác Thư mục /sbin : Thư mục chứa file thực thi hệ thống dành cho người quản trị hệ thống Thư mục /tmp : thư mục dùng để chứa file tạm mà chương trình tạo lúc chạy Các file hệ thống dọn dẹp chương trình kết thúc Thư mục /usr : Thư mục chứa nhiều thư mục /usr/bin , /usr/local … thư mục quan trọng hệ thống , bên thư mục (/usr/local) chứa đầy đủ thư mục tương tự thư mục gốc sbin, lib, bin… Nếu nâng cấp hệ thống chương trình người dùng cài đặt thư mục /usr/local vần giữ nguyên không sợ chương trình bị mát Thư mục /var : Thư mục chứa file biến thiên bất thường file liệu tăng kích thước thời gian ngắn sau lại giảm kích thước xuống cịn nhỏ Điển hình file dùng làm hàng đợi chứa liệu cần đưa máy in hàng đợi chứa thư điện tử Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp 1.2 Hệ điều hành nhúng uClinux Hệ điều hành uClinux phiên hệ điều hành sử dụng nhân Linux thiết kế cho hệ thống nhúng sử dụng vi điều khiển khơng có đơn vị quản lý nhớ Là phiên hệ điều hành sử dụng nhân Linux nên uClinux có kiến trúc , cách thức hoạt động giống hệ điều hành Linux chạy PC , phương pháp phát triển ứng dụng giống phát triển môi trường hệ điều hành Linux Do hệ điều hành mã nguồn mở nên nhà phát triển cấu hình hệ điều hành theo ý để tạo hệ điều hành phù hợp với hệ thống cần phát triển 1.2.1 Quá trình phát triển hệ điều hành nhúng uClinux Dự án hệ điều hành uClinux bắt đầu phát triển từ năm 1997 , mục đích tạo hệ điều hành phát triển phiên nhân hệ điều hành Linux 2.0 để nhúng vào vi điều khiển Nó Jeff Dionne , Kenneth Albanowski nhóm nhà phát triển khác đặt vấn đề khả nhúng Linux vào mạng vi điều khiển khơng có đơn vị quản lý nhớ , khả truyền thơng mạng với hệ thống truyền thông Phiên phát hành hệ điều hành phát hành với vi xử lý Motorola 68000 , vi xử lý dựa trên vi xử lý MC68328 DragonBall Intergrated Microprocessor triển khai điều khiển SCADA năm 1997/98 Phiên cộng đồng nguồn mở phát triển phiên khác sử dụng cho Palm Pilot vào tháng năm 1998 Trong hệ điều hành uClinux có số thay đổi so với hệ điều hành Linux , thư viện uC-libc thiết kế để thay cho thư viện libc glibc hệ điều hành Linux Một cải tiến khác thực SnapGear thêm định dạng Binary Flat – bFLT Hệ điều hành uClinux hệ điều hành đa nhiệm , chương trình chạy nhiều mức khác hệ thống Hệ điều hành cho phép chạy nhiều chương trình lúc , cho phép chạy ứng dụng đa luồng Với việc nhúng hệ điều hành uClinux vào vi điều khiển giúp cho nhà phát triển tạo ứng dụng dễ dàng phương pháp lập trình giống môi trường hệ điều hành Linux Hệ điều hành uClinux hệ điều hành thời gian thực , nhà phát triển chạy ứng dụng đa luồng môi trường hệ điều hành Điều khó phát triển ứng dụng đa luồng chạy trực tiếp vi điều khiển hệ điều hành Nhiệm vụ phát triển hệ điều hành uClinux cấu hình nhân hệ điều hành cho phù hợp với hệ thống cần phát triển , biên dịch nhân , phát triển driver Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp cho ngoại vi sau phát triển ứng dụng cho hệ thống nhúng chạy môi trường hệ điều hành 1.2.2 Kiến trúc hệ điều hành uClinux uClinux hệ điều hành dùng phổ biến cho hệ thống nhúng Linux Hệ điều hành dùng cho vi điều khiển khơng có đơn vị quản lý nhớ Ngày nhân hệ điều hành hỗ trợ cho nhiều loại tảng CPU khác ColdFire , Axis ETRAX , ARM , Atari 68k nhiều loại khác Giống Linux , uClinux có hỗ trợ mạng giao thức TCP/IP giao thức giao tiếp mạng khác Nó hỗ trợ hệ thống file khác thêm vào số dạng file đặc biệt thiết kế cho hệ thống nhúng Để chạy vi điều khiển khơng có đơn vị quản lý nhớ nhân hệ điều hành có số thay đổi Toàn mã nguồn chức điều khiển nhân hệ điều hành quản lý nhớ loại bỏ khỏi mã nguồn nhân hệ điều hành Một số chức khác điều chỉnh để phù hợp với yêu cầu vi điều khiển đơn vị quản lý nhớ Sự thuận lợi nhân uClinux mang lại so với nhân Linux chạy PC kích thước nhân Khi biên dịch nhân , nhà phát triển phải thiết lập lựa chọn biên dịch hỗ trợ loại vi xử lý , hệ thống file hỗ trợ thiết bị nhân để kich thước nhân giảm xuống khoảng 400 KB Tuy nhiên vào lúc khởi động , nhân hệ điều hành yều cầu khoảng không gian nhớ khoảng megabyte Trong thực tế kích thước nhớ cần khoảng 2MB cịn cần cho ứng dụng Với hệ điều hành uClinux , kích thước ảnh nhân hệ điều hành điều chỉnh khoảng từ 500 tới 900 KB Tương tự mã nguồn hệ điều hành Linux , mã nguồn hệ điều hành uClinux tải miễn phí Mã nguồn hệ điều hành thuộc quyền GNU GPL , giống tất ứng dụng khác gói mã nguồn nhân bao gồm đầy đủ mã nguồn thư viện kèm theo Mã nguồn hệ điều hành uClinux công cụ cần thiết có tìm website www.uclinux.org Từ website nhà phát triển tải gói phân phối củ hệ điều hành bao gồm mã nguồn nhân hệ điều hành uClinux , thư viện , số ứng dụng phát triển , thông báo lỗi lỗi sửa Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp 1.2.3 Các thư viện sử dụng để phát triển hệ điều hành uClinux uClinux sử dụng phần thư viện C chuẩn , thư viện sở để phục vụ cho việc phát triển nhân uClinux Thư viện dựa thư viện C Linux – 8086 đã thu nhỏ thành thư viện súc tích phù hợp với vi điều khiển Thư viện uClibc tạo hỗ trợ cho vi điều khiển khơng có đơn vị quản lý nhớ Dragonball , ColdFire , ARM … thư viện hỗ trợ kiến trúc Linux chuẩn uClinux cung cấp hoàn toàn thư viện Linux chuẩn libC API Để phát triển uClinux , nhà phát triển lựa chọn hai thư viện libc uC-libc uClibc Thư viện uClibc giống thư viện glibc phát triển cho Linux , hàm glibc áp dụng cho uClibc Ngồi gói mã nguồn uClinux cịn có sô thư viện khác : libatm hỗ trợ truyền liệu không đồng , libjpeg hỗ trợ cho định dạng ảnh nén JPEG , libm hộ trợ thư viện toán học , libnet hỗ trợ API để thao tác mạng 1.2.4 Driver ngoại vi Driver trình quản lý , điều khiển ngoại vi , cung cấp hàm cho phép người dùng để điều khiển tới thành phần ngoại vi Các driver chia làm ba lớp : Character driver : Lớp sử dụng rộng rãi từ ứng dụng đơn giản đến ứng dụng phức Ví dụ ứng dụng đơn giản driver điều khiển LED , ứng dụng phức tạp driver Firewire , driver USB Character driver đọc ghi liệu trực tiếp tới thiết bị mà khơng có nhớ đệm Block driver : Lớp giao tiếp tới hệ thống file sử dụng để kết nối phân vùng đĩa , thiết bị vào file hệ thống Khác với character driver , block driver thường đọc ghi liệu với thiết bị thông qua đệm Network driver : Loại có nhiều cấu trúc khác , hỗ trợ truyền thông , sử dụng Port Socket để định tuyến gói liệu Thơng thường chương trình ứng dụng khơng truy cập , đọc ghi trực tiếp tới thiết bị ngoại vi Khi cần giao tiếp với ngoại vi , chương trình ứng dụng sử dụng driver để giao Các driver module liên kết tĩnh vào nhân Driver đăng ký với nhân hệ điều hành module khởi tạo tiến trình Driver đăng ký thành phần : Lương Thế Oanh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Hình 25 : Các mục trêm menu cấu hình - Mục Choose a Vendor/Product selection xuất danh sách liệt kê toàn nhà sản xuất tên sản phẩm Tên sản nhà sản xuất sản phẩm đặt thư mục vendors thư mục uClinux-dist Nhiệm vụ cần phải làm lựa chọn nhà sản xuất sản phẩm mà cần nhúng hệ điều hành uClinux vào Việc chọn Lương Thế Oanh 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp nhà sản xuất tên sản phẩm quan trọng , chọn sai tên sản phẩm biên dịch hệ điều hành uClinux triển khai vào hệ thống khơng chạy cấu hình phần cứng loại vi điều khiển khác Trong khóa luận em dùng vi điều khiển S3C44B0X hãng Samsung Hình 26: danh sách nhà sản xuất sản phẩm - Mục Libc Version cho phép lựa chọn hai thư viện uC-libc uClibc Mục Default all settings : chọn mục cấu hình hệ điều hành chọn theo mặc định ( theo lần cấu hình trước ) Mục Customize kernel settings : chọn mục xuất hình có mục chọn cần cấu hình cho nhân lựa chọn driver , thư viện hỗ trợ - Mục Customize Vendor/User setting : Khi chọn mục có hình có mục lựa chọn chương trình ứng dụng , cơng cụ , trò chơi … Bước : Lưu lựa chọn cấu hình vào file tiến hành lệnh tạo file ảnh hệ điều hành Sau lưu lựa chọn cấu hình cần thực lệnh sau để tạo file ảnh : - make dep - make lib_only make user_only make romfs make image make linux make image Lương Thế Oanh 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Kết thúc q trình biên dịch hệ điều hành , toàn hệ điều hành tạo thành file ảnh có image.rom , file cần để nhúng vào kit phát triển File image.rom lưu thư mục images nằm thư mục uClinux-dist Cấu trúc thư mục hệ điều hành uClinux sau biên dịch giống cấu trúc thư mục thư mục romfs nằm thư mục uClinux-dist 3.2 Nhúng hệ điều hành vào vi điều khiển 3.2.1 Thiết lập giao tiếp kit máy tính a Ghép nối RS232 : Cổng COM1 kit giao tiếp với cổng RS232 máy tính Trong mơi trường hệ điều hành Windows , chạy chương trình HyperTerminal để thực giao tiếp Qua chương trình HyperTerminal thiết lập thuộc tính cổng RS232 : - Tốc độ baud : 57600 - Bit stop :1bit - Tính chẵn lẻ : không dùng chẵn lẻ - Bắt tay : khơng bắt tay Hình 27 : Thiết lập cổng COM Lương Thế Oanh 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Sau khí thực kết nối , ta cấp nguồn cho kit Nếu HyperTerminal nhận sau trình ghép nối thành cơng : Hình 28 :Tín hiệu nhận từ kit HT44B0 truyền máy tính b Ghép nối ethernet : Mini Ftp kit đặt địa IP 192.168.0.100 nên máy tính đặt địa IP cho card mạng 192.168.0.152 Để kiểm tra kết nối ethernet thành công hay chưa ta thực lệnh Ping từ máy tính tới minu Ftp kit Tại hình HyperTerminal sau thực thành công kết nối cổng RS232 , ta thực lệnh ap Hình 29 : Chạy lệnh ap chờ thực lệnh ping từ máy tính Lương Thế Oanh 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Tại máy tính , ta thực lệnh ping tới địa 192.168.0.100 trình ping thành cơng kết nối ethernet thành cơng Hình 30: Kết ping thành cơng từ máy tính tới kit HT44B0 3.2.1 Đưa file ảnh hệ điều hành vào vi điều khiển Sau biên dịch mã nguồn hệ điều hành uClinux , ta thu file ảnh hệ điều hành uClinux image.rom nằm thư mục uClinux-dist/images Trên hệ điều hành Windows ta sử dụng chương trình đưa file lên ftp server để đưa file ảnh hệ điều hành vào kit File image.rom đặt chương trình đẩy file lên ftp server Tại chương trình HyperTerminal ta thực lệnh ap lệnh cho phép đọc file ghi vào flash Thực đẩy file lên kit : hệ điều hành windows : Start->Run -> CMD -> di chuyển tới thư mục chứa file imgage.rom -> thực lệnh tftp -i 192.168.0.100 put f:\upload\image.rom Sau thực q trình , kit file image.rom lưu vào RAM , quay trở lại chương trình HyperTerminal : Lương Thế Oanh 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Hình 31: Q trình gửi nhận file từ máy tính kit Tiếp tục chọn “ n “ thực lệnh “ prog 10000 c008000 100000” sau chọn “y” để thực trình ghi file ảnh hệ điều hành từ RAM vào nhớ flash : Hình 32: Chạy lênh prog để ghi file vào địa nhớ flash Hình 33: Quá trình ghi file vào flash thành công Lương Thế Oanh 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Lệnh prog thực ghi ảnh hệ điều hành vào flash địa 0x10000 thay ghi vào địa 0x00 địa lưu BIOS Bootloader Đối số thứ ba 0x100000 số byte ghi , file ảnh hệ điều hành lớn số tăng lên 3.1.3 Quá trình khởi động uClinux kit phát triển Để tiến hành chạy hệ điều hành uClinux kit , hình HyperTerminal ta thực lệnh move để di chuyển hệ điều hành từ nhớ flash tới nhớ RAM , sau thực lệnh run để chạy hệ điều hành địa RAM : Hình 34: Lệnh di chuyển liệu từ flash vào RAM lệnh chạy chương trình Lương Thế Oanh 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Lưu đồ trình khởi động : Hinh 35: Lưu đồ trình khởi động hệ điều hành uClinux Khi hồn thành q trình khởi động : Lương Thế Oanh 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Hình 36: Màn hình sau khởi động xong hệ điều hành uClinux Hệ điều hành giải nén bắt đầu trình khởi động ( trình khởi động trình bày 2.1.4 ) Khi hồn tất q trình khởi động , chương trình HyperTerminal trở thành chương trình giống chương trình Terminal hệ điều hành Linux Thơng qua HyperTerminal ta thực thi lệnh Linux : Hình 36 : Chạy thử số lệnh uClinux có lệnh giống hệ điều hành Linux cho PC vi dụ lệnh : ls , cd , echo , cat … uClinux cho phép sử dụng lệnh theo cấu trúc đường ống , chạy lệnh shell Hệ điều hành uClinux nhúng thành công vào kit HT44B0 Vi điều khiển S3C44B0X có hệ điều hành ngoại vi Lương Thế Oanh 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp trở thành máy tính thu nhỏ giao tiếp với giởi bên qua cổng , cho phép chạy chương trình 3.3 Xây dựng ứng dụng Các ứng dụng xây dựng để chạy môi trường hệ điều hành uClinux giống ứng dụng chạy môi trường hệ điều hành Linux PC Các chương trình ứng dụng giao tiếp với thiết bị ngoại vi thông driver hệ điều hành Chương trình viết kiển tra môi trường Linux PC , sau có chương trình chạy chuyển xuống chạy uClinux Do chương trình chạy mơi trường uClinux kit nên file chương trình phải chuyển đổi định dạng từ ELF sang FLT ( sử dụng công cụ arm-elf-elft2flt ) Do uClinux xây dựng ngôn ngữ C , C++ sử dụng thư viện C nên chương trình đa số viết ngơn ngữ C Các bước tạo chương trình : Tạo file mã nguồn viết mã nguồn Tạo Makefile Biên dịch Vi dụ tạo chương trình đơn giản in hình dịng chữ “Hello world !” ngôn ngữ C : Tạo thư mục hello thư mục uClinux-dist/user/ Trong thư mục hello tạo file hello.c có nộ dung : #include int main(){ printf(“Hello world !\n”); return 0; } Tạo file Makefile nằm thư mục hello có nội dụng: EXEC = hello OBJS = hello.o CFLAGS += -I all : $(EXEC) $(EXEC) : $ (OBJS) Lương Thế Oanh 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp $(CC) $(LDFLAGS) –o $@ $(OBJS) $(LDLIBS) romfs : $(ROMFSINST) /bin/$(EXEC) clean : -rm -f $(EXEC) *.elf *.gdb *.o Tiếp theo chỉnh sửa thông tin file Makefile thư mục uClinux-dist/user Thêm dòng lệnh sau vào file Makefile : dir_$(CONFIG_USER_HELLO) +=hello Chỉnh sửa thông tin file config.in thư mục uClinux-dist/config Thêm dòng lệnh sau : mainmenu_option next_comment comment ‘Hello Applications’ bool ‘hello’ CONFIG_USER_HELLO endmenu Tiến hành biên dịch chương trình đưa chương trình vào hệ điều hành : Trong chương trình terminal Redhat thực lệnh make menuconfig để cấu hình lại chương trình người dùng Lương Thế Oanh 50 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Hình 37 : Các lựa chọn cấu hình biên dịch chương trình hello Một cách khác biên dịch file mã nguồn hello.c file chạy cách dùng lệnh trực tiếp từ terminal RedHat : arm-elf-gcc –Wl, -eft2flt hello.c –o hello Lương Thế Oanh 51 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Hình 38: kết chạy chương trình hello Các thư viện cung cấp Linux viết ngôn ngữ C , C++ nên tiện cho trình phát triển ứng dụng Đồng thời hệ điều hành uClinux hệ điều hành đa nhiệm , cho phép quản lý nhiều tiến trình chạy đồng thời lúc phát triển ứng dụng đa luồng tiện lợi Khai thác đặc tính ưu việt vi điều khiển S3C44B0X 32 bit hoạt với xung nhịp lên tới 66MHz sử dụng hệ điều hành đa nhiệm thời gian thực uClinux có nhiều thư viện sẵn có , xây dựng ứng dụng xử lý ảnh , tiếng nói , giải mã MP3 , VoIP … Lương Thế Oanh 52 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Kết luận Sau trình học tập nghiên cứu giúp đỡ , bảo tận tình thầy TS Nguyễn Thăng Long , thầy cô khoa , em hồn thành khóa luận tốt nghiệp với đề tài “Nghiên cứu ứng dụng hệ điều hành nhúng uClinux vi điều khiển S3C44B0X ” Khóa luận đạt kết sau : Nghiên cứu tìm hiểu nhân hệ điều hành Linux uClinux Tiếp cận với dòng vi điều khiển 32 bit sử dụng nhân vi xử lý ARM7TDMI Nắm phương pháp cấu hình nhân biên dịch hệ điều hành uClinux Nhúng hệ điều hành uClinux xuống vi điều khiển S3C44B0X xây dựng ứng dụng chạy hệ điều hành uClinux Hướng phát triển khóa luận sâu vào xây dựng ứng dụng phát triển driver môi trường hệ điều hành uClinux hệ thống nhúng Lương Thế Oanh 53 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐH Cơng Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp Các tài liệu tham khảo [1] Hà Quang Thụy , Nguyễn Trí Thành , Nguyễn Hải Châu Giáo trình “ Hệ Điều Hành Unix - Linux” [2] Daniel P.Bovet & Marco Cesati Understanding the Linux Kernel O’Reilly First Edition October 2000 [3] [4] [5] [6] David A Rusling , “ The Linux Kernel “ http://arm.com http://www.uclinux.org http://docs.blackfin.uclinux.org/doku.php?id=introduction Lương Thế Oanh 54 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... luanvanchat@agmail.com ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp 1.2 Hệ điều hành nhúng uClinux Hệ điều hành uClinux phiên hệ điều hành sử dụng nhân Linux thiết kế cho hệ thống nhúng sử dụng vi điều khiển khơng... hệ điều hành mã nguồn mở nên nhà phát triển cấu hình hệ điều hành theo ý để tạo hệ điều hành phù hợp với hệ thống cần phát triển 1.2.1 Quá trình phát triển hệ điều hành nhúng uClinux Dự án hệ. .. Với việc nhúng hệ điều hành uClinux vào vi điều khiển giúp cho nhà phát triển tạo ứng dụng dễ dàng phương pháp lập trình giống mơi trường hệ điều hành Linux Hệ điều hành uClinux hệ điều hành thời