NuttX

Software kuvakaappaus:
NuttX
Ohjelmiston tiedot:
Versio: 7.9 Päivitetty
Lähetyksen päivämäärä: 10 May 15
Kehittäjä: Gregory Nutt
Lupa: Vapaa
Suosio: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX on avoimen lähdekoodin, deterministinen ja vapaa reaaliaikainen sulautettu käyttöjärjestelmä (RTOS), suunniteltu offset jotta niitä voidaan käyttää syvällä niukkojen resurssien ympäristöissä. Se on pieni jalanjälki, joka on käyttökelpoinen mikro-ohjain ympäristöissä, ja se & todellisten tuloste; s täysin skaalautuva pienistä (8-bittinen) tai keskivaikea sulautettujen (32-bit) järjestelmissä.
Sen tavoitteena on myös täysin yhteensopiva standardeihin, on täysin reaaliajassa, ja olla täysin auki. NuttX on monipuoliset ominaisuudet OS setti, modulaarinen, se on erittäin skaalautuva ja muokattavissa, sekä standardin mukaista. Se jaetaan ei-rajoittava BSD-lisenssi. Se on usein puhuttu sen kehittäjät "Tiny Linux." Ominaisuudet glanceKey ominaisuudet ovat ydin tehtävien hallinnan, BSD socket käyttöliittymän, muistin allokoija (jaettua muistia vakiona kasaan muisti allokaatio, suojattu rakentaa kanssa MPU, litteä upotettu rakentaa, per-prosessi kasoihin, rae-varaus ja dynaamisesti kokoinen), muisti kokoonpanoissa siirrettävyyttä opas, täysin preemptible, tickless toimintaa, on-demand haku- ja järjestelmän hakkuut.
Lisäksi hankkeessa mukana laajennukset hallita etuoikeudesta poiketen, per-thread, sisäänrakennettu suorittimen kuormitus mittauksissa, kattavat asiakirjat, valinnaisia ​​tehtäviä, jotka sisältävät osoitteen ympäristöissä, ANSI-kuvaus ja POSIX-like tehtävä tarkastuksia, kellot, pthreads, ympäristö muuttujia, signaalit, nimeltään viesti jonot, ajastimet, tiedostojärjestelmä ja laskenta semaforeista.
Muiden mukavuuksien, voimme mainita round robin ajoitus, FIFO, tukea ensisijaisia ​​perintöosaksi, tukea SoC arkkitehtuuri, tuki hallituksen arkkitehtuurit, tukea uusille prosessoriarkkitehtuureja, vahtikoira ajastimet, VxWorks-kuin tehtävien hallinnan, I / O uudelleenohjaus ja välitetään & ldquo; ohjaamalla terminaalit. & rdquo; Tuetut platformsNuttX tukee monenlaisia ​​laitealustojen, joista voimme mainita useita ARM-prosessorit, kuten ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T ja ARM Cortex-A5, sekä Atmelin 8-bittinen AVR, Freescale M68HCS12, AVR32 Atmel AVR alustoilla.
Lisäksi se tukee myös useita Intelin alustoille, kuten Microchip PIC32MX (MIPS), 80c52 ja 80 & aikoina; 86, Zilog alustoja, kuten Zilog Z80, Zilog z16f, Zilog Z8Encore! ja Zilog eZ80 Acclaim !, ja Renesas / Hitachi SuperH ja Renesas M16C / 26 alustoilla.

