A ARM possui, hoje, uma plataforma de desenvolvimento de aplicações embarcadas voltada (mas não limitada apenas) para produtos de Internet das Coisas, IoT. A essa solução é dado o nome Mbed. Ela é composta por um compilador (on-line ou off-line), um sistema operacional de tempo real (Mbed OS), serviços na nuvem e ferramentas para o desenvolvedor criar projetos. E agora a ARM acaba de anunciar que esta trabalhando (ainda não foi lançado) num outro sistema operacional para IoT, o ARM Mbed Linux OS.
Dificuldades atuais no desenvolvimento de projetos
Atualmente a ARM possui na sua prateleira de produtos o Mbed OS, um sistema operacional de tempo real (RTOS) open-source desenvolvido especificamente e unicamente para microcontroladores baseados na família de cores ARM Cortex-M. Esse RTOS inclui características muito importantes para se criar um projeto no segmento de IoT, oferecendo segurança (criptografia), conectividade (Wi-Fi, Zigbee, Bluetooth, 6LoWPAN, Thread, etc) e drivers para diversos periféricos/sensores.
No entanto, ele foi desenvolvido para sistemas que possuem restrições de processamento e armazenamento. Além disso, projetos que apresentam tais características tendem a percorrer um caminho complicado (às vezes doloroso) desde sua concepção até sua implantação em campo. Podemos citar então algumas dificuldades.
Ambientes de execução de código
Microcontroladores da família ARM Cortex-M não oferecem características de segurança intrínsecas ao core, podendo contar somente com engines adicionados por fabricantes de chips, como hardware dedicado para criptografia, tampering estático e dinâmico, e outros. Exceções à regra, agora, são os cores Cortex-M35P, Cortex-M33 e Cortex-M23. Esses, por serem baseados na arquitetura Armv8-M, possuem suporte no core à tecnologia ARM TrustZone, o que oferece uma isolação forçada via hardware entre recursos “trusted” e “untrusted” (numa tradução direta, “confiáveis” e “não confiáveis”, respectivamente).
Com isso precisa-se criar níveis de segurança via software para atender requisitos de segurança específicos, o que pode gerar overhead. Além disso, sem a implementação de alguma unidade de gerenciamento de memória, como uma MMU (Memory Management Unit), a qual é presente em sistemas com microprocessadores, tem que ser muito bem controlado o acesso de aplicações em áreas não permitidas (novamente, via software).
Manutenibilidade
Um sistema baseado em microcontrolador tende a ter uma solução muito customizada e controlada, podendo oferecer dificuldades na sua implantação e manutenção em campo. Vamos tomar como exemplo a implementação de atualização remota. A atualização de um dispositivo com recursos limitados precisa ser muito bem gerenciada a nível de software (o binário de atualização provavelmente deve conter a aplicação completa, nao sendo modular) e hardware (com recursos limitados).
Time-To-Market
Existe a chance de uma stack de software em específico ser necessária para um projeto e ela não existir implementada para o microcontrolador utilizado, o que demanda um esforço adicional para a equipe de engenharia.
Esses são só alguns exemplos de conceitos não-funcionais que devem ser considerados num projeto. Mas como a solução com Linux resolve isso?
Por que usar o ARM Mbed Linux OS?
Dado que o custo de microprocessadores baseados no core ARM-Cortex A tem diminuído, tem-se considerado o uso da solução Mbed OS neles. Mas para isso é necessário criar uma solução que consiga tirar proveito de suas características. Foi aí que nasceu o Mbed Linux OS!
O uso em conjunto de um microprocessador poderoso e um sistema operacional de uso genérico proporciona o aumento de carga de um dispositivo IoT, fazendo com que ele possa atuar de forma mais autônoma e com menos demanda de conexão com dispositivos superiores na hierarquia, como gateways e serviços na nuvem.
Esse novo sistema operacional vai usar o kernel Linux como base e ser distribuído na forma de receitas do Yocto Project. Nasce com uma integração muito forte com Pelion IoT Platform, simplificando o gerenciamento dos dispositivos IoT.
Como este é um pré-anúncio oficial, caso queira acompanhar o desenvolvimento do Arm Mbed Linux OS inscreva-se aqui. Vai ser liberada uma versão preview para desenvolvedores até o final deste ano e espera-se que na primavera do próximo ano, 2019, seja liberada a primeira versão pública.
O que acharam dessa nova solução da ARM? Acham que terá futuro? Deixem seus comentários no post.








Parece muito interessante principalmente pela integração com o Pelion
Ótimo artigo Henrique. Se tiver suporte para tempo real nativo vai ser muito bom! Mas algo do nível do Xenomai.