NuttX

Software screenshot:
NuttX
Rincian Software:
Versi: 7.9 Diperbarui
Tanggal Upload: 10 May 15
Pengembang: Gregory Nutt
Lisensi: Gratis
Popularitas: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX merupakan open source, real-time sistem operasi tertanam deterministik dan bebas (RTOS), dirancang dari offset untuk digunakan dalam tertanam, sumber daya terbatas lingkungan. Ini memiliki footprint kecil yang dapat digunakan dalam lingkungan mikro-controller, dan & rsquo; s Skalabilitas dari kecil (8-bit) sampai sedang tertanam (32-bit) sistem.
Hal ini juga bertujuan untuk menjadi sepenuhnya sesuai dengan standar, sepenuhnya real time, dan harus benar-benar terbuka. NuttX memiliki kaya fitur OS set, desain modular, sangat scalable dan dikonfigurasi, serta memenuhi persyaratan standar. Hal ini didistribusikan dengan lisensi BSD non-restriktif. Hal ini sering dijuluki oleh pengembang sebagai "kecil Linux." Fitur pada fitur glanceKey termasuk manajemen inti tugas, BSD soket antarmuka, penyalur memori (memori bersama, alokasi memori tumpukan standar, membangun dilindungi dengan MPU, datar tertanam membangun, per-proses tumpukan, pengalokasi granul dan dinamis berukuran), konfigurasi memori, port panduan, sepenuhnya Preemptible, operasi tickless, on-demand paging dan sistem logging.
Selain itu, proyek ini dilengkapi dengan ekstensi untuk mengelola tindakan pencegahan, per-benang, built-in pengukuran beban CPU, dokumentasi yang komprehensif, tugas opsional yang mengandung lingkungan alamat, ANSI-seperti dan POSIX-seperti kontrol tugas, jam, pthreads, lingkungan variabel, sinyal, antrian pesan bernama, timer, filesystem dan menghitung Semaphore.
Di antara fitur-fitur lainnya, kita bisa menyebut penjadwalan round-robin, FIFO, dukungan untuk warisan prioritas, dukungan untuk arsitektur SoC, dukungan untuk arsitektur papan, dukungan untuk arsitektur prosesor baru, pengawas timer, VxWorks seperti manajemen tugas, I / O redirection dan ditransmisikan & ldquo; mengendalikan terminal & rdquo;. Didukung platformsNuttX mendukung berbagai macam platform perangkat keras, di antaranya kita bisa menyebut banyak prosesor ARM, termasuk ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T dan ARM Cortex-A5, serta Atmel 8-bit AVR, Freescale M68HCS12, AVR32 Atmel AVR platform.
Selain itu, ia juga mendukung berbagai platform Intel, seperti microchip PIC32MX (MIPS), 80c52 dan 80 & kali; 86, Zilog platform, termasuk Zilog Z80, Zilog Z16F, Zilog Z8Encore! dan Zilog eZ80 Acclaim !, dan Renesas / Hitachi SuperH dan Renesas M16C / 26 platform

