Olá caro leitor, tudo bem? Aqui no blog do MakerHero existem vários artigos sobre as placas Freedom Board da empresa NXP Semiconductors. O objetivo desse artigo é apresentar a ferramenta Kinetis Design Studio (KDS) para auxiliar no desenvolvimento de projetos com essas placas.
Kinetis Design Studio (KDS)
O Kinetis Design Studio é uma IDE (Integrated Development Environment) um ambiente de desenvolvimento integrado gratuito para a família de microcontroladores Kinetis ARM Cortex-M, que permite a edição robusta, compilação e depuração de seus projetos. Essa IDE é baseada em software gratuito e de código aberto, incluindo Eclipse, GNU Compiler Collection (GCC), GNU Debugger (GDB) e outros.
Características:
- Eclipse Luna 4.4
- Sistemas Operacionais Host:
- Windows® 7/8/10 (32 e 64 bits)
- Linux® 64-bit Ubuntu (deb), RedHat / Centos 7 (rpm))
- Mac OS X (10.10 e 10.11) com suporte SEGGER J-Link
- Depurador do GDB com suporte para o seguinte hardware de interface de depuração:
- SEGGER J-Link (w/SEGGER GDB Server, Windows, Linux, Mac)
- Multilink da P&E (w/P&E GDB Server, Windows, Linux)
- CMSIS-DAP (w/OpenOCD GDB and OpenSDA embedded circuit,Windows, Linux)
- Depuração de Linha de Comando (CL) com GDB e OpenOCD TCL
- Suporte para plug-ins adicionais do Eclipse para download, incluindo reconhecimento de RTOS (incluindo MQX ™ RTOS e FreeRTOS)
- Assistente de criação de projetos; “bare metal”, Kinetis® v1.x SDK e v2 and Processor Expert® software projects
- Software Processor Expert com suporte para o Kinetis SDK v1.x
- Linguagens suportados: Assembly, C e C ++ (todos sem restrições de tamanho de código)
- Drivers de periféricos SDK do Kinetis e código de inicialização compatível com CMSIS
- Plugins do GNU Arm® Eclipse para projetos gerenciados do make
- Ferramentas GNU para toolchain e bibliotecas do Arm® Embedded Processors (launchpad)
- Registrador Integrado Eclipse CMSIS-SVD e Visualizador Periférico
- Aberta para qualquer plugins do Eclipse a partir do ecossistema Eclipse ou NXP® parceiros comunitários de apoio
- Suporte de dispositivo adicional é adicionado através das atualizações do Eclipse entregues com o Kinetis SDK
Criando um novo projeto no Kinetis Design Studio
Para quem ainda não tem muita familiaridade com a placa Freedom Board KL05Z, pode começar conferindo aqui um post onde o professor André Curvello explica muito bem suas características, funcionalidade e possíveis aplicações. Entendendo um pouco melhor sobre a placa, podemos então criar um projeto para ela!
O algoritmo para esse projeto será o clássico “Olá Mundo” para sistemas embarcado, que é o famoso “Pisca LED”. A FRDM-KL05Z possui um LED RGB, os pinos dos LEDs estão conectado nos seguintes pinos
- LED1 Vermelho – PTB8
- LED2 Verde – PTB9
- LED3 Azul – PTB10
Chega de “bla bla”, vamos por a mão na massa. Para iniciar um novo, clique em File -> New -> Kinetis SDK 1.x Project. Em seguida deve abrir a janela New Kinetis Project, no item Project name:, deve-se dar o nome ao projeto e seguida clique em Next.
O próximo item a ser configurado é o selecionar o microcontrolador. O KDS oferece opção de selecionar por placa ou por microcontrolador. No caso, a placa FRDM-KL05Z infelizmente não está presente. Por conta disso, devemos selecionar pelo microcontrolador. Como foi demonstrado no artigo de apresentação da FRDM-KL05Z, o microcontrolador alvo da placa é o MKL05Z32VFM4. Então clique em Processors -> Kinetis L -> MKL0x -> MKL05Z32xxx4. Em seguida clique em Next.
O próximo item da janela New Kinetis Project é para configurar as ferramenta de desenvolvimento. Nesta janela é possível se a biblioteca Kinetis SDK e Processor Expert. Para o nosso projeto de demonstração do Kinetis Designer Studio não vamos utilizar nenhum desses recursos. Para os próximos artigos pretendo explicar um pouco mais a respeito dessa ferramenta.
Portanto, no item Kinetis SDK selecione a opção None. E em seguida clique em Finish.
Ao final de todo esse processo temos um projeto básico, com as mínimas configurações para ter um projeto funcional: o algoritmo de startup (inicialização do microcontrolador) e a configuração do Clock.
Implementado o algoritmo Pisca LED:
#include "MKL05Z4.h" #define LED1_PIN 8 #define LED2_PIN 9 #define LED3_PIN 10 void delay(uint32_t tempo); int main(void) { SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK; // Habilita Clock para GPIOB /* Inicializando LED1 RED - PTB8 */ PORT_PCR_REG(PORTB_BASE_PTR,LED1_PIN) = PORT_PCR_MUX(1); // Configura funcionalidade do pino para GPIO GPIOB->PDDR |= (1 << LED1_PIN); // Configura como saída /* Inicializando LED2 GREEN - PTB9 */ PORT_PCR_REG(PORTB_BASE_PTR,LED2_PIN) = PORT_PCR_MUX(1); // Configura funcionalidade do pino para GPIO GPIOB->PDDR |= (1 << LED2_PIN); // Configura como saída /* Inicializando LED2 BLUE - PTB10 */ PORT_PCR_REG(PORTB_BASE_PTR,LED3_PIN) = PORT_PCR_MUX(1); // Configura funcionalidade do pino para GPIO GPIOB->PDDR |= (1 << LED3_PIN); // Configura como saída for (;;) { GPIOB->PTOR = (1 << LED1_PIN); // Inverte valor do Pino GPIOB->PTOR = (1 << LED2_PIN); // Inverte valor do Pino GPIOB->PTOR = (1 << LED3_PIN); // Inverte valor do Pino delay(10000); } /* Never leave main */ return 0; } void delay(uint32_t tempo) { uint32_t i = 0; for(i=0;i<tempo;i++); }
Após implementado o algoritmo, chegou a hora de compilar o projeto e descarregar o Firmware na Freedom Board. Para compilar, clique no item Buil Project [1] destacado na figura abaixo. Após o término do processo de compilação, devemos configurar a ferramenta de Debug, para daí então descarregar o Firmware na placa.
Nota: Como apresentado no artigo de apresentação da Freedom Board KL05Z, essa placa contém como ferramenta de debug o OpenSDA Serial and Debug Adapter. Para o OpenSDA está disponível diversas opções de Firmware. Para mais detalhes a respeito do OpenSDA consulte página do projeto.
- Build Project
- Debug Configurations
Clique em Debug Configurations [2]. Em seguida deve abrir a janela Debug Configurations. Como citado anteriormente, o OpenSDA possui algumas opções de Firmware, essa diferença de Firmware reflete na escolha da ferramenta de Debug. Das opções disponíveis pelo KDS temos:
A Freedom Board que estou utilizando possui o firmware disponibilizado pela empresa Segger. Portanto selecionei a opção SEGGER J-Link Debbugging.
Após selecionar a ferramenta debug, deve clicar em Debug.
Em seguida vai dar início o processo. O KDS deve solicitar ao usuário autorização para mudar para perspectiva de Debug.
Nota: Para que essa janela não apareça mais, selecione o item destacado na figura abaixo
Ao fim do processo de gravação do firmware na Freedom Board. O Kinetis Design Studio fez a mudança para perspectiva de Debug. Para iniciar o processo de debugging do firmware, o KDS oferece diversos recursos, tais como os destacado na figura abaixo:
- Resume (F8)
- Suspend
- Terminate (Ctrl + F2)
- Step Into (F5)
- Step Over (F6)
- Step Return (F7)
- Restart a process or debug target
Além dos pontos destacados, outro recursdo muito útil é o Breakpoint. Ele possibilita adicionar pontos de parada no código fonte. Para mais detalhes sobre os recursos de debugging do KDS consulte o documento Kinetis Design Studio V3.0.0- User’s Guide.
Conclusão
O Kinetis Design Studio é uma excelente ferramenta de desenvolvimento para a família de microcontroladores Kinetis ARM Cortex-M. Mesmo sabendo que a empresa NXP oferece uma nova IDE. Mas não se preocupe, em um futuro próximo prometo trazer mais informações a respeito do MCUXpresso Software and Tools.
O que você achou do Kinetis Design Studio? Já trabalha com essa ferramenta? Ajude-nos a melhorar o blog, participe com a sua sugestão, dúvida ou comentário aqui embaixo.