18
11 April 2016 An Incubator Project in the Apache So8ware Founda<on h=p://mynewt.apache.org/

h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

11April2016

AnIncubatorProjectintheApacheSo8wareFounda<on

h=p://mynewt.apache.org/

Page 2: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

OpenSourceOSforConstrainedIoT–  MCU/Hardwareindependent–  ARMCortex-M*,AVR,MIPS,more

h=p://mynewt.apache.org/

ApacheMynewt

Page 3: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

•  CTO/Co-Founder,Run<me–  h=p://www.run<me.io/

•  20+YearsExperienceinOpenSource

•  10+YearsExperienceinEmbedded&WirelessNetworking–  Designed,developed,deployedIndustrialIoTmeshnetworks–  Morethan20M+connecteddevices

AboutMe:SterlingHughes

Page 4: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

FirstreleaseofasuccessfulIoTproduct…

…nowmakethatrepeatable,please.

ProblemandContext

Page 5: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

•  Community-drivenOpenSource

•  BuildandPackageManagementintegraltoOS

•  Directandobvioussolu<onforaproblem

•  ScalabilitydrivenbysimplicitySecureBootloader,FFS

Kernel/RTOS HAL

Stats+Logging

Console+Shell

Config+Upgrade

BLEThreadWi-Fi

NewtMgr HTTP CoAP

Security

AnEmbeddedOSforMCUs

Moore’sLawHitMicrocontrollers

Page 6: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

IPProviders

MCUVendors

CloudProviders

End-Users

•  LiberalApache2.0license•  Individuals,notCorpora<ons•  Meritocracy•  StronglicensingandIPpolicies•  Longhistoryofworkingwithlarge

organiza<ons:IBM,Oracle,Pivotal/EMC

•  Manyyearsexperiencemanaginglarge,complexprojects:ApacheWebServer,Hadoop,Cassandra,Kaba,Subversion,etc.

WhytheASF?

ACommunityEffort

Community-drivenOpenSource:BestWaytoMaintainHealthyUserEcosystem

Page 7: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

(today)•  Bluetoothconnectedproducts

•  Medical:everything•  Consumer/Enterprise:locks,lights•  Industrial

•  Makers•  Home•  HardwareLabs•  Clothing

(tomorrow)•  IndustrialWirelessSensorNetworks•  Wi-FiProducts•  WhoKnows?

•  PowerOp<miza<on

•  Meshnetworking

•  Security•  SensorAlgorithms

•  ControlSystems

ScaleMakesProblemsInteres<ng

ApacheMynewtUsers

Page 8: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

#commits

•  280,000linesofcode

•  Ini<alsupportforSimulator,NordicNRF51/52,STM32F3/4andArduino

•  Ac<vecontributors,WeWantYou!ü  h=p://mynewt.apache.org/

ProjectSta<s<cs

Page 9: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

Makeiteasytofind,install3rdpartylibraries

Maintainandre-usepackagesacrossmul<ple

products

Managedebugandproduc<onbuildsetups

Goals

Efficiency:useonlywhatyouneed

•  Everythingisapackage.Eachpackagedescribesitsdependenciestotherestoftheworld

•  Acollec<onofpackagesiscalledanapplica<on

•  Thereareafewspecialpackages:BSPandProject.Projectcontainsmain()andBSPdefineslinkerscriptandhardwarelayout

•  TargetsareusedtocombineprojectsandBSP

•  Packagescanbedistributed,upgradedandinstalledremotely

Descrip<on

BuildandPackageManagement

Composeacrossmul<plerepos

Page 10: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

apache-mynewt-coreOSHALBSP

ProjectStructure(comingsoon)“core”brokenintoappropriatesub-projects

apache-mynewt-ble apache-mynewt-nffs apache-mynewt-sys

ASFInfrastructure:Governance,LicensingRigor

github-sensor-apigithub-bsp1

github-bsp2

github-hal-implgithub-app1

github-network-impl

Github

•  ASFgovernancestructure(PMCs)correspondswithsub-packagestructure•  ASFrepositoriesclean,Apache2.0license•  Userscanassembleprojectssourcedfrommul<plerepos

