NuttX

Yazılım ekran görüntüsü:
NuttX
Yazılım detaylar:
Versiyon: 7.9 Güncelenir
Qayıt: 10 May 15
Geliştirici: Gregory Nutt
Lisans: Ücretsiz
Popülerlik: 115

Rating: 4.0/5 (Total Votes: 1)

NuttX derinden gömülü, kaynak kısıtlı ortamlarda kullanılabilir olması için ofset tasarlanmış bir açık kaynak, deterministik ve ücretsiz gerçek zamanlı gömülü işletim sistemi (RTOS) 'dir. Bu mikro denetleyici ortamlarda kullanışlı küçük bir ayak izi vardır ve & rsquo; (32-bit) sistemleri gömülü orta küçük (8-bit) için tamamen ölçeklenebilir s.
Ayrıca, standartlara tam uyumlu olması için tamamen gerçek zamanlı olarak ve tamamen açık olmayı hedeflemektedir. NuttX o uyumlu yüksek ölçeklenebilir ve yapılandırılabilir yanı sıra standartları, zengin özellik seti OS, modüler bir tasarıma sahiptir. Bu olmayan bir kısıtlayıcı BSD lisansı ile dağıtılmaktadır. Genellikle olarak geliştiricileri tarafından dublaj "Küçük Linux." Özellikler bir glanceKey özellikleri de işlem başına çekirdek görev yönetimi, BSD soket arayüzü, bellek ayırıcıları (paylaşılan bellek, standart yığın bellek ayırma, CPU'ya ile korunan yapı, düz gömülü inşa içerir yığınlar, granül allocator ve dinamik büyüklüğünde), bellek yapılandırmaları, taşıma rehberi, tamamen önceden ayırtılabilir, tickless operasyon, on-demand çağrı ve sistem günlüğü.
Ayrıca, proje başına iş parçacığı şufa, dahili CPU yükü ölçümlerine, kapsamlı dokümantasyon, adres ortamları, ANSI-benzeri ve POSIX benzeri görev kontrolleri, saatler, pthreads ihtiva isteğe bağlı görevleri, çevre yönetmek için uzantıları ile geliyor değişkenler, sinyaller, adlandırılmış ileti kuyrukları, zamanlayıcılar, dosya sistemi ve sayma semaforlar.
Diğer özellikleri arasında, biz sayabiliriz yuvarlak robin zamanlama, FIFO, öncelik kalıtım, SoC mimarisi desteği, yönetim kurulu mimarileri için destek, yeni işlemci mimarileri için destek, izleme sayaçlarını, VxWorks gibi görev yönetimi, I / O yönlendirme için destek ve iletilen & ldquo; terminalleri kontrol & rdquo;. platformsNuttX Desteklenen biz ARM Cortex-M3, ARM926EJS,, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T ve ARM dahil olmak üzere birçok ARM işlemciler, sayabiliriz aralarında donanım platformları geniş bir yelpazede destekler Korteks-A5, hem de Atmel 8 bit AVR Freescale M68HCS12, AVR32 Atmel AVR platformları.
86, Zilog Z80, Zilog Z16F, Zilog Z8Encore dahil Zilog platformları, Buna ek olarak, aynı zamanda bu tür MicroChip PIC32MX (MIPS), 80c52 ve 80 ve saatleri gibi çeşitli Intel platformları destekler! ve Zilog eZ80 Beğeni !, ve Renesas / Hitachi SuperH ve Renesas M16C / 26 platformlar

Bu sürümde Yeni nedir:.

  • Özellikler: Ek yeni özellikler ve genişletilmiş işlevsellik:
  • Çekirdek OS:
  • Watchdog Timer Tahsisi: Biz ön tahsis izleme süreleri biterse (1), mantık şimdi yığın ek sayaçlarını ayıracak. Her zaman kesme işleyicileri için kullanılabilir sayaçlarını olacak şekilde ön tahsis izleme sayaçları bir rezerv korunur. (2) statik olarak ayrılan Watchdog zamanlayıcısı
  • için destek eklendi
  • Adres Çevre Destek: (2) Yeni işletim sistemi API'leri (up_block_task () up_unblock_task (), _exit (), ve diğerleri) mantık anahtarlama tüm platforma özel bağlamda entegre
  • .
  • Çekirdek Desteği oluşturun: (1) MPU tabanlı & quot; çekirdek yapı & quot; korumalı bir yapı (CONFIG_BUILD_PROTECTED) olarak yeniden adlandırıldı; desteği eklendi yeni MMU tabanlı & quot; çekirdek yapı & quot; (CONFIG_BUILD_KERNEL), (2) sistem çağrısı kütüphanesi artık CONFIG_NUTTX_KERNEL ile inşa edilebilir. Yeni seçim *:. CONFIG_LIB_SYSCALL
  • Sistem Başlangıcı: (bellekte bir adres karşı) bir dosya sistemi üzerinde bir programdan sistemini başlatmak için yapılandırma seçeneklerini ekleyin
  • .
  • Başlangıç ​​Parametre Passing: Orada yapılandırmaya bağlı olarak yeni görevlere parametreleri geçirmek için iki yol, eskiden: Ya (1) argv [] strdup'ed her dize ile bir dizi olarak yarattığı gibi. Yeni görev başlandı önce veya (2) argv [] dizi ve dizeleri yığın üzerinde oluşturuldu. Şimdi, yol, tek bir yolu vardır (2). (1) Way biraz daha kompakt olabilir, ancak bu aynı şeyi yapıyor iki farklı şekillerde karmaşıklığını taşımak değmez.
  • Yönetim Kurulu Başlatma: Ayrı bir iş parçacığı üzerinde ilk yönetim kurulu başlatma gerçekleştirmek için yeteneği ekleyin. Başlatma mantık start-up / IDLE parçacığı üzerinde yürütmek değil birçok durumlar vardır, çünkü bu gereklidir. Engelleme veya bekleme IDLE parçacığı üzerinde izin verilmez olmasıdır.
  • Bellek Yönetimi:
  • Granül ayırıcısı: (1) granül öbek un-allocatable bölgeleri ayırmak için yeni bir işlev ekleyin. (2) un-başlatılıyor bir granül ayırıcısı.
  • desteklemek için arayüzler ekle
  • Sayfa ayırıcısı: Mevcut NuttX granül ayırıcı dayalı basit bir fiziksel sayfa ayırıcısı ekleyin. Granül ayırıcısı uzun menzilli kullanımı için yeterince deterministik olup olmadığını kesin değilim, ama çok çabuk test için yerinde bir sayfa ayırıcısı almak alır.
  • CONFIG_MM_MULTIHEAP Kaldır: Non-multiheap operasyon artık desteklenmiyor
  • .
  • sbrk ():. Sbrk () şimdi dinamik boyutlu, işlem başına yığınları izin çekirdek yapı desteklenir
  • Başına Süreci Yığınlar: işlem veri alanı başında Uzay artık kullanıcı yığın yönetim yapıları için ayrılmıştır. Çekirdek yapı modunda, bu yığın yapıları kullanıcıya özgü verileri ayırmak amacıyla çekirdek ve kullanım koduna arasında paylaşılır.
  • Kullanıcı Yığın Yönetimi: ayrıcalıklı bir iş parçacığı çıkar, serbest bellek çekirdek ayırıcısı kullanmak zorunda olduğunda; Bir imtiyazsız parçacığı çıkar, biz bir şey yapmak zorunda değilsiniz zaman ... yığın bellek adresi ortamı yırtılmış zaman temizlenmiş olacak.
  • Inter-Process Paylaşılan Bellek Desteği: (1) shmget için uygulama ve belgeleri ekleyin (), shmctl (), shmat () ve shmdt (). (2) Sistem sistemini ekle paylaşılan bellek arayüzleri kullanıcı çağrı kapısı desteklemek için çağırır. (3) Paylaşılan hafıza özelliğini desteklemek için gerekli platforma özgü arayüz tanımları ekleyin.
  • Sanal Sayfa ayırıcısı: Bir işlem başına sanal sayfa ayırıcısı desteği ekleyin. Bu task_group_s yapının yeni bir üyesidir. Yeni bir kullanıcı süreci başladığında ayırıcı başlatılmış olmalıdır ve kapatması süreç grubu nihayet tahrip olduğunda. Bu ortak fiziksel bellek eşleştirmek için üzerine sanal adres almak için shmat () ve shmdt () tarafından kullanılır.
  • Dosya Sistemleri / Blok Sürücüler / MTD:
  • AKILLI FS: SMART FS ve SMART FS Ken Pettit güncelleştirmeleri procfs
  • .
  • MTD:. MTD Okuma öncesi / Yaz tampon tabaka görünür artık fonksiyonel
  • İkili Biçimleri:
  • Başına Süreci Öbek:. Her kullanıcı süreci başladığında işlem başına kullanıcı öbek başlatmak için mantığı ekle
  • Grafik:
  • NxTerm: NxTerm için NxConsole tüm tekrarlarını değiştirin
  • .
  • Ağ:
  • PHY kesmeleri: (1) Bir PHY kesme eki arayüzünü standardize. Bir PHY kesmesi ile işaret ağ statüsünde bir değişiklik olduğunda (2) bir uygulama bildirmek için kullanılabilecek bir ioctl desteği ekleyin.
  • Geliştirilmiş Gönder Mantık: Geçmişte, ilk paket başarısız olur yeni bir ağ eşe gönderme; Orada eş için ARP tablosunda hiçbir giriş olacağını ve bu nedenle bir ARP isteği ilk paketi yerini alabilir. CONFIG_NET_ARP_SEND = y Şimdi eğer bir seçenek olarak, tüm değilse mantık (1) (2) eşleme almak için periyodik olarak ARP istekleri göndermek ve (3) bekleyin, akran MAC adresi ARP tablosunda olup olmadığını kontrol edecektir göndermek ARP yanıtı. Ardından (4) ARP yanıtı daha sonra alınan gerçek gönderme mantığı başlatılacaktır zaman. Böylece orada yeni bir eşe gönderilen ilk paket ile bir gecikme olabilir, ancak paket
  • kayıp olmamalı
  • Sunucu Simülasyon:
  • SPI FLASH Sürücü:. Ken Pettit gelen sim hedef için Emulated SPI FLASH sürücü
  • Intel x86:
  • Varsayılan Sunucu: varsayılan ana bilgisayar artık x86_64 ve -m32 seçeneği otomatik oluşturur simülasyonu için seçilmiş olacak
  • .
  • Intel 8051 Aile:
  • 8051 Kaldırıldı: NuttX kaynak ağacından 8051 aile mimarisi tüm desteği kaldırıldı. kaldırma yama ile birlikte eskitiliyor kod artık misc / eskimiş / 'bulunabilir. Bu kod bazı işlevler kanıtlanmıştır rağmen (1), herhangi bir 8051 kadar NuttX herhangi gerçekten başarılı limanların farkında değilim çünkü kaldırılır ve (2) 8051, donanım yığını ile, diğer mimarilere sınırlamaları ve komplikasyonları zorlar oldu ve daha karmaşık NuttX büyümesini ve gelişmesini sağlamak.
  • Zilog ZNeo Kurulları:
  • yapılandırmaları / 16Z: Bu komiteye destek NuttX kaynak ağacında kaldırıldı (ama hala misc / eskimiş dizininde bulunabilir). Bu port kullanımı için hazır değil ama gelecekte bir noktada NuttX ağaca dönebilir.
  • Atmel SAM3 / 4 bölüm:
  • SAM4E-EK:. (1) tam fonksiyonlu ILI9341 tabanlı LCD sürücü ve (2) bir tam fonksiyonlu NxWM yapılandırmasını ekle
  • ARMv7-A:
  • Adres Ortamları: Cortex-A MMU kullanarak uygulama adresi ortamları için destek ekleyin. NuttX adres çevre desteğinin standart platforma özgü arabirimlerini.
  • Önbellek İşlemleri: standartlaştırılmış, platforma özel önbellek işlemleri uygulayın. Bu D-önbelleği boşaltıp bir ELF modül belleğe yüklenen sonra I-cache geçersiz amacıyla ELF yükleyici denir. Bu değişiklikle, ELF modülleri SAMA5 / Cortex-A platformda düzgün çalışması.
  • Çekirdek Yapı: (1) sistem çağrısı kapısının uygulamaları ekleyin. (2) ayrı inşa edilen kullanıcı programları ile bağlantılı olabilir CRT0 start-up dosya ekleyin. (3) çekirdek yapı kullanım modu sinyallerinin iletimi için destek ekleyin. (4) Her kullanıcı işlemi başladığında işlem başına kullanıcı öbek başlatmak için mantığı ekleyin. (5) ARMv7-A istisna işleme kullanım modu süreçlerini desteklemek durumunda biraz farklı çalışmak gerekiyor. R13 ve R14, bir kullanıcı ve SVC modu arasında farklı belleğine olmasıdır.
  • Paylaşılan Bellek Desteği: (1) bağlam anahtarları paylaşılan bellek remapping işlemek için gerekli mantığı ekleyin. (2) paylaşılan bellek adresleri dahil sanal / fiziksel adres dönüşümleri uzatın. (3) platforma özel paylaşılan bellek desteği uygulanmasını ekleyin.
  • Atmel SAMA5D Sürücüler:
  • Ağ ıoctl'ler:. Kur PHY olay bildirimleri yeni ioctl dahil tüm ağ IOCTL'ler, uygulamak
  • Adres Dönüşümler:. Çekirdek adres ortamı ile inşa olarak, tersi fiziksel adreslere kullanıcı sanal adresleri eşleme mantığı gerekir ve
  • Atmel SAMA5D Kurulları:
  • SAMA5D3 Xplained, SAMA5D3-EK ve SAMA5D4-EK: yeni tanımlanan standart arayüz kullanımı kurulu özgü PHY kesme arayüzleri mevcut dönüştürme
  • .
  • SAMA5D4-EK: Çekirdek yapı yapılandırmasını test etmek için bir yapılandırma ekleyin. ROMFS dosya sistemi, bir SD karttan veya gelen ve bellek ya boot yapılandırmalar vardır.
  • SAMA5D4-EK: Rev E. kurulu belgelerine / destek Ekle
  • .
  • STMicro STM32 Sürücüler:
  • Ethernet: Ağ ioctl imza değişiklikleri değişikliği desteklemek için Modifiye. Ayrıca kurulum PHY olay bildirimleri yeni ioctl için destek eklemek.
  • STMicro STM32 Kurulları:
  • STM32F4DIS-BB ile STM32F4Discovery: Bir ağ ekle yüklü STM32F4DIS-BB taban tahtası ile STM32F4Discovery panosu için NSH yapılandırmasını sağladı. STM32F4DIS-BB baz gemide microSD kart yuvası için destek içerir.
  • TI Tiva Sürücüler:
  • TI CC3200: TI CC3200 desteği ekleyin. Jim Ewing itibaren.
  • TI Tiva Kurulları:
  • TI CC3200 Launchpad: TI CC3200 Launchpad desteği ekleyin. Jim Ewing itibaren.
  • C Kütüphanesi:
  • anket (). Yeniden hayata anket () gecikme sem_timedwait kullanarak ()
  • Yapılandırma / Sistem Yapı:
  • Export Hedef: inşa çekirdeğinde veya korumalı, (1) sadece kullanıcı kütüphaneleri ihraç edilmelidir (2) İç başlık dosyaları kopyalamak değil ya bu bir çekirdek veya korumalı yapı, ve (3) ihtiyacı olup olmadığını betiklerini Kullanıcı C başlatma dosyası (crt0) çekirdek, çekirdek değil kafa nesne paket ve korunan oluşturur.
  • Program CFLAGS: çekirdek kodu farklı CFLAGS ile kullanıcı kitaplıkları oluşturmak için bize izin verir mantığı ekleyin. SHN_COMMON tehcir önlemek için ELF kodu oluştururken biz -fno-ortak seçeneği gerek, çünkü bu gereklidir.
  • Uygulamalar:
  • NSH: NSH ağ başlatma mantığı uzatın. Bağlantının durumunu izleyecek bir ağ monitör parçacığı yaratacak bir seçenek artık yok. Bağlantı indiğinde, kod incelikle aşağı devlet Ethernet sürücüsü koymak dener; Bağlantı geri geldiğinde, kod geri şebekeyi getirmek için çalışacaktır.
  • ELF Örnek:. ELF testi / örnek ortadan kaldırmak veya sembol tabloları ihtiyacını en aza indirmek için (Varsa) bireysel ELF test programları SYSCALL kütüphaneye karşı bağlayabilir, böylece genişletilmiş veya C kütüphanesinde karşı olmuştur
  • NxTerm: NxTerm için NxConsole tüm tekrarlarını değiştirin
  • .
  • MTDRWB Örnek:. MTD R / W tamponlama test etmek için bir örnek ekleyin
  • İşletim Testi Örnek: sem_timedwait önemsiz bir test () ekleyin
  • .
  • Uygulama Yapılandırma / Sistem Yapı:
  • İthalat Hedef: (1) (nuttx / kaynak ağacında vs.) bir NuttX ihracat paketine karşı bina uygulamalarını sağlayacaktır mantığı ekleyin. (2) paketi vermek için .config dosyasını ekleyin. (3) apps / ithalat oluşturun. Create apps / ithalat / CFLAGS tanımlamak gibi şeyler yapar Make.defs; ELF inşa CFLAGS -fno-sık gerektirir. Nuttx / araçlar / Config.mk apps / ithalat / Make.defs bazı taban mantığı kopyalayın. ELF ithalat oluşturur (4) apps / ithalat / komut / gnu-elf.ld KİK bağlayıcı komut dosyasını ekleyin.
  • Tüm Makefiles: (1) Tüm makefiles bir yüklemek hedefi ekleyin. Ithalat kurmak için, üst düzey Makefile şimdi iki geçiş yapar: (1) (2) apps / bin içine programları yükler, sonra libapp.a oluşturur. (2) bir ana () inşa tüm Makefile içinde CONFIG_BUILD_KERNEL program kurulumu ekleyin. (3) çekirdek yapı, ana içeren nesne dosyası () nedeniyle adı çarpışmalar kütüphaneye gidemez. nesne dosyası her Makefile özel bir durum olarak ele alınması gerekir.
  • Tüm Built-In Programlar: Çekirdek yapı ile (CONFIG_BUILD_KERNEL), tüm görevler için giriş noktası main (), bazı xyz_main () 'dir
  • .
  • NSH: Onlar çekirdeğin dışına bulunmayan arayüzleri bağlıdır çünkü birçok komutlar çekirdek yapı olarak devre dışı bırakılmalıdır. Dd, df, losetup, mkfatfs, mkdr ve ps
  • apps / araçları /: (1) bir NuttX ithalat paketi patlayabilir ve uygulamalar / ithalat yüklemek için mkimport.sh ekleyin. (2) BOOT ROMFS dosya sistemi görüntüsü oluşturmak için mkromfsimg.sh komut dosyasını ekleyin.
  • ELF ve NxFLAT Örnekler:. Bir adres ortamı varsa) (task_create kullanımı test durumları inşa etmeyin
  • Araçlar:
  • refresh.sh:. Onlardan bir sürü yapmak istediğinizde daha kolay ferahlatıcı yapılandırmaları yapmak için bir araç ekleme
  • mksyscall.c: başlık dosyaları gerekmez syscalls oluşturun
  • .
  • mkexport.sh:. Paketi vermek için .config dosya ekleme
  • apps / araçları: yeni uygulamalar / araçları komut için yukarıya bakın
  • .
    Devam
  • çabalar. Aşağıdaki kısmen uygulanmaktadır, ancak bu sürümde mevcut olan özelliklerdir. Onlar yakında tamamlanacak olması muhtemel değildir.
  • Süreçleri: Bu sürümde çalışmaların çoğu NuttX Unix tarzı kullanıcı işlemlerinin gerçekleştirilmesi odaklanmıştır. Yapılması gereken daha Ancak, var. Tam yol haritası ve durum mevcuttur: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: Bir XMega bağlantı noktası için yerinde bazı parçaları vardır. Bu liman, gerçekten, ancak başlamamıştır.
  • Galileo: Benzer şekilde, Intel Galileo bağlantı noktası için yerinde parçaları vardır. liman ya ciddi olarak başlatılmış değildir.
  • Bugfixes. Sadece en kritik onarımları (ek, daha detaylı bilgi bugfix onarımları tam listesi için ve için DeğişimGünlüğü'ne bakın) burada listelenmiştir:
  • Çekirdek OS:
  • Çekirdek düzeltmeleri kurmak: (1) IDLE TCB kurulum IDLE iplik ayrıcalıklı, çekirdek parçacığı olduğunu belirtmek gerekiyor. Bir adres ortamı varsa (2)) arabirimleri task_create () veya task_spawn (inşa etmeyin. (3) posix_spawn () çekirdek vekil parçacığı bir çekirdek iplik değil, bir kullanıcı bir görev olmalıdır.
  • Çeşitli pthread arabirimleri: parametreleri phthread için const saklama sınıfı ekleyin. Freddie Chopin itibaren.
  • sched / saat: g_tickbias izlerini çıkarın; yerine, doğru sistem zamanını sağlamak amacıyla g_basetime zaman önyargı uygulamak gerekiyor.
  • Sistem Çağrıları: (1) Çeşitli yazım hatası sabit; exevc düzeltilmiş entegrasyonu (), execvl (), posix_spawn () ve posix_spawnp () sistem çağrıları. (2) biz SYSCALL işlemedeki, o zaman biz bir sinyal vermek için kullanıcı yığınına geri dönmek gerekir iken bir çekirdek yığını kullanmak üzere yapılandırılmış varsa.
  • Dosya Sistemleri / Blok Sürücüler / MTD:
  • procfs: olmayan bazı reorganizable veri yapılarını yeniden organize getirdiği bazı procf kırılması sabitleyin. Ken Pettit itibaren.
  • AT45: 1'den fazla sayfa yazarken at45db_bwrite (), tampon artmamıştır. Sourceforge hata 34..
  • İkili Biçimleri:
  • ELF taşınma: Bazı tehcir türleri onlarla ilgili bir adlandırılmış sembol yoktur. Tasarım Bu durumda dikkate almadılar.
  • ELF Loader:. Kritik güncelleyiniz .. BSS temizlenmiş değildi
  • Bellek Yönetimi:
  • Granül ayırıcısı: Granül allocator başlatma çekirdek bellek kenara koyarak yanlış ayırıcısı kullanır
  • .
  • Ayrıcalıklı Gruplar: grup yapısına bir bayrak ekleyin: grup çekirdek parçacığı tarafından oluşturulan, daha sonra gruptaki tüm kaynakların ayrıcalıklı olmalı
  • .
  • Cryptogrphic Destek:
  • kripto / cryptodev.c: ters Yol parçaları dosya yolu bulunmaktadır. Brennan Ashton tarafından kaydetti.
  • Ortak Sürücüler:
  • Ortak üst yarısı CAN: can_txdone olarak semaforda garsonlar can_xmit dönüş değeri ne olursa olsun haberdar edilmelidir. Yeni paketler varsa Önce -EIO döner ve ikinci Garsonlar bilgiler son transfer paket ile ilgili. Daniel Lazlo SITZER itibaren.
  • ARM:
  • Sistem Çağrıları: yığından parametre getiriliyor sistem çağrısı bir yazım hatası Fix: regs [REG_PC] +4 adresi değil, regs kadar [REG_PC + 4]
  • .
  • STMicro STM32 Sürücüler:
  • STM32 F401 UART: Bu çip üzerinde USART6 için doğru desteği. Freddie Chopin itibaren.
  • STM32 FLASH giderir: arayüzü daha genel yapmak yerine uint16_t bir size_t kullanın. Freddie Chopin itibaren.
  • STM32 UART:. Aton dan sağlayan STM32 saati UART7 ve UART8 için Fix
  • CAN: kesme işleyici çağrıldığında tüm paketleri devredilmiştir ise kesme işleyicisi sonunda kesmeler, engellilere ediliyordu. Kesme işleyici göndermek için yeni paket enqueue edebilirsiniz üst yarısının can_txdone () çağırır, çünkü bu, sorunludur. Can_txdone () () göndermek için yeni paketler varsa kesmeler devre dışı bırakır hangi can_xmit çağırır, çünkü blok tamamen kaldırıldı. Daniel Lazlo SITZER itibaren.
  • CAN:. Max Holtzberg tarafından önerilen ek STM32 CAN düzeltme
  • STMicro ST32 Kurulları:
  • yapılandırmaları / mikroe-stm32f4: Bir kaç mikroe-stm32f4 yapılandırma kaynağına böcek ve küçük düzeltmeler derlemek sabitleyin. Ken Pettit itibaren.
  • ARM9 / ARMv7-A:
  • Sistem Çağrıları: ARM7 / 9 ve Cortex-A syscalls Fix: SVC modunda parçacığı için SVC talimatları R14 clobbers. Bu satır içi montaj hesabı alınmalıdır.
  • Görev Kurulumu: Onlar start-up trambolin geçmiş olsun kadar tüm görevler, hatta kullanıcı modu görevleri, gözetmen modda başlatmak gerekir
  • .
  • ARMv7-A: CONFIG_BUILD_KERNEL için up_fullcontextrestore () değiştirin. Bu çekirdeğin ise CPSR değişti. Çekirdek alanının yürütülürken yeni CPSR kullanıcı modu ise o kilitlenmesine. Bir SYS_context_restore sistem çağrısı ekleyerek düzeltildi. Yapmış olabilir up_fullcontextrestore () alternatif, basit değişiklik var: yerine CPRSR ve SPSR kullanmak mümkün ve daha sonra up_fullcontextrestore bir istisna dönüş yapmak olabilir (). Bu daha verimli olacaktır, ama ben hiç denemedim.
  • Atmel SAM3 / 4 bölüm:
  • SAM3X / Arduino Due: sam3x_periphclks.h içinde typo Fix; başlık dosyası board.h için SCLK tanımları ekleyin. Fabien Comte itibaren.
  • SAM3 RTT: Yalnızca SAM4 aile MR kayıttaki RTTDIS biraz vardır. Fabien Comte adlı SourceForge bug 33..
  • C Kütüphanesi:
  • sscanf (): NuttX libc sonra, bir tampon içine ekstre ayrıştırmak kaç karakter tahmin etmeye çalıştı tampon üzerinde () strtol koştu. Bu tahmin sık sık yanlış oldu. Daha iyi bir yaklaşım ayrıştırma sonra atlamak için kaç karakter belirlemek için endptr dönüş değeri kullanılarak, giriş verileri doğrudan) strtol (çağırmak olacaktır. Kosma Moczek itibaren.
  • Matematik Kütüphane:. Denis Arnst gelen uygulamaları atan2 düzeltildi
  • Kayan Nokta Çıkışı: lib_dtoa () Değiştir firar sıfır gelen hassas hatayı düzeltmek için. Bob Doiron itibaren.
  • Uygulamalar:
  • Fix NSH PS komut:. Hiçbir argümanlar vardır, bu argüman listesi için çöp baskı olabilir
  • Yapılandırma / Sistem Yapı:
  • null Örnek: Bu veya bir çekirdek yapı değilse config.h bu emri biliyor dahil Need. Bu sorun hala (ana tanımlamanız gerekebilir birkaç diğer dosya) bulunmaktadır.

sürüm 7.8 yeni Nedir:

  • Özellikler: Ek yeni özellikler ve genişletilmiş işlevsellik:
  • Çekirdek OS:
  • Watchdog Timer Tahsisi: Biz ön tahsis izleme süreleri biterse (1), mantık şimdi yığın ek sayaçlarını ayıracak. Her zaman kesme işleyicileri için kullanılabilir sayaçlarını olacak şekilde ön tahsis izleme sayaçları bir rezerv korunur. (2) statik olarak ayrılan Watchdog zamanlayıcısı
  • için destek eklendi
  • Adres Çevre Destek: (2) Yeni işletim sistemi API'leri (up_block_task () up_unblock_task (), _exit (), ve diğerleri) mantık anahtarlama tüm platforma özel bağlamda entegre
  • .
  • Çekirdek Desteği oluşturun: (1) MPU tabanlı & quot; çekirdek yapı & quot; korumalı bir yapı (CONFIG_BUILD_PROTECTED) olarak yeniden adlandırıldı; desteği eklendi yeni MMU tabanlı & quot; çekirdek yapı & quot; (CONFIG_BUILD_KERNEL), (2) sistem çağrısı kütüphanesi artık CONFIG_NUTTX_KERNEL ile inşa edilebilir. Yeni seçim *:. CONFIG_LIB_SYSCALL
  • Sistem Başlangıcı: (bellekte bir adres karşı) bir dosya sistemi üzerinde bir programdan sistemini başlatmak için yapılandırma seçeneklerini ekleyin
  • .
  • Başlangıç ​​Parametre Passing: Orada yapılandırmaya bağlı olarak yeni görevlere parametreleri geçirmek için iki yol, eskiden: Ya (1) argv [] strdup'ed her dize ile bir dizi olarak yarattığı gibi. Yeni görev başlandı önce veya (2) argv [] dizi ve dizeleri yığın üzerinde oluşturuldu. Şimdi, yol, tek bir yolu vardır (2). (1) Way biraz daha kompakt olabilir, ancak bu aynı şeyi yapıyor iki farklı şekillerde karmaşıklığını taşımak değmez.
  • Yönetim Kurulu Başlatma: Ayrı bir iş parçacığı üzerinde ilk yönetim kurulu başlatma gerçekleştirmek için yeteneği ekleyin. Başlatma mantık start-up / IDLE parçacığı üzerinde yürütmek değil birçok durumlar vardır, çünkü bu gereklidir. Engelleme veya bekleme IDLE parçacığı üzerinde izin verilmez olmasıdır.
  • Bellek Yönetimi:
  • Granül ayırıcısı: (1) granül öbek un-allocatable bölgeleri ayırmak için yeni bir işlev ekleyin. (2) un-başlatılıyor bir granül ayırıcısı.
  • desteklemek için arayüzler ekle
  • Sayfa ayırıcısı: Mevcut NuttX granül ayırıcı dayalı basit bir fiziksel sayfa ayırıcısı ekleyin. Granül ayırıcısı uzun menzilli kullanımı için yeterince deterministik olup olmadığını kesin değilim, ama çok çabuk test için yerinde bir sayfa ayırıcısı almak alır.
  • CONFIG_MM_MULTIHEAP Kaldır: Non-multiheap operasyon artık desteklenmiyor
  • .
  • sbrk ():. Sbrk () şimdi dinamik boyutlu, işlem başına yığınları izin çekirdek yapı desteklenir
  • Başına Süreci Yığınlar: işlem veri alanı başında Uzay artık kullanıcı yığın yönetim yapıları için ayrılmıştır. Çekirdek yapı modunda, bu yığın yapıları kullanıcıya özgü verileri ayırmak amacıyla çekirdek ve kullanım koduna arasında paylaşılır.
  • Kullanıcı Yığın Yönetimi: ayrıcalıklı bir iş parçacığı çıkar, serbest bellek çekirdek ayırıcısı kullanmak zorunda olduğunda; Bir imtiyazsız parçacığı çıkar, biz bir şey yapmak zorunda değilsiniz zaman ... yığın bellek adresi ortamı yırtılmış zaman temizlenmiş olacak.
  • Inter-Process Paylaşılan Bellek Desteği: (1) shmget için uygulama ve belgeleri ekleyin (), shmctl (), shmat () ve shmdt (). (2) Sistem sistemini ekle paylaşılan bellek arayüzleri kullanıcı çağrı kapısı desteklemek için çağırır. (3) Paylaşılan hafıza özelliğini desteklemek için gerekli platforma özgü arayüz tanımları ekleyin.
  • Sanal Sayfa ayırıcısı: Bir işlem başına sanal sayfa ayırıcısı desteği ekleyin. Bu task_group_s yapının yeni bir üyesidir. Yeni bir kullanıcı süreci başladığında ayırıcı başlatılmış olmalıdır ve kapatması süreç grubu nihayet tahrip olduğunda. Bu ortak fiziksel bellek eşleştirmek için üzerine sanal adres almak için shmat () ve shmdt () tarafından kullanılır.
  • Dosya Sistemleri / Blok Sürücüler / MTD:
  • AKILLI FS: SMART FS ve SMART FS Ken Pettit güncelleştirmeleri procfs
  • .
  • MTD:. MTD Okuma öncesi / Yaz tampon tabaka görünür artık fonksiyonel
  • İkili Biçimleri:
  • Başına Süreci Öbek:. Her kullanıcı süreci başladığında işlem başına kullanıcı öbek başlatmak için mantığı ekle
  • Grafik:
  • NxTerm: NxTerm için NxConsole tüm tekrarlarını değiştirin
  • .
  • Ağ:
  • PHY kesmeleri: (1) Bir PHY kesme eki arayüzünü standardize. Bir PHY kesmesi ile işaret ağ statüsünde bir değişiklik olduğunda (2) bir uygulama bildirmek için kullanılabilecek bir ioctl desteği ekleyin.
  • Geliştirilmiş Gönder Mantık: Geçmişte, ilk paket başarısız olur yeni bir ağ eşe gönderme; Orada eş için ARP tablosunda hiçbir giriş olacağını ve bu nedenle bir ARP isteği ilk paketi yerini alabilir. CONFIG_NET_ARP_SEND = y Şimdi eğer bir seçenek olarak, tüm değilse mantık (1) (2) eşleme almak için periyodik olarak ARP istekleri göndermek ve (3) bekleyin, akran MAC adresi ARP tablosunda olup olmadığını kontrol edecektir göndermek ARP yanıtı. Ardından (4) ARP yanıtı daha sonra alınan gerçek gönderme mantığı başlatılacaktır zaman. Böylece orada yeni bir eşe gönderilen ilk paket ile bir gecikme olabilir, ancak paket
  • kayıp olmamalı
  • Sunucu Simülasyon:
  • SPI FLASH Sürücü:. Ken Pettit gelen sim hedef için Emulated SPI FLASH sürücü
  • Intel x86:
  • Varsayılan Sunucu: varsayılan ana bilgisayar artık x86_64 ve -m32 seçeneği otomatik oluşturur simülasyonu için seçilmiş olacak
  • .
  • Intel 8051 Aile:
  • 8051 Kaldırıldı: NuttX kaynak ağacından 8051 aile mimarisi tüm desteği kaldırıldı. kaldırma yama ile birlikte eskitiliyor kod artık misc / eskimiş / 'bulunabilir. Bu kod bazı işlevler kanıtlanmıştır rağmen (1), herhangi bir 8051 kadar NuttX herhangi gerçekten başarılı limanların farkında değilim çünkü kaldırılır ve (2) 8051, donanım yığını ile, diğer mimarilere sınırlamaları ve komplikasyonları zorlar oldu ve daha karmaşık NuttX büyümesini ve gelişmesini sağlamak.
  • Zilog ZNeo Kurulları:
  • yapılandırmaları / 16Z: Bu komiteye destek NuttX kaynak ağacında kaldırıldı (ama hala misc / eskimiş dizininde bulunabilir). Bu port kullanımı için hazır değil ama gelecekte bir noktada NuttX ağaca dönebilir.
  • Atmel SAM3 / 4 bölüm:
  • SAM4E-EK:. (1) tam fonksiyonlu ILI9341 tabanlı LCD sürücü ve (2) bir tam fonksiyonlu NxWM yapılandırmasını ekle
  • ARMv7-A:
  • Adres Ortamları: Cortex-A MMU kullanarak uygulama adresi ortamları için destek ekleyin. NuttX adres çevre desteğinin standart platforma özgü arabirimlerini.
  • Önbellek İşlemleri: standartlaştırılmış, platforma özel önbellek işlemleri uygulayın. Bu D-önbelleği boşaltıp bir ELF modül belleğe yüklenen sonra I-cache geçersiz amacıyla ELF yükleyici denir. Bu değişiklikle, ELF modülleri SAMA5 / Cortex-A platformda düzgün çalışması.
  • Çekirdek Yapı: (1) sistem çağrısı kapısının uygulamaları ekleyin. (2) ayrı inşa edilen kullanıcı programları ile bağlantılı olabilir CRT0 start-up dosya ekleyin. (3) çekirdek yapı kullanım modu sinyallerinin iletimi için destek ekleyin. (4) Her kullanıcı işlemi başladığında işlem başına kullanıcı öbek başlatmak için mantığı ekleyin. (5) ARMv7-A istisna işleme kullanım modu süreçlerini desteklemek durumunda biraz farklı çalışmak gerekiyor. R13 ve R14, bir kullanıcı ve SVC modu arasında farklı belleğine olmasıdır.
  • Paylaşılan Bellek Desteği: (1) bağlam anahtarları paylaşılan bellek remapping işlemek için gerekli mantığı ekleyin. (2) paylaşılan bellek adresleri dahil sanal / fiziksel adres dönüşümleri uzatın. (3) platforma özel paylaşılan bellek desteği uygulanmasını ekleyin.
  • Atmel SAMA5D Sürücüler:
  • Ağ ıoctl'ler:. Kur PHY olay bildirimleri yeni ioctl dahil tüm ağ IOCTL'ler, uygulamak
  • Adres Dönüşümler:. Çekirdek adres ortamı ile inşa olarak, tersi fiziksel adreslere kullanıcı sanal adresleri eşleme mantığı gerekir ve
  • Atmel SAMA5D Kurulları:
  • SAMA5D3 Xplained, SAMA5D3-EK ve SAMA5D4-EK: yeni tanımlanan standart arayüz kullanımı kurulu özgü PHY kesme arayüzleri mevcut dönüştürme
  • .
  • SAMA5D4-EK: Çekirdek yapı yapılandırmasını test etmek için bir yapılandırma ekleyin. ROMFS dosya sistemi, bir SD karttan veya gelen ve bellek ya boot yapılandırmalar vardır.
  • SAMA5D4-EK: Rev E. kurulu belgelerine / destek Ekle
  • .
  • STMicro STM32 Sürücüler:
  • Ethernet: Ağ ioctl imza değişiklikleri değişikliği desteklemek için Modifiye. Ayrıca kurulum PHY olay bildirimleri yeni ioctl için destek eklemek.
  • STMicro STM32 Kurulları:
  • STM32F4DIS-BB ile STM32F4Discovery: Bir ağ ekle yüklü STM32F4DIS-BB taban tahtası ile STM32F4Discovery panosu için NSH yapılandırmasını sağladı. STM32F4DIS-BB baz gemide microSD kart yuvası için destek içerir.
  • TI Tiva Sürücüler:
  • TI CC3200: TI CC3200 desteği ekleyin. Jim Ewing itibaren.
  • TI Tiva Kurulları:
  • TI CC3200 Launchpad: TI CC3200 Launchpad desteği ekleyin. Jim Ewing itibaren.
  • C Kütüphanesi:
  • anket (). Yeniden hayata anket () gecikme sem_timedwait kullanarak ()
  • Yapılandırma / Sistem Yapı:
  • Export Hedef: inşa çekirdeğinde veya korumalı, (1) sadece kullanıcı kütüphaneleri ihraç edilmelidir (2) İç başlık dosyaları kopyalamak değil ya bu bir çekirdek veya korumalı yapı, ve (3) ihtiyacı olup olmadığını betiklerini Kullanıcı C başlatma dosyası (crt0) çekirdek, çekirdek değil kafa nesne paket ve korunan oluşturur.
  • Program CFLAGS: çekirdek kodu farklı CFLAGS ile kullanıcı kitaplıkları oluşturmak için bize izin verir mantığı ekleyin. SHN_COMMON tehcir önlemek için ELF kodu oluştururken biz -fno-ortak seçeneği gerek, çünkü bu gereklidir.
  • Uygulamalar:
  • NSH: NSH ağ başlatma mantığı uzatın. Bağlantının durumunu izleyecek bir ağ monitör parçacığı yaratacak bir seçenek artık yok. Bağlantı indiğinde, kod incelikle aşağı devlet Ethernet sürücüsü koymak dener; Bağlantı geri geldiğinde, kod geri şebekeyi getirmek için çalışacaktır.
  • ELF Örnek:. ELF testi / örnek ortadan kaldırmak veya sembol tabloları ihtiyacını en aza indirmek için (Varsa) bireysel ELF test programları SYSCALL kütüphaneye karşı bağlayabilir, böylece genişletilmiş veya C kütüphanesinde karşı olmuştur
  • NxTerm: NxTerm için NxConsole tüm tekrarlarını değiştirin
  • .
  • MTDRWB Örnek:. MTD R / W tamponlama test etmek için bir örnek ekleyin
  • İşletim Testi Örnek: sem_timedwait önemsiz bir test () ekleyin
  • .
































































































































































  • Bugfixes:






































































































Benzer yazılım

Plan 9
Plan 9

2 Jun 15

TrueOS
TrueOS

12 Jul 17

Linux-on-android
Linux-on-android

19 Feb 15

Kernelconfig
Kernelconfig

4 Jun 15

Yorumlar NuttX

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!