NuttX

Screenshot Software:
NuttX
Mga detalye ng Software:
Bersyon: 7.9 Na-update
I-upload ang petsa: 10 May 15
Nag-develop: Gregory Nutt
Lisensya: Libre
Katanyagan: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX ay isang open source, deterministic at libreng real-time na naka-embed na operating system (RTOS), dinisenyo mula sa offset na nagagamit sa malalim na naka-embed, mapagkukunan napilitan kapaligiran. Ito ay isang maliit na bakas ng paa na nagagamit sa micro-controller na kapaligiran, at ito & rsquo; s ganap scalable mula sa maliliit (8-bit) upang moderate embed (32-bit) system.
Ito rin ay naglalayong upang maging ganap na sumusunod sa mga pamantayan, upang maging ganap na real time, at upang maging ganap na bukas. NuttX ay isang tampok na mayaman OS set, isang modular disenyo, ito ay mataas na scalable at isaayos, pati na rin ang mga pamantayan ng sang-ayon. Ito ay ipinamamahagi sa isang di-mahigpit license BSD. Ito ay madalas na tinaguriang pamamagitan ng mga developer nito bilang "maliit na maliit Linux." Tampok sa isang glanceKey tampok isama ang core gawain management, BSD socket interface, memory allocators (shared memory, standard laang magbunton memory, protektado build sa MPU, flat-embed build, per-proseso bunton, maliit na butil allocator at magilas laki), kumpigurasyon memory gabay porting, fully preemptible, tickless operasyon, on-demand paging at sistema ng pag-log.
Sa karagdagan, ang proyekto ay dumating na may mga extension upang pamahalaan ang pagpigil, per-thread, built-in measurements CPU load, komprehensibong dokumentasyon, opsyonal na mga gawain na naglalaman ng mga kapaligiran address, Ansi-like at POSIX-tulad ng mga kontrol na gawain, relo, pthreads, kapaligiran variable, mga signal, pinangalanan queue message, timer, filesystem at nadaragdagan semaphores.
Kabilang sa iba pang mga tampok, maaari naming banggitin scheduling round-Robin, FIFO, suporta para sa priority ng mana, suporta para sa mga architecture SoC, suporta para sa board architecture, suporta para sa mga bagong processor architecture, watchdog timer, VxWorks-like gawain management, I / O redirection at nakukuha sa & ldquo; pagkontrol terminals & rdquo;. sumusuporta Suportado platformsNuttX iba't ibang uri ng hardware platform, kabilang na maaari naming banggitin ang maraming braso processors, kabilang braso Cortex-M3, ARM926EJS, ARM7TDMI, braso Cortex-M4, ARM Cortex-M0, ARM920T at braso Cortex-A5, pati na rin ang mga Atmel 8-bit AVR, Freescale M68HCS12, AVR32 Atmel AVR platform.
Bukod dito, ito rin ay sumusuporta sa iba't-ibang mga platform ng Intel, tulad MICROCHIP PIC32MX (MIPS), 80c52 at 80 & beses; 86, Zilog platform, kabilang Zilog Z80, Zilog Z16F, Zilog Z8Encore! at Zilog eZ80 Pagbubunyi !, at ang Renesas / Hitachi SuperH at Renesas M16C / 26 platform

