Tải bản đầy đủ (.pptx) (69 trang)

Giới thiệu ứng dụng thời gian thực và hệ điều hành RTOS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.88 MB, 69 trang )

LECTURE 10: INTRODUCE TO
BASIC REAL-TIME APPLICATIONS
AND RTOS.


TABLE OF CONNTENTS
1

 Freescale MQX Overview

2

 MQX Basics: Tasks

3

 MQX Basics: Scheduling

4

 MQX Basics: Task Synchronization

5

 Additional Resources

6

 Review

LECTURE 10: introduce to basic real-time applications and RTOS




TABLE OF CONNTENTS
1

 Freescale MQX Overview

2

 MQX Basics: Tasks

3

 MQX Basics: Scheduling

4

 MQX Basics: Task Synchronization

5

 Additional Resources

6

 Review

LECTURE 10: introduce to basic real-time applications and RTOS



Freescale MQX Overview
RTOS là gì?
 RTOS là viết tắt của Real-Time Operating System.
 Thuật ngữ Operating System dùng để mô tả sự kết hợp của
phần mềm để quản lý tài nguyên phần cứng của hệ thống.
 Phần mềm có thể bao gồm 1 tập tin mô-đun hệ thống, một giao
diện và các thành phần khác.
 Thông thường Kernel được hiểu như là 1 tập con của tập hợp
này.
LECTURE 10: introduce to basic real-time applications and RTOS


Freescale MQX Overview

o MQX RTOS được phát hành bởi Freescale Semiconductor. Nó được nhắm
tới nhiều vi điều khiển như Freescale ColdFire, Kinetis Arm® CorTex M4 và
Freescale Power Architecture.
o Freescale MQX RTOS được dựa trên MQX phiên bản 2.5 nó được phát
hành bởi công ty ARC International. Freescale MQX RTOS phát hành bao
gồm kernel thời gian thực, thành phần lõi hệ thống, tích hợp TCP/IP
network stack-RTCS, file hệ thống (MFS), USB host và ngăn xếp thiết bị.

LECTURE 10: introduce to basic real-time applications and RTOS


Freescale MQX Overview

1.MQX RTOS PSP
 Mã nền tảng đặc biệt từ
/mqx/source/psp/ được xây dựng chung với file lõi MQX khác

nhau. Hai phần này kết hợp tạo thành thư viện tĩnh chung gọi là psp

 Khi liên quan đến ứng dụng người dùng, phải cho phép đặc tính của
RTOS để sử dụng.

LECTURE 10: introduce to basic real-time applications and RTOS


Freescale MQX Overview
2. MQX RTOS BSPs
• Code từ /mqx/source/bsp/<board> được xây dựng với file điều khiển
I/O từ /mqx/source/bsp/io. Tạo thành thư viện bsp.
• Khi liên quan đến ứng dụng người dùng, cho phép the board và hệ
thống hoạt động được khởi động và sử dụng dịch vụ điều khiển I/O.
• Hỗ trợ nhiều kiểu điều khiển I/O: I2C, SPI, Flex CAN, RTC, Serial,
ADC, DAC, Flash, ENET,….

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview

3. MQX MFS
MFT files từ thư viện /mfs/source được xây dựng thành thư
viện tĩnh.

Khi liên quan đến ứng dụng người dùng thư viện MFS cho phép ứng
dụng truy cập bộ điều khiển định dạng FAT12, FAT 16 hoặc FAT32.


LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview
4. MQX RTCS
MQX RTCS bao gồm thư viện RTCS TCP/IP
RTCS dựa trên sự tương hợp mức độ API với phiên bản 2.97 được phát
hành bởi ARC.
Files RTCS từ thư mục /rtcs/source được xây dựng thành một thư
viện.
Khi sử dụng thư viện RTCS cho phép ứng dụng cung cấp và tiêu thụ
dịch vụ mạng của họ giao thức TCP/IP.
LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview
5. MQX USB host

 File USB HDK từ thư mục /usb/host/source được xây
dựng thành thư viện.
 Khi sử dụng thư viện USB HDK cho phép ứng dụng giao tiếp với các
thiết bị USB khác được kết nối trên USB bus.

LECTURE 10: introduce to basic real-time applications and RTOS


NHÓM 6


Freescale MQX Overview

6. MQX USB device
• Files USB DDK từ thư mục /usb/device/source được xây dựng
thành thư viện.

• Khi sử dụng thư viện USB DDK cho phép ứng dụng hành động như
một thiết bị USB.

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview

7. MQX Shell
Mã shell va dòng lệnh xử lý được hoàn toàn như là những thư
viện tách biệt gọi là shell

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview


