1. Tổng quan về hệ điều hành FreeRTOS



I. Khái niệm chung về hệ điều hành

    - Hệ điều hành là một phần mềm được chạy trên 1 thiết bị phần cứng nào đó. Hệ điều hành giúp người dùng quản lý được thiết bị phần cứng và tài nguyên phần mềm.

    - Với máy tính, nó là một chương trình máy tính để hỗ trợ nhưng chức năng cơ bản của máy tính và cung cấp các dịch vụ cho các chương trình khác cái mà được chạy trên máy tính đó. Các service được cung cấp bởi hệ điều hành sẽ giúp việc viết ứng dụng nhanh hơn, đơn giản hơn, dễ bảo trì hơn

    - Hầu hết các hệ điều hành đều cho phép nhiều chương trình được 

    - Có rất nhiều hệ điều hành: 

  • Hệ điều hành sử dụng với mục đích chung cho các thiết bị thông dụng như máy tính: Windows, Linux, Mac OS
  • Hệ điều hành cho thiết bị di động: Android,  iOS...
  • Hệ điều hành nhúng: embedded linux, VxWork, Win CE, QNX,...

    

II. Hệ điều hành RTOS

    - Hầu hết các hệ điều hành đều cho phép nhiều chương trình được chạy trong 1 thời điểm. Nhưng thực tế mỗi lõi của bộ vi xử lý chỉ có thể chạy 1 luồng thực thi duy nhất tại 1 thời điểm, vì thế hệ điều hành cần 1 bộ lập lịch để quyết định xem chương trình nào sẽ được thực hiện tại thời điểm nào và tạo cảm giác thực thi đồng thời bằng cách chuyển đổi nhanh chóng giữa các chương trình

    - Để đáp ứng khả năng thời gian thực, RTOS cho phép gán mức độ ưu tiên cho các task . Bộ lập lịch sẽ sử dụng mức độ ưu tiên này để biết luồng thực thi nào sẽ chạy tiếp theo. Chúng ta sẽ nghiên cứu kỹ về scheduler trong bài tiếp theo

    - FreeRTOS là hệ điều hành thời gian thực. Nó thuộc hệ điều hành nhúng và có những đặc điểm riêng biệt so với các hệ điều hành nhúng khác. Nó được thiết kế đủ nhỏ để chạy trên các thiết bị nhúng cái mà có giới hạn về mặt tài nguyên như memory và tốc độ xử lý của MCU, cần đáp ứng về mặt thời gian

III. Thế nào là realtime

1. Deterministic timing

- Thời gian phản hồi của hệ thống có tính xác định, có thể dự đoán trước.
- Khi có sự kiện xảy ra, RTOS biết chắc task nào chạy, chạy trong bao lâu, độ trễ tối đa là bao nhiêu

2. Meet deadline

 - Phản hồi đúng thời hạn, không phải chạy nhanh nhất nhưng phải đúng thời điểm yêu cầu


IV. Phân loại RTOS

Có nhiều loại hệ điều hành thời gian thực:

1. Thương mại

  - Bạn cần trả phí khi sử dụng trong các dự án.

  - Ví dụ: embOS, VxWorks, QNX, Micrium OS,...

2. Open source

  - Bạn có thể sử dụng nó miễn phí và chỉ cần tuân thủ theo một số quy định về license

    - Ví dụ: FreeRTOS, Zephyr RTOS, NuttX, CMSIS-RTX5,...

3. Loại

    - thời gian thực cứng: khi miss deadline, hệ thống sẽ bị hỏng hoặc lỗi nghiêm trọng

    - thời gian thực mềm: nếu bị miss deadline 1 vài lần thì hệ thống chưa ảnh hưởng mấy

V. Ưu điểm

    - Thiết kế nhỏ gọn. Thông thường kích thước file bin của FreeRTOS là khoảng 6 - 12 KB
    - Hỗ trợ nhiều kiến trúc vi điều khiển khác nhau, vì thế bạn có thể bring up RTOS lên nhiều board
    - Miễn phí ngay cả khi sử dụng với sản phẩm thương mại
    - Tài liệu đầy đủ

VI. Ứng dụng

    - Ô tô: điều khiển túi khí, hệ thống phanh ABS, ECU động cơ.
    - Robot công nghiệp: đồng bộ chuyển động chính xác.
    - Thiết bị y tế: máy đo nhịp tim, máy thở.
    Hệ thống viễn thông: router, switch, base station.
    - IoT/Embedded: cảm biến, thiết bị điều khiển, drone, smart home.

Kết luận: Việc nắm được hệ điều hành thời gian thực RTOS là điều rất cần thiết cho 1 kỹ sư lập trình nhúng. Vì vậy chúng ta cần dành thời gian và công sức để học tập và nguyên cứu chúng

Bài chia sẻ đến đây là hết. Chúc các bạn học tập tốt!😎


Đăng nhận xét

0 Nhận xét