โปรดทราบ:คำถามนี้กล่าวถึง RTOS สองตัวโดยเฉพาะ แต่มีความเป็นทั่วไปมากกว่าและใคร ๆ ก็สามารถตอบได้โดยเขียนรหัส C สำหรับ RTOSes แบบฝังตัวก่อนหน้านี้และให้ซอฟต์แวร์ทำงานโดยตรงบน MCU
ฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ RTOS แบบฝังและการเขียนแอปพลิเคชันสำหรับพวกเขา ฉันกำลังดูEmboxและRIOTเพราะพวกเขาเป็นโอเพ่นซอร์สที่ทันสมัยใช้งานได้และดูเหมือนจะมีเอกสารที่ยอดเยี่ยม เป้าหมายของฉันมีสองขั้นตอน: ระยะที่ 1 คือการหาวิธีการคอมไพล์และแฟลชระบบปฏิบัติการเหล่านี้ไปยัง MCU (อาจเป็น AVR หรือ ARM) ขั้นตอนที่ 2 คือเขียนโปรแกรม C อย่างง่าย (โดยทั่วไปคือ daemon ไร้หัว) ซึ่งจะพัฒนาไปตามเวลาเป็น "งานอดิเรก" จากนั้นฉันจะแฟลช / ปรับใช้โปรแกรมนี้กับ MCU เดียวกันดังนั้นจึงประสบความสำเร็จในการปรับใช้ appstack ซึ่งประกอบด้วย Embox / RIOT และแอพของฉันอยู่ด้านบนของมัน
ก่อนที่ผมจะไปลงถนนใด ๆ ที่ในที่สุดนำไปสู่การสิ้นสุดตายผมเจอบทความนี้ที่จะได้งานที่ดีงามของการอธิบายว่าทำไมปพลิเคชันแบบ real-time เขียนใน C / ประกอบและประกายเพื่อ MCUs ไม่ได้จริงๆ RTOSes ต้องอยู่ภายใต้ .
ดังนั้นตอนนี้ฉันสับสนจริงๆและกำลังตั้งคำถามกับความเข้าใจพื้นฐานของฉันเกี่ยวกับทฤษฎีการคำนวณ ฉันเดาว่าฉันกำลังพยายามตัดสินใจว่าจะใช้ Embox หรือ RIOT ตั้งแต่แรกหรือไม่:
- อยู่ที่แน่นอนและไปกับ "แอปสแต็ค" บน MCU ของทั้ง OS + app; หรือ
- ฟังคำเตือนของบทความและเพียงไปกับ MCU ที่รันแอพของฉัน "โลหะเปลือย"
เห็นได้ชัดว่าอดีตเป็นงานมากขึ้นและดังนั้นจึงมีเหตุผลที่ดีกว่า / ผลตอบแทนที่ดีสำหรับการไปเส้นทางนั้น ดังนั้นฉันจึงถาม: ประโยชน์ที่แท้จริงของ RTOS ที่ฝังตัว (และคล้ายกัน) เหล่านี้มีให้กับนักพัฒนาแอป MCU / C อย่างไร ฟีเจอร์เฉพาะใดที่แอพ C ของฉันจะได้รับประโยชน์ (บางทีอาจจะไม่ใช่การสร้างล้อใหม่) โดยใช้ RTOS สิ่งที่หายไปจากการทำ RTOS และไปทำโลหะเปลือย?
ฉันขอตัวอย่างที่เป็นรูปธรรมที่นี่ไม่ใช่สื่อโฆษณาที่คุณได้รับเมื่อคุณไปที่รายการวิกิพีเดียสำหรับ RTOSes ;-)