NuttX

Sagteware kiekie:
NuttX
Sagteware besonderhede:
Weergawe: 7.9 Opgedateer
Upload datum: 10 May 15
Ontwikkelaar: Gregory Nutt
Lisensie: Gratis
Populariteit: 115

Rating: 4.0/5 (Total Votes: 1)

NuttX is 'n oop bron, deterministiese en gratis real-time embedded bedryfstelsel (RTOS), ontwerp van die verreken bruikbare in diep gewortel, beperkte hulpbronne omgewings te wees. Dit het 'n klein voetspoor wat bruikbaar in mikro-kontroleerder omgewings, en dit & rsquo; s ten volle skaalbare van klein (8-bit) matige ingebed (32-bit) stelsels.
Dit het ook ten doel ten volle voldoen aan die standaarde te wees, om ten volle real time wees, en heeltemal oop te wees. NuttX het 'n ryk funksie OS stel, 'n modulêre ontwerp, is dit hoogs skaalbare en instel, asook standaarde voldoen. Dit word versprei met 'n nie-beperkende BSD lisensie. Dit word dikwels genoem deur sy ontwikkelaars as "Tiny Linux." Kenmerke in 'n glanceKey kenmerke sluit kern taak beheer, BSD socket koppelvlak, geheue toewysers (gedeelde geheue, standaard hoop geheue toekenning, beskerm te bou met MPU, plat ingebed bou, per-proses hope, korrel allocator en dinamiese grootte), geheue konfigurasies, porting gids, ten volle preemptible, tickless operasie, op-aanvraag paginering en stelsel te meld.
Daarbenewens het die projek kom met uitbreidings aan die pre-aandeelhouers, per draad, ingeboude CPU load metings, omvattende dokumentasie, opsioneel daardie adres omgewings, ANSI-agtige en POSIX-agtige taak beheer, horlosies, pthreads bevat, omgewing te bestuur veranderlikes, seine, vernoem boodskap toue, timers, lêerstelsel en tel semafore.
Onder ander funksies, kan ons praat rondomtaliegrondslag skedulering, EIEU, ondersteuning vir prioriteit erfenis, ondersteuning vir die SoC argitektuur, ondersteuning vir raad argitekture, ondersteuning vir nuwe verwerker argitekture, waghond timers, VxWorks-agtige taak beheer, I / O verwysing en oordraagbare & ldquo; beherende terminale & rdquo;. Ondersteun platformsNuttX ondersteun 'n wye verskeidenheid van hardeware platforms, waaronder ons kan talle ARM verwerkers, insluitende ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T en ARM noem Cortex-A5, sowel as die Atmel 8-bit AVR, Freescale M68HCS12, AVR32 Atmel AVR platforms.
Verder, dit ondersteun ook verskeie Intel platforms, soos mikroskyfie PIC32MX (MIPS), 80c52 en 80 & tye; 86, Zilog platforms, insluitend Zilog Z80, Zilog Z16F, Zilog Z8Encore! en Zilog eZ80 toejuiging !, en die Renesas / Hitachi SuperH en Renesas M16C / 26 platforms