Apa yang baru dalam rilis ini:.

  • Fitur: fitur baru tambahan dan fungsionalitas yang diperluas:
  • Inti OS:
  • Watchdog Timer Alokasi: (1) Jika kita kehabisan pra-dialokasikan kali pengawas, logika sekarang akan mengalokasikan timer tambahan dari tumpukan. Sebuah cadangan pra-dialokasikan timer pengawas dipertahankan sehingga akan selalu ada timer tersedia untuk penangan interrupt. (2) Ditambahkan dukungan untuk statis dialokasikan pengawas timer
  • Alamat Lingkungan Dukungan: (2) New OS API terintegrasi ke dalam semua konteks spesifik platform beralih logika (up_block_task (), up_unblock_task (), _exit (), dan lain-lain)
  • .
  • Kernel Membangun Dukungan: (1) MPU The berdasarkan & quot; kernel membangun & quot; berganti nama menjadi membangun dilindungi (CONFIG_BUILD_PROTECTED); menambahkan dukungan untuk baru MMU berbasis & quot; kernel membangun & quot; (CONFIG_BUILD_KERNEL), (2) Perpustakaan system call sekarang dapat dibangun dengan CONFIG_NUTTX_KERNEL. New seleksi *:. CONFIG_LIB_SYSCALL
  • System Startup: Tambahkan pilihan konfigurasi untuk memulai sistem dari program pada sistem file (versus alamat di memori)
  • .
  • Startup Parameter Passing: Dulu ada dua cara untuk melewatkan parameter ke tugas baru, tergantung pada konfigurasi: Entah (1) argv [] sebagai diciptakan sebagai sebuah array dengan setiap string strdup'ed. Atau (2) argv [] array dan string yang dibuat pada stack sebelum tugas baru dimulai. Sekarang, hanya ada satu cara, cara (2). Way (1) mungkin sedikit lebih kompak, tapi ini tidak layak membawa kompleksitas dua cara berbeda dalam melakukan hal yang sama.
  • Inisialisasi Dewan: Tambahkan kemampuan untuk melakukan inisialisasi papan awal pada thread pekerja yang terpisah. Hal ini diperlukan karena ada banyak kasus di mana logika inisialisasi tidak dapat mengeksekusi pada start-up / thread IDLE. Itu karena menghalangi atau menunggu tidak diizinkan di thread IDLE.
  • Manajemen Memory:
  • Granule Allocator: (1) Menambahkan fungsi baru untuk cadangan daerah un-allocatable di tumpukan granul. (2) Tambahkan interface untuk mendukung un-menginisialisasi pengalokasi granul.
  • Halaman Allocator: Menambahkan halaman fisik pengalokasi sederhana didasarkan pada ada NuttX granul pengalokasi. Saya tidak yakin jika pengalokasi granul cukup deterministik untuk digunakan jarak jauh, tapi itu akan mendapatkan pengalokasi halaman di tempat untuk menguji sangat cepat.
  • Hapus CONFIG_MM_MULTIHEAP: operasi Non-multiheap tidak lagi didukung
  • .
  • sbrk ():. Sbrk () sekarang didukung di kernel membangun untuk mengizinkan dinamis berukuran, per-proses tumpukan
  • Per-Proses Tumpukan: Ruang pada awal ruang proses data sekarang disediakan untuk struktur manajemen pengguna tumpukan. Dalam kernel membangun modus, struktur heap ini dibagi antara kernel dan penggunaan kode untuk mengalokasikan data pengguna tertentu.
  • Pengguna Heap Manajemen: Ketika thread keluar istimewa, kita harus menggunakan pengalokasi kernel ke memori bebas; ketika benang keluar unprivileged, kita tidak perlu melakukan apa-apa ... memori heap akan dibersihkan ketika lingkungan alamat diruntuhkan.
  • Inter-Process Memory Bersama Support: (1) Tambah implementasi dan dokumentasi untuk shmget (), shmctl (), shmat (), dan shmdt (). (2) Tambahkan sistem sistem panggilan untuk mendukung gerbang panggilan pengguna untuk antarmuka memori bersama. (3) Tambahkan definisi antarmuka platform khusus yang dibutuhkan untuk mendukung fitur memori bersama.
  • Page Virtual Allocator: Tambah dukungan untuk halaman virtual pengalokasi per-proses. Ini adalah anggota baru dari struktur task_group_s. Pengalokasi harus diinisialisasi ketika proses pengguna baru dimulai dan uninitialize ketika kelompok proses akhirnya hancur. Hal ini digunakan oleh shmat () dan shmdt () untuk memilih alamat virtual ke mana untuk memetakan memori fisik bersama.
  • Sistem Berkas / Blok Driver / MTD:
  • FS SMART: FS SMART dan SMART FS procfs pembaruan dari Ken Pettit
  • .
  • MTD:. Lapisan MTD Baca-depan / Tulis penyangga muncul sekarang fungsional
  • Binary Format:
  • Per-Proses Heap:. Tambahkan logika untuk menginisialisasi pengguna tumpukan per-proses ketika setiap proses pengguna mulai
  • Graphics:
  • NxTerm: Mengubah semua kejadian NxConsole untuk NxTerm
  • .
  • Jaringan:
  • PHY Interupsi: (1) Standarisasi interface attachment PHY interupsi. (2) Tambahkan dukungan untuk ioctl yang dapat digunakan untuk memberitahu aplikasi ketika ada perubahan dalam status jaringan ditandai oleh PHY interupsi.
  • Peningkatan Kirim Logika: Di masa lalu, paket pertama mengirim ke rekan jaringan baru akan gagal; tidak akan ada entri dalam tabel ARP untuk rekan dan permintaan ARP bisa menggantikan paket pertama. Sekarang sebagai pilihan jika CONFIG_NET_ARP_SEND = y, semua mengirim logika akan (1) memeriksa apakah rekan alamat MAC dalam tabel ARP dan, jika tidak, (2) mengirim permintaan ARP berkala untuk mendapatkan pemetaan dan (3) menunggu ARP respon. Kemudian (4) ketika respon ARP diterima maka logika mengirim sebenarnya akan dimulai. Jadi mungkin ada penundaan dengan paket pertama dikirim ke rekan baru, tetapi paket tidak boleh hilang
  • host Simulasi:
  • SPI FLASH driver:. Ditiru sopir SPI FLASH untuk target sim dari Ken Pettit
  • Intel x86:
  • Default Host: default host sekarang x86_64 dan -m32 opsi akan secara otomatis dipilih untuk simulasi membangun
  • .
  • Intel 8051 Keluarga:
  • 8051 Dihapus: Dihapus semua dukungan untuk 8.051 arsitektur keluarga dari pohon sumber NuttX. Kode usang bersama dengan patch penghapusan sekarang dapat ditemukan di misc / usang /. Kode ini telah dihapus karena (1) meskipun beberapa fungsi telah dibuktikan, saya tidak mengetahui adanya port benar-benar sukses NuttX untuk setiap 8051, dan (2) 8051, dengan tumpukan perangkat keras, memaksa keterbatasan dan komplikasi ke arsitektur lainnya dan membuat pertumbuhan dan perkembangan NuttX lebih kompleks.
  • Zilog ZNeo Dewan:
  • konfigurasi / 16z: Dukungan untuk forum ini telah dihapus dari pohon sumber NuttX (tapi masih dapat ditemukan di misc / direktori usang). Port ini belum siap untuk penggunaan tetapi dapat kembali ke pohon NuttX di beberapa titik di masa depan.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Add (1) berbasis ILI9341 LCD sopir berfungsi secara penuh dan (2) konfigurasi NxWM berfungsi secara penuh
  • ARMv7-A:
  • Alamat Lingkungan: Tambah dukungan untuk lingkungan alamat aplikasi menggunakan Cortex-A MMU. Mengimplementasikan antarmuka platform-spesifik standar dari NuttX dukungan lingkungan alamat.
  • Cache Operations: Melaksanakan standar, operasi cache-platform tertentu. Ini disebut dari loader ELF untuk menyiram D-cache dan membatalkan I-cache modul ELF telah dimuat ke memori. Dengan perubahan ini, modul ELF bekerja dengan benar pada SAMA5 / Cortex-Sebuah platform.
  • Kernel membangun: (1) Tambah implementasi gerbang system call. (2) Tambahkan CRT0 start-up file yang bisa dihubungkan dengan program pengguna secara terpisah dibangun. (3) Tambahkan dukungan untuk pengiriman sinyal digunakan mode di kernel membangun. (4) Tambahkan logika untuk menginisialisasi pengguna tumpukan per-proses ketika setiap proses pengguna dijalankan. (5) ARMv7-A penanganan eksepsi perlu bekerja sedikit berbeda jika kita mendukung proses modus pengguna. Hal ini karena R13 dan R14 yang paged berbeda antara pengguna dan modus SVC.
  • Bersama Dukungan Memori: (1) Tambahkan logika yang diperlukan untuk menangani pemetaan memori bersama pada konteks switch. (2) Perluas virtual / konversi alamat fisik untuk memasukkan alamat dalam memori bersama. (3) Tambahkan pelaksanaan dukungan memori bersama-platform tertentu.
  • Atmel SAMA5D Drivers:
  • Jaringan IOCTLs:. Melaksanakan semua ioctls jaringan, termasuk ioctl baru untuk pemberitahuan acara pemasangan PHY
  • Alamat Konversi:. Dalam kernel membangun dengan lingkungan alamat, perlu logika untuk memetakan pengguna alamat virtual ke alamat fisik, dan sebaliknya
  • Atmel SAMA5D Dewan:
  • SAMA5D3 Xplained, SAMA5D3-EK, dan SAMA5D4-EK: Mengkonversi ada antarmuka PHY spesifik papan interupsi untuk menggunakan antarmuka standar baru ditetapkan
  • .
  • SAMA5D4-EK: Tambahkan konfigurasi untuk menguji kernel membangun konfigurasi. Ada konfigurasi untuk boot baik dari kartu SD atau dari dan di-memori sistem file ROMFS.
  • SAMA5D4-EK: Tambahkan dokumentasi / dukungan untuk Rev E. papan
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Modified untuk mendukung perubahan ke jaringan perubahan tanda tangan ioctl. Juga menambahkan dukungan untuk ioctl baru untuk acara pemberitahuan pengaturan PHY.
  • STMicro STM32 Dewan:
  • STM32F4Discovery dengan STM32F4DIS-BB: Tambahkan sebuah jaringan diaktifkan konfigurasi NSH untuk papan STM32F4Discovery dengan papan dasar STM32F4DIS-BB diinstal. Termasuk dukungan untuk slot kartu microSD pada papan dasar STM32F4DIS-BB.
  • TI Tiva Drivers:
  • TI CC3200: Tambah dukungan untuk CC3200 TI. Dari Jim Ewing
  • .
  • TI Tiva Dewan:
  • TI CC3200 Launchpad: Tambah dukungan untuk TI CC3200 Launchpad. Dari Jim Ewing
  • .
  • C Library:
  • jajak pendapat ():. Re-dilaksanakan jajak pendapat () delay menggunakan sem_timedwait ()
  • Konfigurasi / Membangun Sistem:
  • Ekspor Target: Dalam kernel atau dilindungi membangun, (1) hanya perpustakaan pengguna harus diekspor, (2) tidak menyalin file header internal maupun membangun script jika ini adalah kernel atau dilindungi membangun, dan (3) kebutuhan bundel file pengguna C startup (crt0), bukan kernel objek kepala untuk kernel dan dilindungi membangun.
  • Program CFLAGS: Tambahkan logika yang akan memungkinkan kita untuk membangun perpustakaan pengguna dengan CFLAGS yang berbeda dari kode kernel. Hal ini diperlukan karena kita perlu opsi -fno-umum ketika membangun kode ELF untuk mencegah relokasi SHN_COMMON.
  • Aplikasi:
  • NSH: Memperpanjang inisialisasi logika jaringan NSH. Sekarang ada pilihan yang akan membuat monitor benang jaringan yang akan memantau keadaan link. Ketika link turun, kode akan berusaha untuk anggun menempatkan driver Ethernet dalam keadaan turun; Ketika link kembali, kode akan berusaha untuk membawa jaringan kembali.
  • ELF Contoh:
  • NxTerm: Mengubah semua kejadian NxConsole untuk NxTerm
  • .
  • MTDRWB Contoh:. Add contoh untuk menguji MTD R / W penyangga
  • OS Uji Contoh: Tambah tes sepele sem_timedwait ()
  • .
  • Konfigurasi Aplikasi / Membangun Sistem:
  • Impor Sasaran: (1) Tambah logika yang akan memungkinkan aplikasi bangunan terhadap paket ekspor NuttX (vs nuttx / source). (2) Tambahkan Config file untuk mengekspor paket. (3) Buat apps / impor. Membuat aplikasi / impor / Make.defs yang melakukan hal-hal seperti menentukan CFLAGS; ELF membangun membutuhkan -fno-umum di CFLAGS. Menyalin beberapa logika dasar dari nuttx / tools / Config.mk untuk apps / impor / Make.defs. (4) Tambahkan apps / impor / scripts / gnu-elf.ld naskah GCC linker untuk ELF impor membangun.
  • Semua Makefiles: (1) Tambahkan target install untuk semua makefiles. Untuk impor membangun, Makefile tingkat atas sekarang tidak dua melewati: (1) membangun libapp.a, maka (2) menginstal program ke dalam aplikasi / bin. (2) Tambahkan instalasi program CONFIG_BUILD_KERNEL di semua Makefiles yang membangun utama (). (3) Untuk kernel membangun, file objek yang berisi utama () tidak bisa pergi ke perpustakaan karena nama tabrakan. File objek harus ditangani sebagai kasus khusus di setiap Makefile.
  • All-In Dibangun Program: Dengan kernel membangun (CONFIG_BUILD_KERNEL), entry point untuk semua tugas adalah utama (), tidak beberapa xyz_main ()
  • .
  • NSH: Beberapa perintah harus dinonaktifkan dalam kernel membangun karena mereka bergantung pada interface yang tidak tersedia di luar kernel. Dd, df, losetup, mkfatfs, mkdr, dan ps
  • apps / tools /: (1) Tambahkan mkimport.sh meledak paket impor NuttX dan menginstal dalam aplikasi / impor. (2) Tambahkan skrip mkromfsimg.sh untuk menciptakan citra BOOT ROMFS filesystem.
  • ELF dan NxFLAT Contoh:. Jangan membangun kasus uji yang menggunakan task_create () jika ada lingkungan alamat
  • Tools:
  • refresh.sh:. Tambahkan alat untuk membuat konfigurasi menyegarkan mudah bila Anda ingin melakukan banyak dari mereka
  • mksyscall.c: Membangun syscalls yang tidak perlu file header
  • .
  • mkexport.sh:. Tambahkan Config file untuk mengekspor paket
  • apps / tools: Lihat di atas untuk aplikasi baru / alat script
  • .
  • Upaya In Progress. Berikut ini adalah fitur yang sebagian dilaksanakan namun hadir dalam rilis ini. Mereka tidak mungkin untuk diselesaikan segera.
  • Proses: Banyak karya dalam rilis ini difokuskan pada realisasi Unix-style proses pengguna di NuttX. Ada banyak yang harus dilakukan, namun. Roadmap dan status penuh tersedia di: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: Ada beberapa fragmen di tempat untuk port XMega. Port yang belum benar-benar dimulai, namun.
  • Galileo: Demikian pula, ada fragmen di tempat untuk port Intel Galileo. Pelabuhan belum dimulai dengan sungguh-sungguh baik.
  • Perbaikan bug. Hanya perbaikan bug yang paling penting tercantum di sini (lihat ChangeLog untuk daftar lengkap perbaikan bug dan tambahan, informasi bugfix lebih rinci):
  • Inti OS:
  • Kernel membangun perbaikan: (1) pengaturan TCB IDLE perlu menunjukkan bahwa benang IDLE adalah istimewa, kernel thread. (2) Jangan membangun task_create () atau task_spawn () antarmuka jika ada lingkungan alamat. (3) posix_spawn () thread proksi kernel harus thread kernel, bukan tugas pengguna.
  • Beberapa antarmuka pthread: Add kelas penyimpanan const untuk phthread parameter. Dari Freddie Chopin
  • .
  • sched / jam: Hapus sisa-sisa g_tickbias; perlu, sebaliknya, untuk menerapkan waktu bias g_basetime dalam rangka memberikan waktu sistem yang benar.
  • Sistem Panggilan: (1) Beberapa kesalahan ketik tetap; integrasi dikoreksi dari exevc (), panggilan execvl (), posix_spawn (), dan posix_spawnp () system. (2) Jika kita dikonfigurasi untuk menggunakan stack kernel sementara dalam penanganan SYSCALL, maka kita perlu beralih kembali ke tumpukan pengguna untuk memberikan sinyal.
  • Sistem Berkas / Blok Driver / MTD:
  • procfs: Perbaiki beberapa kerusakan procf diperkenalkan oleh reorganisasi beberapa struktur data non-reorganizable. Dari Ken Pettit
  • .
  • AT45: Dalam at45db_bwrite (), buffer tidak meningkat ketika menulis lebih dari 1 halaman. Sourceforge bug # 34.
  • Binary Format:
  • relokasi ELF: Beberapa jenis relokasi tidak memiliki simbol bernama terkait dengan mereka. Desain tidak memperhitungkan hal.
  • ELF Loader:
  • bugfix Kritis .. BSS tidak sedang dibersihkan.
  • Manajemen Memory:
  • Granule Allocator: inisialisasi pengalokasi Granule menggunakan pengalokasi salah menyisihkan memori kernel
  • .
  • Grup Keistimewaan: Tambahkan bendera untuk struktur kelompok: Jika kelompok yang dibuat oleh thread kernel, maka semua sumber daya dalam kelompok harus istimewa
  • .
  • Dukungan Cryptogrphic:
  • kripto / cryptodev.c: segmen jalan terbalik di include file path. Dicatat oleh Brennan Ashton.
  • Driver Umum:
  • Umum BISA atas setengah: Dalam can_txdone, pelayan di semaphore itu harus diberitahu terlepas dari nilai kembali dari can_xmit. Pertama ia mengembalikan -EIO jika tidak ada paket baru, dan kedua informasi dari para pelayan adalah tentang ditransfer paket terakhir. Dari Daniel Lazlo Sitzer
  • .
  • ARM:
  • Sistem Panggilan: Perbaiki kesalahan ketik dalam sistem panggilan saat mengambil parameter dari tumpukan: regs [REG_PC] +4 adalah alamat, tidak regs [REG_PC + 4]
  • .
  • STMicro STM32 Drivers:
  • STM32 F401 UART: dukungan yang benar untuk USART6 pada chip ini. Dari Freddie Chopin
  • .
  • STM32 FLASH perbaikan: menggunakan size_t bukan uint16_t, membuat antarmuka yang lebih umum. Dari Freddie Chopin
  • .
  • STM32 UART:. Perbaiki untuk UART7 dan UART8 pada jam STM32 memungkinkan dari Aton
  • CAN: Pada akhir interrupt handler, interupsi yang dinonaktifkan, jika semua paket telah dialihkan ketika interrupt handler itu dipanggil. Hal ini bermasalah, karena penangan interrupt panggilan can_txdone () dari bagian atas yang dapat enqueue paket baru untuk mengirim. Dihapus blok sama sekali, karena can_txdone () panggilan can_xmit () yang menonaktifkan interupsi jika tidak ada paket baru untuk mengirim. Dari Daniel Lazlo Sitzer
  • .
  • BISA:. Tambahan STM32 CAN koreksi yang disarankan oleh Max Holtzberg
  • STMicro ST32 Dewan:
  • konfigurasi / mikroe-stm32f4: Perbaiki beberapa kompilasi bug dan koreksi minor ke sumber konfigurasi mikroe-stm32f4. Dari Ken Pettit
  • .
  • ARM9 / ARMv7-A:
  • Sistem Panggilan: Perbaiki ARM7 / 9 dan Cortex-A syscalls: Untuk benang dalam mode SVC, petunjuk SVC clobbers R14. Ini harus diperhitungkan dalam perakitan inline.
  • Tugas Setup: Semua tugas, bahkan tugas mode pengguna, harus mulai di modus pengawas sampai mereka bisa melewati trampolin start-up
  • .
  • ARMv7-A: Memodifikasi up_fullcontextrestore () untuk CONFIG_BUILD_KERNEL. Ini berubah CPSR sementara di kernel. Itu akan crash jika CPSR baru mode pengguna ketika menjalankan dalam ruang kernel. Tetap dengan menambahkan system call SYS_context_restore. Ada alternatif, modifikasi sederhana untuk up_fullcontextrestore () yang bisa dilakukan: Mungkin telah mungkin untuk menggunakan SPSR bukan CPRSR dan kemudian melakukan kembali pengecualian dari up_fullcontextrestore (). Itu akan lebih efisien, tapi saya tidak pernah mencobanya.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino Karena: Perbaiki salah ketik di sam3x_periphclks.h; menambahkan definisi SCLK untuk board.h file header. Dari Fabien Comte
  • .
  • SAM3 RTT: Hanya keluarga SAM4 memiliki RTTDIS bit dalam register MR. SourceForge bug # 33 dari Fabien Comte.
  • C Library:
  • sscanf (): NuttX libc mencoba menebak berapa banyak karakter untuk mengurai, diekstrak menjadi buffer, kemudian berlari strtol () pada penyangga itu. Dugaan itu sering salah. Pendekatan yang lebih baik akan memanggil strtol () langsung pada input data, menggunakan nilai kembali endptr untuk menentukan berapa banyak karakter untuk melewati setelah parsing. Dari Kosma Moczek
  • .
  • Math Library:. Dikoreksi atan2 implementasi dari Denis Arnst
  • Terapung Titik Output: Ubah ke lib_dtoa () untuk memperbaiki kesalahan presisi dari membuntuti nol. Dari Bob Doiron
  • .
  • Aplikasi:
  • perintah Fix NSH PS:. Jika tidak ada argumen, itu bisa mencetak sampah untuk daftar argumen
  • Konfigurasi / Membangun Sistem:
  • Contoh Null: Perlu untuk memasukkannya agar config.h tahu apakah ini atau bukan kernel membangun. Masalah ini masih ada di beberapa file lain yang mungkin perlu mendefinisikan utama ().

