O Processor Expert é uma grande ferramenta da Freescale há muitos anos. Ele é um gerador de funções e de arquivos .c e .h que servem de base para um projeto para os microcontroladores da Freescale. Assim como o KSDK, o Processor Expert também pode gerar código para várias IDEs, como o KDS, Keil e IAR. E a grande novidade é que o Processor Expert agora usa os drivers do KSDK como base em sua geração de código, o que cria uma ligação lógica e muito funcional entre as duas ferramentas, da facilidade de uso do Processor Expert com a modularização e ótima documentação do KSDK.
É importante ressaltar que nem todo projeto com o KSDK precisa utilizar o Processor Expert. Na verdade, em alguns exemplos mais adiante, em tutoriais futuros, não utilizaremos o Processor Expert, apenas o KSDK, mas veremos que todo o código que foi criado nestes primeiros tutoriais com o Processor Expert poderão ser aproveitados em projetos sem ele, desde que estes projetos tenham como base o KSDK. E é aí que o Processor Expert mostra todo seu valor. É uma excelente ferramenta para estruturar as chamadas de código do KSDK, aprender a usar periféricos, e pode ser totalmente reaproveitado em outros projetos que não o utilizem depois.
* Usuários que quiserem utilizar o IAR como IDE podem utilizar o KDS para fazer as configurações inicias com o Processor Expert e depois migrarem o seu código para o IAR. Mostraremos em um tutorial futuro como fazer isso.
Começando o nosso projeto com o KSDK e Processor Expert
Este tutorial leva em consideração que você já seguiu os passos do artigo Kinetis SDK (KSDK) – Introdução – Preparando o ambiente.
Passo 1: Abra o Kinetis Design Studio 3.0.0. Use o diretório que você criou para o Workspace.
Passo 2: Clique em File -> New -> Kinetis Project.
Passo 3: Digite um nome para o projeto e clique em Next.
Passo 4: Selecione o processador Processors -> Kinetis K -> MK60 -> MK64 (120 MHz) -> MK64FN1M0xx12, ou digite mk64FN na caixa de filtro de texto e selecione o processador.
Passo 5: Selecione o KSDK e o Processor Expert para serem utilizados no projeto e clique em Next:
Passo 6: Selecione GNU C Compiler. Caso o seu programa vá utilizar IAR, este seria o momento de selecionar esta ferramenta. Mas cobriremos isso em um tutorial futuro.
Passo 7: Clique em Finish e aguarde o programa ser criado.
Passo 8: Após o projeto ser criado, clique na pasta referente ao nome dele, que está na coluna da esquerda do KDS.
Há três views importantes para o Processor Expert, localize elas em sua tela:
- View Components – Mostra quais componentes estão presentes no projeto.

- View Component Inspector – Mostra as propriedades de cada componente selecionado na View Components.

- View Components Library – Adiciona novos componentes ao projeto.
Passo 9: Na view Component Inspector, há um botão chamado view Menu. Clique nele, e selecione as propriedades Advanced, e também deselecione a opção Tabs View.
Passo 10: Utilizando a view Components Library, na aba Categories, adicione os seguintes componentes ao seu projeto,clicando duas vezes:
- KSDK 1.2.0 ->Peripherals Drivers / HAL -> Timers -> fsl_pit;
- KSDK 1.2.0 ->Peripherals Drivers / HAL -> Inputs/Outputs -> fsl_gpio.
*Note que para cada periférico existe o driver e uma versão do driver com final _hal.
A versão HAL é uma versão simplificada, de mais baixo nível. Neste momento utilizaremos apenas a versão mais alta do peripheral driver. Toda a documentação destes drivers está na pasta doc do folder de instalação do KSDK.
Ao final deste passo sua view Components deverá estar assim:

