มีใครประเมิน NuttX RTOS บ้าง


15

ในขณะที่อ่านวารสารของผู้ใช้ Linux ในวันนี้ฉันก็สะดุดเล็กน้อยเกี่ยวกับNuttX RTOS ฉันตรวจสอบเว็บไซต์ของพวกเขาและค่อนข้างประทับใจกับชุดคุณลักษณะและความสามารถในการใส่ไว้ใน 8052! ฉันพบว่ามันน่าสนใจที่รองรับ POSIX ซึ่งเป็นสิ่งที่ฉันได้ช่วยทำงานให้กับลูกค้าของฉัน RTOS ในองค์กร ดูเหมือนว่าฟีเจอร์นี้จะอุดมไปด้วย RTOS ของ บริษัท

มีใครอีกบ้างที่ได้ยินเกี่ยวกับ NuttX และลองใช้ดูบ้างไหม? ถ้าเป็นเช่นนั้นมันจะเปรียบเทียบกับ RTOS อื่น ๆ เช่นFreeRTOS ได้อย่างไร?


1
ฉันเพิ่งเริ่มเล่นกับ RTOS และเมื่อฉันถามที่นี่ฉันได้รับคำแนะนำที่ดี แต่ฉันรู้สึกว่าผู้ใช้ส่วนใหญ่ที่นี่ไม่รู้ว่า RTOS คืออะไร ฉันไม่ได้หมายถึงเรื่องนี้ในทางที่ไม่ดีฉันแค่คิดว่าอาจมีค่าซักถามในฟอรัมอื่นเพื่อเพิ่มโอกาสในการได้รับคำตอบที่ดี
Kortuk

ฉันต้องพยายามอยู่แล้ว :-) คุณไม่เคยรู้ที่สิงสถิตอยู่ที่นี่ :-)
เจย์แอตกินสัน

ใช่ฉันถามคำถามผ้าสำลีที่นี่ด้วย ไม่เจ็บที่หวังจะกัด
Kortuk

เริ่มรับรางวัล! ฉันสนใจการเปรียบเทียบระหว่าง RTOS ของ
tyblu

7
ทำไมจึงมีการโหวตปิดคำถามนี้ RTOS ใช้ในอุปกรณ์อิเล็กทรอนิกส์และหุ่นยนต์ตลอดเวลา
Kellenjb

คำตอบ:


17

มีการอภิปรายที่เกี่ยวข้องกับคำถามนี้ที่นี่: ลิงค์

แยก: บทความ 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 ให้ความสำคัญกับไมโครคอนโทรลเลอร์มากขึ้น


4

การออกใบอนุญาตเป็นสิ่งที่คุณควรคำนึงถึงเมื่อเลือก RTOS แบบโอเพ่นซอร์ส โดยเฉพาะอย่างยิ่งถ้าคุณวางแผนที่จะใช้ RTOS ในโครงการ commericial RTOS ของโอเพ่นซอร์สส่วนใหญ่มีใบอนุญาต GPL ที่แก้ไขแล้ว การแก้ไขใบอนุญาตมักจะระบุว่าคุณไม่จำเป็นต้องมีรหัสกรรมสิทธิ์ที่เชื่อมโยงกับ GPL RTOS (แต่คุณยังต้องปล่อยไฟล์ RTOS ด้วยการแก้ไขของคุณ)

NuttX (และคนอื่น ๆ อาจ) มีใบอนุญาต BSD ที่ไม่ จำกัด และแก้ไข ด้วยสิทธิ์การใช้งาน BSD คุณสามารถนำรหัสและใช้งานได้ราวกับว่ามันเป็นของตัวเองโดยไม่มีข้อผูกมัดใด ๆ นอกจากการเก็บรักษาข้อมูลการอนุญาตให้ใช้สิทธิ์และลิขสิทธิ์ภายในไฟล์


ณัฐคุณต้องการให้ฉันแก้ไขข้อมูลนี้เป็นคำตอบอื่น ๆ ของคุณดูเหมือนว่าพวกเขาจะไปด้วยกัน
Kortuk

แน่นอนว่ารู้สึกฟรี พูดจาโผงผางประมาณ 8051 และ 80c52 และ hc12 ก็ดูไม่เหมือนกันที่นี่
patacongo

ฉันแค่รับประกันว่าคุณจะรู้ว่าคุณสามารถแก้ไขเพิ่มเติมได้เนื่องจากคุณรู้และทำมันโดยเจตนาเราแค่ปล่อยไว้ที่นี่ โดยปกติคุณสามารถแก้ไขในส่วนอื่นและใช้ชื่อเรื่องได้ แจ้งให้เราทราบหากฉันสามารถช่วยถ้าคุณเปลี่ยนใจ
Kortuk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.