e propriedade intelectual fortes Meritocracia Contribuidores controlam a direção do projeto Histórico de trabalho com grandes organizações: IBM, Pivotal/EMC, Microsoft. Longa experiência gerenciamento projetos grande e complexos (Servidor Web Apache, Hadoop, Subversion, etc)
Driver Interface Multi-tarefa preemptiva Escalonamento baseado em prioridade Até 253 níveis de prioridade Gerenciamento de buffers unificado Estatísticas e logs de uso Temporizadores de alta resolução
para vários dispositivos de HW padrão em microcontroladores Cada BSP precisa implementar todas interfaces para ser “mergeável” Não inclui alguns dispositivos mais complexos com ENET, USB, e dispositivos externos a MCU
não precisam estar na árvore do projeto Arduino Zero: https://github.com/runtimeco/mynewt_arduino_zero STM32F3-Discovery: https://github.com/runtimeco/mynewt_stm32f3
atualmente MCUs da Nordic (nrf5x) Compatível com BlueZ (Linux) Bate outros em benchmarks (ou talvez não porque isso muda toda semana!) Bluetooth 5 em breve Em processo de certificação
foi desenvolvido especialmente para o mynewt Objetivos eram: utilização minimizada de RAM e confiabilidade Roda tanto na flash da MCU como em chips de Flash externa (SPI) Também suporta FAT em MMC (teoricamente em outros dispositivos também…) FCB (Buffer Circular em Flash)
build, test, run, debug... Desenvolvida em go, especificamente para gerenciamento do Mynewt (alternativa a Makefiles, etc) Configurada no bsp.yml Cada pacote pode estar em um repositório diferente (estilo pip em Python, npm/yarn no Node, etc)
um BSP (arquitetura, scripts, linkerscript, flash_map) compiler.yml : configurações de compilação para uma arquitetura (toolchain, flags, etc) target.yml : configuração de um fw (aplicação, BSP, syscfgs) repository.yml : raiz de qualquer repositório (versões)
uart0 at /dev/ttys005 hal_gpio set pin 1 to 0 $ newt run my_blinky_sim ... (gdb) c uart0 at /dev/ttys005 hal_gpio set pin 1 to 0 No Linux ou macOS com binário assinado também é possível simplesmente (abre o gdb):
create target meu_app Target targets/meu_app successfully created... $ newt build meu_app Building target targets/meu_app Error: Target does not specify a BSP package (target.bsp) $ newt target set meu_app bsp=bsp=hw/bsp/frdm-k64f Target targets/meu_app successfully set target.bsp to hw/bsp/frdm- k64f Dentro de um diretório clone do mynewt…
de logs, estatísticas, config Roda em cima de serial, BLE, OCI? Simples de adicionar a qualquer aplicação! A ferramenta “newtmgr” também foi desenvolvida em go