Passo 11: Usando a view Components, selecione o componente gpio1. Usando a view Component Inspector, altere as seguintes configurações deste componente:
- Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers = 3;
- Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 0 -> Pin = PTB22/SPI2_SOUT/FB_AD29/CMP2_OUT;
- Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 0 -> Output Logic = 1;
- Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 1 -> Pin = PTB21/SPI2_SCK/FB_AD30/CMP1_OUT;
- Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 1 -> Output Logic = 1;
- Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 2 -> Pin = PTE26/ENET_1588_CLKIN/UART4_CTS_b/RTC_CLKOUT/USB_CLKIN;
- Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 2 -> Output Logic = 1.
Output Logic significa que o pino iniciará como nível lógico 1. A configuração deverá ficar assim:
Passo 12: Altere as configurações do componente fsl_pit.
- Settings -> Configurations -> Configurations 0 -> Period = 200 ms
Passo 13: Agora que você já configurou seus componentes, é hora de pedir ao Processor Expert para gerar os arquivos .c e .h que serão usados como base em seu programa. Para fazer isso clique em Project -> Generate Processor Expert Code.
IMPORTANTE: A cada modificação dos componentes nas views do Processor Expert é necessário repetir este passo para que os arquivos sejam atualizados.Você não precisa fazer isso se fizer apenas modificação no código fonte do seu projeto.
Passo 14: Usando a view Components, dentro do componente do PIT Timer, clique duas vezes na função PIT0_IRQHandler. Isso abrirá a função no arquivo Events.c de tratamento de interrupção que é chamada a cada 200 ms.
Passo 15: Ainda na view Components, agora no componente de gpio, encontre a rotina GPIO_DRV_TogglePinOutput. Arraste esta rotina PIT0_IRQHandler, e coloque como parâmetro a porta a ser invertida. O código deverá ficar assim:
void PIT0_IRQHandler(void)
{
/* Clear interrupt flag.*/
PIT_HAL_ClearIntFlag(g_pitBase[FSL_PITTIMER1], FSL_PITTIMER1_CHANNEL);
/* Write your code here ... */
GPIO_DRV_TogglePinOutput(PTB22);
}
Pronto! Agora o código de pisca-led está pronto para ser compilado e testado na placa.
Passo 16: Clique em Project-> Build para compilar o projeto.
Passo 17: Após ter compilado com sucesso no passo 16, clique em Run -> Debug Configurations.
Passo 18: Selecione GDB Segger J-Link Debugging -> Nome do seu projeto.
Clique na aba Startup, e desabilite o SWO. Feito isso, clique em Debug:
Passo 19: A IDE irá mudar para a perspectiva de debug. Aperte o botão Resume para iniciar a execução do programa.
Passo 20: Use os botões Suspend para pausar a execução, Restart para reiniciar, e Terminate para encerrar a sessão de Debug.

Para voltar a alterar seu projeto, volte para a perspectiva de edição de código:
PARTE EXTRA: Utilizando o módulo de ADC (Conversor Analógico Digital)
Passo 1 extra: Na view Components Library, aba Categories, selecione o seguinte componente:
KSDK 1.2.0 ->Peripherals Drivers / HAL -> Analog -> fsl_adc16
Passo 2 extra: Mude o canal de leitura para o canal do sensor de Temperatura, como na figura abaixo:
Passo 3 extra: Clique em Project -> Generate Processor Expert Code.
Passo 4 extra: Modifique a função pitTimer1_OnTimeOut para a seguinte forma:
void PIT0_IRQHandler(void)
{
unsigned int Resultado;
/* Clear interrupt flag.*/
PIT_HAL_ClearIntFlag(g_pitBase[FSL_PITTIMER1], FSL_PITTIMER1_CHANNEL);
/* Write your code here ... */
GPIO_DRV_TogglePinOutput(PTB22);
ADC16_DRV_ConfigConvChn(FSL_ADCONV1,0,&adConv1_ChnConfig0);
ADC16_DRV_WaitConvDone(FSL_ADCONV1,0);
Resultado=ADC16_DRV_GetConvValueRAW(FSL_ADCONV1,0);
}
Passo 5 extra: Carregue sua aplicação para a placa.
Passo 6 extra: Na perspectiva de Debug, clique em Window -> Show View -> Expressions.
Passo 7 extra: Adicione a variável Resultado a view Expression.
Passo 8 extra: Insira um breakpoint na linha:
Resultado=ADC16_DRV_GetConvValueRAW(FSL_ADCONV1,0);
E verifique o valor da variável Resultado.
Conclusão
Neste tutorial aprendemos a inicializar periféricos usando o KSDK e Processor Expert. Nos próximos tutoriais iremos ver um exemplo utilizando conectividade TCP/IP e como podemos integrar estes devices drivers para criar uma aplicação real de IoT.





Bom dia Denis, No aguardo do tutorial de como integrar o processor Expert ao IAR e KEIL. haja vista que kds é muito pobre no quesito emulação.
Denis,
Excelentes posts sobre o kds+ksdk.
Só para complementar este post:
Antes de iniciar o projeto com o KDS + KSDK é necessário aplicar uma atualização do KSDK no KDS, porém esta informação não está bem explicita.
Dentro da pasta onde o KSDK foi instalado, existe uma pasta de DOC, e tem o pdf “Getting Started with Kinetis SDK (KSDK) v.1.2.pdf”.
Lendo o documento, tem uma explicação sobre esta atualização.
Abraço
Eduardo Scherrer
Tenho usado o combo KDS+KSDK no trabalho, estou gostando muito. O fato de rodar no Linux é simplesmente perfeito! 🙂