Composabilityacrossmul<plereposprovidesflexibility

3rdPartyRepo(s)

github-app2

Page 11: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

ProvidequalitydriversformajorMCUplarorms

Designforcross-plarorm:well-definedAPIsforHAL,BSPand

drivers

Goals

Makeiteasytoaddboardspecificdefini<ons

•  BSPdefini<onisprovidedin<app>/hw/bsp

•  HALdefini<onsareinhw/halandcontainuniform,cross-plarormAPIs

•  MCUdefini<onsareinhw/mcuandprovideimplementa<onsforvariousMCUs•  Hierarchyallowscode-reusewithin

MCUfamilies

•  BSPsforcommondevkitsareavailableaspackages(e.g.,NordicnRF51/2DK)

•  BSPsdependonMCUs•  BSP+MCUprovidesimplementa<onforHAL

APIs

Descrip<on

BSPandHAL

ChipVendors:WeWantYou!

Page 12: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

•  Pre-emp<ve,mul<-taskingRTOS•  Strict,priority-basedscheduling•  Upto253differentprioritylevels

•  Ticklesskernel

•  Powermanagement•  Resourceu<liza<ontracking

•  Built-intasks:•  Idle•  Sanity

Kernel

Page 13: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

•  EventQueuesprovideamechanismfor“mostlysleeping”asynchronoustasks

•  Wake-upon:•  Messagefromanothertask•  Timer•  I/Ostatechange•  Incomingpacket•  Watchdog

•  Performopera<ons:•  Sendanalert•  Respondtoarequest•  Scheduleawakeup

•  Gobacktosleep

EnergyEfficientEventModel

Page 14: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

Bootloader BootVars

Image2

Image1

NFFS(User)

CB(User)

•  BootloadercanbelocatedinROMorFlash•  Op<onsforinternalandexternalflashes

•  Performsintegritycheckandswapsimages•  ImagescontainSHA-256hashandRSAsignature•  NFFSop<onal

•  Providesalog-structuredflashfilesystemdesignedforsmallflashes•  CB(CircularBuffer)op<onal

•  Providesimplementa<onofflashcircularbuffer

EnergyEfficientEventModel

Page 15: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

WhatWe’reProtecHng HowWeProtectIt

Bootloader •  FirststagebootloadercanoperatefromROMandverifysignatureofsecondstagebootloader

Images •  AllimageshaveSHA-256ofimagecontents•  ImagessupportsigningwithECCorRSA2048bit

signatures•  Secondstagebootloadercanverifyimagesignature

NetworkInterfaces •  FullsupportforBLE4.2securityat1.0release,includinglink-layerandapp-layer

SystemSecurity

Page 16: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

•  Inaddi<ontovariousMCUports:OS,HAL,FSandthemajorityofpackagescanrunonMac,Linux

•  Developyourcodeonthehostandthenporttotherealhardware

•  Unittestframeworkisincorporatedtoallofthepackages:abilitytorununittestsonsimulatedenvironmentandrealhardware

•  OSandlibrariesarefullyregressiontestedtoensureAPIcompa<bilitybetweenreleases

SimulatorandTestFramework

Page 17: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

V0.8

April2016

V0.9

May2016

V0.10

June2016

V0.11

July2016

V1.0-b1

Aug2016

V1.0-GA

Oct2016

Highlights

v0.8: Firstrelease,BLE4.2,FFS,Kernel,Console,Shell,SecureBootv0.9: ExpandedHWsupportandHALv0.10: Wi-Fi&IPsupportv0.11: FullBluetoothSupport/Qualifica<onv1.0(GA)APIcompa<bility,FullRegressionTes<ng

ApacheMynewtRoadmap

Page 18: h=p://mynewt.apache.org/ · 2017-12-14 · V0.8 April 2016 V0.9 May 2016 V0.10 June 2016 V0.11 July 2016 V1.0-b1 Aug 2016 V1.0-GA Oct 2016 Highlights v0.8: First release, BLE 4.2,

THANKYOU

h=p://mynewt.apache.org/

MailingList:[email protected]

IRC:#mynewtonfreenode