Hello World com o Zephyr para a placa NXP FRDM-K64F

Uma forma fácil de transferir arquivos de seu computador para a placa NXP FRDM-64F é utilizando o CMSIS-DAP da mbed. Basta apenas plugar a placa na USB de seu PC que ela é detectada como um Mass Storage Device (MSD) para transferência de arquivos e gravação de binário. Portanto, basta arrastar o binário desejado para dentro deste drive. Vamos utilizar esse sistema de bootloader rápido para transferir os arquivos gerados no computador para a placa e fazeremos um hello world com a UART do microcontrolador da NXP utilizando o Zephyr, RTOS da Linux Fundation e lançado a pouco.

 

Caso você tenha perdido os artigos sobre o Zephyr, Felipe Neves escreveu dois artigos sobre esse RTOS da Linux Foundation. No primeiro apresenta o novo RTOS da Linux Foundation, e no segundo ensina como instalar todos os pacotes para trabalhar no Ubuntu Linux. Para rodar esse tutorial é importante seguir todos os passos descritos no artigo anterior.

 

Artigo 1 - Zephyr, o RTOS para IoT desenvolvido pela Linux Foundation

Artigo 2 - Como instalar o Zephyr no Ubuntu 16.04

 

Primeiramente é interessante verificar se a placa possui o bootloader mais novo para usar o mbed. Para entrar no bootloader, seja no Windows ou Linux, basta seguir o procedimento a seguir (estamos usando o Ubuntu 16.04 para esse texto):

  • Desconecte a placa NXP FRDM-K64F de todos os cabos;
  • Pressione o botão de RESET;
  • Com o botão pressionado, conecte o cabo USB;
  • No Ubuntu deverá aparecer uma janela mostrando a seguinte pasta que acabou de ser montada: /media/<seu usuario>/BOOTLOADER;
  • Pode, então, liberar o botão de Reset.

 

Faça o download da versão mais nova do bootloader neste link. Hoje a versão mais nova disponível é a 0226_k20dx128_k64f_0x5000.bin.

 

Copie esse arquivo que acabou de baixar de seu PC pra dentro da placa, montada no seu PC. O LED D2 vai começar a piscar após a transferência. Quando terminar de piscar, aparecerá um drive chamado MBED em seu PC.

 

Quando conecto minha placa, depois do update, aparece uma pasta /media/thiago/MBED com dois arquivos, DETAILS.TXT e MBED.HTM. No Arquivo DETAILS.TXT posso checar qual a versão mais nova do MBED. No meu caso verifiquei o conteúdo desse arquivo:

 

 

Pronto. A placa está pronta para receber um binário com seu programinha feito pra FRDM-K64F.

 

 

Hello World usando a UART da FRDM-K64F e o Zephyr

 

Criei uma pasta chamada k64f_blink no meu diretório raiz e copiei todos os arquivos do hello world que rodamos no artigo anterior para essa placa. A ideia foi aproveitar toda a estrutura e não começar do zero.

 

 

Os seguintes arquivos e pastas vão ser copiados para esta pasta:

  • Makefile
  • prj.conf
  • prj.mdef
  • README.txt
  • outdir/
  • src/

 

Edite o arquivo main.c da pasta para que ele imprima a palavra Hello World diversas vezes no terminal, pela uart do microcontrolador. Coloque também uma tarefa de sleep, para que o sistema operacional de tempo real não fique processsando essa tarefa sem parar e para que possamos ver os caracteres sendo impressos no terminal com uma cadência adequada. Edite o arquivo:

 

 

Salve o arquivo. Verifique se a libncurses esta instalada em seu PC:

 

 

Rode o comando de menuconfig:

 

 

Voce deverá ver uma tela mais ou menos como esta:

 

Hello World Zephyr: Menuconfig

 

Escolha e marque as seguintes opções:

 

 

Para as opções a seguir, deixe todas como a default, não altere nenhuma configuração inicial.

 

 

Saia e Salve as configurações.

 

Para compilar utilize os comandos:

 

 

Voce deverá ver:

 

 

 

 

Na pasta ~/k64f_blink/out-arm foi criado um arquivo zephyr.bin. Conecte a placa FRDM-K64F a uma USB do computador.

 

No meu PC, abriu uma janela com o endereço /media/thiago/MBED1.

 

Arraste o arquivo zephyr.bin para essa pasta. Após alguns segundos, o led D2 vai começar a piscar. Desconecte a placa da USB e a conecte novamente.

 

Rode o comando:

 

 

No meu PC obtive a seguinte mensagem:

 

 

A placa foi montada no endereco /dev/ttyACM0.

 

Use algum monitor serial para ver se deu certo o print na serial utilizando a placa NXP. Para isso, uma das opções é utilizar o minicom ou o putty. Eu usei o putty. Caso não tenha o putty em sua máquina, o instale com:

 

 

Para rodar, é necessário ser root.

 

 

Selecione a opção Serial.

 

Do lado esquerdo, selecione a opção Serial.

 

Em Serial line, coloque o nome de sua porta USB. Veja acima que no meu PC apareceu a porta serial como ttyACM0. Então coloquei:

  • Serial line to connect to /dev/ttyACM0
  • Speed = 115200.
  • Data bits 8
  • Stop bits 1
  • Parity None
  • Flow Control None

 

Volte no começo, em Session, e em saved sessions, escolha um nome, por exemplo, mbed e salve a sessão.

 

E então clique em open.

 

Você deverá conseguir ver o terminal serial sendo impresso a palavra Hello World.

 

Hello World Zephyr: Putty

 

Parabéns, funcionou!

 

Para as próximas vezes que utilizar o Putty, essa sessão já está salva e basta clicar na palavra que utilizou com o nome da sessão (no meu caso, mbed), clicar em load e clicar em open.

 

 

Agradecimentos

 

Gostaria de agradecer imensamente ao suporte de Felipe Neves para a construção deste post. Agradeço também a Eduardo Scherer pelo seu texto sobre a NXP FRDM-K64F que me ajudou e todas as dicas que ele me deu.

 

 

Referências

 

As principais referências foram mesmo o código do projeto Zephyr, o site do projeto Zephyr, o site da mbed e a lista de emails do Zephyr.

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Thiago Lima
Sou formado em Engenharia Elétrica na USP Sao Carlos, com mestrado em Engenharia Elétrica no Rochester Institute of Technology pelo CsF. Tenho 17 anos de experiência em projetos de circuitos eletrônicos. Escrevo regularmente para o Embarcados, adoro eventos sobre tecnologia, onde posso rever amigos e conhecer pessoas do ramo.

Deixe um comentário

avatar
 
  Notificações  
Notificar