Herkes NuttX RTOS'u değerlendirdi mi?


15

Bugün Linux Kullanıcı Günlüğü'nü okurken NuttX RTOS hakkında biraz bulanıklaştım . Kendi Web sitesine teslim ve onun özellik kümesi ile oldukça etkilendim ve bir 8052 koymak için yeteneği! Müşterilerimin şirket içi RTOS'ları için üzerinde çalıştığım bir şey olan POSIX'i desteklemesini ilginç buluyorum. Bu, şirket içi RTOS'dan biraz daha zengin bir özellik gibi görünüyor.

Başka kimse NuttX'i duydu ve denedi mi? Öyleyse, FreeRTOS gibi diğer RTOS'larla nasıl karşılaştırılır ?


1
Ben sadece RTOS ile oynamaya başladım ve burada sorduğumda harika bir tavsiye aldım, ama burada çoğu kullanıcının bir RTOS'un ne olduğunu bilmediğini hissediyorum. Bunu kötü bir şekilde kastetmiyorum, sadece diğer forumlarda da iyi bir cevap alma şansınızı artırmanın bir değeri olabileceğini düşünüyorum.
Kortuk

Yine de denemek zorunda :-) Burada kim pusuda olduğunu asla bilemezsin :-)
Jay Atkinson

Evet, buradaki tiftik sorusunu da sordum. Bir ısırık için umut vermek asla acımaz.
Kortuk

Ödül başlıyor! RTOS'lar arasındaki karşılaştırmayla ilgileniyorum.
tyblu

7
Bu soru için neden kapanacak bir oy var? RTOS'lar her zaman elektronik ve robotikte kullanılır.
Kellenjb

Yanıtlar:


17

Bu soru ile ilgili burada tartışma var: link

Alıntılar: Bahsedilen Linux Journal makalesi burada: link

8052 ve M68HC12 portlarının NuttX'i karakterize etmek için özellikle kötü seçimler olduğunu düşünüyorum, çünkü her ikisinin de bazı sorunları var ve NuttX şimdi 63 sürümlü 5.16 sürümünde.

Buradaki "Yayıncı" sekmesinde röportajı doldurdum: link ; orada da bir inceleme var: bağlantı .

Kapsamlı NuttX dokümanlarına buradan ulaşabilirsiniz: link .

Hcs12 ve 8051 parçalarıyla ilgili sorunlar şunlardır:

8051 / 80c52: Bu mimari gerçekten RTOS düşmanıydı . Özel bir bellek konumunda küçük bir donanım yığınına (8051'de 128 bayt, 80c52'de 256 bayt) sahiptir (adres 0). Görevler arasında geçiş yapmak için, engellenecek görevin tüm yığınını ayrılmış adresinden bir kaydetme konumuna kopyalamanız ve ardından başlatılacak görevin tüm yığınını kaydetme konumundan ayrılmış yığın konumuna kopyalamanız gerekir. Yech!

Ve bu yana, yığın çok küçük. Özellikle kesme işlemi sırasında istifin taşması çok, çok kolaydır.

NuttX 8051 bağlantı noktası tam ve işlevseldir (en azından son kullandığımda). Ancak, yararlı olması için, taşmayı önlemek için her yığının her kesime de kopyalanması gerekir. Temel olarak, o noktada ilgimi kaybettim, ancak bazıları 8051'i kullanmak için gerçekten motive olsaydı, yapılabilir (belki de iyi tavsiye edilmezse).

8051 portu hakkında iyi olan şey, NuttX'i çok küçük bir hafıza konumuna getirmede büyük bir egzersiz olması. 8051 bağlantı noktası, RTOS, libc, derleyici kitaplıkları, önemli bir test programı, .data / .bss ve yığınını içeren 32Kb RAM'de çalışır. Ve yedeklemek için küçük bir hafıza ile!

hcs12: Bu, boş zamanlarımda başka bir şey yapmadığım zamanlarda üzerinde çalıştığım bir proje. Henüz bitmedi ve henüz ilk kez hazır değil.


