- RTOS là gì?
- Tại sao RTOS ??
- Sự khác biệt giữa Hệ điều hành thời gian thực và Hệ điều hành
- Các loại RTOS
- Lợi ích của việc sử dụng RTOS miễn phí
- Một số vấn đề chính liên quan đến RTOS
- Cách sử dụng RTOS
Hệ thống nhúng có ứng dụng rộng rãi trong tất cả các thiết bị điện tử xung quanh chúng ta, một ví dụ hiển nhiên là chiếc máy tính xách tay mini mà chúng ta luôn mang theo bên mình, có thể nói đến điện thoại di động của chúng ta.
Bất cứ khi nào hệ thống nhúng đi vào hoạt động, nó luôn là sự kết hợp của phần cứng như Vi điều khiển hoặc Vi xử lý và phần mềm như phần sụn hoặc Hệ điều hành. Một Hệ điều hành hình thành cơ sở của tất cả các thiết bị điện tử và quản lý tất cả các phần cứng và phần mềm trong bất kỳ thiết bị điện tử. Thuật ngữ hệ điều hành không chỉ giới hạn trong Unix và Windows cho máy tính mà còn có thể mở rộng cho vi điều khiển. Một hệ điều hành như vậy có thể chạy trên Vi điều khiển được gọi là Hệ điều hành thời gian thực. Sau đây chúng ta sẽ tìm hiểu về RTOS và các ứng dụng của hệ điều hành thời gian thực.
RTOS là gì?
Hệ điều hành thời gian thực thường được biết đến với tên gọi RTOS cung cấp cho bộ điều khiển khả năng phản hồi đầu vào và hoàn thành tác vụ trong một khoảng thời gian cụ thể dựa trên mức độ ưu tiên. Ở cái nhìn đầu tiên, RTOS có thể giống như bất kỳ chương trình hoặc phần sụn nhúng nào khác, nhưng nó được xây dựng dựa trên kiến trúc của một Hệ điều hành. Do đó, giống như bất kỳ hệ điều hành nào, RTOS có thể cho phép nhiều chương trình thực thi cùng một lúc hỗ trợ ghép kênh. Như chúng ta biết lõi của bộ xử lý hoặc bộ điều khiển chỉ có thể thực hiện một lệnh duy nhất tại một thời điểm, nhưng RTOS có một thứ gọi là bộ lập lịchquyết định lệnh nào sẽ thực thi trước và do đó lần lượt thực hiện các lệnh của nhiều chương trình. Về mặt kỹ thuật, một RTOS chỉ tạo ra ảo tưởng về việc thực hiện nhiều lần bằng cách thực hiện các lệnh song song tại một thời điểm.
Điều này làm cho RTOS phù hợp với các ứng dụng khác nhau trong thế giới thực. Trong RTOS cho bất kỳ đầu vào nào bất kỳ khi nào một logic được đánh giá sẽ đưa ra đầu ra tương ứng. Logic này được đo lường trên cơ sở không chỉ tính sáng tạo logic mà còn dựa trên khoảng thời gian mà nhiệm vụ cụ thể đã được thực hiện. Nếu một hệ thống không thực hiện được nhiệm vụ trong khoảng thời gian cụ thể đó thì nó được gọi là lỗi hệ thống.
Tại sao RTOS ??
- Tính khả dụng của trình điều khiển: Có nhiều trình điều khiển có sẵn trong RTOS, cho phép chúng tôi sử dụng chúng trực tiếp cho các ứng dụng khác nhau.
- Các tệp đã lên lịch: RTOS chăm sóc việc lập lịch, vì vậy thay vì tập trung vào lập lịch cho bất kỳ hệ thống nào, chúng ta có thể chỉ cần tập trung vào việc phát triển ứng dụng. Ví dụ: các tệp lập lịch tác vụ được sử dụng để xác định các hành động nhất định bất cứ khi nào một tập hợp các điều kiện được đáp ứng. RTOS sử dụng các thuật toán nâng cao nhất định để lập lịch các trạng thái thường chạy, sẵn sàng và bị chặn, trong khi chạy RTOS tập trung nhiều hơn vào việc phát triển ứng dụng hơn là lập lịch.
- Tính linh hoạt khi thêm các tính năng: Trong RTOS ngay cả khi bạn sẵn sàng thêm các tính năng mới, bạn có thể chỉ cần thêm nó mà không làm ảnh hưởng đến các tính năng hiện có
Sự khác biệt giữa Hệ điều hành thời gian thực và Hệ điều hành
Có nhiều sự khác biệt giữa hệ điều hành thời gian thực và các hệ điều hành như Windows, Linux, v.v. Hãy cùng xem xét từng thứ một với sự trợ giúp của định dạng bảng:
S. không | Hệ điều hành | Hệ thống thời gian thực |
1 | Chia sẻ thời gian là cơ sở để thực hiện các quy trình trong hệ điều hành | Các quy trình được thực hiện dựa trên thứ tự ưu tiên của chúng |
2 | Hệ điều hành hoạt động như một giao diện giữa phần cứng và phần mềm của hệ thống | Hệ thống thời gian thực được thiết kế để thực thi các vấn đề trong thế giới thực |
3 | Quản lý bộ nhớ không phải là một vấn đề quan trọng khi nói đến việc thực thi hệ điều hành | Quản lý bộ nhớ rất khó vì dựa trên bộ nhớ vấn đề thời gian thực được cấp phát, bản thân nó rất quan trọng |
4 | Ứng dụng: Văn phòng, Trung tâm dữ liệu, Hệ thống cho gia đình, v.v. | Ứng dụng: Điều khiển máy bay hoặc lò phản ứng hạt nhân, thiết bị nghiên cứu khoa học |
5 | Ví dụ: Microsoft Windows, Linux, OS | Ví dụ: Vx Works, QNX, Windows CE |
Các loại RTOS
Chúng ta có thể phân loại hệ điều hành thời gian thực chủ yếu thành ba phần cụ thể là
- Hệ điều hành thời gian thực cứng
- Hệ điều hành thời gian thực mềm
- Hệ điều hành thời gian thực vững chắc
1. Hệ điều hành thời gian thực cứng
Hãy bắt đầu tìm hiểu loại hệ điều hành này bằng một ví dụ, ví dụ trực tiếp về nó là hệ thống điều khiển chuyến bay. Trong hệ thống điều hành bay, bất kỳ nhiệm vụ nào do phi công đưa ra dưới dạng thông tin đầu vào đều phải được thực hiện đúng thời gian. Trong thời gian thực cứng Hệ điều hành, các lỗi hệ thống có thể được chấp nhận. Các tính năng của RTOS cứng là:
- Để thực hiện nhiệm vụ đúng giờ
- Không đáp ứng thời hạn là tử vong
- Đảm bảo thời gian phản hồi trường hợp xấu hơn
- Có thể dẫn đến lỗi hệ thống
2. Hệ điều hành thời gian thực mềm
Ví dụ dễ nhất về việc sử dụng RTOS mềm là cơ sở dữ liệu trực tuyến, vì trong RTOS mềm, thông số mà chúng tôi lo lắng hơn là tốc độ. Do đó, các tính năng của RTOS mềm là:
- Các nhiệm vụ phải được thực hiện càng nhanh càng tốt
- Việc hoàn thành nhiệm vụ muộn là điều không mong muốn nhưng không gây tử vong
- Có khả năng làm giảm hiệu suất
- Không thể dẫn đến lỗi hệ thống
3. Hệ điều hành thời gian thực vững chắc
Cánh tay robot được sử dụng để chọn đồ vật có thể được coi là một trong những ví dụ của hãng RTOS. Ở đây, bên trong công ty RTOS này ngay cả khi quá trình bị trì hoãn, nó vẫn được chấp nhận.
Lợi ích của việc sử dụng RTOS miễn phí
Sau đây là những ưu điểm của việc sử dụng RTOS trong các ứng dụng của bạn.
- Không có vấn đề tường lửa
- Băng thông thấp để nâng cao hiệu suất
- Cải thiện bảo mật và quyền riêng tư
- Chi phí thấp, do giảm các thành phần phần cứng và phần mềm được sử dụng để phát triển
Một số vấn đề chính liên quan đến RTOS
Bây giờ, mặc dù có nhiều ưu điểm cho RTOS trong ứng dụng thế giới thực, nó cũng có nhiều nhược điểm khác nhau. Một số vấn đề liên quan đến nó được thảo luận ở đây.
- Ngắt thường được sử dụng trong các chương trình để tạm dừng chương trình đang thực thi để chuyển hướng luồng sang một số phần quan trọng khác của mã. Ở đây, trong RTOS vì thời gian phản hồi nhanh là bắt buộc; khuyến nghị rằng ngắt nên được vô hiệu hóa trong thời gian tối thiểu có thể.
- Vì hạt nhân cũng sẽ phản hồi cho các sự kiện khác nhau, nó được yêu cầu phải có kích thước hạt nhân nhỏ hơn để nó phải vừa với ROM
- Các tính năng phức tạp của RTOS nên bị loại bỏ vì không có khái niệm về bộ nhớ ảo bên trong nó.
Cách sử dụng RTOS
Bây giờ bạn đã biết RTOS là gì và bạn có thể sử dụng nó ở đâu, để bắt đầu với RTOS, bạn thường phải sử dụng Tornado hoặc môi trường phát triển FreeRTOS. Chúng ta hãy cùng tìm hiểu sơ lược về cả hai môi trường phát triển này.
Tornado - VxWorks
Tornado là một môi trường tích hợp để phát triển các ứng dụng RTOS nhúng liên quan đến thời gian thực trên hệ thống đích. Tornado bao gồm ba yếu tố cơ bản được liệt kê dưới đây.
1) VxWorks
2) Công cụ xây dựng ứng dụng (trình biên dịch và các chương trình liên quan)
3) Môi trường phát triển tích hợp, có thể quản lý, gỡ lỗi và giám sát ứng dụng VxWorks
VxWorks là một hệ điều hành thời gian thực được nối mạng. Để bắt đầu với VxWorks, chúng ta nên có một bộ phát triển (đích) cùng với một máy trạm. Ở đây, bộ công cụ phát triển không có gì khác ngoài máy chủ đích hoặc thành phần giao tiếp với máy chủ đích trên máy trạm. Mục tiêu ở đây kết nối các công cụ lốc xoáy như trình bao và trình gỡ lỗi. Do đó, sử dụng VxWorks, chúng tôi sẽ cấu hình và xây dựng hệ thống trong khi Tornado cung cấp cho chúng tôi giao diện người dùng đồ họa và các công cụ dòng lệnh để cấu hình và xây dựng.
Điểm rất quan trọng ở đây là trong khi cài đặt tornado trong hệ thống của bạn, thư mục cài đặt nên sử dụng tên đường dẫn là:
installDir / target. Ví dụ: nếu bạn muốn lưu trữ lốc xoáy của mình trong C: \ tornado trên máy chủ windows, tên đường dẫn đầy đủ phải được xác định trong trường hợp đó là installDir / target / h / vxworks.h.
Ở đây, chúng tôi sẽ không thảo luận chi tiết về các tính năng của Vx hoạt động (chúng tôi sẽ để lại điều đó cho hướng dẫn tiếp theo) nhưng chúng tôi sẽ thảo luận về cách phát triển có thể được thực hiện bằng C ++ trong Vxworks bằng WindRiver GNU. WindRiver GNU giúp chúng tôi cung cấp phân tích đồ họa liên quan đến ngắt liên quan trong quá trình thực thi cũng như báo cáo sử dụng bộ nhớ.
Ví dụ: chế độ xem WindRiver đã nêu ở trên giải thích số bộ xử lý liên quan cùng với mức độ ưu tiên của các tác vụ (tLowPri & tHighPri). Trạng thái không hoạt động tức là đường màu xanh lá cây cho biết khoảng thời gian mà bộ xử lý không ở trong trạng thái hoạt động của nó, được quan sát là sau mỗi vài giây. t1, t7, t8 & t9 không là gì ngoài các bộ xử lý khác nhau được sử dụng. Ở đây, chúng tôi chỉ chọn bộ xử lý t7.
Do đó, Windriver này có khả năng gọi cả VxWorks và các chương trình con của mô-đun ứng dụng. Bạn có thể khởi chạy ứng dụng Windriver dưới dạng thanh công cụ khởi chạy lốc xoáy (-> nút i) sau đó nhấp vào menu và sau đó nhấp vào trình bao. Cuối cùng, từ dấu nhắc lệnh, nhập “> máy chủ mục tiêu windh”.
Bây giờ để lập trình bằng C ++, điều quan trọng là phải bao gồm thành phần INCLUDE_CPLUS_DEMANGLER, thành phần demangler này cho phép các ký hiệu vỏ đích trả về các dạng tên ký hiệu C ++ mà con người có thể đọc được. Trước đây, tải C ++ module để VxWorks mục tiêu, quy trình tiếp theo được gọi là nhai. Ở đây, munching đề cập đến bước xử lý máy chủ bổ sung.
Biên dịch chương trình nguồn ứng dụng C ++ và lấy ví dụ tệp hello.cpp. Sau đó, chạy nó để nghiền ngẫm.o và biên dịch tệp ctdt.c đã tạo. Hơn nữa, liên kết ứng dụng với ctdt.o để tạo mô-đun có thể tải xuống, hello.out trong VxWorks. Đầu ra sau khi thực hiện VxWorks này sẽ là một tệp tạo sẽ được sử dụng trên một số đích.
RTOS miễn phí
Nói chung, bất cứ khi nào chúng tôi bắt đầu với RTOS, chúng tôi thường thích Vx Works RTOS hơn. Tuy nhiên, ở đây chúng ta hãy thảo luận ngắn gọn về RTOS miễn phí, nó cũng có thể được sử dụng bởi những người mới bắt đầu để tìm hiểu khái niệm về hệ điều hành thời gian thực. RTOS miễn phí được phát triển bởi Richard Barry và nhóm FreeRTOS, nó cũng thuộc sở hữu của Real time engineering ltd nhưng nó được sử dụng miễn phí và bạn có thể tải về chỉ cần nhấp vào liên kết bên dưới
Tải xuống ROTS miễn phí
Phiên bản mới nhất của RTOS miễn phí đang được sử dụng tại thời điểm bài viết này là phiên bản 10, được nêu là FreeRTOS V10.
Ưu điểm lớn nhất của RTOS miễn phí khiến nó vượt trội hơn so với RTOS khác là hành vi độc lập với nền tảng của nó về mặt phần cứng, tức là mã c mà chúng ta sẽ sử dụng để thực thi một hệ điều hành có thể chạy trên nhiều nền tảng có kiến trúc khác nhau. Do đó, bất kể bạn đang sử dụng vi điều khiển 8051 hay một số vi điều khiển ARM mới nhất, mã bạn đã viết cùng với quá trình thực thi sẽ giống nhau cho cả hai.
Có nhiều lợi ích khác khi sử dụng RTOS miễn phí thay vì các công trình Vx và các công cụ điều hành RTOS khác. Một số trong số chúng có thể được nêu như:
- Cung cấp thử nghiệm dễ dàng hơn
- Thúc đẩy khái niệm về khả năng tái sử dụng mã
- Thời gian nhàn rỗi ít hơn
- Khả năng bảo trì dễ dàng
- Tóm tắt thông tin thời gian
Ngoài ra, Kernel cơ bản, trong đó Kernel đề cập đến thành phần trung tâm của hệ điều hành có trong RTOS miễn phí giúp nó có thể truy cập được để sử dụng cho các ứng dụng khác nhau. Vì có thể dễ dàng đính kèm các mô-đun mở rộng trên hệ điều hành để có thêm ứng dụng miễn phí nên RTOS trở nên mạnh mẽ hơn.
Một trong những ví dụ về việc sử dụng RTOS miễn phí có thể được giải thích bằng cách sử dụng khái niệm kết hợp RTOS miễn phí với Nabto. Nabto là một thiết bị web miễn phí được sử dụng để chuyển thông tin từ thiết bị sang trình duyệt.
Do đó, việc kết hợp Free RTOS với Nabto làm cho nó trở thành một đoạn mã C nhỏ như được giải thích trong hình a. Ngày nay, Internet of Things (IOT) đang là xu hướng và mọi thiết bị IOT mà chúng ta sẽ truy cập đều có một URL duy nhất qua internet và công nghệ cho phép kết nối điểm tới điểm an toàn và băng thông cực thấp. Trong trường hợp không có kết nối internet, sự kết hợp này có thể hữu ích. Do đó, RTOS miễn phí là một lựa chọn phổ biến khi thực hiện IOT.