LUẬN VĂN:CÁC KỸ THUẬT GỠ LỖI TRONG VIỆC PHÁT TRIỂN HỆ THỐNG NHÚNG VỚI NGÔN NGỮ C doc

65 413 1
LUẬN VĂN:CÁC KỸ THUẬT GỠ LỖI TRONG VIỆC PHÁT TRIỂN HỆ THỐNG NHÚNG VỚI NGÔN NGỮ C doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Ngô Thị Nga CÁC KỸ THUẬT GỠ LỖI TRONG VIỆC PHÁT TRIỂN HỆ THỐNG NHÚNG VỚI NGÔN NGỮ C KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Ngô Thị Nga CÁC KỸ THUẬT GỠ LỖI TRONG VIỆC PHÁT TRIỂN HỆ THỐNG NHÚNG VỚI NGÔN NGỮ C KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: TS. Đặng Văn Hưng Cán bộ đồng hướng dẫn: ThS. Vũ Quang Dũng HÀ NỘI - 2010 LỜI CẢM ƠN Em xin chân thành cảm ơn Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã tạo điều kiện thuận lợi cho em trong quá trình học tập, rèn luyện và thực hiện đề tài khóa luận tốt nghiệp. Em xin gửi lời cảm ơn chân thành đến tất cả thầy cô trong trường đã giúp đỡ, dìu dắt em từ những ngày đầu tiên nhập trường. Em xin gửi lời cảm ơn sâu sắc nhất đến TS. Đặng Văn Hưng, TS. Trần Thị Minh Châu, ThS. Vũ Quang Dũng, những thầy cô đã cho em định hướng, tận tình chỉ bảo, hướng dẫn và giúp đỡ em trong quá trình tìm hiểu về hệ thống nhúng, cùng các kiến thức cần thiết khác để em hoàn thành khóa luận. Em xin gửi những lời cảm ơn, những tình cảm thương yêu tới gia đình, và người thân. Những người luôn bên em, động viên em cả về tinh thần và vật chất trong thời gian qua. Trong quá trình thực hiện khóa luận, em cũng đã nhận được nhiều sự chia sẻ, giúp đỡ, động viên của các thành viên lớp Công nghệ phần mềm K51, và của những thành viên trong diễn đàn sinh viên Đại học Công nghệ. Tôi xin gửi tới các bạn sự biết ơn sâu sắc. Đề tài “Các kỹ thuật gỡ lỗi trong việc phát triển hệ thống nhúng với ngôn ngữ C ” là một đề tài khá khó, lại được hoàn thành trong quỹ thời gian hạn hẹp nên khó tránh khỏi những khiếm khuyết. Em mong nhận được những góp ý chân thành từ thầy cô giáo và các bạn để đề tài có thể mở rộng và nghiên cứu kỹ hơn, đưa vào trong thực tiễn ngành công nghệ thông tin hiện nay. Hà Nội, ngày 15 tháng 05 năm 2010 Sinh viên Ngô Thị Nga i TÓM TẮT KHÓA LUẬN Khóa luận tập trung trình bày tổng quan về hệ thống nhúng, định nghĩa, đặc trưng của hệ thống, những khó khăn trong việc tìm hiểu một hệ thống nhúng. Sau đó, khóa luận đưa ra những kỹ thuật gỡ lỗi thường được áp dụng trên hệ thống nhúng, trong đó bao gồm cả các kỹ thuật gỡ lỗi dựa trên các công cụ phần mềm và công cụ phần cứng. Từ đó, khóa luận lựa chọn trình bày công cụ gỡ lỗi µVision của công ty Keil ARM, đây là một công cụ mạnh về gỡ lỗi theo kỹ thuật mô phỏng – một kỹ thuật được các kỹ sư lập trình áp dụng rất nhiều trong thực tế. Để minh họa cho việc áp dụng kỹ thuật gỡ lỗi và sử dụng công cụ gỡ lỗi, khóa luận xây dựng các chương trình phần mềm ứng dụng nhỏ là Đèn led nhấp nháy và Hello World – truyền các chuỗi tự ra cổng nối tiếp. Khóa luận áp dụng kỹ thuật và công cụ gỡ lỗi trên hai chương trình đó. ii MỤC LỤC CHƯƠNG 1: MỞ ĐẦU 1 1.1. Đặt vấn đề 1 1.2. Đề tài, đối tượng nghiên cứu và phương pháp nghiên cứu 1 1.3. Mục tiêu của khóa luận 2 1.4. Cấu trúc của khóa luận 2 CHƯƠNG 2: TỔNG QUAN 3 2.1. Hệ thống nhúng 3 2.1.1. Hệ thống nhúng là gì? 3 2.1.2. Các thiết bị phần cứng thông thường 3 2.1.3. Đặc trưng của hệ thống nhúng 6 2.1.4. Ví dụ về hệ thống nhúng 8 2.2. Sự lựa chọn ngôn ngữ lập trình cho hệ thống nhúng 8 CHƯƠNG 3: CÁC KỸ THUẬT GỠ LỖI 10 3.1. Gỡ lỗi 10 3.1.1. Gỡ lỗi trong quá trình phát triển hệ thống nhúng 10 3.1.2. Định nghĩa gỡ lỗi 11 3.1.3. Tầm quan trọng của việc gỡ lỗi 12 3.1.4. Mục đích của quá trình gỡ lỗi 12 3.2. Kiểm thử trên máy chủ 13 3.2.1. Kỹ thuật cơ bản 13 3.2.2. Gọi các thường trình ngắt 15 3.2.3. Gọi thường trình ngắt định thời 15 3.2.4. Các tệp kịch bản và tệp kết xuất 15 3.2.5. Những phản đối, hạn chế và nhược điểm 16 3.3. Bộ mô phỏng 17 3.4. Sử dụng macro assert 20 3.5. Sử dụng các công cụ trong phòng thí nghiệm 21 3.5.1. Máy hiện sóng 22 3.5.2. Bộ phân tích logic (Logic Analyzer) 24 3.5.2.1. Bộ phân tích logic theo chế độ thời gian 26 3.5.2.2. Bộ phân tích logic theo chế độ trạng thái 26 3.5.3. Bộ mô phỏng trong mạch 28 CHƯƠNG 4: CÔNG CỤ GỠ LỖI 31 4.1. Lý do chọn họ vi xử lý ARM 31 4.2. Giới thiệu công cụ µVision 32 4.3. Các chức năng chính của công cụ µVision 33 4.3.1. Các chức năng của µVision IDE 33 4.3.2. Các chức năng của µVision Debugger 35 4.4. Ưu điểm của µVision 37 4.4.1. Ưu điểm của µVision IDE 37 4.4.2. Ưu điểm của µVision Simulator 38 iii 4.5. Một số hạn chế của µVision phiên bản dùng thử 38 4.6. Cài đặt 39 CHƯƠNG 5: ỨNG DỤNG CÔNG CỤ µVISION VÀO VIỆC GỠ LỖI 41 5.1. Vi điều khiển LPC2148 41 5.2. Chương trình “Đèn led nhấp nháy” 41 5.3. Chương trình Hello world 43 5.4. Nhận xét 45 CHƯƠNG 6: KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 49 PHỤ LỤC: CÁC THÔNG SỐ KỸ THUẬT CỦA VI ĐIỀU KHIỂN LPC2148 50 iv DANH MỤC HÌNH ẢNH Hinh 2.1. Hệ thống nhúng thông thường Hình 3.1. Quá trình phát triển phần mềm nhúng Hình 3.2. Hệ thống kiểm thử Hình 3.3. Đồ thị máy hiện sóng Hình 3.4. Máy hiện sóng Hình 3.5. Bộ phân tích logic Hình 3.6. Chế độ thời gian của bộ phân tích logic Hình 3.7. Chế độ trạng thái của bộ phân tích logic Hình 4.1. Mẫu đăng sử dụng phần mềm Keil Hình 4.2. Giao diện IDE Hình 4.3. Giao diện của Debugger Hình 5.1. Kết quả chạy chương trình Led Hình 5.2. Kết quả chạy chương trình Hello world DANH MỤC BẢNG BIỂU Bảng 2.1. Họ vi xử lý ARM Bảng 3.1. Hàm NDEBUG Bảng 4.1. Các chức năng của MicroVision IDE Bảng 4.2. Các chức năng của MicroVision Debugger Bảng 5.1. Chương trình Led.c Bảng 5.2. Chương trình Hello.c v DANH SÁCH CÁC THUẬT NGỮ VÀ KHÁI NIỆM Thuật ngữ Khái niệm AGSI Advanced Simulation Interface – Giao diện mô phỏng nâng cao. ARM Advanced RISC Machine – Máy có bộ lệnh RISC mở rộng. AVR Đây là cấu trúc RISC 8 – bit của công ty Atmel. Big - Endian Bộ nhớ lưu các tự quan trọng nhất ở các bit địa chỉ thấp nhất. Cross–compiler Biên dịch chéo. Debugger Bộ gỡ lỗi. DWARF Đây là một định dạng tập tin gỡ lỗi được dùng trong nhiều trình biên dịch. ELF Executable and Linkable Format hay Extensible Linking Format – Tệp tin lưu dưới dạng thực thi và liên kết. Ground Điện áp bằng 0, tình trạng nối đất. ICE In – circuit Emulator – Bộ mô phỏng trong mạch. IDE Intergrated Development Environment – Môi trường phát triển tích hợp. ISS Instruction Set Simulator – Bộ mô phỏng tập lệnh. LED Light Emitting Diode – Đèn hai cực quang phát xạ. Linker/ Locator Bộ liên kết/ Định vị. Little - endian Bộ nhớ lưu các tự quan trọng nhất ở các bit địa chỉ cao nhất. MIPS Million Intruction Per Second – Số triệu dòng lệnh thực hiện trong một giây, Overlay memory Bộ nhớ nạp chồng. RAM Random Access Memory – Bộ nhớ truy cập ngẫu nhiên. RE Read Enable signal – Tín hiệu cho phép đọc từ ROM. RISC Reduced Instruction Set Computing – Máy tính dùng tập lệnh rút gọn. ROM Read Only Memory – Bộ nhớ chỉ đọc. vi Thuật ngữ Khái niệm RTOS Real Time Operating System – Hệ điều hành thời gian thực. Symbolic Output Format Định dạng kết xuất hiệu. VCC Voltage Connected to Collector – Điệp áp kết nối bộ gom – VCC thường đại diện cho điện áp ở mức cao (High). vii CHƯƠNG 1: MỞ ĐẦU 1.1. Đặt vấn đề Ngày nay, chúng ta có thể nhìn thấy các thiết bị nhúng ở khắp mọi nơi xung quanh ta từ những vật dụng đơn giản như chiếc đồng hồ điện tử, lò vi sóng, tủ lạnh, máy điện thoại di dộng, máy in, máy ảnh kỹ thuật số đến những hệ thống lớn như các hệ thống điều khiển các dây chuyền sản xuất trong công nghiệp, điều khiển các hoạt động trong lò phản ứng hạt nhân Chúng ta khó mà có thể tìm được một thiết bị điện tử mà bên trong nó không có một vài vi xử lý, vi điều khiển. Đặc biệt là các họ vi xử lý ARM đã được ứng dụng rất nhiều trong các thiết bị nhúng. Các hệ thống nhúng ngày càng phát triển, các phần mềm để điều khiển cho các thiết bị cũng ngày càng đa dạng. Vì vậy, các nhà sản xuất cần đảm bảo cho các thiết bị của mình đến được tay người dùng với độ ổn định, hiệu quả và ít lỗi nhất có thể. Quá trình gỡ lỗi sẽ đảm bảo cho sản phẩm có chất lượng tốt nhất. Hiện nay, có rất nhiều công cụ gỡ lỗi cho hệ thống nhúng, các kỹ sư lập trình cần phải chọn cho mình được một công cụ gỡ lỗi phù hợp với thiết bị của mình để đạt hiệu quả gỡ lỗi cao nhất. 1.2. Đề tài, đối tượng nghiên cứu và phương pháp nghiên cứu Đề tài của khóa luận là “Các kỹ thuật gỡ lỗi trong việc phát triển hệ thống nhúng với ngôn ngữ C”. Khóa luận mong muốn cung cấp cho các kỹ sư lập trình phần mềm nhúng một cái nhìn tổng quát về hệ thống, các kỹ thuật gỡ lỗi, công cụ gỡ lỗi. Đối tượng nghiên cứu chính trong đề tài là vi điều khiển LPC2148 của công ty Philips. Đây là một vi điều khiển được thiết kế dựa trên cấu trúc của vi xử lý ARM đã được sử dụng rộng rãi trong nhiều thiết bị, sản phẩm. Khóa luận tập trung tìm hiểu về lý thuyết hệ thống nhúng, các kỹ thuật gỡ lỗi, sau đó áp dụng các kiến thức đó vào thực hiện việc gỡ lỗi cho phần mềm nhúng. Khóa luận tập trung nghiên cứu kỹ thuật gỡ lỗi bằng phương pháp mô phỏng. Phương pháp này có ưu điểm là phổ biến, có nhiều công cụ, dễ sử dụng, được sự hỗ trợ lớn về mặt kiến thức và chuyên môn từ các nhà sản xuất và cộng đồng người sử dụng, có thể áp dụng phương pháp mô phỏng này khi phần cứng còn đang được phát triển, hay phần cứng không có sẵn. 1 [...]... thống nhúng, c c đ c trưng c a hệ thống và vi c chọn lựa một ngôn ngữ lập trình phù hợp với hệ thống nhúng Chương ba: Tiếp c n với c c kỹ thuật gỡ lỗi thường dùng trong hệ thống nhúng: kiểm thử trên máy chủ, kiểm thử sử dụng bộ mô phỏng, macro assert và gỡ lỗi dùng c c thiết bị phần c ng Chương bốn: Tiếp c n tìm hiểu c ng c gỡ lỗi µVision c a c ng ty Keil ARM, là một c ng c hỗ trợ vi c gỡ lỗi rất... tổng quan về: hệ thống nhúng: định nghĩa hệ thống nhúng, đ c trưng c a hệ thống, ví dụ về hệ thống Và sự lựa chọn ngôn ngữ lập trình cho hệ thống nhúng 2.1 Hệ thống nhúng 2.1.1 Hệ thống nhúng là gì? Thuật ngữ hệ thống nhúng thường đư c dùng để chỉ bất kỳ hệ thống máy tính nào ẩn chứa bên trong c c thiết bị, hệ thống [4] Bên c nh đó c n c nhiều định nghĩa kh c cho khái niệm hệ thống nhúng Dưới đây...1.3 M c tiêu c a khóa luận Để đạt đư c c c vấn đề đã nêu ra, khoá luận sẽ lần lượt trình bày những kiến th c cần thiết để giải quyết yêu c u trên Khóa luận sẽ tập trung vào một số c c vấn đề sau: • Tìm hiểu khái quát về hệ thống nhúng, c c đ c điểm c a hệ thống và vi c lựa chọn c c ngôn ngữ lập trình cho hệ thống • Tìm hiểu c c kỹ thuật gỡ lỗi c bản cho hệ thống nhúng • Tìm hiểu c ng c gỡ lỗi µVision,... ch c năng c a hệ thống, để từ đó c thể c i đặt đúng c c ch c năng 10 mà hệ thống yêu c u Giai đoạn c i đặt, c c kỹ sư lập trình viết c c chương trình c a mình bằng c c ngôn ngữ lập trình như Assembly, C/ C++, Java C c ngôn ngữ lập trình này thường dễ h c, dễ sử dụng, khả chuyển giúp cho c c kỹ sư lập trình trong một đội c thể hiểu đư c chương trình c a nhau Giai đoạn tiếp theo là sinh mã C c hệ thống. .. tích c pháp cho c c tệp kịch bản đư c viết khá dễ dàng với ngôn ngữ CC c kỹ sư lập trình nên sử dụng c c ghi chú, để cho c u tr c tệp tin đư c rõ 15 ràng, dễ hiểu, và chúng ta c thể biết rằng tệp kịch bản th c thi những lệnh nào, c c phần nào đang đư c kiểm thử Vi c viết c c tệp tin và c c ghi chú c ng nên tuân theo c c chuẩn chung để tất c mọi người làm vi c trong dự án c thể hiểu và th c hiện... một ngôn ngữ mới cho phép người lập trình viết c c ứng dụng chạy trên nền c c thiết bị phần c ng nhỏ như chip, thẻ thông minh, điện thoại 9 CHƯƠNG 3: C C KỸ THUẬT GỠ LỖI Trong chương này, khóa luận sẽ đưa ra khái niệm về gỡ lỗic c kỹ thuật gỡ lỗi cho c c phần mềm c a hệ thống nhúng C c kỹ sư lập trình c thể áp dụng một ho c kết hợp một vài phương pháp gỡ lỗi để cho kết quả tốt nhất 3.1 Gỡ lỗi. .. hạn chế và như c điểm C c kỹ sư phần mềm thường phản đối vi c kiểm thử c c đoạn mã hệ thống nhúng trên máy chủ vì một số lý do sau đây: Thứ nhất, họ cho rằng, c c đoạn mã c a hệ thống nhúng là “rất phụ thu c phần c ng” Đúng là c một số hệ thống nhúng, c c mã lệnh c a họ hoàn toàn phụ thu c phần c ng và c c hệ thống nhúng thì ch c chắn là sẽ phải c c c mã lệnh phụ thu c phần c ng, nhưng trên th c tế... µVision, c c ch c năng, ưu như c điểm c a chương trình • Xây dựng chương trình, ứng dụng c ng c gỡ lỗi vào vi c gỡ lỗi cho chương trình để thấy đư c những ưu như c điểm c a c ng c 1.4 C u tr c của khóa luận Khóa luận đư c trình bày theo c u tr c như sau: Chương mở đầu: Giới thiệu về đề tài, m c tiêu c a khóa luậnc u tr c khóa luận Chương hai: Giới thiệu tổng quan về hệ thống nhúng, định nghĩa hệ thống. .. th c hiện nó C c ghi chú thường đư c bắt đầu bằng hiệu # • Dữ liệu nhập vào c thể là ở dạng mã ASCII ho cc c định dạng kh c Nhiều hệ thống nhúng nhận c c dữ liệu dạng nhị phân, hệ thống c n c c ch để c thể đ c đư c c c dữ liệu, định dạng và hiển thị đư c c c dữ liệu kiểu nhị phân Vi c đ c c c tệp kịch bản và kết xuất thông tin ra c c tệp tin làm cho c ng vi c kiểm thử lặp lại đư c th c hiện dễ... c nhưng chưa đư c ổn định, c n gặp lỗi nên vi c gỡ lỗi cho c c phần mềm gặp nhiều khó khăn • Th c thi tất c c c lệnh: Vi c chạy tất c c c lệnh, t c là chạy tất c c c trường hợp từ c c trường hợp tổng quát đến c c trường hợp đơn lẻ, c c ngoại lệ, c c trường hợp mà ta không mong muốn xảy ra Nhưng: Th c hiện c c tất c c c lệnh trên máy chủ là rất khó khăn, vì những tình huống xảy ra trên th c tế, đôi . số c c vấn đề sau: • Tìm hiểu khái quát về hệ thống nhúng, c c đ c điểm c a hệ thống và vi c lựa chọn c c ngôn ngữ lập trình cho hệ thống. • Tìm hiểu c c kỹ thuật gỡ lỗi c bản cho hệ thống nhúng. •. quan về hệ thống nhúng, định nghĩa hệ thống nhúng, c c đ c trưng c a hệ thống và vi c chọn lựa một ngôn ngữ lập trình phù hợp với hệ thống nhúng. Chương ba: Tiếp c n với c c kỹ thuật gỡ lỗi thường. tượng nghiên c u và phương pháp nghiên c u Đề tài c a khóa luận là C c kỹ thuật gỡ lỗi trong vi c phát triển hệ thống nhúng với ngôn ngữ C . Khóa luận mong muốn cung c p cho c c kỹ sư lập trình