Diğer RTOS'larla karşılaştırıldığında, gerçekten iyi, otoriter cevaplarım yok çünkü diğer RTOS'ları kullanmıyorum. Ama işte benim saf anlayışım:

FreeRTOS , tonlarca indirmeye ve yaklaşık 4Kb'lik çok küçük bir alana sahiptir. Gerçekten küçük MCU'lar için tercih edilen RTOS'tur. FreeRTOS bağlantı noktası, hemen hemen her MCU'lu silikon satıcıları tarafından paketlenir. Bu yüzden varsayılan RTOS seçimidir.

Orada FreeRTOS'lu düzinelerce rakip var. ChiBIOS hemen akla geliyor. Bunların hepsi çeşitli tiplerde küçük programlayıcılardır.

Gerçek bir karşılaştırma yapmak için, ilk olarak yapmamız gereken bir şey bir RTOS ile ne demek istediğimizi tanımlamaktır: Sadece bir zamanlayıcı mı? Ya da zamanlayıcı, dosya sistemi, aygıt sürücüleri, bellek yönetimi, ağ iletişimi, vb. Gibi standart işletim sistemi özelliklerinin entegre bir kümesidir. NuttX, Linux ile aynı anlamda tam bir işletim sistemidir. İşte birkaç tane daha:

RTEMS : Bununla çalıştım. Sonsuza kadar var ve çok kararlı olmalı. Bu büyük; > 100kb. Bence MCU pazarının biraz üstünde.

uCOS : Hiç kullanmadı, ama bu birçok popüler bootloader altındaki RTOS değil mi? Benim izlenimim RTEMS'e benziyor, ama neden bahsettiğimi gerçekten bilmiyorum.

NuttX'i bunlarla nasıl karşılaştırabilirim: Eh, çok daha küçük. Başlangıç ​​alanı yaklaşık 20Kb. Tam özellikli bir yapılandırma yaklaşık 10-20Kb daha fazladır. Bu RTOS'lardan bir diğer fark, NuttX'in çok standart odaklı olmasıdır. NuttX'i küçük, Linux benzeri bir iş olarak düşünebilirsiniz. Linux'ta derleyen ve çalıştırılan çoğu kod da NuttX üzerinde çalışır (ağ kodu veya arka plan gibi bazı sistem kodlarının biraz düzeltilmesi gerekebilir).

RTEMS'nin mikro işlemcilere daha çok odaklandığını düşünüyorum; NuttX daha çok mikro denetleyicilere odaklanmıştır.


4

Açık kaynak RTOS'ları seçerken, akılda tutulması gereken bir başka fark da lisanslamadır. Özellikle RTOS'u ticari bir projede kullanmayı planlıyorsanız. Çoğu açık kaynaklı RTOS, değiştirilmiş bir GPL lisansına sahiptir. Lisans değişikliği genellikle GPL RTOS ile bağlantı kuran özel kodunuz olmadığını belirtir (ancak yine de RTOS dosyalarını değişikliklerinizle birlikte yayınlamanız gerekir).

NuttX (ve muhtemelen diğerleri) kısıtlayıcı olmayan, değiştirilmiş BSD lisansına sahiptir. BSD lisansı ile, kodu temelde alıp, lisans ve telif hakkı bilgilerini dosyalarda saklamak dışında hiçbir yükümlülüğü olmadan kendinizmiş gibi kullanabilirsiniz.


Nutt, bu bilgiyi diğer cevabında düzenlememi ister misin, birlikte gidiyorlarmış gibi görünüyor.
Kortuk

Tabii, çekinmeyin. Rant yaklaşık 8051 ve 80c52 ve hc12 de bağlam dışı görünüyor.
patacongo

Sadece daha fazla düzenleme yapabileceğinizi anladığınızdan emin oluyordum. Bunu bildiğiniz ve kasıtlı olarak yaptığınız için burada bırakabiliriz. Normalde başka bir bölümde düzenleme yapabilir ve başlıkları kullanabilirsiniz. Fikrinizi değiştirirseniz yardımcı olabilir miyim?
Kortuk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.