Ano ang bago sa release na ito.

  • Mga Tampok: Karagdagang mga bagong tampok at extended functionality:
  • Core OS:
  • asong tagapagbantay timer Allocation: (1) Kung kami maubusan ng pre-ilalaan beses watchdog, ang lohika ay ngayon magtalaga ng karagdagang timer mula sa magbunton. A magreserba ng pre-ilalaan watchdog timer ay pinananatili sa gayon ay palaging may timer magagamit para matakpan amo. (2) Added suporta para sa statically inilalaan watchdog timer
  • Address Environment Support: (2) New OS API nakapaloob sa lahat ng konteksto platform-tiyak na ang paglipat na lohika (up_block_task (), up_unblock_task (), _exit (), at iba pa)
  • .
  • Kernel Gumawa Support: (1) MPU Ang batay & quot; kernel build & quot; pinalitan ng pangalan sa isang protektado ng build (CONFIG_BUILD_PROTECTED); nagdagdag ng suporta para sa isang bagong MMU-based & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Ang sistema ng tawag library ay maaari na ngayong binuo na may CONFIG_NUTTX_KERNEL. New selection *:. CONFIG_LIB_SYSCALL
  • Startup System: Magdagdag ng mga pagpipilian sa configuration upang simulan ang sistema mula sa isang programa sa isang file system (laban sa isang address sa memory)
  • .
    Pagdaan
  • Startup Parameter: May ginamit upang maging dalawang paraan upang pumasa sa mga parameter sa mga bagong gawain, depende sa configuration: Alinman (1) argv [] bilang nilikha bilang isang array sa bawat string strdup'ed. O (2) argv [] array at mga string ay nilikha sa stack bago ang bagong gawain ay nagsimula. Ngayon, mayroon lamang isang paraan, paraan (2). Way (1) ay maaaring maging bahagyang mas maliit, ngunit ito ay hindi nagkakahalaga dalhin ang pagiging kumplikado ng dalawang magkaibang mga paraan ng paggawa ng parehong bagay.
  • Pinasimulan Board: Magdagdag ng kakayahan upang maisagawa ang unang board Pinasimulan sa isang hiwalay na worker thread. Ito ay kinakailangan dahil mayroong maraming mga kaso kung saan Pinasimulan na lohika ay hindi maaaring maipatupad sa mga start-up / idle thread. Iyon ay dahil sa pagharang o paghihintay ay hindi pinahihintulutan sa mga idle thread.
  • Pamamahala ng Memory:
  • maliit na butil allocator: (1) Magdagdag ng isang bagong function na hinahawakan un-allocatable rehiyon sa maliit na butil magbunton. (2) Magdagdag ng interface sa suporta un-Sinisimulan ang isang maliit na butil allocator.
  • allocator Page: Magdagdag ng isang simple allocator pisikal pahina batay sa mga umiiral NuttX maliit na butil allocator. Ako ay hindi tiyak kung ang maliit na butil allocator ay sapat deterministic para sa matagal na paggamit hanay, ngunit ito ay makakakuha makakuha ng isang allocator page sa lugar para sa pagsubok ng masyadong mabilis.
  • Alisin CONFIG_MM_MULTIHEAP: Non-multiheap operasyon ay hindi na suportado
  • .
  • sbrk (). Sbrk () ay suportado na ngayon sa kernel build sa permit dynamically sized, per-proseso tambak
  • Per-Proseso Heaps: Space sa simula ng espasyo proseso ng data ay nakalaan ngayon para sa magbunton user istruktura management. Sa build mode kernel, ang mga kaayusan magbunton ay nakabahagi sa pagitan ng kernel at gamitin ang code upang magtalaga ng data ng user-tiyak.
  • User magbunton Management: Kapag ang isang pribilehiyo labasan thread, kailangan nating gamitin ang kernel allocator sa libreng memorya; kapag ang isang walang karapatan labasan thread, hindi namin ay may sa gawin ... magbunton memory ay clean up kapag ang address na kapaligiran ay punit-punit down.
  • Inter-Proseso ng Memorya Support: (1) Magdagdag ng pagpapatupad at mga babasahin para shmget (), shmctl (), shmat (), at shmdt (). (2) Magdagdag ng sistema sistema ng mga tawag sa suporta sa gate call user sa shared memory interface. (3) Idagdag ang platform-tiyak na kahulugan interface na kinakailangan upang suportahan ang tampok na nakikihati sa memorya.
  • Virtual allocator Page: Magdagdag ng suporta para sa isang per-proseso virtual allocator page. Ito ay isang bagong miyembro ng task_group_s istraktura. Dapat na-initialize allocator kapag ang isang bagong user na proseso ay nagsimula at uninitialize kapag ang proseso ng grupo ay sa wakas nawasak. Ito ay ginagamit ng shmat () at shmdt () upang pumili ng mga virtual address papunta sa kung saan sa mapa ang mga nakabahaging pisikal na memory.
  • Mga System ng File / Block Driver / MTD:
  • SMART FS: SMART FS at SMART FS procfs update mula Ken Pettit
  • .
  • MTD.: Lilitaw ang MTD Read-maaga / Write buffer layer ay functional ngayon
  • Binary Format:
  • Per-Proseso magbunton.: Magdagdag ng lohika upang magpasimula ng per-user na proseso magbunton kapag ang bawat proseso ng gumagamit ay nagsimula
  • Graphics:
  • NxTerm: Palitan lahat ng Bahagi ng NxConsole sa NxTerm
  • .
  • Networking:
  • PHY Interrupts: (1) sa pamantayan ng interface attachment PHY makaabala. (2) Magdagdag ng suporta para sa isang ioctl na maaaring magamit upang i-notify ang isang application kapag may isang pagbabago sa katayuan ng network ipapahiwatig ng isang PHY makaabala.
  • Pinahusay na si lohika: Sa nakaraan, ang unang packet ipadala sa isang bagong peer network ay mabigo; doon ay walang mga entry sa Arp table para sa mga peer at iba isang kahilingan Arp maaaring palitan na unang packet. Ngayon bilang isang opsyon kung CONFIG_NET_ARP_SEND = y, ang lahat ipadala lohika ay (1) suriin kung ang peer MAC address ay sa Arp table at, kung hindi, (2) ipadala ang ARP kahilingan na pana-panahon upang makuha ang mapping at (3) maghintay para sa Arp tugon. Pagkatapos (4) kapag ang sagot Arp ay natanggap pagkatapos ay ang aktwal send lohika ay sinimulan. Kaya maaaring may isang pagka-antala sa unang packet ipinadala sa isang bagong peer, ngunit hindi dapat mawala ang packet
  • Host Simulation:
  • SPI Flash Driver:. Emulated SPI Flash driver para sa mga sim target mula Ken Pettit
  • Intel x86:
  • Default Host: Ang default na host ay x86_64 ngayon at ang -m32 option ay awtomatikong napili para simulation gagawa
  • .
  • Intel 8051 Family:
  • 8051 Tinanggal: Tinanggal ang lahat ng suporta para sa 8051 architecture pamilya mula sa NuttX pinagmulan tree. Ang obsoleted code kasama ang mga patch pagtanggal ay maaari na ngayong matagpuan sa Misc / obsoleted /. Ang code na ito ay inalis dahil (1) bagaman sa ilang mga pag-andar ay nagpakita, hindi ako ng kamalayan ng anumang tunay na matagumpay ports ng NuttX sa anumang 8051, at (2) ang 8051, na may hardware stack nito, pwersa limitasyon at komplikasyon sa iba pang mga architecture at gumawa ng paglaki at pag-unlad ng NuttX mas kumplikadong.
  • ZILOG ZNeo Boards:
  • configs / 16z: Suporta para sa board na ito ay tinanggal mula sa NuttX source puno (ngunit maaari pa rin matatagpuan sa Misc / obsoleted direktoryo). Port na ito ay hindi pa handa para sa paggamit ngunit maaaring bumalik sa NuttX puno sa ilang mga punto sa hinaharap.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK.: Magdagdag ng (1) ng isang fully-functional ILI9341-based LCD driver at (2) ng isang fully-functional NxWM configuration
  • ARMv7-A:
  • kapaligiran Address: Magdagdag ng suporta para sa mga application address na kapaligiran gamit ang Cortex-A MMU. Ipatupad ang ulirang mga interface NuttX environment address suporta ng platform-tiyak.
  • Cache Operations: Ipatupad standardized, operasyon cache platform-tiyak. Ang mga ito ay tinatawag na mula sa duwende loader upang flush D-cache at magpawalang-bisa I-cache pagkatapos ay nai-load na module duwende sa memory. Sa pagbabagong ito, trabaho duwende modules tama sa SAMA5 / Cortex-A platform.
  • Kernel Build: (1) Magdagdag ng mga pagpapatupad ng sistema ng tawag gate. (2) Idagdag CRT0 start-up file na maaaring ma-link sa magkahiwalay na binuo programs user. (3) Idagdag ang suporta para sa paghahatid ng mga signal ng paggamit-mode sa kernel build. (4) Magdagdag ng lohika upang magpasimula ng per-user na proseso magbunton kapag ang bawat user na proseso ay nagsimula. (5) ARMv7-A pangangailangan sa trabaho ng isang maliit na naiiba kung sinusuportahan namin ang proseso user mode paghawak ng exception. Ito ay dahil sa R13 at R14 ay naiiba paged pagitan ng gumagamit at SVC mode.
  • Memorya Support: (1) Magdagdag ng lohika na kinakailangan upang hawakan remapping ng shared memory sa switch na konteksto. (2) Palawakin ang virtual / pisikal na address ng mga conversion na isama ang mga address sa shared memory. (3) Idagdag ang pagpapatupad ng mga shared memory suporta platform-tiyak.
  • Atmel SAMA5D Driver:
  • Network Ioctls.: Ipatupad lahat ioctls network, kabilang ang mga bagong ioctl sa mga notification PHY setup event
  • Mga Conversion Address:. Sa kernel build sa kapaligiran address, kailangan lohika sa mapa virtual addresses user sa pisikal na address, at vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, at SAMA5D4-EK: convert umiiral board tiyak PHY matakpan interface na gumamit ng bagong tinukoy standard na interface
  • .
  • SAMA5D4-EK: Magdagdag ng isang configuration para sa pagsubok ng configuration kernel build. May mga pagsasaayos sa boot mula sa alinman sa isang SD card o mula sa at in-memory ROMFS file system.
  • SAMA5D4-EK: Magdagdag ng mga babasahin / support para Rev E. board
  • .
  • STMicro STM32 Driver:
  • Ethernet: Modified upang suportahan ang mga pagbabago sa mga pagbabago ioctl signature network. Ring magdagdag ng suporta para sa mga bagong ioctl na mga abiso sa kaganapan PHY setup.
  • STMicro STM32 Boards:
  • STM32F4Discovery may STM32F4DIS-BB: Magdagdag ng isang network-enable ang configuration NSH para sa STM32F4Discovery board gamit ang naka-install na STM32F4DIS-BB base board. Kasama ang suporta para sa mga microSD card slot sa STM32F4DIS-BB base board.
  • TI Tiva Driver:
  • TI CC3200: Magdagdag ng suporta para sa TI CC3200. Mula Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Magdagdag ng suporta para sa TI CC3200 Launchpad. Mula Jim Ewing.
  • C Library:
  • poll (.): Re-ipinatupad poll () delay gamit sem_timedwait ()
  • Configuration / Gumawa ng System:
  • I-export ang Target: Sa kernel o protektado gagawa, (1) ay dapat na nai-export lamang ang aklatan user, (2) huwag kopyahin internal file header o bumuo ng script kung ito ay isang kernel o protektado build, at (3) mga pangangailangan sa bundle up ang mga file ng user C startup (crt0), hindi ang kernel head object para sa kernel at protektado gagawa.
  • Program CFLAGS: Idagdag sa lohika na ay nagpapahintulot sa amin upang bumuo ng mga aklatan ng gumagamit sa iba't ibang mga CFLAGS sa kernel code. Ito ay kinakailangan dahil kailangan namin ang -fno-karaniwang pagpipilian kapag gusali duwende code upang maiwasan SHN_COMMON relocations.
  • Aplikasyon:
  • NSH: Palawakin ang Pinasimulan lohika NSH network. Mayroong isang opsyon na lumikha ng isang network monitor thread na masubaybayan ang estado ng mga link na ngayon. Kapag bumaba ang link, ang code ay pagtatangka na maganda ilagay ang mga Ethernet driver sa isang down na estado; Kapag dumating ang link pabalik, susubukan ang code upang dalhin ang network back up.
  • ELF Halimbawa:. Ang duwende test / halimbawa ay pinalawig upang maaari ugnay sa mga indibidwal na mga programa ng pagsubok duwende laban sa syscall library (kung ito ay magagamit) o ​​laban sa C library upang maalis o mabawasan ang kailangan para sa mga simbolo talahanayan
  • NxTerm: Palitan lahat ng Bahagi ng NxConsole sa NxTerm
  • .
  • MTDRWB Halimbawa:. Magdagdag ng isang halimbawa upang subukan ang MTD R / W buffering
  • OS Halimbawa Test: Magdagdag ng isang maliit na pagsubok ng sem_timedwait ()
  • .
  • Configuration Application / Bumuo ng System:
  • I-import Target: (1) Magdagdag ng lohika na magpapahintulot sa mga aplikasyon ng gusali laban sa isang export package NuttX (kumpara sa nuttx / source tree). (2) Idagdag Config file upang i-export package. (3) Lumikha ng apps / import. Lumikha ng apps / import / Make.defs na ang mga bagay na tulad tukuyin CFLAGS; Duwende build nangangailangan -fno-karaniwan sa CFLAGS. Kopyahin ang ilang batayang lohika mula nuttx / tools / Config.mk na apps / import / Make.defs. (4) Magdagdag ng apps / import / script / gnu-elf.ld GCC linker script para sa ELF import gagawa.
  • Lahat Makefiles: (1) Magdagdag ng isang i-install target sa lahat makefiles. Para sa mga build-import, na ngayon ay ang top-level Makefile dalawang pumasa: (1) gagawa libapp.a, pagkatapos ay (2) nag-install ang mga programa sa apps / bin. (2) Idagdag ang pag-install na programa para sa CONFIG_BUILD_KERNEL sa lahat Makefiles na bumuo ng isang pangunahing (). (3) Para kernel build, ang object file na naglalaman ng main () ay hindi maaaring pumunta sa library dahil sa pangalan ng banggaan. Dapat na hawakan ang layon ng file bilang isang espesyal na kaso sa bawat Makefile.
  • Lahat Built-Sa Programa: Sa kernel build (CONFIG_BUILD_KERNEL), entry point sa lahat ng mga gawain ay main (), hindi ilang xyz_main ()
  • .
  • NSH: Dapat na pinagana ang ilang mga utos sa kernel build dahil sila ay umaasa sa interface na ito ay hindi magagamit sa labas ng kernel.: Dd, df, losetup, mkfatfs, mkdr, at PS
  • apps / tools /: (1) Magdagdag ng mkimport.sh na sumabog ang isang NuttX pakete import at i-install sa apps / import. (2) Idagdag mkromfsimg.sh script upang lumikha ng isang boot ROMFS filesystem image.
  • duwende at halimbawa NxFLAT.: Huwag bumuo ng mga kaso ng pagsubok na gamitin task_create () kung may isang kapaligiran address
  • Tools:
  • refresh.sh.: Magdagdag ng isang tool upang gumawa ng mga nagre-refresh ng kumpigurasyon mas madali kapag gusto mong gawin ang isang pulutong ng mga ito
  • mksyscall.c: Bumuo syscalls na hindi kailangan ng mga file na header
  • .
  • mkexport.sh.: Magdagdag Config file upang i-export package
  • apps / tools: Tingnan sa itaas para sa mga bagong apps / tools script
  • .
  • pagsisikap Sa Pag-unlad. Ang mga sumusunod ay mga tampok na bahagyang ipinatupad ngunit kasalukuyan ito release. Sila ay hindi malamang na makumpleto sa lalong madaling panahon.
  • proseso: Karamihan sa mga trabaho sa release na ito ay nakatutok sa pagsasakatuparan ng Unix-style na proseso ng gumagamit sa NuttX. Mayroong higit pa upang gawin, gayunpaman. Ang buong roadmap at katayuan ay makikita sa: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: May mga ilang fragments sa lugar para sa isang XMega port. Port na iyon ay hindi tunay na nagsimula, gayunpaman.
  • Galileo: Katulad nito, may mga fragments sa lugar para sa isang Intel Galileo port. Ang port hindi pa nagsimula sa maalab alinman.
  • Bugfixes. Tanging ang mga pinaka-kritikal bugfixes ay nakalista dito (tingnan ang Changelog para sa kumpletong listahan ng mga bugfixes at para sa mga karagdagang, mas detalyadong bugfix impormasyon):
  • Core OS:
  • Kernel bumuo pagsasaayos: (1) ang mga pangangailangan idle TCB setup upang ipahiwatig na ang idle thread ay isang pribilehiyo, kernel thread. (2) Huwag bumuo task_create () o task_spawn () interface kung may isang kapaligiran address. (3) posix_spawn () ay dapat na isang kernel thread, hindi isang gawain user kernel proxy thread.
  • Maraming pthread interface: Magdagdag const storage klase na phthread parameter. Mula Freddie Chopin.
  • sched / orasan: Alisin labi ng g_tickbias; kailangan, sa halip, upang ilapat time bias sa g_basetime upang magbigay ng tamang oras system.
  • System Tawag: (1) Ang ilang mga typo nakatakda; itatama pagsasama ng exevc (), ang mga tawag execvl (), posix_spawn (), at posix_spawnp () system. (2) Kung kami ay na-configure upang gamitin ang isang kernel stack habang nasa syscall paghawak, pagkatapos ay kailangan naming bumalik sa stack user upang makapaghatid ng isang signal.
  • Mga System ng File / Block Driver / MTD:
  • procfs: Ayusin ang ilang procf pagbasag ipinakilala sa pamamagitan ng muling pag-aayos ng ilang di-reorganizable istruktura ng data. Mula Ken Pettit.
  • AT45: Sa at45db_bwrite (), ang buffer ay hindi nadagdagan kapag sumusulat ng higit sa 1 page. Sourceforge bug # 34.
  • Binary Format:
  • ELF relocations: Ang ilang mga uri relocation hindi magkaroon ng isang pangalan na simbolo na nauugnay sa mga ito. Ang disenyo ay hindi account para sa kasong iyon.
  • ELF loader.: Kritikal bugfix .. BSS ay hindi na-clear
  • Pamamahala ng Memory:
  • maliit na butil allocator: maliit na butil allocator Pinasimulan gumagamit mali allocator sa pagtatakda sa tabi ng kernel memory
  • .
  • Privileged Groups: Magdagdag ng isang bandila sa istraktura group: Kung ang grupo ay nalikha sa pamamagitan ng isang kernel thread, pagkatapos ang lahat ng mga resources sa grupo ay dapat na pribilehiyong
  • .
  • Cryptogrphic Support:
  • crypto / cryptodev.c: segment Path baligtad sa isama ang file path. Nabanggit sa pamamagitan Brennan Ashton.
  • Mga karaniwang Driver:
  • Mga karaniwang CAN upper-half: Sa can_txdone, waiters sa semaporo dapat na alam alintana ang bumalik halaga ng can_xmit. Una ito ay nagbabalik -EIO kung walang mga bagong packet, at ikalawa ang impormasyon ng mga waiters ay tungkol sa huling ililipat packet. Mula Daniel Lazlo Sitzer.
  • ARM:
  • System Tawag: Ayusin ang isang kamalian sa sistema ng tawag kapag kinukuha ang parameter mula sa stack: regs [REG_PC] 4 ay ang address, hindi regs [REG_PC + 4]
  • .
  • STMicro STM32 Driver:
  • STM32 F401 UART: Tamang suporta para USART6 na ito sa chip. Mula Freddie Chopin.
  • STM32 FLASH mga pag-aayos: gamitin size_t halip ng uint16_t, gumawa ng mas generic na interface. Mula Freddie Chopin.
  • STM32 UART.: Ayusin para UART7 at UART8 on STM32 clock paganahin mula Aton
  • CAN: Sa katapusan ng matakpan handler, ang interrupts ay pagiging disabled, kung ang lahat ng packet ay nalipat kapag ang handler matakpan ay mahihingi. Ito ay may problema, dahil ang matakpan handler tawag can_txdone () ng kalahating itaas na maaaring enqueue bagong packet upang magpadala. Inalis ang mga bloke sa kabuuan, dahil can_txdone () tawag can_xmit () na hindi pinapagana interrupts kung walang mga bagong packet upang magpadala. Mula Daniel Lazlo Sitzer.
  • CAN.: Karagdagang STM32 CAN pagwawasto iminungkahing ng Max Holtzberg
  • STMicro ST32 Boards:
  • configs / mikroe-stm32f4: Ayusin ang ilang magtala bug at menor de edad pagwawasto sa source configuration mikroe-stm32f4. Mula Ken Pettit.
  • ARM9 / ARMv7-A:
  • System Tawag: Ayusin ARM7 / 9 at Cortex-A syscalls: Para sa mga thread sa SVC mode, ang mga tagubilin SVC clobbers R14. Ito ay dapat na kinuha sa account sa mga inline na pagpupulong.
  • Task Setup: Lahat ng mga gawain, kahit na gawain user mode, ay dapat magsimula sa mga superbisor mode hanggang sila makakuha ng nakaraang ang trampoline start-up
  • .
  • ARMv7-A: Baguhin up_fullcontextrestore () para CONFIG_BUILD_KERNEL. Ito ay nagbago CPSR habang sa kernel. Iyon ay bumagsak kung ang bagong CPSR ay user mode habang Isinasagawa sa kernel space. Nakatakdang pamamagitan ng pagdaragdag ng isang sistema ng tawag SYS_context_restore. May ay isang alternatibo, mas simple pagbabago sa up_fullcontextrestore () na maaaring ay tapos na: Ito ay maaaring ay posible na gamitin ang SPSR sa halip na ang CPRSR at pagkatapos ay gawin ang isang exception bumalik mula up_fullcontextrestore (). Iyon ay magiging mas mahusay, ngunit hindi ko na sinubukan ito.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino Dahil: Ayusin typo sa sam3x_periphclks.h; magdagdag ng mga kahulugan SCLK sa board.h header file. Mula Fabien Comte.
  • SAM3 RTT: Tanging SAM4 pamilya ay may RTTDIS kaunti sa MR register. SourceForge bug # 33 mula Fabien Comte.
  • C Library:
  • sscanf (): Sinubukan NuttX libc na hulaan kung gaano karaming karakter na ma-parse, nakuha ito sa isang buffer, pagkatapos tumakbo strtol () sa na buffer. Hulaan na ay madalas na mali. Ang isang mas mahusay na diskarte ay upang tawagan strtol () nang direkta sa data input, gamit ang halaga endptr return upang matukoy kung gaano karaming mga character upang laktawan matapos sa pag-parse. Mula Kosma Moczek.
  • Math Library. Nawastong atan2 pagpapatupad mula sa Denis Arnst
  • Floating Output Point: Baguhin sa lib_dtoa () upang ayusin ang error katiyakan mula trailing zeroes. Mula sa Bob Doiron.
  • Aplikasyon:
  • Ayusin NSH PS command:. Kung walang mga argumento, maaaring i-print ang mga basura para sa listahan ng argument
  • Configuration / Gumawa ng System:
  • Null Halimbawa: Kailangan isama config.h ito sunod alam kung ito ay o ay hindi isang kernel build. Umiiral pa rin ang problemang ito sa maraming iba pang mga file na maaaring kailangan upang tukuyin ang main ().