Mikä on uusi tässä julkaisussa:

  • Ominaisuudet: Muita uusia ominaisuuksia ja laajennettuja toimintoja:
  • Core OS:
  • Watchdog Timer Allocation: (1) Jos me loppuvat ennalta varattu vahtikoira kertaa, logiikka on nyt osoittanut lisävaroja ajastimet kasaan. Varanto ennalta varattu vahtikoira ajastimet on säilytettävä siten, että aina on ajastimia käytettävissä käsittelijät. (2) Lisätty tuki staattisesti varattu vahtikoira ajastin
  • Osoite Ympäristö Support: (2) Uusia OS API liitettävä kaikkiin foorumi erityistilanteessa kytkentä logiikka (up_block_task (), up_unblock_task (), _exit (), ja muut).
  • Kernel Build Support: (1) MPU perustuva & quot; ydin build & quot; nimeksi suojattua build (CONFIG_BUILD_PROTECTED); lisätty tuki uuden MMU-pohjainen & quot; ydin build & quot; (CONFIG_BUILD_KERNEL), (2) järjestelmä soittaa kirjastossa voidaan nyt rakennetaan CONFIG_NUTTX_KERNEL. Uusi valinta *: CONFIG_LIB_SYSCALL.
  • Järjestelmän käynnistys: Lisää asetuksia aloittaa järjestelmän ohjelman tiedostojärjestelmä (vs. osoitteen muistissa).
  • Käyttöönotto Parametriluettelo syöttely: Siellä käytetään olla kaksi tapaa välittää parametreja uusia tehtäviä, riippuen kokoonpanosta: Joko (1) argv [] niin luotu array jokaisen merkkijonon strdup'ed. Tai (2) argv [] array ja jousille luotiin pinoon ennen uuden tehtävän aloitettiin. Nyt, on vain yksi tapa, tapa (2). Way (1) saattaa olla hieman pienikokoinen, mutta tämä ei kannata kuljettaa monimutkaisuus kaksi erilaista tapaa tehdä sama asia.
  • Hallitus Alustus: Lisää kykyä suorittaa alustavan hallituksen alustusta erillisellä työntekijä säiettä. Tämä on tarpeen, koska on olemassa monia tapauksia, joissa alustus logiikka ei voi suoritettavaksi start-up / Idle säiettä. Tämä johtuu siitä, estämiseen tai odotusaika ei ole sallittua Idle säiettä.
  • Muistin hallinta:
  • rae Allocator: (1) Lisää uusi toiminto varata un-allocatable alueiden rae kasaan. (2) Lisää käyttöliittymät tukemaan YK-alustamisen rae-varaus.
  • Sivu Allocator: Lisää yksinkertainen fyysinen sivun allokaattori perustuu olemassa oleviin NuttX rae-varaus. En ole varma, jos rae-varaus on riittävän deterministinen pitkän kantaman käyttöön, mutta se saa päästä sivun allokaattori paikallaan testaamiseen hyvin nopeasti.
  • Poista CONFIG_MM_MULTIHEAP: Non-multiheap toiminta ei enää tueta.
  • sbrk (): sbrk () tukee nyt ytimen rakentaa sallia dynaamisesti kokoinen, per-prosessi kasoihin.
  • Per-Process Heaps: Space alussa prosessin datan tila on nyt varattu käyttäjälle keon hallintorakenteiden. Ytimen rakentaa tilassa nämä kasaan rakenteet jaetaan ytimen ja käyttää koodin, jotta kohdentaa käyttäjäkohtaista dataa.
  • Käyttäjien Heap Management: Kun etuoikeutettu lanka poistuu, meidän on käytettävä ytimen allokaattorin vapaata muistia; kun oikeudettoman lanka poistuu, meidän ei tarvitse tehdä mitään ... keko muisti siivotaan, kun osoitetta ympäristö on revitty alas.
  • Inter-Process Jaettu muisti Support: (1) Lisää täytäntöönpanoa ja dokumentaation shmget (), shmctl (), shmat (), ja shmdt (). (2) Add-järjestelmä Järjestelmä soittaa tueksi käyttäjälle puhelun portin jaettua muistia rajapintoja. (3) Lisää platform-erityisiä rajapintamäärittelyt tarvitaan tukemaan jaettua muistia käyttävää toimintoa.
  • Virtual Sivu Allocator: Lisää tukea per-prosessi virtuaalisia sivun-varaus. Tämä on uusi jäsen task_group_s rakenteen. Allokaattori pitää alustaa, kun uusi käyttäjä aloitetaan ja uninitialize kun prosessi ryhmä on lopullisesti tuhottu. Sitä käyttävät shmat () ja shmdt () valita virtuaalisen osoitteen johon kartoittaa jaetun fyysisen muistin.
  • Tiedosto Systems / Block Drivers / MTD:
  • SMART FS: SMART FS ja SMART FS procfs päivitykset Ken Pettit.
  • MTD: MTD Read-ahead / Write puskurikerroksen näyttää nyt toiminnallinen.
  • Binary tiedostomuodot:
  • Per-Process Heap: Lisää logiikka alustaa per-prosessi käyttäjä kasaan, kun jokainen käyttäjä käynnistyy.
  • Grafiikka:
  • NxTerm: Muuta kaikki esiintymät NxConsole ja NxTerm.
  • Verkostoituminen:
  • PHY Keskeytykset: (1) Standardoi PHY keskeytyksen liitetiedoston käyttöliittymän. (2) Lisää tukea ioctl joka voidaan ilmoittaa hakemuksen, kun on muutos verkon tilan viestii PHY keskeytyksen.
  • Parempi Lähetä Logic: Aiemmin ensimmäinen paketti lähettää uuteen verkkoon peer epäonnistuvan; ei olisi merkintää ARP taulukossa vertais- ja niin ARP pyyntö voi korvata ensimmäisen paketin. Nyt kun vaihtoehto, jos CONFIG_NET_ARP_SEND = y, all Lähetä logiikka (1) tarkista peer MAC-osoite on ARP ja, jos näin ei ole, (2) lähettää ARP pyynnöt säännöllisesti saada kartoitus ja (3) odottaa ARP vastaus. Sitten (4), kun ARP vastaus saadaan sitten todellinen lähetä logiikka aloitetaan. Näin voi olla viive ensimmäinen paketti lähetetään uusi peer, mutta pakettia ei pidä kadottaa
  • Host Simulation:
  • SPI FLASH Kuljettaja: emuloitu SPI FLASH ohjain sim kohde Ken Pettit.
  • Intel x86:
  • Oletus Host: Oletuksena isäntä on nyt x86_64 ja -m32 vaihtoehto valitaan automaattisesti simulointiin rakentuu.
  • Intel 8051 Perhe:
  • 8051 Poistettu: Poistettu kaikki tuki 8051 perheelle arkkitehtuurin NuttX lähdekoodia. Vanhentuneista koodia yhdessä poiston laastari löytyy nyt osoitteessa misc / vanhentunut /. Tämä koodi on poistettu, koska (1) vaikka toiminnallisuus on osoitettu, en ole tietoinen mistään todella onnistunut satamissa NuttX mitään 8051, ja (2) 8051, jossa sen laitteisto pinon, pakottaa rajoituksia ja komplikaatiot muille arkkitehtuureille ja tehdä kasvua ja kehitystä NuttX monimutkaisempia.
  • Zilog ZNeo Boards:
  • configs / 16z: Support tämän hallituksen on poistettu NuttX lähdekoodipuu (mutta silti löytyy misc / vanhentunut hakemistoon). Tämä portti ei ole valmis käyttöön, mutta saattaa palata NuttX puuhun jossain vaiheessa tulevaisuudessa.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK: Lisää (1) täysin toimiva ILI9341-pohjainen LCD kuljettaja ja (2) täysin toimiva NxWM kokoonpanon.
  • ARMv7-:
  • Osoite Ympäristöt: Lisää tukea sovelluksen osoite -ympäristön Cortex-MMU. Sovellettava vakioituja platform-erityisiä rajapinnat NuttX osoitteen ympäristön tuki.
  • Välimuisti Operations: Toteutetaan standardoitu, platform-erityisiä välimuistin toimintaa. Näitä kutsutaan ELF kuormaimen jotta huuhtele D-välimuisti ja mitätöi I-välimuisti ELF moduuli on ladattu muistiin. Tämän muutoksen, ELF moduulit toimivat oikein SAMA5 / Cortex-alusta.
  • Kernel Build: (1) Lisää toteutukset systeemikutsulla portin. (2) Add CRT0 start-up-tiedosto, joka voidaan yhdistää erikseen rakennettu käyttäjien ohjelmat. (3) Lisää tukea toimituksen käytöstä-tilassa signaalit ytimen rakentaa. (4) Lisää logiikkaa alustamaan per-prosessi käyttäjä kasaan, kun jokainen käyttäjä prosessi on alkanut. (5) ARMv7-poikkeuksen käsittely on työskenneltävä hieman eri tavalla, jos tuemme käyttäjän tilassa prosesseja. Tämä johtuu siitä, että R13 ja R14 ovat sivuinen eri käyttäjän ja SVC-tilassa.
  • Jaettu muisti Support: (1) Lisää logiikka tarpeen käsitellä remapping jaettua muistia yhteydessä kytkimiä. (2) Pidennä virtuaalisen / fyysisen osoitteen muunnoksia sisällyttää osoitteita jaettua muistia. (3) Lisää toteuttamiseen alustan erityisiä jaettua muistia tukeen.
  • Atmel SAMA5D Drivers:
  • Verkko IOCTL-kutsut voidaan: Toteuta kaikki verkon IOCTL-kutsut voidaan myös uudet ioctl setup PHY tapahtumailmoituksia.
  • Osoite muunnokset: In ytimen rakentaa osoitteen ympäristöön, täytyy logiikka kartoittaa käyttäjälle virtuaalisia fyysisiksi osoitteiksi ja päinvastoin.
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, ja SAMA5D4-EK: Convert nykyiset hallituksen erityinen PHY keskeytys rajapintojen käyttää uudelleen määritellyt standardi rajapinta.
  • SAMA5D4-EK: Lisää kokoonpano testaamiseen ytimen rakentaa kokoonpano. On kokoonpanoja käynnistää joko SD-kortilta tai sekä muistin romfs- tiedostojärjestelmä.
  • SAMA5D4-EK: Lisää dokumentointi / tuki Rev E. aluksella.
  • STMicro STM32 Drivers:
  • Ethernet: Muokattu tukea muutosta verkkoon ioctl allekirjoitus muuttuu. Myös lisätä tuki uusille ioctl setup PHY tapahtumailmoituksia.
  • STMicro STM32 Boards:
  • STM32F4Discovery kanssa STM32F4DIS-BB: Lisää verkon käytössä NSH kokoonpanon STM32F4Discovery kartonkia STM32F4DIS-BB base board asennettu. Sisältää tuen microSD-korttipaikka STM32F4DIS-BB Runkolevyn.
  • TI Tiva Drivers:
  • TI CC3200: Lisää tukea TI CC3200. Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Lisää tukea TI CC3200 Launchpad. Jim Ewing.
  • C Library:
  • kyselyn (): Re-toteutettu kysely () viive käyttäen sem_timedwait ().
  • Configuration / Build System:
  • Vienti Tavoite: Vuonna kernel tai suojattu rakentaa, (1) vain käyttäjän kirjastojen pitäisi viedä, (2) älä kopioi sisäisiä header tiedostoja tai rakentaa skriptit jos tämä on ydin tai suojattu rakentaa, ja (3) tarpeet niputtaa käyttäjä C käynnistystiedostojen (crt0), ei ytimen päätä objekti ytimen ja suojattu rakentaa.
  • Ohjelman CFLAGS: Lisää logiikka, joka mahdollistaa meitä rakentamaan käyttäjälle kirjastoja eri CFLAGS kuin ytimen koodia. Tämä on tarpeen, koska tarvitsemme -fno-yleinen vaihtoehto, kun rakennuksen ELF koodin estämiseksi SHN_COMMON siirrot.
  • Sovellukset:
  • NSH: Laajenna NSH verkon alustus logiikkaa. Nyt vaihtoehto, joka luo verkko järjestäjä lanka, joka valvoo valtion linkin. Kun linkki menee alas, koodi yrittää kauniisti laittaa Ethernet kuljettajan tilaan,; Kun linkki tulee takaisin, koodi yrittää tuoda verkkoon takaisin ylös.
  • ELF Esimerkki: ELF Testi / esimerkki on laajennettu niin yksittäisten ELF testiohjelmia voi yhdistää vastaan ​​SYSCALL kirjastoon (jos se on käytettävissä), tai C-kirjasto eliminoida tai minimoida tarve symbolitauluja.
  • NxTerm: Muuta kaikki esiintymät NxConsole ja NxTerm.
  • MTDRWB Esimerkki: Lisää esimerkki testata MTD R / W puskurointia.
  • OS Testiesimerkki: Lisää triviaali testi sem_timedwait ().
  • Sovelluksen Configuration / Build System:
  • Tuo Tavoite: (1) Lisää logiikkaa, jonka avulla rakennuksen sovelluksia vastaan ​​NuttX vienti paketti (vs. nuttx / lähdekoodia). (2) Lisää .config tiedosto viedä paketti. (3) Luo apps / tuonti. Luo apps / tuonti / Make.defs että tekee asioita, kuten määritellä CFLAGS; ELF build vaatii -fno-common in CFLAGS. Kopioi joitakin base logiikka nuttx / tools / Config.mk apps / tuonti / Make.defs. (4) Lisää apps / tuonti / scripts / gnu-elf.ld GCC linkitysskriptiä ELF tuontia rakentuu.
  • Kaikki Makefile: (1) Lisää Asenna kohde kaikille Makefile. Tuontia rakentaa, huipputason Makefile nyt tekee kaksi kulkee: (1) rakentaa libapp.a, sitten (2) asentaa ohjelmat apps / bin. (2) Lisää ohjelman asennusta varten CONFIG_BUILD_KERNEL kaikissa Makefilet jotka rakentavat main (). (3) ytimen rakentaa, objekti sisältävän tiedoston main () voi mennä kirjastoon, koska nimi törmäyksiä. Objekti tiedosto on käsiteltävä erityinen tapaus jokaisesta Makefile.
  • All Sisäänrakennettu Programs: With ydin build (CONFIG_BUILD_KERNEL), aloituskohta kaikki tehtävät on tärkein (), eikä jokin xyz_main ().
  • NSH: Useita komentoja on poistettava käytöstä ytimen rakentaa, koska ne riippuvat rajapintoja, jotka eivät ole käytettävissä ulkopuolella ytimen: dd, df, losetup, mkfatfs, mkdr, ja ps.
  • apps / työkalut /: (1) Lisää mkimport.sh räjähtää NuttX tuonti paketin ja asentaa apps / tuonti. (2) Lisää mkromfsimg.sh script luoda BOOT romfs- tiedostojärjestelmä image.
  • ELF ja NxFLAT Esimerkkejä: Älä rakentaa testitapaukset, jotka käyttävät task_create () jos on osoitetta ympäristö.
  • Työkalut:
  • refresh.sh: Lisää väline tehdä virkistävää kokoonpanoissa helpompaa, kun haluat tehdä paljon niitä.
  • mksyscall.c: Build syscalls jotka eivät tarvitse header tiedostoja.
  • mkexport.sh: Lisää .config tiedosto viedä paketti.
  • apps / työkalut: Ks uusia apps / työkaluja skriptejä.
  • Ponnisteluja In Progress. Seuraavat ovat ominaisuuksia, joita osittain täytäntöön, mutta läsnä tässä julkaisussa. Ne eivät todennäköisesti pian päätökseen.
  • prosessit: Paljon työtä tässä julkaisussa keskittyy toteutumista Unix-style käyttäjän prosesseja NuttX. On enemmän tehtävää, kuitenkin. Täydellinen tiekartta ja tilasta on saatavilla osoitteessa: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: On joitakin palasia paikalleen XMega satamaan. Että portti ei ole oikeastaan ​​alkoi, mutta.
  • Galileo: Samoin on fragmentteja käytössä Intel Galileo-porttiin. Portti ei ole aloitettu toden teolla myöskään.
  • Bugikorjauksia. Vain kriittisin bugikorjauksia on lueteltu tässä (katso ChangeLog täydellistä luetteloa bugikorjauksia ja ylimääräisiä, tarkempia vikakorjaus tiedot):
  • Core OS:
  • Kernel rakentaa korjauksia: (1) IDLE TCB asetukset täytyy osoittaa, että IDLE lanka on etuoikeutettu, ydin säiettä. (2) Älä rakentaa task_create () tai task_spawn () rajapinnat jos osoitetta ympäristö. (3) posix_spawn () ytimen proxy lankaa pitäisi olla ydin lanka, ei käyttäjän tehtävä.
  • Useita pthread rajapinnat: Lisää vakio varastointi luokan phthread parametreihin. Freddie Chopin.
  • SCHED / clock: Poista jäänteitä g_tickbias; tarvitsevat, sen sijaan, soveltaa aika bias g_basetime jotta oikean järjestelmän ajan.
  • Järjestelmä Puhelut: (1) Useat kirjoitusvirheet kiinteitä; korjattu integrointi exevc (), execvl (), posix_spawn (), ja posix_spawnp () järjestelmä puhelut. (2) Jos on määritetty käyttämään ydinpinosta taas SYSCALL käsittelyssä, sitten meidän täytyy siirtyä takaisin käyttäjälle pino tuottaa signaalia.
  • Tiedosto Systems / Block Drivers / MTD:
  • procfs: Fix jotkut procf rikkoutuminen käyttöön uudistamalla joitakin ei-reorganizable tietorakenteita. Ken Pettit.
  • At45: In at45db_bwrite (), puskuri ei kasvanut, kun kirjoitat yli 1 sivulla. Sourceforge bug # 34.
  • Binary tiedostomuodot:
  • ELF siirtoihin: Jotkut siirtäminen tyypit eivät ole nimetty symboli niihin liittyviä. Muotoilu ei oteta huomioon, että asiassa.
  • ELF Loader: Kriittinen vikakorjaus .. BSS ei hyväksymisestä.
  • Muistin hallinta:
  • rae Allocator: Rae allokoija alustus käyttää väärää allokaattorin sen kumoamista ytimen muistin.
  • Etuoikeutettu Ryhmät: Lisää lipun konsernirakenne: Jos ryhmä on luotu ydin lanka, niin kaikki resurssit ryhmässä on oltava etuoikeutettu.
  • Cryptogrphic Support:
  • crypto / cryptodev.c: Path segmenttejä peruuteta sisältää tiedoston polku. Totesi Brennan Ashton.
  • Yleinen Drivers:
  • Common CAN ylempi puoli: In can_txdone, tarjoilijat semaforin olisi ilmoitettava riippumatta palauttaa arvon can_xmit. Ensin se palaa -EIO jos ei ole uusia paketteja, ja toiseksi tiedot tarjoilijat on noin viimeinen siirretyn paketin. Daniel Lazlo Sitzer.
  • ARM:
  • Järjestelmä Puhelut: Fix kirjoitusvirhe systeemikutsu noudettaessa parametrin pinosta: regs [REG_PC] +4 on osoite, ei regs [REG_PC + 4].
  • STMicro STM32 Drivers:
  • STM32 F401 UART: Oikea tuki USART6 tähän siruun. Freddie Chopin.
  • STM32 FLASH korjaa: käytä int sijasta uint16_t, jotta käyttöliittymä yleisempi. Freddie Chopin.
  • STM32 UART: Fix for UART7 ja UART8 on STM32 kello salliminen Aton.
  • CAN: lopussa keskeytyskäsittelijän, keskeytykset olivat ollessa pois käytöstä, jos kaikki paketit on siirretty kun keskeytyskäsittelijän oli vedottu. Tämä on ongelmallista, koska keskeyttää ohjaaja kutsuu can_txdone () ylemmän puoliskon, jotka voidaan laittaa jonoon uusia paketteja lähettää. Poistettu lohko kokonaan, koska can_txdone () puhelut can_xmit (), joka estää keskeytykset, jos ei ole uusia paketteja lähettää. Daniel Lazlo Sitzer.
  • CAN: Additional STM32 CAN korjausta ehdotti Max Holtzberg.
  • STMicro ST32 Boards:
  • configs / mikroe-stm32f4: Fix muutama koota vikoja ja pienet korjaukset mikroe-stm32f4 kokoonpano lähde. Ken Pettit.
  • ARM9 / ARMv7-:
  • Järjestelmä Puhelut: Fix ARM7 / 9 ja Cortex-SYSCALLs: For kierteet SVC-tilassa, SVC ohjeet clobbers R14. Tämä on otettava huomioon inline kokoonpano.
  • Tehtävä asetukset: Kaikki tehtävät, jopa käyttäjän tilassa tehtäviä, on aloitettava esimies tilassa kunnes he saavat ohi start-up trampoliini.
  • ARMv7-: Muokkaa up_fullcontextrestore () varten CONFIG_BUILD_KERNEL. Se muutti CPSR kun ytimen. Se kaatuu jos uusi CPSR on käyttäjän tilassa suorittaessaan kernel. Kiinteä lisäämällä SYS_context_restore järjestelmän puhelun. On olemassa vaihtoehto, yksinkertaisempi muutos up_fullcontextrestore (), jotka olisi voitu tehdä: Olisi ollut mahdollista käyttää SPSR sijaan CPRSR ja sitten tehdä poikkeus paluu up_fullcontextrestore (). Se olisi tehokkaampi, mutta en ole koskaan kokeillut sitä.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino Due: Fix kirjoitusvirhe sam3x_periphclks.h; Lisää SCLK määritelmiä board.h header-tiedosto. Fabien Comte.
  • SAM3 RTT: Vain SAM4 perhe on RTTDIS hieman MR rekisteriin. SourceForge bug # 33 Fabien Comte.
  • C Library:
  • sscanf (): NuttX libc yrittäneet arvailla, kuinka monta merkkiä jäsentää, uutettu ne puskuriin, sitten juoksi strtol (), että puskuri. Se arvaus oli usein väärässä. Parempi tapa olisi kutsua strtol () suoraan lähtötiedot käyttäen endptr paluu arvo määrittää, kuinka monta merkkiä ohittaa jälkeen jäsentämiseen. Vuodesta Kosma Moczek.
  • Math Library: Korjattu ATAN2 toteutukset Denis Arnst.
  • Floating Point Lähtö: Vaihda lib_dtoa () asettaa tarkasti virheen perään nollia. Bob Doiron.
  • Sovellukset:
  • Korjaa NSH PS komento: Jos ei ole perusteluja, se voi tulostaa roskat parametrilistaus.
  • Configuration / Build System:
  • Null Esimerkki: Tarve sisällyttää config.h se jotta tietää, jos tämä on tai ei ole ydin rakentaa. Tämä ongelma on edelleen käytössä useissa muissa tiedostoon, joka on ehkä määritellä main ().

