Apache Mynewt
Utvecklare | Apache Software Foundation , community |
---|---|
Skrivet i |
C (Mynewt OS) Go (Newt Tool) |
Arbetstillstånd | Stabil |
Källmodell | Öppen källa |
Senaste släppningen | 1.10.0 / 6 maj 2022 |
Förvar | Mynewt Repository |
Plattformar | Cortex-M0 , Cortex-M3 , Cortex-M4 , Cortex-M7 , MIPS32 , Microchip PIC32 , RISC-V |
Licens | Apache-licens 2.0 |
Officiell hemsida |
Apache Mynewt är ett modulärt realtidsoperativsystem för anslutna Internet of things (IoT)-enheter som måste fungera under långa tider under ström-, minnes- och lagringsbegränsningar. Det är gratis programvara med öppen källkod som inkuberas under Apache Software Foundation , med källkod distribuerad under Apache License 2.0 , en tillåten licens som främjar kommersiell användning av programvara med öppen källkod .
Översikt
Apache Mynewt är ett realtidsoperativsystem med en rik uppsättning bibliotek avsedda att göra prototyper, driftsättning och hantering av 32-bitars mikrokontrollerbaserade IoT -enheter enkelt . Den är mycket komponerbar för att tillåta att bygga inbäddade systemapplikationer (t.ex. lås, medicinsk utrustning, industriell IoT) över olika typer av mikrokontroller. Namnet Mynewt är ordspel på det engelska ordet minute , vilket betyder mycket liten: kärnan är bara 6 KB stor.
Operativsystemet är designat för anslutning och kommer med en fullständig implementering av Bluetooth Low Energy 4.2-stacken. Med tillägget av BLE (stöder alla Bluetooth 4.2-kompatibla säkerhetsfunktioner förutom integritet) och olika verktyg såsom standardfilsystemet, konsolen, skalet, loggar, statistik, etc., är bildstorleken cirka 96 KB för Nordic nRF51822 Bluetooth SoC . Detta storleksmått utesluter starthanterarens image.
Kärnfunktioner
Kärnoperativsystemet stöder: [3]
- Förebyggande multitrådning
- Tickless prioritetsbaserad schemaläggning
- Programmerbara timers
- system tid
- Semaforer
- Mutexes
- Evenemangsköer _
- Minneshantering (allokering): dynamisk (heap) och pool
- Flerstegs programvara watchdog timer
- Minne eller databuffertar , för att hålla paketdata när de rör sig upp och ner i nätverksprotokollstacken
Andra funktioner och verktyg inkluderar:
- Hårdvaruabstraktionslager med stöd för CPU I2C ( - tid , analog-till-digital-omvandlare (ADC), digital-till-analog-omvandlare DAC), allmän ingång/utgång (GPIO), Inter-Integrated Circuit ( ), puls -breddmodulering (PWM), seriell port , Serial Peripheral Interface Bus (SPI), universell asynkron mottagare/sändare (UART).
- Newtron flash-filsystem (nffs) med minimal RAM-användning och tillförlitlighetsfunktioner
- Filsystemabstraktion för att tillåta klientkod att välja alternativa filsystem
- Konsolåtkomst och skalpaket
- Säker starthanterare och bildorganisator (hanterare) som inkluderar bildintegritetsverifiering med SHA-256 och valfri digital signaturverifiering av bilder innan de körs
- Testa verktyg för att bygga regressionstestning
- Statistik och loggar för alla större paket
- JavaScript Object Notation ( JSON ) kodare och avkodarbibliotek
- Lua tolk
Bluetooth lågenergi
Den första nätverksstacken som finns i Mynewt är Bluetooth lågenergi och kallas NimBLE. Den överensstämmer med Bluetooth Core Specification 4.2.
NimBLE inkluderar både värd- och kontrollkomponenter. Tillgång till styrenhetens källkod gör BLE-prestandan mycket konfigurerbar. Till exempel kan BLE-genomströmningen justeras genom att ändra anslutningsintervallen, datapaketstorleken, paketköstorleken etc. Ett användningsfall som kräver ett stort antal samtidiga anslutningar kan på liknande sätt konfigureras, förutsatt att det finns tillräckligt med RAM tilldelat. Exempel på applikationer som visar hur man använder tillgängliga tjänster ingår i paketet.
Brädor som stöds
Operativsystemet är designat för plattformsoberoende användning i inbyggda system (enheter ) och mikrokontroller. Det inkluderar styrelsestödspaket för följande, från och med mars 2017:
- nRF52832 Bluetooth SoC från Nordic Semiconductor
- nRF51822 /nRF51422 Bluetooth SoC från Nordic Semiconductor
- STM32F3DISCOVERY med STM32 F3xx-serien Cortex-M4 från ST
- STM32-E407 för STM32F407ZGT6 Cortex M4 från ST
- Arduino Zero och Zero Pro
- Arduino M0 Pro med ATSAMD21G18 Cortex M0
- Arduino 101 , endast Bluetooth-kontroller
- Arduino Primo , Bluetooth-kontroller och värd
Pakethantering
Projektet inkluderar Newt Tool som är ett kommandoradsgränssnitt (CLI) baserat smart källpakethanterarsystem för utveckling av inbyggda system. Det tillåter också att komponera builds med specificerade paket och kompilatoralternativ, generera bilder och deras digitala signaturer och slutligen ladda ner och felsöka firmware på olika mål.