Introdução
A transferência de um programa para a placa é um processo simples. Lembrando que a plataforma FRDM possui um MCU só para gerenciar este processo, visto na fig. 1, bastando ao usuário configurar um dos depurados disponíveis e, dependendo do Sistema Operacional, atualizar o bootloader e firmware da FRDM usada.
Figura 1. Diagrama de blocos da FRDM-KL25Z.
Fonte: (NXP, 2016).
Transferindo o programa na placa
Antes de transferir o programa na placa é necessário configurar a ferramenta de depuração. É necessário conectar a placa na porta USB e verificar se a mesma foi reconhecida pelo sistema. É recomendado que sejam instalados os drivers oferecidos pela PEMicro disponíveis na página FRDM-kXX, se o Sistema Operacional for Windows .
A ferramenta de depuração é configurada acessando o menu Run->Debug configurations. Sugiro o uso da PEMicro pois esta apresentou maior estabilidade durante o uso e menos problemas de compatibilidade. Na Fig. 2 é mostrada a janela das configurações de depuração. Ao selecionar PEMicro é necessário configurar a interface OpenSDA no combo Interface. Com o dispositivo reconhecido, selecione o mesmo no combo Port. Com as configurações feitas, pressione os botões Apply e Debug para iniciar a depuração.
Figura 2. Configurando o depurador.
Fonte: Elaborado pelo autor.
Ao iniciar a depuração o firmware será descarregado para a placa e o Kinetis passará para a perspectiva de depuração, como mostra a fig. 3. Nesta perspectiva são oferecidas diversas funcionalidades úteis para se executar uma depuração.
Figura 3. Perspectiva de depuração.
Fonte: Elaborado pelo autor.
Quando o programa é transferido para a placa a execução é interrompida com a adição de um breakpoint (ponto de parada) na primeira linha de instrução do programa, que neste caso é PE_low_level_init(), que inicializa o Processor Expert dos componentes presentes no programa. O depurador permite que o usuário execute o programa passo a passo, possibilitando a verificação dos valores das variáveis, conforme o programa vai sendo executado.
A fig. 4, mostra em detalhe a barra de ferramentas de depuração, com as opções numeradas e explicadas a seguir.
Figura 4. Barra de ferramentas de depuração.
Fonte: Elaborado pelo autor.
Opções:
Pular ponto de parada (breakpoints): Se este botão estiver habilitado, os breakpoints inseridos no programa são desconsiderados deixando o programa ser executado livremente.
Resumir (F8): Esta ação executa o programa até ele encontrar o próximo ponto de parada.
Suspender: interrompe a execução do programa.
Terminar: finaliza a execução do programa.
Desconectar: Desconectar o depurador da placa, deixando o programa sendo executado livremente sem o programador interagir com ele.
Passar por dentro (Step into): esta opção permite avançar por dentro de uma função, executando cada uma das instruções internas.
Passar por fora (Step over): esta opção executa a instrução sem passar por dentro dela.
Retornar: Esta opção retorna para a instrução de alto nível anterior ao Step into, permitindo que o usuário veja a instrução de nível mais baixo (Step into) e retorne para o ponto anterior de nível mais alto.
Modo de passo de instrução: neste modo cada instrução em C do programa é executado em nível assembly, nível mais baixo possível. Este modo dá uma visão detalhada de cada instrução do nível superior.
Desabilitado
Desabilitado
Reinicia o PC do MCU: esta opção retorna o PC do MCU para a primeira posição linha de instrução do programa sem transferir o programa novamente para a placa.
Depurando um programa
Como dito na seção anterior a depuração permite ao programador avaliar a evolução da execução de um programa, seja analisando os valores das variáveis passo a passo ou verificando o código assembly gerado para cada instrução superior. A seguir é mostrada a execução de um programa passo a passo com o uso do depurador.
Após transferir o programa para a placa, o programa é parado na primeira linha. Pressione F6 (Step over), até o depurador atingir alinha exibida na fig. 5.
Figura 4. Depurando o programa.
Fonte: Elaborado pelo autor.
Na parte superior direita da perspectiva de depuração, é exibida a janela de visualização de diversas funcionalidades, como por exemplo, a aba de variáveis exibida na fig. 5, onde é exibida a variável i, do tipo int e valor inicial 0.
Figura 5. Exibindo variáveis.
Fonte: Elaborado pelo autor.
Nesta janela o usuário visualiza as alterações dos valores das variáveis quando o programa estiver sendo executado no modo passo a passo, com o uso das ferramentas mostradas acima. Neste exemplo, se o usuário pressionar F6 (Step over), vai ver o valor da variável i com o novo valor igual à 1.
Para finalizar a depuração o usuário precisa pressionar o botão Terminar e em seguida, pressionar o botão direito do mouse sobre a sessão aberta na janela Debug, vista na Fig. 3, e selecionar Terminate and Remove. Isto deixará a placa executando o programa presente na memória livremente.
Autor: Júlio César M. Ruzicki Eng.
Referências
NXP. FRDM-KL25Z: Freedom Development Platform for Kinetis KL14, KL15, KL24, KL25 MCUs, 2016. Disponível em :<http://www.nxp.com/products/software-and-tools/hardware-development-tools/freedom-development-boards/freedom-development-platform-for-kinetis-kl14-kl15-kl24-kl25-mcus:FRDM-KL25Z?fpsp=1&tab=Documentation_Tab>. Acesso em 8 de Junho de 2016.