1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng Hệ thống nhúng (2019): Phần 1

132 11 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

Thông tin cơ bản

Định dạng
Số trang 132
Dung lượng 14,29 MB

Nội dung

Bài giảng Hệ thống nhúng (2019): Phần 1 có nội dung trình bày giới thiệu chung về hệ thống nhúng (Embedded system); các đặc điểm hệ thống nhúng; một số kiến trúc phần mềm hệ thống nhúng; các thành phần phần cứng và thành phần phần mềm của hệ thống; hệ điều hành thời gian thực dùng cho các hệ thống nhúng; thiết kế và cài đặt các hệ thống nhúng;... Mời các bạn cùng tham khảo!

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG NGUYỄN NGỌC MINH LƯƠNG CÔNG DUẨN BÀI GIẢNG HỆ THỐNG NHÚNG HÀ NỘI – 10.2019 MỤC LỤC MỤC LỤC DANH MỤC CÁC HÌNH DANH MỤC BẢNG BIỂU CHƯƠNG - GIỚI THIỆU CHUNG VỀ HỆ THỐNG NHÚNG 10 1.1 Khái niệm Hệ thống nhúng (Embedded system) 10 1.2 Lịch sử phát triển hệ thống nhúng 11 1.3 Các đặc điểm hệ thống nhúng 11 1.3.1 Giao diện 12 1.3.2 Kiến trúc CPU 12 1.4 Kiến trúc điển hình hệ thống nhúng 14 Một số kiến trúc phần mềm hệ thống nhúng 15 1.5 Phân loại hệ thống nhúng 18 1.6 Phạm vi ứng dụng hệ thống nhúng 18 1.7 Các yêu cầu kĩ thiết kế hệ thống nhúng 18 1.7.1 Quản lý, tích hợp, thiết kế hệ thống: 21 1.7.2 Thiết kế, phát triển phần mềm ứng dụng 22 1.7.3 Thiết kế firmware 22 1.7.4 Thiết kế mạch, PCB: 23 1.7.5 Thiết kế vi điện tử: Linh kiện, IP, IC, phụ kiện 23 Câu hỏi ôn tập 25 CHƯƠNG 2: CÁC THÀNH PHẦN HỆ THỐNG 26 2.1 Các thành phần phần cứng 26 2.1.1 Bộ xử lý nhúng 26 2.1.2 Bộ nhớ 35 2.1.3 Bảng mạch Vào/Ra 37 2.1.5 Hệ thống Bus 46 2.2 Các thành phần phần mềm hệ thống: 56 2.2.1 Trình điều khiển thiết bị 56 2.2.2 Hệ điều hành thời gian thực 58 2.2.3 Middleware 59 2.2.4 Phần mềm ứng dụng 62 Câu hỏi ôn tập 64 CHƯƠNG - HỆ ĐIỀU HÀNH THỜI GIAN THỰC DÙNG CHO CÁC HỆ THỐNG NHÚNG 66 3.1 Yêu cầu chung cho hệ điều hành thời gian thực 66 3.2 Các chức phần lõi hệ điều hành thời gian thực 67 3.2.1 Kernel 67 3.2.2 Tác vụ Multi-tasking 68 3.3.3 Lập lịch thời gian thực (Real-time Scheduling) 71 3.3.4 Đồng 73 3.2.5 HAL (Hardware Abstraction Layer) 75 3.3 Giới thiệu hệ điều hành thời gian thực 76 3.3.1 FreeRTOS: 76 3.3.2 Windows CE: 88 3.3.3 Hệ điều hành Embedded Linux: 90 3.3.4 Hệ điều hành uCLinux: 91 Câu hỏi ôn tập 92 CHƯƠNG 4: THIẾT KẾ VÀ CÀI ĐẶT CÁC HỆ THỐNG NHÚNG 93 4.1 Thiết kế hệ thống 93 4.1.1 Xác định yêu cầu 93 4.1.2 Đặc tả 95 4.1.3 Phân hoạch phần cứng - phần mềm 98 4.1.4 Thiết kế hệ thống 109 4.2 Cài đặt thử nghiệm hệ thống nhúng 129 Câu hỏi ôn tập 132 CHƯƠNG 5: PHÁT TRIỂN HỆ THỐNG NHÚNG DỰA TRÊN HỆ VI XỬ LÝ NHÚNG 133 5.1 Giới thiệu chung 133 5.2 Kiến trúc hệ vi xử lý nhúng ARM 133 Lõi ARM 133 Thanh ghi chế độ hoạt động 134 Pipeline 136 Cấu trúc bus: 138 Tập lệnh ARM 138 Các lệnh xử lý liệu 139 Các lệnh rẽ nhánh 141 Các lệnh chuyển liệu Load- Store 142 Tập lệnh Thumb 147 5.3 Giới thiệu dòng vi xử lý ARM Cortex ARM Cortex M3 148 Các dòng ARM Cortex 148 Vi điều khiển STM32F1 150 Lập trình ghi 153 Chuẩn CMSIS 153 Thư viện Standard Peripheral Library (SPL) 155 Quy trình lập trình chương trình STM32F1 157 Bộ ghi RCC (Register Clock Control) 158 Lập trình điều khiển IO với STM32F1 sử dụng ghi 159 Lập trình điều khiển IO với STM32F1 sử dụng SPL 168 Lập trình Systick 175 Lập trình điều khiển Timer 180 Lập trình điều chế độ rộng xung - PWM (Pulse-width modulation) 186 Lập trình điều khiển UART 191 Lập trình điều khiển SPI 199 Lập trình ADC 211 Lập trình DAC 216 Lập trình với FreeRTOS 220 5.4 Thiết lập hệ điều hành nhúng ARM 240 Firmware Bootloader 240 Hệ thống file (Filesystem) 241 Thiết lập nhân (kernel) 242 PHỤ LỤC 247 TÀI LIỆU THAM KHẢO 276 DANH MỤC CÁC HÌNH Hình 1: Mơ hình chung hệ thống nhúng 15 Hình 2: Cấu trúc thiết bị điện tử 20 Hình 3: Các mảng công việc thiết kế hệ thống nhúng 21 Hình 4: Các yêu cầu kĩ tương ứng 24 Hình 1: Bảng mạch Encore 400 Ampro 26 Hình 2: Các thao tác ISA đơn giản 28 Hình 3: Ví dụ bảng mạch TV tương tự với thi hành điều khiển ISA 28 Hình 4: Board ví dụ với điện thoại di động thực kỹ thuật số ISA đường liệu 29 Hình 5: Board ví dụ với máy quay kỹ thuật số FSMD ISA 29 Hình 6: Ví dụ thực JVM ISA 30 Hình 7: Ví dụ thực CISC ISA 31 Hình 8: Ví dụ thực RISC ISA 31 Hình 9: Ví dụ thực SIMD ISA 32 Hình 10: Ví dụ thực siêu vơ hướng ISA 33 Hình 11: Ví dụ thực VLIW ISA 33 Hình 12: Sự phân cấp nhớ 36 Hình 13: Ví dụ DIP 37 Hình 14: Ví dụ SIMM 30 chân 37 Hình 15: Ví dụ DIMM 168 chân 37 Hình 16: Sơ đồ khối I/O kiến trúc Von Newman 38 Hình 17: Các cổng điều khiển thiết bị điều khiển bảng mạch nhúng 39 Hình 18: Bảng mạch I/O phức tạp 39 Hình 19: Bảng mạch I/O đơn giản 40 Hình 20: Ví dụ sơ đồ truyền đơn giản 41 Hình 21: Ví dụ sơ đồ truyền bán song công 41 Hình 22: Ví dụ sơ đồ truyền song công 41 Hình 23: Mơ hình OSI 42 Hình 24: Sơ đồ mạng nối tiếp 42 Hình 25: Sơ đồ khối thành phần nối tiếp 42 Hình 26: Các tín hiệu RS-232 đầu nối DB25 43 Hình 27: Các tín hiệu RS-232 đầu nối DB9 43 Hình 28: Các tín hiệu RS-232 đầu nối RJ45 44 Hình 29: Hệ thống I/O mẫu 44 Hình 30: Phương tiện truyền tin dùng dây 44 Hình 31: Phương tiện truyền tin khơng dây 45 Hình 32: Giao diện cổng truyền tin tới I/O bảng mạch khác 45 Hình 33: Cấu trúc bus chung 46 Hình 34: Kiến trúc MPC620 với cầu 47 Hình 35: Sự phân xử song song tập trung động 49 Hình 36: Sự phân xử tảng FIFO 49 Hình 37: Sự phân xử quyền ưu tiên 49 Hình 38: Sự phân xử tuần tự/chuỗi tập trung 50 Hình 39: Sự phân xử phân tán qua tự chọn 50 Hình 40: Bảng mạch mẫu TV 52 Hình 41: Các điều kiện START STOP I2C 53 Hình 42: Ví dụ truyền liệu I2C 53 Hình 43: Sơ đồ truyền liệu hoàn chỉnh I2C 54 Hình 44: Bus PCI 54 Hình 45: IC tương thích chuẩn PCI 55 Hình 46: Sơ đồ khung RS-232 58 Hình 47: Middleware mơ hình hệ nhúng 60 Hình 48: Mơ hình OSI middleware 61 Hình 49: Sơ đồ khối mơ hình OSI, TCP/IP mơ hình hệ nhúng 62 Hình 50: Sơ đồ khối mơ hình TCP/IP giao thức 62 Hình 51: Lớp ứng dụng mơ hình hệ nhúng 63 Hình 1: Kernel hệ thống 67 Hình 2: Cấu trúc tác vụ 70 Hình 3: Các trạng thái tác vụ 72 Hình 4: Cơ chế truyền tin mailbox 75 Hình 5: Cấu trúc thư mục FreeRTOS 79 Hình 1: Thiết kế (platform) 94 Hình 2: Sơ đồ trạng thái với ngoại lệ k 96 Hình 3: Tổng quan phân hoạch phần cứng/phần mềm 100 Hình 4: Hợp nút nhiệm vụ ánh xạ đến thành phần phần cứng 102 Hình 5: Đồ thị nhiệm vụ 106 Hình 6: Khơng gian thiết kế cho phịng thí nghiệm âm 109 Hình 7: Môi trường phát triển 110 Hình 8: IDE 111 Hình 9: Ví dụ trình mơ PSpice CAD 112 Hình 10: Ví dụ mạch PSpice CAD 112 Hình 11: Sơ đồ biên dịch 114 Hình 12: Các bước biên dịch/liên kết tập tin đối tượng kết quả, thực hiên C 115 Hình 13: Sơ đồ phiên dịch 116 Hình 14: Sơ đồ giải thích 128 Hình 15: Sơ đồ giải thích 128 Hình 16: Ma trận mơ hình thử nghiệm 130 Hình 1: Cấu trúc ghi trạng thái chương trình 134 Hình 2: Các ghi lõi ARM 135 Hình 3: Các chế độ hoạt động ghi 136 Hình 4: Dòng chảy lệnh tác vụ áp dụng trường hợp lệnh có nhiều chu kì máy 137 Hình 5: Sơ đồ nhớ ARM M3 150 Hình 6: hiệu năng, chức năng, hoạt động dòng vi điều khiển STM32 Cortex M 151 Hình 7: Vai trò CMSIS SPL phát triển phần mềm cho vi điều khiển ARM 156 Hình 8: Kiến trúc ngoại vi STM32 157 Hình 9: Thanh ghi RCC_AHBENR 158 Hình 10: RCC_APB2ENR 158 Hình 11: Thanh ghi RCC_APB1ENR 159 Hình 12: Cấu trúc chân điều khiển thông dụng 160 Hình 13: Cấu trúc chân IO hỗ trợ giao tiếp 5V 161 Hình 14: Thơng tin cấu hình IO 161 Hình 15: Các chế độ tốc độ đầu số 161 Hình 16: Thanh ghi GPIOx_CRL 162 Hình 17: Thanh ghi GPIOx_CRH 162 Hình 18: Thanh ghi GPIOx_IDR 163 Hình 19: Thanh ghi GPIOx_ODR 163 Hình 20: Thanh ghi Lập/Xóa GPIOx_BSRR 164 Hình 21: Thanh ghi Xóa GPIOx_BRR 164 Hình 22: Thanh ghi khóa cấu hình GPIOx_LCKR 164 Hình 23: Cấu hình package sử dụng cho Project với KeilC 169 Hình 24: Thơng tin gói sau cấu hình 171 Hình 25: Hoạt động Systick 175 Hình 26: Cấu trúc Timer Advanced-Control 180 Hình 27: Cấu trúc Timer General-purpose 181 Hình 28: Hoạt động Timer 182 Hình 29: Điều chế độ rộng xung PWM 186 Hình 30: Thơng tin cấu hình PWM cho Timer 189 Hình 31: Mức điện biểu diễn tín hiệu nhị phân 192 Hình 32: Cổng DB25 193 Hình 33: Cổng DB-9 193 Hình 34: Kết nối tối thiểu PC với vi điều khiển giao tiếp UART 194 Hình 35: Định dạng 8-N-1 194 Hình 36: Thơng tin chân giao tiếp UART 194 Hình 37: Cấu hình thơng tin chân giao tiếp UART 196 Hình 38: Kết nối giao tiếp SPI 201 Hình 39: Màn hình PCD8544 sử dụng giao tiếp SPI 207 Hình 40: Sơ đồ khối ADC 212 Hình 41: Sơ đồ khối DAC 216 Hình 42: Kiến trúc RTOS 220 Hình 43: Hoạt động CPU quan sát người dùng với Multi Thread 221 Hình 44: Các trạng thái Task RTOS 221 Hình 45: Cơ chế Round-Robin 222 Hình 46: Cơ chế Priority Base 222 Hình 47: Cơ chế Priority-based pre-emptive 223 Hình 48: Sử dụng Signal Event đồng thông tin Task 224 Hình 49: Trao đổi liệu Task sử dụng Queue 225 Hình 50: Trao đổi liệu Task sử dụng Mail Queue 225 Hình 51: Binary semaphore Counting semaphore 226 Hình 52: Sử dụng chung tài nguyên hệ thống với Mutex 227 Hình 53: Thêm FreeRTOS vào Project 227 DANH MỤC BẢNG BIỂU Bảng 1: Các xử lý kiến trúc thực tế 27 Bảng 1: So sánh FreeRTOS OpenRTOS 76 Bảng 1: Các giải pháp vấn đề IP trình bày 103 Bảng 2: Thời gian thực nhiệm vụ từ T1 đến T5 thành phần 107 Bảng 3: Những công cụ gỡ lỗi 125 Bảng 1: Bảng chân cổng DB-9 193 Bảng 2: Các thơng tin cấu hình giao tiếp SPI 203 Bảng 3: Thơng tin cấu hình chân giao tiếp SPI 204 Bảng 4: Các thơng tin cấu hình ADC 214 CHƯƠNG - GIỚI THIỆU CHUNG VỀ HỆ THỐNG NHÚNG 1.1 Khái niệm Hệ thống nhúng (Embedded system) Hệ thống nhúng (Embedded system) thuật ngữ để hệ thống có khả tự trị nhúng vào mơi trường hay hệ thống mẹ Đó hệ thống tích hợp phần cứng phần mềm phục vụ toán chuyên dụng nhiều lĩnh vực công nghiệp: điện tử, viễn thông, công nghệ thơng tin, tự động hố điều khiển, quan trắc truyền tin Đặc điểm hệ thống nhúng hoạt động ổn định có tính tự động hoá cao Hệ thống nhúng thường thiết kế để thực chức chuyên biệt Khác với máy tính đa chức năng, chẳng hạn máy tính cá nhân, hệ thống nhúng thực một vài chức định, thường kèm với yêu cầu cụ thể bao gồm số thiết bị máy móc phần cứng chun dụng mà ta khơng tìm thấy máy tính đa nói chung Vì hệ thống xây dựng cho số nhiệm vụ định nên nhà thiết kế tối ưu hóa nhằm giảm thiểu kích thước chi phí sản xuất Các hệ thống nhúng thường sản xuất hàng loạt với số lượng lớn Hệ thống nhúng đa dạng, phong phú chủng loại Đó thiết bị cầm tay nhỏ gọn đồng hồ kĩ thuật số máy chơi nhạc MP3, sản phẩm lớn đèn giao thơng, kiểm sốt nhà máy hệ thống kiểm soát máy lượng hạt nhân Xét độ phức tạp, hệ thống nhúng đơn giản với vi điều khiển phức tạp với nhiều đơn vị, thiết bị ngoại vi mạng lưới nằm gọn lớp vỏ máy lớn Các thiết bị PDA máy tính cầm tay có số đặc điểm tương tự với hệ thống nhúng hệ điều hành vi xử lý điều khiển chúng thiết bị hệ thống nhúng thật chúng thiết bị đa năng, cho phép sử dụng nhiều ứng dụng kết nối đến nhiều thiết bị ngoại vi Cho đến nay, khái niệm hệ thống nhúng nhiều người chấp nhận là: hệ thống thực số chức đặc biệt có sử dụng vi xử lý Khơng có hệ thống nhúng có phần mềm 10 Một nhận xét nhanh việc đo lường hiệu suất hệ thống với chuẩn đánh giá (Benchmark) Ngồi cơng cụ gỡ lỗi, bảng mạch khởi động chạy, chuẩn đánh giá chương trình phần mềm thường sử dụng để đo lường hiệu hoạt động (độ trễ, hiệu quả, vv) tính riêng biệt hệ thống nhúng, vi xử lý chủ, hệ điều hành, JVM Trong trường hợp hệ điều hành, ví dụ, hiệu suất đo hiệu việc vi xử lý chủ sử dụng chương trình lập lịch hệ điều hành Bộ lập lịch cần ấn định định lượng thời gian thích hợp thời gian trình tiếp cận với CPU- cho trình, định lượng thời gian nhỏ, xung đột xuất Mục tiêu ứng dụng chuẩn đánh giá đại diện cho khối lượng công việc thực tế cho hệ thống Có nhiều ứng dụng chuẩn đánh giá có sẵn Chúng bao gồm chuẩn đánh giá EEMBC (Embedded Microprocessor Benchmark Consortium), tiêu chuẩn công nghiệp để đánh giá khả xử lý nhúng, trình biên dịch, Java; Whetstone, mơ ứng dụng khoa học số học chuyên sâu; Dhrystone, mơ ứng dụng lập trình hệ thống, thường bắt nguồn từ MIPS giới thiệu Phần II Các hạn chế chuẩn đánh giá chúng khơng thực tế tái sản xuất thiết kế giới thực có liên quan đến nhiều tính hệ thống Vì vậy, thường tốt sử dụng chương trình nhúng thực mà triển khai hệ thống để xác định không hiệu suất phần mềm, mà toàn hiệu suất hệ thống Nói tóm lạ, làm sáng tỏ chuẩn đánh giá, đảm bảo bạn hiểu xác phần mềm chạy chuẩn đánh giá đo không đo Loại công cụ Phần cứng Công cụ gỡ lỗi Bộ mô mạch(InCircuit Emulator: ICE) Mơ tả Ví dụ sử dụng hạn chế Thiết bị hoạt động * giải pháp gỡ lỗi đắt điển thay vi xử lý hình, có nhiều khả hệ thống gỡ lỗi * hoạt động tốc độ đầy đủ xử lý (phụ thuộc vào ICE) tới phần lại hệ thống vi xử lý * cho phép xem thay đổi nội dung nhớ , ghi, biến, v.v thời gian thực * tương tự trình gỡ rối, cho phép đặt điểm dừng, thực bước, 118 Bộ mô ROM Công cụ hoạt động thay ROM với cáp kết nối với RAM cổng kép bên mô ROM, mơ ROM Nó thiết bị phần cứng trung gian kết nối với đích thơng qua số cáp (tức BDM), kết nối với máy chủ thông qua cổng khác Chế độ gỡ lỗi Phần cứng BDM (Background bảng mạch (cổng Debug giám sát gỡ lỗi Mode: BDM) tích hợp vào CPU chủ), trình gỡ lỗi máy chủ, kết nối thông qua cáp nối tiếp đến cổng BDM Đầu nối cáp đến cổng BDM, thường gọi wiggler Gỡ lỗi BDM gọi gỡ lỗi On-Chip (OnChip Debugging: OCD) IEEE 1149.1 phần cứng tương Joint Test thích JTAG bảng Action Group mạch (JTAG) IEEE-ISTO Các tùy chọn Nexus 5001 cổng JTAG, cổng * thường có lớp che nhớ để mô nhớ ROM * xử lý phụ thuộc * cho phép sửa đổi nội dung ROM (khơng giống trình gỡ lỗi) * đặt breakpoint mã ROM, xem mã ROM thời gian thực * thường không hỗ trợ ROM on-chip, ASIC tùy chỉnh, v.v * tích hợp với trình gỡ lỗi * thường rẻ so với ICE, không linh động ICE * quan sát thực phần mềm cách kín đáo thời gian thực * đặt breakpoint để dừng thực phần mềm * cho phép đọc ghi tới ghi, RAM, cổng I/O, v.v * phụ thuộc xử lý/đích, giao diện gỡ lỗi độc quyền Motorola * tương tự BDM, không độc quyền cho kiến trúc cụ thể (là tiêu chuẩn mở) * cung cấp khả mở rộng chức gỡ lỗi tùy theo mức 119 Oscilloscope (máy sóng) tương thích Nexus, hai, số lớp phù hợp (phụ thuộc độ phức tạp xử lý chủ, lựa chọn kỹ thuật, v.v ) Thiết bị tương tự thụ động vẽ đồ thị điện áp (trên trục thẳng đứng) so với thời gian (trên trục ngang), cho phép tìm điện áp xác thời điểm định Logic Analyzer Thiết bị thụ động (bộ phân tích chụp theo logic) dõi đồng thời nhiều tín hiệu vẽ đồ thị chúng độ tương thích phần cứng * giám sát tới tín hiệu đồng thời * đặt điện áp kích hoạt để bắt giữ điện áp điều kiện cụ thể * sử dụng vơn mét (mặc dù đắt nhiều) * kiểm tra mạch làm việc cách xem tín hiệu bus cổng I/O * bắt giữ thay đổi tín hiệu cổng I/O để kiểm tra đoạn phần mềm chạy, tính tốn thời gian từ thay đổi tín hiệu tới thay đổi tiếp theo, v.v * độc lập với xử lý * đắt * thường theo dõi mức điện áp (VCC GND); tín hiệu nằm khoảng vẽ VCC hay GND * lưu trữ liệu * chế độ hoạt động (thời gian, trạng thái) cho phép kích hoạt thay đổi trạng thái tín hiệu (tức cao-xuống-thấp thấp-lêncao ) * bắt giữ thay đổi tín hiệu cổng I/O để 120 Voltmeter Đo điện áp chênh lệch điểm mạch Ohmmeter Đo điện trở kiểm tra đoạn phần mềm chạy, tính tốn thời gian từ thay đổi tín hiệu đến thay đổi tín hiệu tiếp theo, v.v (chế độ thời gian) * kích hoạt để bắt giữ liệu từ kiện xung nhịp bên đích xung nhịp bên phân tích logic * kích hoạt xử lý truy cập vào vùng cấm nhớ, ghi liệu không hợp lệ vào nhớ, truy cập loại lệnh đặc biệt (chế độ trạng thái) * số hiển thị mã hợp ngữ, thường khơng đặt breakpoint chạy bước đơn thông qua mã sử dụng phân tích * phân tích logic truy cập liệu truyền từ bên ngồi đến từ xử lý, khơng phải nhớ trong, ghi, v.v * xử lý độc lập cho phép xem hệ thống thực thời gian thực với xâm nhập * để đo giá trị điện áp đặc biệt * để xác định diện nguồn tất điểm mạch * rẻ công cụ phần cứng khác * rẻ so với công cụ 121 điểm mạch Phần mềm phần cứng khác * để đo thay đổi dòng điện/điện áp mối quan hệ với điện trở (dùng định luật Ôm V=IR) * Multimeter Đo điện áp lẫn * giống volt ohm meter điện trở * Debugger (trình Cơng cụ gỡ lỗi chức Phụ thuộc vào trình gỡ rối gỡ rối) nói chung: * nạp/chạy bước/giám sát mã đích * thực điểm breakpoint để dừng thực phần mềm * thực điểm breakpoint có điều kiện để dừng điều kiện đặc biệt xuất thời gian thực * sửa đổi nội dung RAM, thường sửa đổi nội dung ROM Profiler Thu thập giá trị theo * thời gian bắt giữ phụ thuộc thời gian (khi) hành vi phần mềm biến, ghi thực lựa chọn * để bắt mẫu thực (ở đâu) phần mềm thực Monitor Giao diện gỡ lỗi * tương tự in phát biểu tương tự ICE, nhanh hơn, xâm với phần mềm gỡ lỗi nhập, làm việc tốt cho chạy đích máy giới hạn thời gian thực mềm, chủ Một phần không tốt cho thời gian monitor nằm thực cứng ROM bảng mạch * chức tương tự tới trình đích (thường gỡ rối gọi tác nhân gỡ lỗi * Hệ điều hành nhúng tác nhân đích), bao gồm monitor cho 122 hạt nhân gỡ lỗi máy chủ Phần mềm máy chủ đích thường giao tiếp nối tiếp thơng qua Ethernet (phụ thuộc vào có sẵn đích) Trình mơ Chạy máy chủ tập lệnh mô xử lý chủ nhớ (chương trình nhị phân thực thi nạp vào trình mơ nạp vào đích) bắt chước phần cứng kiến trúc đặc biệt * thường không chạy tốc độ xác đích thực tế, đánh giá phản ứng thơng qua thời gian cách xem xét khác biệt tốc độ máy chủ đích * thường khơng mơ phần cứng khác mà tồn đích, cho phép thử nghiệm thành phần xây dựng xử lý * mô hành vi ngắt * bắt giữ giá trị biến, nhớ ghi * khơng mơ xác hành vi phần cứng thực tế thời gian thực * thường phù hợp để thử nghiệm thuật toán phản ứng kiện bên kiến trúc hay bảng mạch (dạng sóng cần mơ thơng qua phần mềm) * thường rẻ so với đầu tư vào phần cứng công cụ thực 123 Manual (thủ Ln sẵn có, miễn phí rẻ so với giải pháp khác, hiệu quả, công) đơn giản để sử dụng thường xâm nhập cao loại cơng cụ khác, khơng đủ kiểm sốt lựa chọn kiện, cách ly, lặp lại Khó khăn để gỡ lỗi hệ thống thời gian thực phương pháp thủ công phải lâu để thực thi In báo cáo Công cụ gỡ lỗi chức * để xem đầu biến, năng, việc in báo giá trị ghi, v.v cáo đưa vào bên mã chạy mã để in thông * để kiểm tra đoạn mã tin thay đổi, vị trí thực mã thơng tin, * làm chậm đáng kể v.v thời gian thực chương trình * dẫn đến thời hạn hệ thống thời gian thực Dumps Công cụ gỡ lỗi chức * giống in báo cáo kết xuất liệu cho phép thời gian thực vào số loại cấu nhanh việc thay trúc lưu trữ thời số báo cáo in ấn (đặc biệt gian chạy có lọc xác định loại cụ thể thông tin để kết xuất điều kiện cần phải đáp ứng để kết xuất liệu vào cấu trúc) * xem nội dung nhớ thời gian chạy để xác định có tràn stack/heap Counters/Timers Công cụ gỡ lỗi hiệu * thu thập thông tin thời gian suất hiệu mà thực chung cách đếm giảm bớt xung nhịp hệ thống định thời đếm chu kỳ bus, v.v thiết thiết lập lại * số xâm nhập tăng lên điểm khác mã Fast Display Công cụ gỡ lỗi chức * tương tự in báo cáo đèn nhanh hơn, xâm 124 LED bật/tắt hình LCD đơn giản dùng để biểu diễn số liệu Công cụ gỡ lỗi chức hệu suất, hiệu rong cổng đầu bật/tắt điểm khác phần mềm nhập, làm việc tốt cho giới hạn thời gian thực * cho phép xác nhận phần đặc biệt mã chạy Ouput ports * với máy sóng máy phân tích logic, đo cổng bị bật/tắt nhận thời gian thực lần bât/tắt cổng * giống thấy máy sóng mã thực vị trí * hệ thống đa nhiệm/đa luồng gán cổng khác tới luồng/nhiệm vụ để nghiên cứu hành vi Bảng 3: Những công cụ gỡ lỗi Một số công cụ công cụ gỡ lỗi tích cực xâm nhập vào hoạt động hệ thống nhúng, công cụ gỡ lỗi khác thụ động nắm bắt hoạt động hệ thống khơng có xâm nhập hệ thống chạy Gỡ lỗi hệ thống nhúng thường đòi hỏi kết hợp công cụ để xác định tất loại khác vấn đề phát sinh trình phát triển Lời khuyên cho giới- thực Cách rẻ để Gỡ Lỗi Thậm chí với tất cơng cụ có sẵn, nhà phát triển phải cố gắng để giảm thời gian gỡ lỗi chi phí, 1) chi phí lỗi tăng đến gần với thời gian sản xuất tiến độ triển khai được, 2) chi phí lỗi logarit (nó tăng mười lần phát khách hàng so với tìm thấy q trình phát triển thiết bị) Một số phương tiện hiệu việc giảm thời gian gỡ lỗi chi phí bao gồm: - Khơng phát triển q nhanh cẩu thả Cách rẻ nhanh để gỡ lỗi không chèn lỗi vị trí Phát triển nhanh cẩu thả thực làm chậm trễ tiến độ với phần lớn thời gian tiêu tốn cho việc gỡ lỗi sai lầm - Những kiểm tra Hệ thống Điều bao gồm kiểm tra phần cứng phần mềm suốt trình phát triển mà đảm bảo nhà phát triển thiết kế theo đặc tả kỹ thuật kiến trúc, tiêu chuẩn khác yêu cầu kỹ sư Mã hay phần cứng không đáp ứng tiêu chuẩn phải "sửa lỗi" sau 125 kiểm tra hệ thống không sử dụng để đưa chúng nhanh chóng rẻ (liên quan đến thời gian tiêu tốn cho việc gỡ lỗi định lỗi mà với phần cứng code nhiều sau đó) - Khơng sử dụng phần cứng bị lỗi mã viết tồi Một thành phần thường sẵn sàng để thiết kế lại kỹ sư chịu trách nhiệm lo sợ việc thực thay đổi thành phần lỗi - Theo dõi lỗi tập tin văn chung sử dụng nhiều cơng cụ phần mềm theo dõi lỗi có sẵn Nếu thành phần (phần cứng phần mềm) tiếp tục gây vấn đề, dành thời gian để thiết kế lại thành phần - Đừng tiết kiệm với công cụ gỡ lỗi Một công cụ gỡ lỗi tốt (mặc dù đắt hơn) cắt giảm thời gian gỡ lỗi có trị giá tá công cụ rẻ mà, với khơng tốn nhiều thời gian nhức đầu, theo dõi loại lỗi gặp phải trình thiết kế hệ thống nhúng Và cuối cùng, phương pháp tốt để giảm bớt thời gian chi phí gỡ lỗi đọc tài liệu cung cấp nhà cung cấp và/hoặc kỹ sư chịu trách nhiệm đầu tiên, trước cố gắng chạy sửa đổi điều Tơi nghe nói nhiều, nhiều lời bào chữa năm qua, từ "Tơi khơng biết đọc gì" đến "Có tài liệu hướng dẫn khơng?"-Là kỹ sư không đọc tài liệu hướng dẫn Các kỹ sư dành nhiều giờ, nhiều ngày, vấn đề riêng lẻ với việc cấu hình phần cứng hay việc nhận phần phần mềm chạy Tôi biết kỹ sư đọc tài liệu thời điểm đầu tiên, vấn đề giải vài giây vài phút - chẳng có vấn đề khó xuất Nếu bạn q tải với tài liệu khơng biết để đọc đầu tiên, tiêu đề dọc theo dòng “Getting Started…”, “Booting up the system…”, "README" thị tốt nơi để bắt đầu Hơn nữa, dành thời gian để đọc tất tài liệu cung cấp với phần cứng hay phần mềm để trở nên quen thuộc với loại thơng tin này, giúp ích trường hợp cần thiết sau -Dựa viết "Firmware Basics for the Boss" Jack Ganssle, Embedded Systems Programming, tháng năm 2004 * Khởi động (Boot-Up) hệ thống Với công cụ phát triển sẵn sàng để thử, bảng mạch tham chiếu bảng mạch phát triển kết nối với máy chủ phát triển, thời điểm để khởi động hệ thống xem xảy Khởi động hệ thống có nghĩa vài loại cấp nguồn khởi động lại nguồn, chẳng hạn khởi động lại cứng bên trong/bên (tức là, tạo lỗi kiểm tra dừng, quan giám sát phần mềm, khóa PLL, gỡ rối, v.v ), khởi động lại mềm bên trong/bên ngồi (tức là, tạo trình sửa lỗi, mã ứng dụng, v.v.), xuất Khi nguồn cấp tới bảng mạch nhúng (bởi khởi động lại), mã khởi động (start-up code), 126 gọi boot code, bootloader, mã bootstrap, BIOS (hệ thống vào sở) tùy thuộc vào kiến trúc, ROM hệ thống nạp thực xử lý chủ Một số kiến trúc nhúng (master) có đếm chương trình nội cấu hình tự động với địa ROM mà bắt đầu mã boot-up (hoặc bảng) định vị, khác nối cứng để bắt đầu thực địa điểm cụ thể nhớ Mã Boot khác chiều dài chức tùy thuộc vào thời điểm chu kỳ phát triển bảng mạch, thành phần tảng thực tế cần khởi tạo Các chức chung (tối thiểu) thực mã khởi động tảng khác nhau, khởi tạo chức phần cứng, bao gồm vơ hiệu hóa ngắt, khởi tạo bus, thiết lập xử lý chủ tớ trạng thái cụ thể, khởi tạo nhớ Phần khởi tạo phần cứng mã boot-up thực trình điều khiển thiết bị khởi tạo, thảo luận Chương Làm khởi tạo thực thực hiện, là-thứ tự mà trình điều khiển thực hiện- thường phác thảo tài liệu kiến trúc tổng thể hay tài liệu cung cấp nhà sản xuất bảng mạch Sau chuỗi khởi tạo phần cứng, thực thông qua khởi tạo trình điều khiển thiết bị, phần mềm hệ thống cịn lại, có, sau khởi tạo Mã bổ sung tồn ROM, cho hệ thống vận chuyển khỏi nhà máy, nạp từ tảng máy chủ bên (xem hộp lời thoại với bootcodeExample) bootcodeExample () { … // Serial Port Initialization Device Driver initializeRS232(UART,BAUDRATE,DATA_BITS,STOP_BITS,PARITY); // Initialize Networking Device Driver initializeEthernet(IPAddress,Subnet, GatewayIP, ServerIP); //check for host development system for down loaded file of rest of code to RAM // through ethernet // start executing rest of code(i.e define memory map, load OS, etc.) … } Ví dụ khởi động bảng mạch dùng MPC823 Bộ xử lý MPC823 chứa điều khiển khởi động lại mà có trách nhiệm đáp ứng lại tới nguồn khởi động lại Những hành động thực điều khiển khởi động lại khác tùy theo nguồn gốc kiện khởi động lại, nhìn chung trình bao gồm Cấu hình lại phần cứng, sau lấy mẫu chân liệu sử dụng số mặc định nội để xác định giá trị khởi động lại ban đầu thành phần hệ thống 127 Hình 14: Sơ đồ giải thích Hình 15: Sơ đồ giải thích 128 4.2 Cài đặt thử nghiệm hệ thống nhúng Trong số mục tiêu việc thử nghiệm đảm bảo chất lượng hệ thống tìm lỗi thiết kế theo dõi xem lỗi cố định Bảo đảm chất lượng thử nghiệm tương tự gỡ lỗi, thảo luận trên, ngoại trừ mục tiêu gỡ lỗi thực để sửa lỗi phát Một khác biệt gỡ lỗi thử nghiệm hệ thống gỡ lỗi thường xảy nhà phát triển gặp vấn đề cố gắng để hoàn thành phần thiết kế, sau thường thử nghiệm để thơng qua sửa chữa lỗi (có nghĩa thử nghiệm để đảm bảo hệ thống tối thiểu làm việc trường hợp thông thường) Với thử nghiệm, mặt khác, lỗi phát kết cố gắng để phá vỡ hệ thống, bao gồm testing-to-pass testing-to-fail, nơi mà yếu hệ thống thăm dò Dưới thử nghiệm, lỗi thường xuất phát từ hệ thống không trung thành với đặc tả kiến trúc khơng có khả kiểm tra hệ thống Các loại lỗi gặp phải thử nghiệm phụ thuộc vào loại thử nghiệm thực Nhìn chung, kỹ thuật thử nghiệm thuộc bốn mơ hình: thử nghiệm hộp đen tĩnh, thử nghiệm hộp trắng tĩnh, thử nghiệm hộp đen động, thử nghiệm hộp trắng động (xem ma trận Hình 4-14) Thử nghiệm hộp đen xảy với thử nghiệm mà khơng có khả hiển thị hoạt động nội bên hệ thống (khơng có sơ đồ ngun lý, khơng có mã nguồn, v.v.) Thử nghiệm hộp đen dựa tài liệu yêu cầu sản phẩm nói chung, trái ngược với thử nghiệm hộp trắng (còn gọi thử nghiệm hộp suốt thử nghiệm hộp thủy tinh) thử nhiệm truy cập vào mã nguồn, sơ đồ nguyên lý v.v Thử nghiệm tĩnh thực hệ thống không hoạt động, thử nghiệm động thực hệ thống chạy Thử nghiệm hộp đen (Black Box Testing) Thử nghiệm tĩnh Thử nghiệm hộp trắng (White Box Testing) Thử nghiệm đặc tả kỹ thuật Quy trình xem xét lại cẩn thận phần sản phẩm bởi: cứng mã cho lỗi mà khơng tìm kiếm vấn đề cấp thực cao, trường hợp sơ suất, bỏ sót (ví dụ, giả vờ khách hàng, nghiên cứu hướng dẫn/tiêu chuẩn hành, xem xét thử nghiệm phần mềm tương tự, vv.) thử nghiệm đặc tả kỹ thuật cấp thấp đảm bảo đầy đủ, xác, tinh tế, quán, phù hợp, khả thi, v.v 129 Thử nghiệm động Yêu cầu định nghĩa phần mềm phần cứng thực hiện, bao gồm: * thử nghiệm liệu, việc kiểm tra thơng tin đầu vào đầu người sử dụng * thử nghiệm điều kiện biên, thử nghiệm trạng thái cạnh giới hạn hoạt động dự kiến phần mềm * thử nghiệm đầu vào, thử nghiệm với liệu vô giá trị, không hợp lệ * thử nghiệm trạng thái, thử nghiệm phương thức trình chuyển đổi chế độ phần mềm với biến trạng thái tức là, điều kiện chạy đua, thử nghiệm lặp lại (lý để phát rị rỉ nhớ), ứng suất (phần mềm đói = nhớ thấp, cpu chậm = mạng chậm), tải (nguồn cấp liệu phần mềm = kết nối nhiều thiết bị ngoại vi, xử lý lượng lớn liệu, web server có nhiều khách hàng truy cập vào nó, v.v.), Thử nghiệm hệ thống chạy theo dõi mã, sơ đồ nguyên lý, v.v Trực tiếp thử nghiệm mức độ thấp mức độ cao dựa hiểu biết hoạt động chi tiết, truy cập vào biến kết xuất nhớ Tìm kiếm lỗi tham chiếu liệu, lỗi khai báo liệu, lỗi tính tốn, lỗi so sánh, lỗi lưu đồ điều khiển, lỗi tham số cho chương trình con, lỗi I/O, v.v Hình 16: Ma trận mơ hình thử nghiệm Bên mơ hình (như Hình 4-16), thử nghiệm tiếp tục chia nhỏ để bao gồm thử nghiệm unit/module (thử nghiệm gia tăng yếu tố riêng lẻ hệ thống), thử nghiệm tính tương thích (thử nghiệm phần tử không gây vấn đề với phần tử khác hệ thống), thử nghiệm tích hợp (thử nghiệm gia tăng yếu tố tích hợp), thử nghiệm hệ thống (thử nghiệm tồn hệ thống nhúng với tất yếu tố tích hợp), thử nghiệm hồi quy (quay lại thử nghiệm thơng qua trước sau sửa đổi hệ thống), thử nghiệm sản xuất (thử nghiệm để đảm bảo việc sản xuất hệ thống không đưa lỗi) Từ loại thử nghiệm này, tập hiệu trường hợp thử nghiệm nhận từ việc kiểm tra yếu tố và/hoặc hệ thống đáp ứng đặc tả kỹ thuật kiến trúc, xác nhận yếu tố và/hoặc hệ thống đáp ứng yêu cầu thực tế, khơng phản ánh cách xác tất 130 tài liệu Một trường hợp thử nghiệm hoàn thành thử nghiệm chạy, kết xử lý thay đổi tùy thuộc vào tổ chức nào, thường khác khơng thức, nơi thơng tin trao đổi mà không cần quy trình cụ thể theo sau, xem xét lại thiết kế thức, xem xét ngang hàng nơi mà nhà phát triển thành viên trao đổi yếu tố để thử nghiệm, walkthroughs nơi kỹ sư chịu trách nhiệm thức duyệt sơ đồ nguyên lý mã nguồn, kiểm tra nơi mà khác kỹ sư chịu trách nhiệm thực duyệt thiết kế Các phương pháp thử nghiệm cụ thể mẫu cho trường hợp thử nghiệm, tồn q trình thử nghiệm, định nghĩa số tiêu chuẩn thử nghiệm đảm bảo chất lương công nghiệp thông dụng, bao gồm tiêu chuẩn đảm bảo chất lượng ISO9000, Capability Maturity Model (CMM), ANSI / IEEE 829 Cuối cùng, với gỡ lỗi, có nhiều loại tự động hóa, cơng cụ thử nghiệm kỹ thuật mà trợ giúp tốc độ, tính hiệu quả, tính xác việc thử nghiệm yếu tố khác Chúng bao gồm công cụ tải, công cụ ứng suất, máy phun nhiễu, máy phát tiếng ồn, cơng cụ phân tích, ghi phát lại macro, macro lập trình, bao gồm cơng cụ liệt kê Bảng 4-3 131 Câu hỏi ôn tập Liệt kê bước trình thiết kế hệ thống nhúng Mô tả bước trình thiết kế hệ thống nhúng Liệt kê bước trình cài đặt thử nghiệm hệ thống nhúng Mô tả bước trình cài đặt thử nghiệm hệ thống nhúng 132 ... CHUNG VỀ HỆ THỐNG NHÚNG 10 1. 1 Khái niệm Hệ thống nhúng (Embedded system) 10 1. 2 Lịch sử phát triển hệ thống nhúng 11 1. 3 Các đặc điểm hệ thống nhúng 11 1. 3 .1 Giao diện... 12 1. 3.2 Kiến trúc CPU 12 1. 4 Kiến trúc điển hình hệ thống nhúng 14 Một số kiến trúc phần mềm hệ thống nhúng 15 1. 5 Phân loại hệ thống nhúng 18 1. 6 Phạm... dụng hệ thống nhúng 18 1. 7 Các yêu cầu kĩ thiết kế hệ thống nhúng 18 1. 7 .1 Quản lý, tích hợp, thiết kế hệ thống: 21 1.7.2 Thiết kế, phát triển phần mềm ứng dụng 22 1. 7.3

Ngày đăng: 02/03/2022, 08:42

TỪ KHÓA LIÊN QUAN

w