1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng arm based application bulder trên kit at91sam7s evaluation board

144 10 0

Đ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 Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA - NGUYỄN VĂN THANH XÂY DỰNG “ARM-BASED APPLICATION BUILDER” TRÊN KIT AT91SAM7S EVALUATION BOARD Chuyên ngành: KỸ THUẬT ĐIỆN TỬ LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH , tháng 12 năm 2009 CƠNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học: TS PHAN HỒNG PHƯƠNG GVC Th.S HỒ TRUNG MỸ Cán chấm nhận xét 1: PGS TS LÊ TIẾN THƯỜNG Cán chấm nhận xét 2: TS LƯU THANH TRÀ Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 30 tháng 12 năm 2009 TRƯỜNG ĐẠI HỌC BÁCH KHOA PHÒNG ĐÀO TẠO SĐH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp.HCM, ngày tháng năm 2009 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: NGUYỄN VĂN THANH Phái: Nam Ngày, tháng, năm sinh: 25 / 02 / 1971 Nơi sinh: Bến Tre Chuyên ngành: Kỹ thuật Điện tử MSHV: 01407729 I - TÊN ĐỀ TÀI: XÂY DỰNG “ARM-BASED APPLICATION BUILDER” TRÊN KIT AT91SAM7S EVALUATION BOARD II - NHIỆM VỤ VÀ NỘI DUNG: Tìm hiểu kỹ thuật lập trình tự động sinh mã cho hệ thống nhúng thời gian thực Tìm hiểu phương pháp thiết kế chương trình biên dịch Tìm hiểu hệ vi điều khiển họ AT91SAM7S kỹ thuật lập trình nhúng ARM Xây dựng chương trình biên dịch từ file dạng text sang file C Xây dựng trình tạo ứng dụng cho vi điều khiển Atmel AT91SAM7S256 _“ARM_based application builder”_ kit AT91SAM7S Evaluation Board Thực nghiệm chương trình kit AT91SAM7S Evaluation Board III - NGÀY GIAO NHIỆM VỤ: 02/02/2009 IV - NGÀY HOÀN THÀNH NHIỆM VỤ: 14/12/2009 V - CÁN BỘ HƯỚNG DẪN: TS PHAN HỒNG PHƯƠNG GVC Th.S HỒ TRUNG MỸ Nội dung đề cương Luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH KHOA QL CHUYÊN NGÀNH ABSTRACT Embedded real-time systems is a real-world application domain where advanced software developing processes are already generative Therefore, it is a source of experience and also of additional technological requirements that are mostly concerned at the moment This thesis focuses on the design and implementation of an ARM_based application builder over PNLab AT91SAM7S Evaluation Board kit The design develops a new generative programming technique for real-time embedded system using Atmel AT91SAM7S256 microchips This program involves a set of automatically generated code, aiming to create a target code from some source code after programmer’s domain specific languages (DSL) implementation As deploying the construction of PNLab AT91SAM7S Evaluation Board, a domain-specific language is used to describe an application system in a netlist form As a result, an automatic code transforms this abstract system description into final executable code After the validation process, an application file in binary form is generated TÓM TẮT Hệ thống nhúng thời gian thực lĩnh vực ứng dụng giới thực, nơi quy trình phát triển phần mềm tiên tiến tự sinh Vì thế, vừa mã nguồn thí nghiệm nhu cầu công nghệ bổ sung quan tâm phổ biến Luận văn tập trung thiết kế thực thi chương trình tạo ứng dụng cho vi điều khiển ARM phát triển kít PNLab AT91SAM7S Evaluation Board Thiết kế phát triển kỹ thuật lập trình tự động sinh mã cho hệ thống nhúng sử dụng vi điều khiển AT91SAM7S256 hãng Atmel Chương trình bao gồm tạo mã tự động nhằm tạo mã đích từ mã nguồn người lập trình viết cấp cao ngơn ngữ đặc biệt Khi lập trình ứng dụng kít phát triển PNLab AT91SAM7S Evaluation Board, ngơn ngữ đặc biệt dùng để mô tả hệ thống ứng dụng dạng netlist, tạo mã tự động biến đổi mô tả hệ thống trừu tượng thành mã thực thi sau Sau q trình xử lý thành cơng, file dạng mã nhị phân chương trình ứng dụng sinh ii MỤC LỤC Trang LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC CÁC HÌNH VẼ VÀ BẢNG BIỂU vii CHƯƠNG I: GIỚI THIỆU CHƯƠNG II: VI ĐIỀU KHIỂN AT91SAM7S256 VÀ KIT PHÁT TRIỂN PNLab AT91SAM7S_EB 2.1 Sự vượt trội công nghệ ARM 2.1.1 Những lợi sử dụng ARM 2.1.2 Những ưu điểm kỹ thuật ARM 2.1.3 Lợi ích sản phẩm ARM Atmel 2.2 Vi điều khiển ARM AT91SAM7S256 11 2.2.1 Các tính chủ yếu AT91SAM7S256 11 2.2.2 Mô tả vi điều khiển AT91SAM7S256 12 2.2.3 Mơ tả tín hiệu vi điều khiển AT91SAM7S256 15 2.2.4 Các đường điều khiển vào/ra vi điều khiển AT91SAM7S256 18 2.2.5 Bộ nhớ vi điều khiển AT91SAM7S256 20 2.2.5.1 Phân vùng nhớ AT91SAM7S256 20 2.2.5.2 Flash nhúng AT91SAM7S256 20 2.2.5.3 Giao diện lập trình Flash nhanh AT91SAM7S256 22 2.2.6 Các thiết bị ngoại vi AT91SAM7S256 23 2.2.6.1 Các đường PIO để điều khiển thiết bị ngoại vi 23 2.2.6.2 Định danh thiết bị ngoại vi 23 2.3 Kit phát triển PNLab AT91SAM7S Evaluation Board 26 iii 2.3.1 Mô tả kit phát triển PNLab AT91SAM7S Evaluation Board 26 2.3.2 Đặc tả phần cứng 27 2.3.3 Các Jumper thiết lập 27 2.3.4 Hướng dẫn sử dụng phần mềm SAM-BA 28 CHƯƠNG III: KỸ THUẬT LẬP TRÌNH NHÚNG ARM 30 3.1 Môi trường phát triển hệ thống nhúng sử dụng ARM 30 3.1.1 Môi trường phát triển chéo 30 3.1.1.1 JTAG Based ICD 30 3.1.1.2 Phần mềm gỡ rối 30 3.1.1.3 Thiết bị mô CPU ICE ( In Circuit Emulator ) 31 3.1.2 Bộ mô phần mềm 31 3.1.3 Board phát triển 31 3.1.4 Hệ điều hành nhúng 31 3.2 Phần mềm hệ thống nhúng 32 3.2.1 Các thành phần phần mềm nhúng 32 3.2.2 Mã khởi tạo (Boot) 32 3.2.3 Hệ điều hành nhúng 32 3.2.4 Ứng dụng phần mềm nhúng 34 3.3 Lập trình ứng dụng với vi điều khiển AT91SAM7S256 34 3.3.1 Các thiết bị ngoại vi AT91SAM7S256 34 3.3.2 Các phần mềm bổ sung 35 3.3.2.1 Phần mềm C-Startup 35 3.3.2.2 Sử dụng thiết bị ngoại vi 40 3.3.2.3 Sử dụng điều khiển ngắt AIC 40 3.3.2.4 Sử dụng Timer Counter 42 3.4 Công cụ phát triển ARM 43 3.4.1 Chương trình biên dịch ARM C 43 iv 3.4.2 Chương trình dịch hợp ngữ_ARM assembler 44 3.4.3 Chương trình liên kết ( linker) 45 3.4.4 Phần mềm ARMsd 45 3.5 Công cụ AT91 ISP/SAM-BA 46 3.5.1 Lĩnh vực sử dụng SAM-BA 46 3.5.2 Đặc tính phần mềm SAM-BA 46 3.5.3 Lập trình Flash dùng SAM-BA 47 CHƯƠNG IV: KỸ THUẬT LẬP TRÌNH TỰ ĐỘNG SINH MÃ TRONG HỆ THỐNG NHÚNG THỜI GIAN THỰC 48 4.1 Giới thiệu kỹ thuật lập trình sinh mã tự động 48 4.2 Phát triển phần mềm tự sinh mã cho hệ thống nhúng 51 4.3 Bài học kinh nghiệm, ứng dụng hướng phát triển kỹ thuật lập trình tự sinh mã 54 4.4 Phương án thiết kế sinh mã tự động cho AT91SAM7S256 56 CHƯƠNG V: XÂY DỰNG CHƯƠNG TRÌNH TẠO ỨNG DỤNG “ARM_BASED APPLICATION BUILDER” 57 5.1 Tổng quan trình thiết kế chương trình 57 5.1.1 Các bước xây dựng chương trình 57 5.1.2 Xây dựng giao diện lập trình 59 5.1.3 Định dạng Mã nguồn 60 5.1.4 Xây dựng chương trình biên dịch 63 5.2 Giải thuật chương trình 64 5.2.1 Bộ phân tích từ vựng từ mã nguồn 64 5.2.2 Bộ phân tích cú pháp 66 5.2.2.1 Giải thuật xây dựng phân tích cú pháp 66 5.2.2.2 Giải thuật kiểm tra entity 71 5.2.2.3 Giải thuật kiểm tra Funct 74 v 5.2.3 Giải thuật xây dựng tạo mã C 76 5.2.4 Giải thuật xây dựng trình liên kết sinh mã BIN 79 5.2.4.1 Tạo file arm_out.axf arm_out.tex 79 5.2.4.2 Hiển thị file arm_out.tex 80 5.2.4.3 Biên dịch file arm_out.axf thành file arm_out.bin 81 5.3 Nạp chương trình vào vi điều khiển 82 5.4 Chương trình xóa file arm_out.c 83 5.5 Biên soạn chương trình 84 CHƯƠNG VI: KẾT QUẢ THỰC NGHIỆM 85 6.1 Giới thiệu chương trình 85 6.1.1 Nhập chương trình ứng dụng từ người lập trình 85 6.1.2 Thực chương trình ứng dụng 87 6.1.2.1 Thông báo lỗi cú pháp file nguồn 87 6.1.2.2 Thông báo file arm_out.c tạo 92 6.1.2.3 Thông báo file arm_out.bin tạo 92 6.2 Phương pháp mô tả sub-circuit 93 6.2.1 AND, NAND, OR, NOR, XNOR, XOR 93 6.2.2 NOT 94 6.2.3 DFF ( Flip_Flop D) 94 6.2.4 JKFF (Flip_Flop JK) 95 6.2.5 COUNTER (Bộ đếm lên/xuống 10 bit ) 95 6.2.6 CONTSTEPMOTOR (Bộ điều khiển động bước đơn cực) 96 6.2.7 ADC (Bộ biến đổi Analog-to-Digital 10 bit ) 97 6.2.8 DELAY1 (Bộ trì hỗn giây) 98 6.2.9 DELAY60 (Bộ trì hỗn 60 giây) 98 6.2.10 TIMER (Bộ định thời) 98 6.3 Chuẩn bị phần mềm 99 vi 6.4 Chuẩn bị phần cứng 99 6.5 Các bước thực thi chương trình ứng dụng 99 6.6 Ví dụ: Lập trình điều khiển việc đóng/ mở cửa garage 104 6.6.1 Mô tả ứng dụng 104 6.6.2 Xây dựng chương trình điều khiển cửa garage 105 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 109 TÀI LIỆU THAM KHẢO 111 PHỤ LỤC 113 Phụ lục A: Chương trình tạo dự án ARM MFC AppWizard(exe) 113 Phụ lục B: Chương trình tạo dự án ARM2CC 113 Phụ lục C: File logic.h 114 Phụ lục D: File init_extint 127 Phụ lục E: File IRQ1.s 128 Phụ lục F: File init_timer.c 128 Phụ lục G: File Board.h 129 Phụ Lục int j; for(j=0;j

Ngày đăng: 16/02/2021, 18:36

Xem thêm:

w