Wat is nuut in hierdie release:.

  • Kenmerke: Bykomende nuwe funksies en uitgebreide funksionaliteit:
  • Core OS:
  • Waghond Timer Toekenning: (1) As ons uit pre-toegeken waghond keer hardloop, die logika nou bykomende timers van die hoop te ken. 'N reserwe van pre-toegeken waghond timers gehandhaaf sodat daar altyd sal wees timers beskikbaar vir onderbreking hanteerders. (2) Bygevoeg ondersteuning vir staties toegeken waghond timer
  • Address Omgewing Support: (2) Nuwe OS APIs diens in alle platform-spesifieke konteks skakel logika (up_block_task (), up_unblock_task (), _exit (), en ander)
  • .
  • kern Bou Support: (1) Die MPU gebaseer & quot; kern bou & quot; herdoop tot 'n beskermde bou (CONFIG_BUILD_PROTECTED); ondersteuning vir die nuwe MMU-gebaseerde & quot; kern bou & quot; (CONFIG_BUILD_KERNEL), (2) Die stelsel oproep biblioteek kan nou gebou met CONFIG_NUTTX_KERNEL. Nuwe seleksie *:. CONFIG_LIB_SYSCALL
  • System Startup: Voeg opset opsies om die stelsel van 'n program op 'n lêer stelsel (teenoor 'n adres in die geheue) begin
  • .
  • Startup parameteroordrag: Daar word gebruik om twee maniere om parameters te slaag om nuwe take, afhangende van die opset: Óf (1) argv [] as geskep as 'n skikking met elke string strdup'ed. Of (2) argv [] skikking en snare is geskep op die stapel voor die nuwe taak begin. Nou, daar is net een manier, manier (2). Way (1) kan wees 'n bietjie meer kompak, maar dit is nie die moeite werd dra die kompleksiteit van twee verskillende maniere om dieselfde ding.
  • Raad inisialisering: vermoë Voeg by aanvanklike raad inisialisering te voer op 'n aparte draad werker. Dit is nodig, want daar is baie gevalle waar inisialisering logika nie kan voer op die begin-up / IDLE draad. Dit is omdat die sluit of te wag word nie toegelaat op die IDLE draad.
  • Memory Management:
  • Granule allocator: (1) Voeg 'n nuwe funksie om un-toedeelbare streke behou in die korrel hoop. (2) koppelvlakke Voeg by-un initializing n korrel allocator.
  • ondersteun
  • Page allocator: Voeg 'n eenvoudige fisiese bladsy allocator gebaseer op die bestaande NuttX korrel allocator. Ek is nie seker of die korrel allocator is voldoende deterministiese vir 'n lang reeks gebruik, maar dit raak kry 'n bladsy allocator in plek vir baie vinnig toets.
  • Verwyder CONFIG_MM_MULTIHEAP: Nie-multiheap werking is nie meer ondersteun
  • .
  • sbrk (). Sbrk () is nou ondersteun in die kern bou om dinamiese grootte, per-proses hope toelaat
  • Per-proses hope ruimte aan die begin van die proses data ruimte is nou gereserveer vir gebruiker hoop bestuur strukture. In die kern bou modus word hierdie hoop strukture verdeel tussen die kern en die gebruik kode om die gebruiker-spesifieke data toe te ken.
  • User Heap Management: Wanneer 'n bevoorregte draad uitgange, moet ons die kern allocator gratis geheue gebruik; wanneer 'n onbevoorregte draad uitgange, ons het nie om iets te doen ... hoop geheue skoongemaak word wanneer die adres omgewing afgebreek.
  • Inter-Process gedeelde geheue Support: (1) die implementering en dokumentasie Voeg vir shmget (), shmctl (), shmat (), en shmdt (). (2) Voeg stelsel stelsel oproepe na die gebruiker oproep hek ondersteun die gedeelde geheue koppelvlakke. (3) Voeg platform-spesifieke koppelvlak definisies wat nodig is om die gedeelde geheue funksie te ondersteun.
  • Virtual Page allocator: ondersteuning by vir 'n per-proses virtuele bladsy allocator. Dit is 'n nuwe lid van die task_group_s struktuur. Die allocator moet geïnisialiseer word wanneer 'n nuwe gebruiker proses begin en uninitialize wanneer die proses groep is uiteindelik vernietig. Dit word deur shmat () en shmdt () om die virtuele adres op wat die gedeelde fisiese geheue kaart te kies.
  • File Systems / Blok Bestuurders / MTD:
  • SMART FS: SMART FS en SMART FS procfs updates from Ken Pettit
  • .
  • MTD. Die MTD Lees lig / Skryf buffer laag blyk nou funksionele
  • Binary Formats:
  • Per-proses Heap. Logika Voeg by die per-proses gebruiker hoop inisialiseer wanneer elke gebruiker proses begin
  • Grafiese:
  • NxTerm: Verander al voorkomste van NxConsole om NxTerm
  • .
  • Netwerk:
  • PHY onderbreek: (1) standaardiseren n PHY onderbreking beslaglegging koppelvlak. (2) ondersteuning Voeg 'n ioctl wat gebruik kan word om 'n aansoek in kennis stel wanneer daar 'n verandering in die netwerk status te kenne gegee word deur 'n PHY onderbreking.
  • Verbeterde Stuur logika: In die verlede, die eerste pakkie te stuur na 'n nuwe netwerk peer sou versuim; sou daar geen inskrywing in die ARP tafel vir die peer en so 'n ARP versoek kan daardie eerste pakkie te vervang. Nou as 'n opsie as CONFIG_NET_ARP_SEND = y, al stuur logika sal (1) te kyk of die peer MAC adres is in die ARP tafel, en indien nie, (2) te stuur ARP versoeke tyd tot die kartering te kry en (3) wag vir die ARP reaksie. Dan (4) wanneer die ARP reaksie word dan ontvang die werklike stuur logika sal geïnisieer. So is daar 'n vertraging met die eerste pakkie gestuur het om 'n nuwe peer mag wees nie, maar die pakkie moet nie verlore
  • Host Simulasie:
  • SPI flash bestuurder. Nagevolg SPI FLASH bestuurder vir die sim teiken van Ken Pettit
  • Intel x86:
  • Default Host: Die standaard host is nou x86_64 en die opsie -m32 sal outomaties gekies vir simulasie bou
  • .
  • Intel 8051 Family:
  • 8051 verwyder: Verwyder al die ondersteuning vir die 8051 familie argitektuur uit die NuttX bron boom. Die uitgedien kode saam met die verwydering pleister kan nou gevind word by misc / uitgedien /. Hierdie kode is verwyder omdat (1) alhoewel sommige funksies is gedemonstreer, ek is nie bewus van enige werklik suksesvol hawens van NuttX enige 8051, en (2) die 8051, met sy hardeware stapel, dwing beperkings en komplikasies na die ander argitekture en maak groei en ontwikkeling van NuttX meer kompleks.
  • Zilog ZNeo Boards:
  • configs / 16z: Ondersteuning vir hierdie bord is verwyder uit die NuttX bron boom (maar nog steeds kan gevind word in die misc / uitgedien gids). Hierdie poort is nie gereed vir gebruik, maar kan op 'n sekere punt in die toekoms terug te keer na die NuttX boom.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Voeg (1) 'n ten volle funksionele ILI9341 gebaseer LCD bestuurder en (2) 'n ten volle funksionele NxWM opset
  • ARMv7-A:
  • Address omgewings: ondersteuning by vir toepassing adres omgewings met behulp van die Cortex-A MMU. Implementeer gestandaardiseerde platform-spesifieke interfaces van NuttX adres omgewing ondersteuning.
  • Cache Bedryf: Implementeer gestandaardiseerde, platform-spesifieke kas bedrywighede. Dit is genoem uit die ELF loader om D-kas te spoel en ongeldig I-kas na 'n elf module het in die geheue gelaai. Met hierdie verandering, korrek ELF modules werk op die SAMA5 / Cortex-A platform.
  • kern Bou: (1) die implementering van die stelsel oproep hek Voeg. (2) Voeg CRT0 begin-up lêer wat gekoppel kan word afsonderlik gebou gebruiker programme. (3) ondersteuning te bied vir die lewering van die gebruik-seine in die kern bou. (4) logika Voeg by die per-proses gebruiker hoop inisialiseer wanneer elke gebruiker proses begin. (5) ARMv7-A hantering van uitsonderings moet 'n bietjie anders werk as ons ondersteun gebruiker af prosesse. Dit is omdat R13 en R14 verskillend blaai tussen die gebruiker en SVC af.
  • gedeelde geheue Support: (1) logika nodig om te hanteer remapping van gedeelde geheue op konteks skakelaars Voeg. (2) Brei virtuele / fisiese adres doelskoppe adresse in gedeelde geheue te sluit. (3) die implementering van die platform spesifieke gedeelde geheue ondersteuning Voeg.
  • Atmel SAMA5D Drivers:
  • Network ioctls. Implementeer alle netwerk ioctls, insluitend die nuwe ioctl opstel PHY gebeurtenis kennisgewings
  • Address Doelskoppe:. In kern bou met adres omgewing, moet logika gebruiker virtuele adresse fisiese adresse karteer, en omgekeerd
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, en EK SAMA5D4-: Skakel bestaande direksie spesifieke PHY onderbreking koppelvlakke na nuut gedefinieerde standaard koppelvlak te gebruik
  • .
  • SAMA5D4-EK: Voeg 'n opset vir die toets van die kern bou opset. Daar is konfigurasies te boot óf uit 'n SD kaart of van en in-geheue ROMFS lêer stelsel.
  • SAMA5D4-EK: Voeg dokumentasie / ondersteuning vir Ds E. raad
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Gewysig om die verandering aan die netwerk ioctl handtekening veranderinge te ondersteun. Voeg ook ondersteuning vir nuwe ioctl opstel PHY gebeurtenis kennisgewings.
  • STMicro STM32 Boards:
  • STM32F4Discovery met STM32F4DIS-BB: Voeg 'n netwerk van NSH verstellings vir die bord STM32F4Discovery met die STM32F4DIS-BB basis raad geïnstalleer. Sluit ondersteuning vir die microSD kaart slot op die STM32F4DIS-BB basis raad.
  • TI Tiva Drivers:
  • TI CC3200: ondersteuning by vir die TI CC3200. Van Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: ondersteuning by vir die TI CC3200 Launchpad. Van Jim Ewing.
  • C Biblioteek:
  • poll (). Re-geïmplementeer poll () vertraging met behulp sem_timedwait ()
  • Configuration / Bou System:
  • Uitvoer Target: In die kern of beskerm bou, (1) slegs die gebruiker biblioteke moet uitgevoer word, (2) is nie van interne header lêers kopieer of bou skrifte as dit 'n kern of beskerm bou, en (3) behoeftes om bundel die gebruiker C startup lêer (crt0), nie die kern hoof voorwerp vir die kern en beskerm bou.
  • Program CFLAGS: logika wat ons sal toelaat om gebruikers biblioteke met verskillende CFLAGS as kern-kode bou Voeg. Dit is nodig, want ons moet die -fno-algemene opsie wanneer die bou van ELF kode om SHN_COMMON verskuiwings te voorkom.
  • Aansoeke:
  • NSH: Brei die NSH netwerk inisialisering logika. Daar is nou 'n opsie wat 'n netwerk monitor draad dat die toestand van die skakel sal monitor sal skep. Wanneer die skakel ondergaan, sal die kode probeer om grasieus sit die Ethernet bestuurder in 'n down staat; Wanneer die skakel kom terug, sal die kode probeer om die netwerk terug te bring.
  • ELF. Voorbeeld: Die ELF toets / voorbeeld is uitgebrei sodat die individuele ELF toets programme kan koppel teen die SYSCALL biblioteek (indien dit beskikbaar is) of teen die C-biblioteek uit te skakel of te verminder die behoefte aan simbool tafels
  • NxTerm: Verander al voorkomste van NxConsole om NxTerm
  • .
  • MTDRWB. Voorbeeld: Voeg 'n voorbeeld vir MTD R / W buffering toets
  • OS Toets Voorbeeld: Voeg 'n triviale toets sem_timedwait ()
  • .
  • Aansoek Configuration / Bou System:
  • Invoer Target: (1) logika wat gebou aansoeke teen NuttX uitvoer pakket (vs. die nuttx / bron boom) sal toelaat Voeg. (2) Voeg .config lêer pakket te voer. (3) Skep apps / invoer. Skep apps / invoer / Make.defs dat dinge soos omskryf CFLAGS doen; ELF bou vereis -fno-algemeen in CFLAGS. Kopieer sommige base logika van nuttx / gereedskap / Config.mk om programme / invoer / Make.defs. (4) Voeg apps / invoer / skrifte / gnu-elf.ld GCC linker script vir ELF invoer bou.
  • Alle Makefiles: (1) Voeg 'n installeer teiken om al makefiles. Vir die invoer bou, die top-vlak Make File doen nou twee passe: (1) bou libapp.a, dan (2) installeer die programme in apps / bin. (2) Voeg program installasie vir CONFIG_BUILD_KERNEL in alle Makefiles wat bou 'n main (). (3) Vir kern bou, die voorwerp lêer met main () kan nie gaan in die biblioteek as gevolg van die naam botsings. Die voorwerp lêer moet hanteer word as 'n spesiale geval in elke Make File.
  • Alle ingeboude programme: Met kern bou (CONFIG_BUILD_KERNEL), inskrywing punt vir alle take is main (), nie 'n xyz_main ()
  • .
  • NSH: Verskeie opdragte moet afgeskakel word in die kern bou omdat hulle afhanklik is van koppelvlakke wat nie beskikbaar is buite die kern. Dd, df, losetup, mkfatfs, mkdr en ps
  • apps / gereedskap /: (1) mkimport.sh Voeg 'n NuttX pakket invoer ontplof en installeer in apps / invoer. (2) Voeg mkromfsimg.sh script beeld 'n BOOT ROMFS lêerstelsel te skep.
  • ELF en NxFLAT Voorbeelde:. Moenie toets gevalle wat task_create () indien daar 'n adres omgewing gebruik nie bou
  • Tools:
  • refresh.sh. Voeg 'n instrument om verfrissende konfigurasies makliker maak wanneer jy wil 'n baie van hulle doen
  • mksyscall.c: Bou syscalls wat nie kop lêers hoef
  • .
  • mkexport.sh. Voeg .config lêer pakket uitvoer
  • apps / gereedskap: Sien hierbo vir nuwe apps / gereedskap skrifte
  • .
  • Pogings In Progress. Die volgende is kenmerke wat gedeeltelik geïmplementeer word, maar die oomblik in hierdie weergawe. Hulle is waarskynlik nie binnekort voltooi.
  • prosesse: Baie van die werk in hierdie release is gefokus op die verwesenliking van Unix-styl gebruiker prosesse in NuttX. Daar is meer gedoen moet word, maar. Die volle padkaart en status is beskikbaar by: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: Daar is 'n paar fragmente in plek vir 'n XMega hawe. Dat die hawe het nie regtig begin, egter.
  • Galileo: Net so is daar fragmente in plek vir 'n Intel Galileo hawe. Die hawe nie in alle erns begin nie.
  • bugfixes. Slegs die mees kritieke bugfixes hier gelys (sien die ChangeLog vir die volledige lys van bugfixes en vir addisionele, meer gedetailleerde bugfix inligting):
  • Core OS:
  • kern bou fixes: (1) IDLE TCB setup nodig om aan te dui dat die IDLE draad is 'n bevoorregte, kern draad. (2) Moenie te bou task_create () of task_spawn () koppelvlakke indien daar is 'n adres omgewing. (3) posix_spawn () kern proxy draad moet 'n kern draad, nie 'n gebruiker taak wees.
  • Verskeie pthread interfaces: Voeg const stoor klas parameters phthread. Van Freddie Chopin.
  • sched / klok: Verwyder oorblyfsels van g_tickbias; nodig het, in plaas daarvan, tot tyd vooroordeel van toepassing op g_basetime om die korrekte stelsel tyd te voorsien.
  • System Oproepe: (1) Verskeie typos vasgestel; reggestel integrasie van exevc (), execvl (), posix_spawn (), en posix_spawnp () stelsel oproepe. (2) As ons ingestel om 'n kern stapel te gebruik, terwyl in SYSCALL hantering, dan moet ons terug te skakel na die gebruiker stapel om 'n sein te lewer.
  • File Systems / Blok Bestuurders / MTD:
  • procfs: Fix sommige procf breek wat deur die herstrukturering van 'n paar nie-reorganizable data strukture. Van Ken Pettit.
  • AT45: In at45db_bwrite (), word die buffer nie verhoog wanneer die skryf van meer as 1 bladsy. Source fout # 34.
  • Binary Formats:
  • ELF verskuiwings: Sommige tipes hervestiging nie 'n naam simbool wat verband hou met hulle. Die ontwerp het nie rekening vir daardie geval.
  • ELF Loader. Kritieke bugfix .. BSS is nie skoongemaak
  • Memory Management:
  • Granule allocator: Granule allocator inisialisering gebruik verkeerde allocator om tersydestelling kern geheue
  • .
  • Bevoorreg Groepe: Voeg 'n vlag om groepstruktuur: As die groep is geskep deur 'n kern draad, dan alle hulpbronne in die groep moet bevoorreg wees
  • .
  • Cryptogrphic Support:
  • crypto / cryptodev.c: Pad segmente omgekeer in te sluit lêer pad. Opgemerk deur Brennan Ashton.
  • Algemene Bestuurders:
  • Common KAN boonste helfte: In can_txdone, kelners op die semafoor ingelig moet word, ongeag van die terugkeer waarde van can_xmit. Eerstens is dit terug -EIO as daar geen nuwe pakkies, en die tweede die inligting van die kelners is oor die laaste oorgedra pakkie. Van Daniel Lazlo Sitzer.
  • ARM:
  • System Oproepe: Fix 'n tikfout in die stelsel oproep wanneer haal parameter van die stapel: REGS [REG_PC] 4 is die adres nie REGS [REG_PC + 4]
  • .
  • STMicro STM32 Drivers:
  • STM32 F401 UART: Korrekte ondersteuning vir USART6 op hierdie chip. Van Freddie Chopin.
  • STM32 FLASH vasgestel: gebruik size_t plaas van uint16_t maak koppelvlak meer generiese. Van Freddie Chopin.
  • STM32 UART. Fix vir UART7 en UART8 op STM32 klok stel van Aton
  • kan: Aan die einde van die onderbreking hanteerder, is die onderbrekings ongeskiktheid, indien al die pakkies oorgedra wanneer die onderbreking hanteerder is begin. Dit is problematies, want die onderbreking hanteerder noem can_txdone () van die boonste helfte wat nuwe pakkies kan enqueue te stuur. Verwyder die blok heeltemal, want can_txdone () noem can_xmit () wat onderbrekings versper indien daar geen nuwe pakkies te stuur. Van Daniel Lazlo Sitzer.
  • KAN. Bykomende STM32 CAN regstelling voorgestel deur Max Holtzberg
  • STMicro ST32 Boards:
  • configs / mikroe-stm32f4: Fix 'n paar op te stel foute en klein verbeterings aan die mikroe-stm32f4 opset bron. Van Ken Pettit.
  • ARM9 / ARMv7-A:
  • System Oproepe: Fix ARM7 / 9 en Cortex-A SYSCALLs: Vir drade in SVC af, die SVC instruksies clobbers R14. Dit moet in berekening gebring word in die inline vergadering.
  • Taak Setup: Alle take, selfs gebruiker modus take moet begin in toesighouer af totdat hulle verby die start-up trampolien kry
  • .
  • ARMv7-A: up_fullcontextrestore () Pas vir CONFIG_BUILD_KERNEL. Dit verander CPSR terwyl in die kern. Dit sal crash as die nuwe CPSR is gebruiker af terwyl die uitvoering in die kern ruimte. Vaste deur 'n stelsel SYS_context_restore oproep te voeg. Daar is 'n alternatief, eenvoudiger verandering aan up_fullcontextrestore () wat gedoen kon gewees het: Dit mag dalk moontlik gewees het om die SPSR in plaas van die CPRSR gebruik en dan 'n uitsondering terugkeer uit up_fullcontextrestore (). Dit sou meer doeltreffend te wees, maar ek het nooit probeer om dit.
  • Atmel SAM3 / 4 Boards:
  • SAM3X / Arduino Weens: Fix tikfout in sam3x_periphclks.h; voeg skuifklokpuls definisies header lêer board.h. Van Fabien Comte.
  • SAM3 RTT: Slegs SAM4 gesin het RTTDIS bietjie in die MR register. SourceForge fout # 33 uit Fabien Comte.
  • C Biblioteek:
  • sscanf (): NuttX LIBC probeer om te raai hoeveel karakters ontleed, onttrek hulle in 'n buffer, dan hardloop strtol () op daardie buffer. Dit raaiskoot was dikwels verkeerd. 'N beter benadering sou wees om strtol (direk bel) op die invoer van data, die gebruik van die endptr terugkeer waarde te bepaal hoeveel karakters oor te slaan na die ontleding van. Van Kosma Moczek.
  • Math Library:. Reggemaak atan2 implementering van Denis Arnst
  • Floating Point Uitgawe: Verander na lib_dtoa () presisie fout regmaak van sleep nulpunte. Van Bob Doiron.
  • Aansoeke:
  • Fix NSH PS opdrag:. As daar geen argumente, kan dit vullis vir argument lys druk
  • Configuration / Bou System:
  • Null Voorbeeld: Need te sluit config.h dit order weet as dit is of is nie 'n kern bou. Hierdie probleem bestaan ​​steeds in verskeie ander lêer wat nodig belangrikste is om te definieer ().

Wat is nuut in weergawe 7.8:

  • Kenmerke: Bykomende nuwe funksies en uitgebreide funksionaliteit:
  • Core OS:
  • Waghond Timer Toekenning: (1) As ons uit pre-toegeken waghond keer hardloop, die logika nou bykomende timers van die hoop te ken. 'N reserwe van pre-toegeken waghond timers gehandhaaf sodat daar altyd sal wees timers beskikbaar vir onderbreking hanteerders. (2) Bygevoeg ondersteuning vir staties toegeken waghond timer
  • Address Omgewing Support: (2) Nuwe OS APIs diens in alle platform-spesifieke konteks skakel logika (up_block_task (), up_unblock_task (), _exit (), en ander)
  • .
  • kern Bou Support: (1) Die MPU gebaseer & quot; kern bou & quot; herdoop tot 'n beskermde bou (CONFIG_BUILD_PROTECTED); ondersteuning vir die nuwe MMU-gebaseerde & quot; kern bou & quot; (CONFIG_BUILD_KERNEL), (2) Die stelsel oproep biblioteek kan nou gebou met CONFIG_NUTTX_KERNEL. Nuwe seleksie *:. CONFIG_LIB_SYSCALL
  • System Startup: Voeg opset opsies om die stelsel van 'n program op 'n lêer stelsel (teenoor 'n adres in die geheue) begin
  • .
  • Startup parameteroordrag: Daar word gebruik om twee maniere om parameters te slaag om nuwe take, afhangende van die opset: Óf (1) argv [] as geskep as 'n skikking met elke string strdup'ed. Of (2) argv [] skikking en snare is geskep op die stapel voor die nuwe taak begin. Nou, daar is net een manier, manier (2). Way (1) kan wees 'n bietjie meer kompak, maar dit is nie die moeite werd dra die kompleksiteit van twee verskillende maniere om dieselfde ding.
  • Raad inisialisering: vermoë Voeg by aanvanklike raad inisialisering te voer op 'n aparte draad werker. Dit is nodig, want daar is baie gevalle waar inisialisering logika nie kan voer op die begin-up / IDLE draad. Dit is omdat die sluit of te wag word nie toegelaat op die IDLE draad.
  • Memory Management:
  • Granule allocator: (1) Voeg 'n nuwe funksie om un-toedeelbare streke behou in die korrel hoop. (2) koppelvlakke Voeg by-un initializing n korrel allocator.
  • ondersteun
  • Page allocator: Voeg 'n eenvoudige fisiese bladsy allocator gebaseer op die bestaande NuttX korrel allocator. Ek is nie seker of die korrel allocator is voldoende deterministiese vir 'n lang reeks gebruik, maar dit raak kry 'n bladsy allocator in plek vir baie vinnig toets.
  • Verwyder CONFIG_MM_MULTIHEAP: Nie-multiheap werking is nie meer ondersteun
  • .
  • sbrk (). Sbrk () is nou ondersteun in die kern bou om dinamiese grootte, per-proses hope toelaat
  • Per-proses hope ruimte aan die begin van die proses data ruimte is nou gereserveer vir gebruiker hoop bestuur strukture. In die kern bou modus word hierdie hoop strukture verdeel tussen die kern en die gebruik kode om die gebruiker-spesifieke data toe te ken.
  • User Heap Management: Wanneer 'n bevoorregte draad uitgange, moet ons die kern allocator gratis geheue gebruik; wanneer 'n onbevoorregte draad uitgange, ons het nie om iets te doen ... hoop geheue skoongemaak word wanneer die adres omgewing afgebreek.
  • Inter-Process gedeelde geheue Support: (1) die implementering en dokumentasie Voeg vir shmget (), shmctl (), shmat (), en shmdt (). (2) Voeg stelsel stelsel oproepe na die gebruiker oproep hek ondersteun die gedeelde geheue koppelvlakke. (3) Voeg platform-spesifieke koppelvlak definisies wat nodig is om die gedeelde geheue funksie te ondersteun.
  • Virtual Page allocator: ondersteuning by vir 'n per-proses virtuele bladsy allocator. Dit is 'n nuwe lid van die task_group_s struktuur. Die allocator moet geïnisialiseer word wanneer 'n nuwe gebruiker proses begin en uninitialize wanneer die proses groep is uiteindelik vernietig. Dit word deur shmat () en shmdt () om die virtuele adres op wat die gedeelde fisiese geheue kaart te kies.
  • File Systems / Blok Bestuurders / MTD:
  • SMART FS: SMART FS en SMART FS procfs updates from Ken Pettit
  • .
  • MTD. Die MTD Lees lig / Skryf buffer laag blyk nou funksionele
  • Binary Formats:
  • Per-proses Heap. Logika Voeg by die per-proses gebruiker hoop inisialiseer wanneer elke gebruiker proses begin
  • Grafiese:
  • NxTerm: Verander al voorkomste van NxConsole om NxTerm
  • .
  • Netwerk:
  • PHY onderbreek: (1) standaardiseren n PHY onderbreking beslaglegging koppelvlak. (2) ondersteuning Voeg 'n ioctl wat gebruik kan word om 'n aansoek in kennis stel wanneer daar 'n verandering in die netwerk status te kenne gegee word deur 'n PHY onderbreking.
  • Verbeterde Stuur logika: In die verlede, die eerste pakkie te stuur na 'n nuwe netwerk peer sou versuim; sou daar geen inskrywing in die ARP tafel vir die peer en so 'n ARP versoek kan daardie eerste pakkie te vervang. Nou as 'n opsie as CONFIG_NET_ARP_SEND = y, al stuur logika sal (1) te kyk of die peer MAC adres is in die ARP tafel, en indien nie, (2) te stuur ARP versoeke tyd tot die kartering te kry en (3) wag vir die ARP reaksie. Dan (4) wanneer die ARP reaksie word dan ontvang die werklike stuur logika sal geïnisieer. So is daar 'n vertraging met die eerste pakkie gestuur het om 'n nuwe peer mag wees nie, maar die pakkie moet nie verlore
  • Host Simulasie:
  • SPI flash bestuurder. Nagevolg SPI FLASH bestuurder vir die sim teiken van Ken Pettit
  • Intel x86:
  • Default Host: Die standaard host is nou x86_64 en die opsie -m32 sal outomaties gekies vir simulasie bou
  • .
  • Intel 8051 Family:
  • 8051 verwyder: Verwyder al die ondersteuning vir die 8051 familie argitektuur uit die NuttX bron boom. Die uitgedien kode saam met die verwydering pleister kan nou gevind word by misc / uitgedien /. Hierdie kode is verwyder omdat (1) alhoewel sommige funksies is gedemonstreer, ek is nie bewus van enige werklik suksesvol hawens van NuttX enige 8051, en (2) die 8051, met sy hardeware stapel, dwing beperkings en komplikasies na die ander argitekture en maak groei en ontwikkeling van NuttX meer kompleks.
  • Zilog ZNeo Boards:
  • configs / 16z: Ondersteuning vir hierdie bord is verwyder uit die NuttX bron boom (maar nog steeds kan gevind word in die misc / uitgedien gids). Hierdie poort is nie gereed vir gebruik, maar kan op 'n sekere punt in die toekoms terug te keer na die NuttX boom.
  • Atmel SAM3 / 4 Boards:
  • SAM4E-EK:. Voeg (1) 'n ten volle funksionele ILI9341 gebaseer LCD bestuurder en (2) 'n ten volle funksionele NxWM opset
  • ARMv7-A:
  • Address omgewings: ondersteuning by vir toepassing adres omgewings met behulp van die Cortex-A MMU. Implementeer gestandaardiseerde platform-spesifieke interfaces van NuttX adres omgewing ondersteuning.
  • Cache Bedryf: Implementeer gestandaardiseerde, platform-spesifieke kas bedrywighede. Dit is genoem uit die ELF loader om D-kas te spoel en ongeldig I-kas na 'n elf module het in die geheue gelaai. Met hierdie verandering, korrek ELF modules werk op die SAMA5 / Cortex-A platform.
  • kern Bou: (1) die implementering van die stelsel oproep hek Voeg. (2) Voeg CRT0 begin-up lêer wat gekoppel kan word afsonderlik gebou gebruiker programme. (3) ondersteuning te bied vir die lewering van die gebruik-seine in die kern bou. (4) logika Voeg by die per-proses gebruiker hoop inisialiseer wanneer elke gebruiker proses begin. (5) ARMv7-A hantering van uitsonderings moet 'n bietjie anders werk as ons ondersteun gebruiker af prosesse. Dit is omdat R13 en R14 verskillend blaai tussen die gebruiker en SVC af.
  • gedeelde geheue Support: (1) logika nodig om te hanteer remapping van gedeelde geheue op konteks skakelaars Voeg. (2) Brei virtuele / fisiese adres doelskoppe adresse in gedeelde geheue te sluit. (3) die implementering van die platform spesifieke gedeelde geheue ondersteuning Voeg.
  • Atmel SAMA5D Drivers:
  • Network ioctls. Implementeer alle netwerk ioctls, insluitend die nuwe ioctl opstel PHY gebeurtenis kennisgewings
  • Address Doelskoppe:. In kern bou met adres omgewing, moet logika gebruiker virtuele adresse fisiese adresse karteer, en omgekeerd
  • Atmel SAMA5D Boards:
  • SAMA5D3 Xplained, SAMA5D3-EK, en EK SAMA5D4-: Skakel bestaande direksie spesifieke PHY onderbreking koppelvlakke na nuut gedefinieerde standaard koppelvlak te gebruik
  • .
  • SAMA5D4-EK: Voeg 'n opset vir die toets van die kern bou opset. Daar is konfigurasies te boot óf uit 'n SD kaart of van en in-geheue ROMFS lêer stelsel.
  • SAMA5D4-EK: Voeg dokumentasie / ondersteuning vir Ds E. raad
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Gewysig om die verandering aan die netwerk ioctl handtekening veranderinge te ondersteun. Voeg ook ondersteuning vir nuwe ioctl opstel PHY gebeurtenis kennisgewings.
  • STMicro STM32 Boards:
  • STM32F4Discovery met STM32F4DIS-BB: Voeg 'n netwerk van NSH verstellings vir die bord STM32F4Discovery met die STM32F4DIS-BB basis raad geïnstalleer. Sluit ondersteuning vir die microSD kaart slot op die STM32F4DIS-BB basis raad.
  • TI Tiva Drivers:
  • TI CC3200: ondersteuning by vir die TI CC3200. Van Jim Ewing.
  • TI Tiva Boards:
  • TI CC3200 Launchpad: ondersteuning by vir die TI CC3200 Launchpad. Van Jim Ewing.
  • C Biblioteek:
  • poll (). Re-geïmplementeer poll () vertraging met behulp sem_timedwait ()
  • Configuration / Bou System:
  • Uitvoer Target: In die kern of beskerm bou, (1) slegs die gebruiker biblioteke moet uitgevoer word, (2) is nie van interne header lêers kopieer of bou skrifte as dit 'n kern of beskerm bou, en (3) behoeftes om bundel die gebruiker C startup lêer (crt0), nie die kern hoof voorwerp vir die kern en beskerm bou.
  • Program CFLAGS: logika wat ons sal toelaat om gebruikers biblioteke met verskillende CFLAGS as kern-kode bou Voeg. Dit is nodig, want ons moet die -fno-algemene opsie wanneer die bou van ELF kode om SHN_COMMON verskuiwings te voorkom.
  • Aansoeke:
  • NSH: Brei die NSH netwerk inisialisering logika. Daar is nou 'n opsie wat 'n netwerk monitor draad dat die toestand van die skakel sal monitor sal skep. Wanneer die skakel ondergaan, sal die kode probeer om grasieus sit die Ethernet bestuurder in 'n down staat; Wanneer die skakel kom terug, sal die kode probeer om die netwerk terug te bring.
  • ELF. Voorbeeld: Die ELF toets / voorbeeld is uitgebrei sodat die individuele ELF toets programme kan koppel teen die SYSCALL biblioteek (indien dit beskikbaar is) of teen die C-biblioteek uit te skakel of te verminder die behoefte aan simbool tafels
  • NxTerm: Verander al voorkomste van NxConsole om NxTerm
  • .
  • MTDRWB. Voorbeeld: Voeg 'n voorbeeld vir MTD R / W buffering toets
  • OS Toets Voorbeeld: Voeg 'n triviale toets sem_timedwait ()
  • .









































  • Tools:




  • Tools:
























































































  • Tools:


























  • bugfixes:






































































































Soortgelyke sagteware

SphinUX OS
SphinUX OS

20 Feb 15

Se7en Sins
Se7en Sins

14 Apr 15

Boxmax Ds
Boxmax Ds

14 Apr 15

Kommentaar te NuttX

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!