Apa yang baru di versi 7.8:

  • Fitur: fitur baru tambahan dan fungsionalitas yang diperluas:
  • Inti OS:
  • Watchdog Timer Alokasi: (1) Jika kita kehabisan pra-dialokasikan kali pengawas, logika sekarang akan mengalokasikan timer tambahan dari tumpukan. Sebuah cadangan pra-dialokasikan timer pengawas dipertahankan sehingga akan selalu ada timer tersedia untuk penangan interrupt. (2) Ditambahkan dukungan untuk statis dialokasikan pengawas timer
  • Alamat Lingkungan Dukungan: (2) New OS API terintegrasi ke dalam semua konteks spesifik platform beralih logika (up_block_task (), up_unblock_task (), _exit (), dan lain-lain)
  • .
  • Kernel Membangun Dukungan: (1) MPU The berdasarkan & quot; kernel membangun & quot; berganti nama menjadi membangun dilindungi (CONFIG_BUILD_PROTECTED); menambahkan dukungan untuk baru MMU berbasis & quot; kernel membangun & quot; (CONFIG_BUILD_KERNEL), (2) Perpustakaan system call sekarang dapat dibangun dengan CONFIG_NUTTX_KERNEL. New seleksi *:. CONFIG_LIB_SYSCALL
  • System Startup: Tambahkan pilihan konfigurasi untuk memulai sistem dari program pada sistem file (versus alamat di memori)
  • .
  • Startup Parameter Passing: Dulu ada dua cara untuk melewatkan parameter ke tugas baru, tergantung pada konfigurasi: Entah (1) argv [] sebagai diciptakan sebagai sebuah array dengan setiap string strdup'ed. Atau (2) argv [] array dan string yang dibuat pada stack sebelum tugas baru dimulai. Sekarang, hanya ada satu cara, cara (2). Way (1) mungkin sedikit lebih kompak, tapi ini tidak layak membawa kompleksitas dua cara berbeda dalam melakukan hal yang sama.
  • Inisialisasi Dewan: Tambahkan kemampuan untuk melakukan inisialisasi papan awal pada thread pekerja yang terpisah. Hal ini diperlukan karena ada banyak kasus di mana logika inisialisasi tidak dapat mengeksekusi pada start-up / thread IDLE. Itu karena menghalangi atau menunggu tidak diizinkan di thread IDLE.
  • Manajemen Memory:
  • Granule Allocator: (1) Menambahkan fungsi baru untuk cadangan daerah un-allocatable di tumpukan granul. (2) Tambahkan interface untuk mendukung un-menginisialisasi pengalokasi granul.
  • Halaman Allocator: Menambahkan halaman fisik pengalokasi sederhana didasarkan pada ada NuttX granul pengalokasi. Saya tidak yakin jika pengalokasi granul cukup deterministik untuk digunakan jarak jauh, tapi itu akan mendapatkan pengalokasi halaman di tempat untuk menguji sangat cepat.
  • Hapus CONFIG_MM_MULTIHEAP: operasi Non-multiheap tidak lagi didukung
  • .
  • sbrk ():. Sbrk () sekarang didukung di kernel membangun untuk mengizinkan dinamis berukuran, per-proses tumpukan
  • Per-Proses Tumpukan: Ruang pada awal ruang proses data sekarang disediakan untuk struktur manajemen pengguna tumpukan. Dalam kernel membangun modus, struktur heap ini dibagi antara kernel dan penggunaan kode untuk mengalokasikan data pengguna tertentu.
  • Pengguna Heap Manajemen: Ketika thread keluar istimewa, kita harus menggunakan pengalokasi kernel ke memori bebas; ketika benang keluar unprivileged, kita tidak perlu melakukan apa-apa ... memori heap akan dibersihkan ketika lingkungan alamat diruntuhkan.
  • Inter-Process Memory Bersama Support: (1) Tambah implementasi dan dokumentasi untuk shmget (), shmctl (), shmat (), dan shmdt (). (2) Tambahkan sistem sistem panggilan untuk mendukung gerbang panggilan pengguna untuk antarmuka memori bersama. (3) Tambahkan definisi antarmuka platform khusus yang dibutuhkan untuk mendukung fitur memori bersama.
  • Page Virtual Allocator: Tambah dukungan untuk halaman virtual pengalokasi per-proses. Ini adalah anggota baru dari struktur task_group_s. Pengalokasi harus diinisialisasi ketika proses pengguna baru dimulai dan uninitialize ketika kelompok proses akhirnya hancur. Hal ini digunakan oleh shmat () dan shmdt () untuk memilih alamat virtual ke mana untuk memetakan memori fisik bersama.
  • Sistem Berkas / Blok Driver / MTD:
  • FS SMART: FS SMART dan SMART FS procfs pembaruan dari Ken Pettit
  • .
  • MTD:. Lapisan MTD Baca-depan / Tulis penyangga muncul sekarang fungsional
  • Binary Format:
  • Per-Proses Heap:. Tambahkan logika untuk menginisialisasi pengguna tumpukan per-proses ketika setiap proses pengguna mulai
  • Graphics:
  • NxTerm: Mengubah semua kejadian NxConsole untuk NxTerm
  • .
  • Jaringan:
  • PHY Interupsi: (1) Standarisasi interface attachment PHY interupsi. (2) Tambahkan dukungan untuk ioctl yang dapat digunakan untuk memberitahu aplikasi ketika ada perubahan dalam status jaringan ditandai oleh PHY interupsi.
  • Peningkatan Kirim Logika: Di masa lalu, paket pertama mengirim ke rekan jaringan baru akan gagal; tidak akan ada entri dalam tabel ARP untuk rekan dan permintaan ARP bisa menggantikan paket pertama. Sekarang sebagai pilihan jika CONFIG_NET_ARP_SEND = y, semua mengirim logika akan (1) memeriksa apakah rekan alamat MAC dalam tabel ARP dan, jika tidak, (2) mengirim permintaan ARP berkala untuk mendapatkan pemetaan dan (3) menunggu ARP respon. Kemudian (4) ketika respon ARP diterima maka logika mengirim sebenarnya akan dimulai. Jadi mungkin ada penundaan dengan paket pertama dikirim ke rekan baru, tetapi paket tidak boleh hilang
  • host Simulasi:
  • SPI FLASH driver:. Ditiru sopir SPI FLASH untuk target sim dari Ken Pettit
  • Intel x86:
  • Default Host: default host sekarang x86_64 dan -m32 opsi akan secara otomatis dipilih untuk simulasi membangun
  • .
  • Intel 8051 Keluarga:
  • 8051 Dihapus: Dihapus semua dukungan untuk 8.051 arsitektur keluarga dari pohon sumber NuttX. Kode usang bersama dengan patch penghapusan sekarang dapat ditemukan di misc / usang /. Kode ini telah dihapus karena (1) meskipun beberapa fungsi telah dibuktikan, saya tidak mengetahui adanya port benar-benar sukses NuttX untuk setiap 8051, dan (2) 8051, dengan tumpukan perangkat keras, memaksa keterbatasan dan komplikasi ke arsitektur lainnya dan membuat pertumbuhan dan perkembangan NuttX lebih kompleks.
  • Zilog ZNeo Dewan:
  • konfigurasi / 16z: Dukungan untuk forum ini telah dihapus dari pohon sumber NuttX (tapi masih dapat ditemukan di misc / direktori usang). Port ini belum siap untuk penggunaan tetapi dapat kembali ke pohon NuttX di beberapa titik di masa depan.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Add (1) berbasis ILI9341 LCD sopir berfungsi secara penuh dan (2) konfigurasi NxWM berfungsi secara penuh
  • ARMv7-A:
  • Alamat Lingkungan: Tambah dukungan untuk lingkungan alamat aplikasi menggunakan Cortex-A MMU. Mengimplementasikan antarmuka platform-spesifik standar dari NuttX dukungan lingkungan alamat.
  • Cache Operations: Melaksanakan standar, operasi cache-platform tertentu. Ini disebut dari loader ELF untuk menyiram D-cache dan membatalkan I-cache modul ELF telah dimuat ke memori. Dengan perubahan ini, modul ELF bekerja dengan benar pada SAMA5 / Cortex-Sebuah platform.
  • Kernel membangun: (1) Tambah implementasi gerbang system call. (2) Tambahkan CRT0 start-up file yang bisa dihubungkan dengan program pengguna secara terpisah dibangun. (3) Tambahkan dukungan untuk pengiriman sinyal digunakan mode di kernel membangun. (4) Tambahkan logika untuk menginisialisasi pengguna tumpukan per-proses ketika setiap proses pengguna dijalankan. (5) ARMv7-A penanganan eksepsi perlu bekerja sedikit berbeda jika kita mendukung proses modus pengguna. Hal ini karena R13 dan R14 yang paged berbeda antara pengguna dan modus SVC.
  • Bersama Dukungan Memori: (1) Tambahkan logika yang diperlukan untuk menangani pemetaan memori bersama pada konteks switch. (2) Perluas virtual / konversi alamat fisik untuk memasukkan alamat dalam memori bersama. (3) Tambahkan pelaksanaan dukungan memori bersama-platform tertentu.
  • Atmel SAMA5D Drivers:
  • Jaringan IOCTLs:. Melaksanakan semua ioctls jaringan, termasuk ioctl baru untuk pemberitahuan acara pemasangan PHY
  • Alamat Konversi:. Dalam kernel membangun dengan lingkungan alamat, perlu logika untuk memetakan pengguna alamat virtual ke alamat fisik, dan sebaliknya
  • Atmel SAMA5D Dewan:
  • SAMA5D3 Xplained, SAMA5D3-EK, dan SAMA5D4-EK: Mengkonversi ada antarmuka PHY spesifik papan interupsi untuk menggunakan antarmuka standar baru ditetapkan
  • .
  • SAMA5D4-EK: Tambahkan konfigurasi untuk menguji kernel membangun konfigurasi. Ada konfigurasi untuk boot baik dari kartu SD atau dari dan di-memori sistem file ROMFS.
  • SAMA5D4-EK: Tambahkan dokumentasi / dukungan untuk Rev E. papan
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Modified untuk mendukung perubahan ke jaringan perubahan tanda tangan ioctl. Juga menambahkan dukungan untuk ioctl baru untuk acara pemberitahuan pengaturan PHY.
  • STMicro STM32 Dewan:
  • STM32F4Discovery dengan STM32F4DIS-BB: Tambahkan sebuah jaringan diaktifkan konfigurasi NSH untuk papan STM32F4Discovery dengan papan dasar STM32F4DIS-BB diinstal. Termasuk dukungan untuk slot kartu microSD pada papan dasar STM32F4DIS-BB.
  • TI Tiva Drivers:
  • TI CC3200: Tambah dukungan untuk CC3200 TI. Dari Jim Ewing
  • .
  • TI Tiva Dewan:
  • TI CC3200 Launchpad: Tambah dukungan untuk TI CC3200 Launchpad. Dari Jim Ewing
  • .
  • C Library:
  • jajak pendapat ():. Re-dilaksanakan jajak pendapat () delay menggunakan sem_timedwait ()
  • Konfigurasi / Membangun Sistem:
  • Ekspor Target: Dalam kernel atau dilindungi membangun, (1) hanya perpustakaan pengguna harus diekspor, (2) tidak menyalin file header internal maupun membangun script jika ini adalah kernel atau dilindungi membangun, dan (3) kebutuhan bundel file pengguna C startup (crt0), bukan kernel objek kepala untuk kernel dan dilindungi membangun.
  • Program CFLAGS: Tambahkan logika yang akan memungkinkan kita untuk membangun perpustakaan pengguna dengan CFLAGS yang berbeda dari kode kernel. Hal ini diperlukan karena kita perlu opsi -fno-umum ketika membangun kode ELF untuk mencegah relokasi SHN_COMMON.
  • Aplikasi:
  • NSH: Memperpanjang inisialisasi logika jaringan NSH. Sekarang ada pilihan yang akan membuat monitor benang jaringan yang akan memantau keadaan link. Ketika link turun, kode akan berusaha untuk anggun menempatkan driver Ethernet dalam keadaan turun; Ketika link kembali, kode akan berusaha untuk membawa jaringan kembali.
  • ELF Contoh:
  • NxTerm: Mengubah semua kejadian NxConsole untuk NxTerm
  • .
  • MTDRWB Contoh:. Add contoh untuk menguji MTD R / W penyangga
  • OS Uji Contoh: Tambah tes sepele sem_timedwait ()
  • .
  • Tools:









































  • Tools:




  • Tools:
























































































  • Tools:


























  • Perbaikan bug:






































































































Software yang serupa

JabirOS
JabirOS

17 Feb 15

polyBSD
polyBSD

2 Jun 15

BirdOS
BirdOS

17 Feb 15

Komentar untuk NuttX

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!