Ano ang bago sa bersyon 7.8:

  • Tampok: Karagdagang mga bagong tampok at extended functionality:
  • Core OS:
  • asong tagapagbantay timer Allocation: (1) Kung kami maubusan ng pre-ilalaan beses watchdog, ang lohika ay ngayon magtalaga ng karagdagang timer mula sa magbunton. A magreserba ng pre-ilalaan watchdog timer ay pinananatili sa gayon ay palaging may timer magagamit para matakpan amo. (2) Added suporta para sa statically inilalaan watchdog timer
  • Address Environment Support: (2) New OS API nakapaloob sa lahat ng konteksto platform-tiyak na ang paglipat na lohika (up_block_task (), up_unblock_task (), _exit (), at iba pa)
  • .
  • Kernel Gumawa Support: (1) MPU Ang batay & quot; kernel build & quot; pinalitan ng pangalan sa isang protektado ng build (CONFIG_BUILD_PROTECTED); nagdagdag ng suporta para sa isang bagong MMU-based & quot; kernel build & quot; (CONFIG_BUILD_KERNEL), (2) Ang sistema ng tawag library ay maaari na ngayong binuo na may CONFIG_NUTTX_KERNEL. New selection *:. CONFIG_LIB_SYSCALL
  • Startup System: Magdagdag ng mga pagpipilian sa configuration upang simulan ang sistema mula sa isang programa sa isang file system (laban sa isang address sa memory)
  • .
    Pagdaan
  • Startup Parameter: May ginamit upang maging dalawang paraan upang pumasa sa mga parameter sa mga bagong gawain, depende sa configuration: Alinman (1) argv [] bilang nilikha bilang isang array sa bawat string strdup'ed. O (2) argv [] array at mga string ay nilikha sa stack bago ang bagong gawain ay nagsimula. Ngayon, mayroon lamang isang paraan, paraan (2). Way (1) ay maaaring maging bahagyang mas maliit, ngunit ito ay hindi nagkakahalaga dalhin ang pagiging kumplikado ng dalawang magkaibang mga paraan ng paggawa ng parehong bagay.
  • Pinasimulan Board: Magdagdag ng kakayahan upang maisagawa ang unang board Pinasimulan sa isang hiwalay na worker thread. Ito ay kinakailangan dahil mayroong maraming mga kaso kung saan Pinasimulan na lohika ay hindi maaaring maipatupad sa mga start-up / idle thread. Iyon ay dahil sa pagharang o paghihintay ay hindi pinahihintulutan sa mga idle thread.
  • Pamamahala ng Memory:
  • maliit na butil allocator: (1) Magdagdag ng isang bagong function na hinahawakan un-allocatable rehiyon sa maliit na butil magbunton. (2) Magdagdag ng interface sa suporta un-Sinisimulan ang isang maliit na butil allocator.
  • allocator Page: Magdagdag ng isang simple allocator pisikal pahina batay sa mga umiiral NuttX maliit na butil allocator. Ako ay hindi tiyak kung ang maliit na butil allocator ay sapat deterministic para sa matagal na paggamit hanay, ngunit ito ay makakakuha makakuha ng isang allocator page sa lugar para sa pagsubok ng masyadong mabilis.
  • Alisin CONFIG_MM_MULTIHEAP: Non-multiheap operasyon ay hindi na suportado
  • .
  • sbrk (). Sbrk () ay suportado na ngayon sa kernel build sa permit dynamically sized, per-proseso tambak
  • Per-Proseso Heaps: Space sa simula ng espasyo proseso ng data ay nakalaan ngayon para sa magbunton user istruktura management. Sa build mode kernel, ang mga kaayusan magbunton ay nakabahagi sa pagitan ng kernel at gamitin ang code upang magtalaga ng data ng user-tiyak.
  • User magbunton Management: Kapag ang isang pribilehiyo labasan thread, kailangan nating gamitin ang kernel allocator sa libreng memorya; kapag ang isang walang karapatan labasan thread, hindi namin ay may sa gawin ... magbunton memory ay clean up kapag ang address na kapaligiran ay punit-punit down.
  • Inter-Proseso ng Memorya Support: (1) Magdagdag ng pagpapatupad at mga babasahin para shmget (), shmctl (), shmat (), at shmdt (). (2) Magdagdag ng sistema sistema ng mga tawag sa suporta sa gate call user sa shared memory interface. (3) Idagdag ang platform-tiyak na kahulugan interface na kinakailangan upang suportahan ang tampok na nakikihati sa memorya.
  • Virtual allocator Page: Magdagdag ng suporta para sa isang per-proseso virtual allocator page. Ito ay isang bagong miyembro ng task_group_s istraktura. Dapat na-initialize allocator kapag ang isang bagong user na proseso ay nagsimula at uninitialize kapag ang proseso ng grupo ay sa wakas nawasak. Ito ay ginagamit ng shmat () at shmdt () upang pumili ng mga virtual address papunta sa kung saan sa mapa ang mga nakabahaging pisikal na memory.
  • Mga System ng File / Block Driver / MTD:
  • SMART FS: SMART FS at SMART FS procfs update mula Ken Pettit
  • .
  • MTD.: Lilitaw ang MTD Read-maaga / Write buffer layer ay functional ngayon
  • Binary Format:
  • Per-Proseso magbunton.: Magdagdag ng lohika upang magpasimula ng per-user na proseso magbunton kapag ang bawat proseso ng gumagamit ay nagsimula
  • Graphics:
  • NxTerm: Palitan lahat ng Bahagi ng NxConsole sa NxTerm
  • .
  • Networking:
  • PHY Interrupts: (1) sa pamantayan ng interface attachment PHY makaabala. (2) Magdagdag ng suporta para sa isang ioctl na maaaring magamit upang i-notify ang isang application kapag may isang pagbabago sa katayuan ng network ipapahiwatig ng isang PHY makaabala.
  • Pinahusay na si lohika: Sa nakaraan, ang unang packet ipadala sa isang bagong peer network ay mabigo; doon ay walang mga entry sa Arp table para sa mga peer at iba isang kahilingan Arp maaaring palitan na unang packet. Ngayon bilang isang opsyon kung CONFIG_NET_ARP_SEND = y, ang lahat ipadala lohika ay (1) suriin kung ang peer MAC address ay sa Arp table at, kung hindi, (2) ipadala ang ARP kahilingan na pana-panahon upang makuha ang mapping at (3) maghintay para sa Arp tugon. Pagkatapos (4) kapag ang sagot Arp ay natanggap pagkatapos ay ang aktwal send lohika ay sinimulan. Kaya maaaring may isang pagka-antala sa unang packet ipinadala sa isang bagong peer, ngunit hindi dapat mawala ang packet
  • Host Simulation:
  • SPI Flash Driver:. Emulated SPI Flash driver para sa mga sim target mula Ken Pettit
  • Intel x86:
  • Default Host: Ang default na host ay x86_64 ngayon at ang -m32 option ay awtomatikong napili para simulation gagawa
  • .
  • Intel 8051 Family:
  • 8051 Tinanggal: Tinanggal ang lahat ng suporta para sa 8051 architecture pamilya mula sa NuttX pinagmulan tree. Ang obsoleted code kasama ang mga patch pagtanggal ay maaari na ngayong matagpuan sa Misc / obsoleted /. Ang code na ito ay inalis dahil (1) bagaman sa ilang mga pag-andar ay nagpakita, hindi ako ng kamalayan ng anumang tunay na matagumpay ports ng NuttX sa anumang 8051, at (2) ang 8051, na may hardware stack nito, pwersa limitasyon at komplikasyon sa iba pang mga architecture at gumawa ng paglaki at pag-unlad ng NuttX mas kumplikadong.
  • ZILOG ZNeo Boards:
  • configs / 16z: Suporta para sa board na ito ay tinanggal mula sa NuttX source puno (ngunit maaari pa rin matatagpuan sa Misc / obsoleted direktoryo). Port na ito ay hindi pa handa para sa paggamit ngunit maaaring bumalik sa NuttX puno sa ilang mga punto sa hinaharap.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK.: Magdagdag ng (1) ng isang fully-functional ILI9341-based LCD driver at (2) ng isang fully-functional NxWM configuration
  • ARMv7-A:
  • kapaligiran Address: Magdagdag ng suporta para sa mga application address na kapaligiran gamit ang Cortex-A MMU. Ipatupad ang ulirang mga interface NuttX environment address suporta ng platform-tiyak.
  • Cache Operations: Ipatupad standardized, operasyon cache platform-tiyak. Ang mga ito ay tinatawag na mula sa duwende loader upang flush D-cache at magpawalang-bisa I-cache pagkatapos ay nai-load na module duwende sa memory. Sa pagbabagong ito, trabaho duwende modules tama sa SAMA5 / Cortex-A platform.
  • Kernel Build: (1) Magdagdag ng mga pagpapatupad ng sistema ng tawag gate. (2) Idagdag CRT0 start-up file na maaaring ma-link sa magkahiwalay na binuo programs user. (3) Idagdag ang suporta para sa paghahatid ng mga signal ng paggamit-mode sa kernel build. (4) Magdagdag ng lohika upang magpasimula ng per-user na proseso magbunton kapag ang bawat user na proseso ay nagsimula. (5) ARMv7-A pangangailangan sa trabaho ng isang maliit na naiiba kung sinusuportahan namin ang proseso user mode paghawak ng exception. Ito ay dahil sa R13 at R14 ay naiiba paged pagitan ng gumagamit at SVC mode.
  • Memorya Support: (1) Magdagdag ng lohika na kinakailangan upang hawakan remapping ng shared memory sa switch na konteksto. (2) Palawakin ang virtual / pisikal na address ng mga conversion na isama ang mga address sa shared memory. (3) Idagdag ang pagpapatupad ng mga shared memory suporta platform-tiyak.
  • Atmel SAMA5D Driver:
  • Network Ioctls.: Ipatupad lahat ioctls network, kabilang ang mga bagong ioctl sa mga notification PHY setup event
  • Mga Conversion Address:. Sa kernel build sa kapaligiran address, kailangan lohika sa mapa virtual addresses user sa pisikal na address, at vice versa
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, at SAMA5D4-EK: convert umiiral board tiyak PHY matakpan interface na gumamit ng bagong tinukoy standard na interface
  • .
  • SAMA5D4-EK: Magdagdag ng isang configuration para sa pagsubok ng configuration kernel build. May mga pagsasaayos sa boot mula sa alinman sa isang SD card o mula sa at in-memory ROMFS file system.
  • SAMA5D4-EK: Magdagdag ng mga babasahin / support para Rev E. board
  • .
  • STMicro STM32 Driver:
  • Ethernet: Modified upang suportahan ang mga pagbabago sa mga pagbabago ioctl signature network. Ring magdagdag ng suporta para sa mga bagong ioctl na mga abiso sa kaganapan PHY setup.
  • STMicro STM32 Boards:
  • STM32F4Discovery may STM32F4DIS-BB: Magdagdag ng isang network-enable ang configuration NSH para sa STM32F4Discovery board gamit ang naka-install na STM32F4DIS-BB base board. Kasama ang suporta para sa mga microSD card slot sa STM32F4DIS-BB base board.
  • TI Tiva Driver:
  • TI CC3200: Magdagdag ng suporta para sa TI CC3200. Mula Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Magdagdag ng suporta para sa TI CC3200 Launchpad. Mula Jim Ewing.
  • C Library:
  • poll (.): Re-ipinatupad poll () delay gamit sem_timedwait ()
  • Configuration / Gumawa ng System:
  • I-export ang Target: Sa kernel o protektado gagawa, (1) ay dapat na nai-export lamang ang aklatan user, (2) huwag kopyahin internal file header o bumuo ng script kung ito ay isang kernel o protektado build, at (3) mga pangangailangan sa bundle up ang mga file ng user C startup (crt0), hindi ang kernel head object para sa kernel at protektado gagawa.
  • Program CFLAGS: Idagdag sa lohika na ay nagpapahintulot sa amin upang bumuo ng mga aklatan ng gumagamit sa iba't ibang mga CFLAGS sa kernel code. Ito ay kinakailangan dahil kailangan namin ang -fno-karaniwang pagpipilian kapag gusali duwende code upang maiwasan SHN_COMMON relocations.
  • Aplikasyon:
  • NSH: Palawakin ang Pinasimulan lohika NSH network. Mayroong isang opsyon na lumikha ng isang network monitor thread na masubaybayan ang estado ng mga link na ngayon. Kapag bumaba ang link, ang code ay pagtatangka na maganda ilagay ang mga Ethernet driver sa isang down na estado; Kapag dumating ang link pabalik, susubukan ang code upang dalhin ang network back up.
  • ELF Halimbawa:. Ang duwende test / halimbawa ay pinalawig upang maaari ugnay sa mga indibidwal na mga programa ng pagsubok duwende laban sa syscall library (kung ito ay magagamit) o ​​laban sa C library upang maalis o mabawasan ang kailangan para sa mga simbolo talahanayan
  • NxTerm: Palitan lahat ng Bahagi ng NxConsole sa NxTerm
  • .
  • MTDRWB Halimbawa:. Magdagdag ng isang halimbawa upang subukan ang MTD R / W buffering
  • OS Halimbawa Test: Magdagdag ng isang maliit na pagsubok ng sem_timedwait ()
  • .
  • Tools:









































  • Tools:




  • Tools:
























































































  • Tools:


























  • Bugfixes:






































































































Katulad na software

Mga komento sa NuttX

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!