Existem centenas de placas compatíveis com o MS, e podem ser vistas
aqui.
Eu escolhi usar a FRDM-KL25Z, mas o desenvolvimento pode ser replicado para outras placas. É possível utilizar o MS para um projeto próprio, sem utilizar os kits de desenvolvimento.
Para que a placa seja identificada pelo MS, é preciso que o firmware de bootloader seja atualizado.
Atualizando pelo link no site do mbed o MS indicava um erro de "firmware desatualizado". Mas parece que funciona
OpenSDA
SDA é uma sigla para Serial and Debug Adapter
OpenSDA
trata-se de um conjunto de hardware e firmware da NXP que serve como auxiliar para o desenvolvimento em um microcontrolador alvo, presente em kits de desenvolvimento e gravadores com microcontroladores da ARM.
O bootloader, rodando no microcontrolador auxiliar, serve como interface entre o computador e o
microcontroaldor principal. Adapta o protocolo USB, usado para programar ou debugar o microcontrolador principal, e para estabelecer uma comunicação Serial (escrita e leitura). Além disso, ele cria um diretório virtual, facilitando o processo de gravação (flash).
O diagrama de blocos dessa interface
A versão mais recente desse bootloader, DAPLink, equivale a versão OpenSDAv2.2.
A versão default (V1) é a P&EMicro.
Tabela comparativa entre as versões do OpenSDA
How to
Depois de ler algumas coisas na
documentação do Zephyr,
atualizei para a versão mais recente do OpenSDA DAPLink Firmware, cujo arquivo pode ser baixado diretamente aqui.
O binário para voltar a versão do firmware OpenSDA PEMicro pode ser baixado
aqui.
O processo de atualização do firmware da placa é o mesmo para todos os firmwares.
Modo Bootloader
A placa deve estar no modo bootloader, para isso basta ligar a placa enquanto segura o botão de reset. Ao soltar, o windows deve identificar a placa como BOOTLOADER.
Carregar o firmware
Arrastar o arquivo .bin/.hex ou salvá-lo diretamente em BOOTLOADER.
Desligar e ligar a placa normalmente
O windows deve identicar a placa como DAPLINK, para o caso do OpenSDA DAPLink Firmware
E como FRDM-KL25Z, no caso do PEMicro
Problemas
Rodando o DAPLink, o compilador online da mbed funcionou sem problemas, mas o CodeWarrior não.
Dentro das configurações de Debug do CodeWarrior há apenas as opções: J-Link, P&E ARM e GDI generic, e por isso o software não consegue identificar automatiamente a placa pela USB.
Uma terceira opção é usar o J-Link
OpenSDA
da SEGGER. Não testado!
Desenvolvimento
Hardware
Firmware
O projeto que escolhi como base foi o exemplo mbed-os-example-blinky-baremetal
O Hello World dessa biblioteca usa uma versão descontinuada do MbedOS (OS 2), e por isso não é compatível com o MS, só com online e o CLI.
Ao importar o exemplo ao Mbed Studio, através de File > Import Program..., há um aviso de que o projeto precisa ser migrado para os OS 5 ou 6.
Achei mais simples escrever as mudanças no projeto usando OS 6 do que adatptar o Hello World.
New Example (using OS 6.2)
Definição dos pinos a serem usados para se comunicar com o módulo. As possíveis nomenclaturas podem ser vistas em PinNames.h (escolher a placa target antes).