Ngày đăng: 28/06/2014, 01:20

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1: MỞ ĐẦU

    • 1.1. Đặt vấn đề

    • 1.2. Đề tài, đối tượng nghiên cứu và phương pháp nghiên cứu

    • 1.3. Mục tiêu của khóa luận

    • 1.4. Cấu trúc của khóa luận

    • CHƯƠNG 2: TỔNG QUAN

      • 2.1. Hệ thống nhúng

        • 2.1.1. Hệ thống nhúng là gì?

        • 2.1.2. Các thiết bị phần cứng thông thường

        • 2.1.3. Đặc trưng của hệ thống nhúng

        • 2.1.4. Ví dụ về hệ thống nhúng

        • 2.2. Sự lựa chọn ngôn ngữ lập trình cho hệ thống nhúng

        • CHƯƠNG 3: CÁC KỸ THUẬT GỠ LỖI

          • 3.1. Gỡ lỗi

            • 3.1.1. Gỡ lỗi trong quá trình phát triển hệ thống nhúng

            • 3.1.2. Định nghĩa gỡ lỗi

            • 3.1.3. Tầm quan trọng của việc gỡ lỗi

            • 3.1.4. Mục đích của quá trình gỡ lỗi

            • 3.2. Kiểm thử trên máy chủ

              • 3.2.1. Kỹ thuật cơ bản

              • 3.2.2. Gọi các thường trình ngắt

              • 3.2.3. Gọi thường trình ngắt định thời

              • 3.2.4. Các tệp kịch bản và tệp kết xuất

              • 3.2.5. Những phản đối, hạn chế và nhược điểm

              • 3.3. Bộ mô phỏng

              • 3.4. Sử dụng macro assert

Tài liệu cùng người dùng

Tài liệu liên quan