Danh mục

Bài giảng Xây dựng các hệ thống nhúng: Phần 2

Số trang: 196      Loại file: pdf      Dung lượng: 11.02 MB      Lượt xem: 27      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 1,000 VND Tải xuống file đầy đủ (196 trang) 0

Báo xấu

Xem trước 10 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nối tiếp phần 1, "Bài giảng Xây dựng các hệ thống nhúng: Phần 2" tiếp tục cung cấp cho học viên những kiến thức về các thành phần phần mềm của hệ thống nhúng; phần mềm nhúng; hệ thống nhúng thời gian thực; thiết kế và cài đặt các hệ thống nhúng; thiết kế hoàn thiện sản phẩm nhúng; xây dựng bo mạch khi phát triển hệ thống; các quy trình dịch vụ ngắt mã hóa (ISR);... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Xây dựng các hệ thống nhúng: Phần 2 Xây dựng các Hệ thống nhúng HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Khoa Công nghệ thông Tin Bộ môn Khoa học máy Tính XÂY DỰNG CÁC HỆ THỐNG NHÚNG Hà Nội, tháng 11 năm 2020 1 Xây dựng các Hệ thống nhúng Chương 3. CÁC THÀNH PHẦN PHẦN MỀM CỦA HỆ THỐNG NHÚNG Chương 2 đã đề cập tới phần cứng của các hệ thống máy tính nói chung mà HTN cũng là một trong các hệ thống đó. Sự khác biệt phần cứng của HTN là để phù hợp với những yêu cầu đặt ra trên một HTN cũng đã được đề cập. Chương 3 sẽ xem xét đến phần mềm được triển khai trên HTN. Như trong mô hình kiến trúc trừu tượng đã nói ở chương 1, hình dưới đây sẽ cho thấy hai lớp (con) mới sẽ đưa thêm vào mô hình đó. Khi đề cập tới phần mềm, tổng quát, ta có thể chia ra làm hai lớp: phần mềm hệ thống và phần mềm ứng dụng. Phần mềm ứng dụng là các phần mềm ứng dụng nhúng, các phần mềm này định nghĩa chức năng cũng như mục đích hình thành một HTN cụ thể. Phần mềm hệ thống là phần mềm có chức năng quản lí hoạt động của phần cứng, cung cấp nguồn tài nguyên phần cứng và phần mềm trung gian khác cho phần mềm ứng dụng, thực thi mã phần mềm ứng dụng sao cho hiệu quả và ổn định. Tùy thuộc vào yêu cầu vận hành của một HTN, phần mềm hệ thống có thể đơn giản nhưng cũng có thể rất tinh xảo. Ví dụ rất phổ biến là phần mềm hỗ trợ đa nhiệm, và nếu chịu sự ràng buộc về thời gian xử lý, thì phải có tính thời gian thực, và phần mềm hệ thống sẽ là một hệ điều hành thời gian thực (RTOS). Còn có những phần mềm khác tạo ra liên kết giữa các lớp phần mềm, ví dụ để phần mềm hệ thống khai thác phần cứng, cần có một “phần mềm sụn” gọi là BIOS (Basic Input Output System), mà thực tế đó là tập hợp các module phần mềm điều khiển các phần cứng. Các module này còn có tên là các module chương trình điều khiển thiết bị (device driver). Có thể miêu tả vai trò này như sau: phần mềm ứng dụng có nhu cầu trao đổi dữ liệu với thiết bị bằng cách thực hiện gọi chức năng vào/ra của phần mềm hệ thống. Phần mềm hệ thống chuẩn bị các thông số vào/ra và gởi cho các device driver. Các device driver nhận các thông số đó ở đầu vào, và đầu ra sẽ là các lệnh điều khiển thiết bị cụ thể. Dữ liệu của quá trình này là kết quả mà thiết bị đã thi hành và trao đổi cho phần mềm hệ thống qua các phương thức ghép nối đã trình bày ở chương 2, để ở các vùng nhớ bộ đệm dữ liệu của phần mềm hệ thống. Sau đó phần mềm hệ thống sẽ chuyển dữ liệu cho phần mềm ứng dụng. Giữa phần mềm hệ thống và phần mềm ứng dụng còn có một cơ chế “liên lạc” gọi là gọi hệ thống (systen call), mà thực chất là phương thức mà phần mềm hệ thống hỗ trợ để phần mềm ứng dụng khai thác các chức năng của phần mềm hệ thống. 3.1 GIỚI THIỆU PHẦN MỀM NHÚNG Các cách tiếp cận thiết kế phần mềm cho sản phẩm nhúng hoàn toàn phụ thuộc vào độ phức tạp của chức năng mà nó thực hiện, tốc độ xử lý yêu cầu. Hai cách tiếp cận được sử dụng để thiết kế phần mềm nhúng là: - Thiết kế phần mềm dựa vào thủ tục thông thường. - Thiết kế dựa vào Hệ điều hành nhúng. 140 Xây dựng các Hệ thống nhúng 3.1.1. Tiếp cận dựa trên thủ tục Cách tiếp cận dựa trên thủ tục này thường sử dụng siêu vòng lặp cho các ứng dụng không phụ thuộc vào thời gian đáp ứng của hệ thống. Cách tiếp cận này giống với lập trình thủ tục thông thường khi mà mã nguồn thực thi từng tác vụ một. Các tác vụ được sắp xếp đầu chương trình sẽ thực thi trước và các tác vụ lần lượt sắp xếp sau chỉ được thực thi khi tác vụ trước nó thực thi xong. Trong một hệ thống có nhiều thủ tục, mỗi thủ tục được thực thi nối tiếp theo cách tiếp cận này. Luồng thực thi của phần mềm sẽ diễn ra theo trình tự như dưới đây: 1. Cấu hình các tham số dùng chung và thực hiện khởi tạo cho các phần cứng như là bộ nhớ, thanh ghi. 2. Bắt đầu tác vụ đầu tiên và thực thi nó. 3. Thực thi tác vụ thứ hai. 4. Thực thi tác vụ tiếp theo. 5. …. 6. …. 7. Thực thi tác vụ cuối cùng. 8. Nhảy về tác đầu tiên và thực thi theo luồng tương tự. Từ việc thực thi những nhiệm vụ tuần tự, việc sắp xếp những nhiệm vụ được thực thi là cố định. Đó là một cách tiếp cận dựa trên vòng lặp vô hạn. Chúng ta có thể hình dung việc thực thi tuần tự được xắp xếp phía trên thông qua một chương trình ngôn ngữ lập trình C phía dưới: Hầu hết toàn bộ các tác vụ trong hệ thống nhúng sẽ không kết thúc và được lặp lại vô hạn xuyên suốt quá trình thực thi. Từ đoạn mã nguồn viết bằng ngôn ngữ C phía trên ta có thể thấy rằng tác vụ thứ nhất tới tác vụ thứ n được thực thi một lần cho tới khi đến tác vụ thứ n cuối cùng, chương trình sẽ tiếp tục quay lại thực thi tác vụ thứ nhất và nó sẽ lặp lại vô hạn. Việc lặp lại này được hoàn 141 Xây dựng các Hệ thống nhúng thành bằng việc sử dụng một vòng lặp vô hạn, ở đây là vòng lặp While (1). Cách tiếp cận này cũng được xem như là cách tiếp cận dựa trên siêu vòng lặp. Khi mà các tác vụ đang chạy trong vòng lặp vô hạn, cách duy nhất để thoát khỏi vòng lặp là khởi động lại phần cứng hoặc sử dụng một thông báo làm gián đoạn. Khi khởi động lại phần cứng, chương trình thực thi sẽ quay lại vòng lặp chính. Trong khi một yêu cầu làm gián đoạn sẽ làm ngưng việc thực thi tác vụ tạm thời và thực hiện việc làm gián đoạn tương ứng. Và dựa vào việc hoàn thành của việc làm gián đoạn, chương trình sẽ khởi động lại lại việc thực thi tác vụ từ lúc nhận được yêu cầu gián đoạn. Thiết kế dựa trên siêu vòng lặp không yêu cầu hệ điều hành. Trong thiết kế dựa trên siêu vòng lặp, sự ưu tiên là cố định và việc sắp xếp những tác vụ đã được thực thi cũng cố định. Vì thế mã nguồn thể hiện của các tác vụ được lưu tại bộ nhớ chương trình mà không có một hệ điều hành nào. Kiểu thiết kế này được triển khai trong các sản phầm nhúng có ...

Tài liệu được xem nhiều: