มีการอภิปรายที่เกี่ยวข้องกับคำถามนี้ที่นี่: ลิงค์
แยก: บทความ Linux Journal ที่อ้างถึงอยู่ที่นี่: ลิงก์
ฉันคิดว่าพอร์ต 8052 และ M68HC12 เป็นตัวเลือกที่ไม่ดีโดยเฉพาะอย่างยิ่งในการกำหนดคุณลักษณะ NuttX เพราะทั้งคู่มีปัญหาบางอย่างและ NuttX นั้นเป็นรุ่นที่ 5.16 พร้อมกับรุ่น 63
ฉันกรอกข้อมูลการสัมภาษณ์ในแท็บ "ผู้เผยแพร่" ที่นี่: ลิงก์ ; มีมีการตรวจสอบมากเกินไป: การเชื่อมโยง
เอกสาร NuttX ที่กว้างขวางสามารถใช้ได้ที่นี่: การเชื่อมโยง
ปัญหาเกี่ยวกับชิ้นส่วน hcs12 และ 8051 มีดังนี้:
8051 / 80c52:สถาปัตยกรรมนี้เป็น RTOS ที่เป็นมิตรจริงๆ มีฮาร์ดแวร์สแต็กขนาดเล็ก (128 ไบต์บน 8051, 256 บน 80c52) ที่ตำแหน่งหน่วยความจำเฉพาะ (ที่อยู่ 0) ในการสลับงานคุณต้องคัดลอกสแต็กทั้งหมดของงานที่จะถูกบล็อกจากที่อยู่เฉพาะไปยังตำแหน่งที่บันทึกไว้แล้วคัดลอกสแต็กทั้งหมดของงานที่จะเริ่มจากตำแหน่งบันทึกไปยังตำแหน่งสแต็กเฉพาะ YECH!
และเนื่องจากกองเล็กมาก มันง่ายมากที่จะเอาชนะกองซ้อน - โดยเฉพาะอย่างยิ่งในระหว่างการจัดการขัดจังหวะ
พอร์ต NuttX 8051 นั้นสมบูรณ์และใช้งานได้ (อย่างน้อยครั้งสุดท้ายที่ฉันใช้มัน) แต่เพื่อให้มีประโยชน์คุณอาจต้องคัดลอกสแต็กทั้งหมดในแต่ละอินเทอร์รัปต์เพื่อป้องกันไม่ให้เกิดการโอเวอร์โฟลว์ โดยพื้นฐานแล้วฉันหมดความสนใจ ณ จุดนั้น แต่ถ้ามีใครบางคนที่มีแรงบันดาลใจในการใช้ 8051 มันเป็นไปได้ (ถ้าบางทีอาจจะไม่ได้รับคำแนะนำที่ดี)
สิ่งที่ดีเกี่ยวกับพอร์ต 8051 ก็คือมันเป็นแบบฝึกหัดที่ยอดเยี่ยมในการนำ NuttX ไปไว้ในตำแหน่งหน่วยความจำขนาดเล็กมาก พอร์ต 8051 ทำงานใน RAM ขนาด 32Kb ซึ่งรวมถึง RTOS, libc, ไลบรารีคอมไพเลอร์โปรแกรมทดสอบที่สำคัญ, .data / .bss และและฮีป และมีหน่วยความจำเล็กน้อยที่จะสำรองไว้!
hcs12:นี่เป็นโครงการที่ฉันทำงานในเวลาว่างเมื่อฉันไม่ได้ทำอะไร มันยังไม่เสร็จและยังไม่พร้อมสำหรับช่วงไพร์มไทม์
สำหรับการเปรียบเทียบกับ RTOS อื่น ๆ ฉันไม่มีคำตอบที่ดีและน่าเชื่อถือเพราะฉันไม่ได้ใช้ RTOS อื่น ๆ แต่นี่คือความเข้าใจที่ไร้เดียงสาของฉัน:
FreeRTOSมีการดาวน์โหลดมากมายและมีขนาดเล็กมากประมาณ 4Kb มันเป็น RTOS ของตัวเลือกสำหรับ MCUs ขนาดเล็กจริง ๆ พอร์ต FreeRTOS นั้นมาพร้อมกับผู้ผลิตซิลิกอนพร้อมกับ MCU ทุกตัว ดังนั้นจึงเป็นตัวเลือก RTOS เริ่มต้น
มีคู่แข่งมากมายที่มี FreeRTOS อยู่ที่นั่น ChiBIOSอยู่ในใจทันที เหล่านี้ล้วนเป็นตัวกำหนดเวลาเล็ก ๆ ของประเภทที่แตกต่างกัน
เพื่อที่จะทำการเปรียบเทียบที่แท้จริงสิ่งหนึ่งที่เราต้องทำอันดับแรกคือการกำหนดสิ่งที่เราหมายถึงโดย RTOS: มันเป็นเพียงแค่ตัวกำหนดตารางเวลาหรือไม่? หรือเป็นชุดของคุณสมบัติระบบปฏิบัติการมาตรฐาน - เช่นตัวกำหนดตารางเวลา, ระบบไฟล์, ไดรเวอร์อุปกรณ์, การจัดการหน่วยความจำ, ระบบเครือข่ายและอื่น ๆ ตัวอย่างเช่นระบบปฏิบัติการ Linux ส่วนใหญ่นั้นเป็นสภาพแวดล้อมการพัฒนาเต็มรูปแบบ NuttX เป็นระบบปฏิบัติการแบบเต็มความรู้สึกเช่นเดียวกับลินุกซ์ นี่คือสองสามคนอื่น ๆ :
RTEMS : ฉันทำงานกับอันนี้ มันได้รับรอบตลอดไปและควรจะมีเสถียรภาพมาก มันใหญ่; คิด> 100kb ฉันคิดว่ามันตั้งเป้าหมายไว้เหนือตลาด MCU เล็กน้อย
uCOS : ไม่เคยใช้ แต่ RTOS นี้ภายใต้ bootloaders ยอดนิยมหลายคนใช่ไหม? ความประทับใจของฉันคือมันคล้ายกับ RTEMS แต่ฉันไม่รู้จริงๆว่าฉันกำลังพูดถึงอะไร
ฉันจะเปรียบเทียบ NuttX กับสิ่งเหล่านี้ได้อย่างไร: มันมีขนาดเล็กกว่ามาก รอยเท้าเริ่มต้นอยู่ที่ประมาณ 20Kb ข้อเสนอแนะที่สมบูรณ์แบบคือบาง 10-20Kb เพิ่มเติม ความแตกต่างจาก RTOS เหล่านี้ก็คือ NuttX เป็นมาตรฐานที่มุ่งเน้น คุณสามารถนึกถึง NuttX ว่าเป็น Linux ตัวเล็กที่ทำงานเหมือนกัน รหัสส่วนใหญ่ที่คอมไพล์และรันบน Linux จะทำงานบน NuttX ด้วย (บางรหัสระบบเช่นโค้ดเครือข่ายหรือ daemons อาจต้องมีการปรับแต่ง)
ฉันคิดว่า RTEMS ให้ความสำคัญกับไมโครโปรเซสเซอร์มากขึ้น NuttX ให้ความสำคัญกับไมโครคอนโทรลเลอร์มากขึ้น