8. Thay đổi file nguồn của MQX
• Ta cần thêm vào
<install_dir>/mqx/source/bsp
<install_dir>/mqx/source/io

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Freescale MQX Overview

Thay đổi cấu hình tùy chọn
Cấu hình tùy chọn được cài đặt trong
<mqx_installation>/config/<board>/user.config.h
Để thiết lập các kênh mặc định I/O cho giao diện nối tiếp UART (ánh xạ

tới ttyc: thiết bị trong MQX RTOS), sử dụng:
#define BSP_DEFAULT_IO_CHANNEL "ttyb:"
Để đảm bảo các kênh nối tiếp (trường hợp này là ttyc) thì ta kích hoạt
trong tập tin:
#define BSPCFG_ENABLE_TTYB 1
LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


TABLE OF CONNTENTS
1

 Freescale MQX Overview

2

 MQX Basics: Tasks

3

 MQX Basics: Scheduling

4

 MQX Basics: Task Synchronization

5

 Additional Resources


6

 Review

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


MQX Basics: Tasks
II. CÁC TÁC VỤ (TASK).
2.1. KHÁI NIỆM VỀ TASK.
- Một hệ thống thời gian thực được gọi là “điều khiển sự kiện” có nghĩa
là hệ thống đó phải có chức năng chính là phản ứng lại các sự kiện xảy
ra trong môi trường của hệ thống. Vậy thì hệ thống phản ứng lại các sự
kiện như thế nào? một giải pháp đưa ra có tên Đa nhiệm.
- Giải pháp này đã được chứng minh là một mô hình chuẩn cho các hệ
thống điều khiển sự kiện và hệ thống sử dụng ngắt. Ý tưởng cơ bản của
giải pháp này là chúng ta có thể phân chia một vấn đề lớn thành các nhánh
nhỏ và đơn giản hơn để giải quyết. Mỗi một vấn đề con (sub-problem)
trở thành một tác vụ - task.Mỗi một tác vụ chỉ làm một việc đơn giản.
LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


KHÁI NIỆM VỀ TASK.

- Cũng giống như các chương trình khác, một tác vụ bao gồm mã lệnh

để thực hiện các chức năng tác vụ phải thực hiện (do người lập trình đã
thiết kế). Mã lệnh được chứa trong một hàm tương tự như hàm main()
trong ngôn ngữ lập trình C. Điều làm nên sự khác biệt của tác vụ chính
là ngữ cảnh (context) chứa trong ngăn xếp (stack) của nó.

Hình ảnh một task.

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


KHÁI NIỆM VỀ TASK.
- Chú ý rằng, đôi khi (nhiều khi khá hữu dụng) ta có thể tạo ra nhiều tác
vụ từ một hàm chung. Như đã nói, điều làm cho một tác vụ có thể tách
biệt và khác biệt với các tác vụ khác chính là ngăn xếp của nó.

Cấu trúc thông thường của một task.

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


CÁC TRẠNG THÁI CỦA TASK.

-Mỗi tác vụ trong RTOS luôn luôn ở một trong ba trạng thái chính:
1. Running: Với ý nghĩa bộ xử lý đang thực hiện tác vụ. Với một bộ xử
lý thì chúng ta chỉ chạy một tác vụ tại một thời điểm nhất định.
2. Ready : Với ý nghĩa một số tác vụ khác sẵn sàng chạy nếu bộ xử lý

rỗi.
3. Blocked : Với ý nghĩa tác vụ không sẵn sàng chạy kể cả khi bộ xử lý
trong trạng thái nghỉ - Idle. Tác vụ ở trong trạng thái này vì chúng đợi
một sự kiện bên ngoài tác động để kích hoạt nó trở lại trạng thái sẵn sàng.
LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


CÁC TRẠNG THÁI CỦA TASK.

Mô hình trạng thái của các tác vụ.

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


TABLE OF CONNTENTS
1

 Freescale MQX Overview

2

 MQX Basics: Tasks

3

 MQX Basics: Scheduling


4

 MQX Basics: Task Synchronization

5

 Additional Resources

6

 Review

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


Priorities
 Each task is assigned a priority :
 Higher number means lower priority
 0 is highest priority

 Used by scheduler to determine which task to run next

 User tasks should run at priority 8 or higher
LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6



Scheduler
Common Scheduling Configurations:
 FIFO (also called priority-based preemptive)
The active task is the highest-priority task that has been ready the longest
 Round Robin
The active task is the highest-priority task that has been ready the
longest without consuming its time slice

LECTURE 10: introduce to basic real-time applications and RTOS

NHÓM 6


×