Mikä on uusi versiossa 7.8:

  • Ominaisuudet: Muita uusia ominaisuuksia ja laajennettuja toimintoja:
  • Core OS:
  • Watchdog Timer Allocation: (1) Jos me loppuvat ennalta varattu vahtikoira kertaa, logiikka on nyt osoittanut lisävaroja ajastimet kasaan. Varanto ennalta varattu vahtikoira ajastimet on säilytettävä siten, että aina on ajastimia käytettävissä käsittelijät. (2) Lisätty tuki staattisesti varattu vahtikoira ajastin
  • Osoite Ympäristö Support: (2) Uusia OS API liitettävä kaikkiin foorumi erityistilanteessa kytkentä logiikka (up_block_task (), up_unblock_task (), _exit (), ja muut).
  • Kernel Build Support: (1) MPU perustuva & quot; ydin build & quot; nimeksi suojattua build (CONFIG_BUILD_PROTECTED); lisätty tuki uuden MMU-pohjainen & quot; ydin build & quot; (CONFIG_BUILD_KERNEL), (2) järjestelmä soittaa kirjastossa voidaan nyt rakennetaan CONFIG_NUTTX_KERNEL. Uusi valinta *: CONFIG_LIB_SYSCALL.
  • Järjestelmän käynnistys: Lisää asetuksia aloittaa järjestelmän ohjelman tiedostojärjestelmä (vs. osoitteen muistissa).
  • Käyttöönotto Parametriluettelo syöttely: Siellä käytetään olla kaksi tapaa välittää parametreja uusia tehtäviä, riippuen kokoonpanosta: Joko (1) argv [] niin luotu array jokaisen merkkijonon strdup'ed. Tai (2) argv [] array ja jousille luotiin pinoon ennen uuden tehtävän aloitettiin. Nyt, on vain yksi tapa, tapa (2). Way (1) saattaa olla hieman pienikokoinen, mutta tämä ei kannata kuljettaa monimutkaisuus kaksi erilaista tapaa tehdä sama asia.
  • Hallitus Alustus: Lisää kykyä suorittaa alustavan hallituksen alustusta erillisellä työntekijä säiettä. Tämä on tarpeen, koska on olemassa monia tapauksia, joissa alustus logiikka ei voi suoritettavaksi start-up / Idle säiettä. Tämä johtuu siitä, estämiseen tai odotusaika ei ole sallittua Idle säiettä.
  • Muistin hallinta:
  • rae Allocator: (1) Lisää uusi toiminto varata un-allocatable alueiden rae kasaan. (2) Lisää käyttöliittymät tukemaan YK-alustamisen rae-varaus.
  • Sivu Allocator: Lisää yksinkertainen fyysinen sivun allokaattori perustuu olemassa oleviin NuttX rae-varaus. En ole varma, jos rae-varaus on riittävän deterministinen pitkän kantaman käyttöön, mutta se saa päästä sivun allokaattori paikallaan testaamiseen hyvin nopeasti.
  • Poista CONFIG_MM_MULTIHEAP: Non-multiheap toiminta ei enää tueta.
  • sbrk (): sbrk () tukee nyt ytimen rakentaa sallia dynaamisesti kokoinen, per-prosessi kasoihin.
  • Per-Process Heaps: Space alussa prosessin datan tila on nyt varattu käyttäjälle keon hallintorakenteiden. Ytimen rakentaa tilassa nämä kasaan rakenteet jaetaan ytimen ja käyttää koodin, jotta kohdentaa käyttäjäkohtaista dataa.
  • Käyttäjien Heap Management: Kun etuoikeutettu lanka poistuu, meidän on käytettävä ytimen allokaattorin vapaata muistia; kun oikeudettoman lanka poistuu, meidän ei tarvitse tehdä mitään ... keko muisti siivotaan, kun osoitetta ympäristö on revitty alas.
  • Inter-Process Jaettu muisti Support: (1) Lisää täytäntöönpanoa ja dokumentaation shmget (), shmctl (), shmat (), ja shmdt (). (2) Add-järjestelmä Järjestelmä soittaa tueksi käyttäjälle puhelun portin jaettua muistia rajapintoja. (3) Lisää platform-erityisiä rajapintamäärittelyt tarvitaan tukemaan jaettua muistia käyttävää toimintoa.
  • Virtual Sivu Allocator: Lisää tukea per-prosessi virtuaalisia sivun-varaus. Tämä on uusi jäsen task_group_s rakenteen. Allokaattori pitää alustaa, kun uusi käyttäjä aloitetaan ja uninitialize kun prosessi ryhmä on lopullisesti tuhottu. Sitä käyttävät shmat () ja shmdt () valita virtuaalisen osoitteen johon kartoittaa jaetun fyysisen muistin.
  • Tiedosto Systems / Block Drivers / MTD:
  • SMART FS: SMART FS ja SMART FS procfs päivitykset Ken Pettit.
  • MTD: MTD Read-ahead / Write puskurikerroksen näyttää nyt toiminnallinen.
  • Binary tiedostomuodot:
  • Per-Process Heap: Lisää logiikka alustaa per-prosessi käyttäjä kasaan, kun jokainen käyttäjä käynnistyy.
  • Grafiikka:
  • NxTerm: Muuta kaikki esiintymät NxConsole ja NxTerm.
  • Verkostoituminen:
  • PHY Keskeytykset: (1) Standardoi PHY keskeytyksen liitetiedoston käyttöliittymän. (2) Lisää tukea ioctl joka voidaan ilmoittaa hakemuksen, kun on muutos verkon tilan viestii PHY keskeytyksen.
  • Parempi Lähetä Logic: Aiemmin ensimmäinen paketti lähettää uuteen verkkoon peer epäonnistuvan; ei olisi merkintää ARP taulukossa vertais- ja niin ARP pyyntö voi korvata ensimmäisen paketin. Nyt kun vaihtoehto, jos CONFIG_NET_ARP_SEND = y, all Lähetä logiikka (1) tarkista peer MAC-osoite on ARP ja, jos näin ei ole, (2) lähettää ARP pyynnöt säännöllisesti saada kartoitus ja (3) odottaa ARP vastaus. Sitten (4), kun ARP vastaus saadaan sitten todellinen lähetä logiikka aloitetaan. Näin voi olla viive ensimmäinen paketti lähetetään uusi peer, mutta pakettia ei pidä kadottaa
  • Host Simulation:
  • SPI FLASH Kuljettaja: emuloitu SPI FLASH ohjain sim kohde Ken Pettit.
  • Intel x86:
  • Oletus Host: Oletuksena isäntä on nyt x86_64 ja -m32 vaihtoehto valitaan automaattisesti simulointiin rakentuu.
  • Intel 8051 Perhe:
  • 8051 Poistettu: Poistettu kaikki tuki 8051 perheelle arkkitehtuurin NuttX lähdekoodia. Vanhentuneista koodia yhdessä poiston laastari löytyy nyt osoitteessa misc / vanhentunut /. Tämä koodi on poistettu, koska (1) vaikka toiminnallisuus on osoitettu, en ole tietoinen mistään todella onnistunut satamissa NuttX mitään 8051, ja (2) 8051, jossa sen laitteisto pinon, pakottaa rajoituksia ja komplikaatiot muille arkkitehtuureille ja tehdä kasvua ja kehitystä NuttX monimutkaisempia.
  • Zilog ZNeo Boards:
  • configs / 16z: Support tämän hallituksen on poistettu NuttX lähdekoodipuu (mutta silti löytyy misc / vanhentunut hakemistoon). Tämä portti ei ole valmis käyttöön, mutta saattaa palata NuttX puuhun jossain vaiheessa tulevaisuudessa.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK: Lisää (1) täysin toimiva ILI9341-pohjainen LCD kuljettaja ja (2) täysin toimiva NxWM kokoonpanon.
  • ARMv7-:
  • Osoite Ympäristöt: Lisää tukea sovelluksen osoite -ympäristön Cortex-MMU. Sovellettava vakioituja platform-erityisiä rajapinnat NuttX osoitteen ympäristön tuki.
  • Välimuisti Operations: Toteutetaan standardoitu, platform-erityisiä välimuistin toimintaa. Näitä kutsutaan ELF kuormaimen jotta huuhtele D-välimuisti ja mitätöi I-välimuisti ELF moduuli on ladattu muistiin. Tämän muutoksen, ELF moduulit toimivat oikein SAMA5 / Cortex-alusta.
  • Kernel Build: (1) Lisää toteutukset systeemikutsulla portin. (2) Add CRT0 start-up-tiedosto, joka voidaan yhdistää erikseen rakennettu käyttäjien ohjelmat. (3) Lisää tukea toimituksen käytöstä-tilassa signaalit ytimen rakentaa. (4) Lisää logiikkaa alustamaan per-prosessi käyttäjä kasaan, kun jokainen käyttäjä prosessi on alkanut. (5) ARMv7-poikkeuksen käsittely on työskenneltävä hieman eri tavalla, jos tuemme käyttäjän tilassa prosesseja. Tämä johtuu siitä, että R13 ja R14 ovat sivuinen eri käyttäjän ja SVC-tilassa.
  • Jaettu muisti Support: (1) Lisää logiikka tarpeen käsitellä remapping jaettua muistia yhteydessä kytkimiä. (2) Pidennä virtuaalisen / fyysisen osoitteen muunnoksia sisällyttää osoitteita jaettua muistia. (3) Lisää toteuttamiseen alustan erityisiä jaettua muistia tukeen.
  • Atmel SAMA5D Drivers:
  • Verkko IOCTL-kutsut voidaan: Toteuta kaikki verkon IOCTL-kutsut voidaan myös uudet ioctl setup PHY tapahtumailmoituksia.
  • Osoite muunnokset: In ytimen rakentaa osoitteen ympäristöön, täytyy logiikka kartoittaa käyttäjälle virtuaalisia fyysisiksi osoitteiksi ja päinvastoin.
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, ja SAMA5D4-EK: Convert nykyiset hallituksen erityinen PHY keskeytys rajapintojen käyttää uudelleen määritellyt standardi rajapinta.
  • SAMA5D4-EK: Lisää kokoonpano testaamiseen ytimen rakentaa kokoonpano. On kokoonpanoja käynnistää joko SD-kortilta tai sekä muistin romfs- tiedostojärjestelmä.
  • SAMA5D4-EK: Lisää dokumentointi / tuki Rev E. aluksella.
  • STMicro STM32 Drivers:
  • Ethernet: Muokattu tukea muutosta verkkoon ioctl allekirjoitus muuttuu. Myös lisätä tuki uusille ioctl setup PHY tapahtumailmoituksia.
  • STMicro STM32 Boards:
  • STM32F4Discovery kanssa STM32F4DIS-BB: Lisää verkon käytössä NSH kokoonpanon STM32F4Discovery kartonkia STM32F4DIS-BB base board asennettu. Sisältää tuen microSD-korttipaikka STM32F4DIS-BB Runkolevyn.
  • TI Tiva Drivers:
  • TI CC3200: Lisää tukea TI CC3200. Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: Lisää tukea TI CC3200 Launchpad. Jim Ewing.
  • C Library:
  • kyselyn (): Re-toteutettu kysely () viive käyttäen sem_timedwait ().
  • Configuration / Build System:
  • Vienti Tavoite: Vuonna kernel tai suojattu rakentaa, (1) vain käyttäjän kirjastojen pitäisi viedä, (2) älä kopioi sisäisiä header tiedostoja tai rakentaa skriptit jos tämä on ydin tai suojattu rakentaa, ja (3) tarpeet niputtaa käyttäjä C käynnistystiedostojen (crt0), ei ytimen päätä objekti ytimen ja suojattu rakentaa.
  • Ohjelman CFLAGS: Lisää logiikka, joka mahdollistaa meitä rakentamaan käyttäjälle kirjastoja eri CFLAGS kuin ytimen koodia. Tämä on tarpeen, koska tarvitsemme -fno-yleinen vaihtoehto, kun rakennuksen ELF koodin estämiseksi SHN_COMMON siirrot.
  • Sovellukset:
  • NSH: Laajenna NSH verkon alustus logiikkaa. Nyt vaihtoehto, joka luo verkko järjestäjä lanka, joka valvoo valtion linkin. Kun linkki menee alas, koodi yrittää kauniisti laittaa Ethernet kuljettajan tilaan,; Kun linkki tulee takaisin, koodi yrittää tuoda verkkoon takaisin ylös.
  • ELF Esimerkki: ELF Testi / esimerkki on laajennettu niin yksittäisten ELF testiohjelmia voi yhdistää vastaan ​​SYSCALL kirjastoon (jos se on käytettävissä), tai C-kirjasto eliminoida tai minimoida tarve symbolitauluja.
  • NxTerm: Muuta kaikki esiintymät NxConsole ja NxTerm.
  • MTDRWB Esimerkki: Lisää esimerkki testata MTD R / W puskurointia.
  • OS Testiesimerkki: Lisää triviaali testi sem_timedwait ().

  • Työkalut:









































  • Työkalut:




  • Työkalut:
























































































  • Työkalut:


























  • Bugikorjauksia:






































































































Vastaavia ohjelmistoja

fli4l
fli4l

20 Feb 15

HeavenOS
HeavenOS

3 Jun 15

Kommentit NuttX

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!