Iniciando um projeto C++ no Atmel Studio

Introdução

 

Com os atuais avanços da linguagem C++ e a queda de alguns mitos da linguagem, tais como alto overhead, tamanho de código gerado, lentidão e outros aspectos (aqui e aqui), há um interesse crescente em utilizar a linguagem C++ em sistemas embarcados. Uma constatação deste efeito pode ser observada através dos últimos relatórios da Pesquisa sobre o Mercado Brasileiro de Desenvolvimento de Sistemas Embarcados presente no Portal Embarcados. Desta forma, torna-se extremamente relevante um conhecimento mínimo de C++ para sistemas embarcados.

 

Neste artigo vamos descrever o processo básico para criar um projeto C++ no Atmel Studio, tendo como base uma configuração criada a partir do Atmel START

 

O Atmel START é uma ferramenta online da Microchip que permite realizar a configuração de pinos, clocks e periféricos para um projeto de hardware, iniciar os periféricos e realizar a geração de um projeto que, posteriormente, pode ser importado por diversos IDEs, dentre eles, o Atmel Studio.

 

Vamos iniciar este artigo realizando uma demonstração de como se faz a configuração de um projeto no Atmel START e depois importaremos o mesmo no Atmel Studio.

 

Primeiros passos

 

Vamos iniciar o nosso projeto no Atmel START. Para o propósito deste artigo, não estamos muito preocupados com o hardware final e, por isso, vou realizar a configuração para um microcontrolador da família ATSAMD20 como apresentado na Figura 1: 

 

Figura 1: microcontrolador alvo do artigo

Para fins de demonstração, somente realizaremos a configuração de alguns periféricos, dentre eles alguns GPIOs, interface serial e SPI.

 

Para começar, vamos abrir o Atmel START e selecionar o nosso microcontrolador alvo, o ATSAMD20E16. Seleção feita, vamos criar o novo projeto através do botão Create New Project, como ilustrado na Figura 2.

 

Figura 2: Configuração inicial do projeto

As figuras 3, 4 e 5 apresentam, respectivamente, as telas para configuração dos drivers a serem utilizados no projeto, configuração dos GPIOs e a hierarquia de clock.

 

Figura 3: Seleção de drivers
Figura 4: PINMUX Configurator
Figura 5: Clock configurator

Após configurar todos os drivers, gpios e estrutura de clock, podemos exportar o projeto para a IDE que estamos trabalhando ou salvar o projeto para alterações posteriores.

 

Vamos exportar o projeto para o Atmel Studio através da opção Export Project, como ilustrado na Figura 6. 

Figura 6: Exportando o projeto para o Atmel Studio 7.

 

Trabalhando com o projeto Atmel START em C++

 

Os passos que faremos a partir daqui é o caminho feliz que acabei encontrando por tentativa e erro até funcionar tudo direito.

 

Para trabalharmos com o projeto do Atmel Start em C++ devemos inicialmente transformar o nosso projeto em uma biblioteca e, a partir deste momento, utilizar no Atmel Studio.

 

Inicialmente, vamos importar o projeto criado no Atmel START. Esta tarefa pode ser realizada através da opção File->Import->Atmel Start Project. Após alguns instantes teremos o projeto devidamente carregado no Atmel Studio. Como teste de sanidade, podemos realizar uma compilação do projeto para verificar se há algum erro na criação do projeto no Atmel START. Se houver algum erro na configuração, pode-se alterar as configurações diretamente pelo Atmel Studio, através da opção Project->Re-configure Atmel START Project.

 

Agora vamos alterar as configurações do projeto para que ele se torne uma biblioteca.

 

No Atmel Studio, altere os artefatos da compilação de executável (.elf) para library, como mostrado na figura 7 abaixo.

 

Figura 7: Configuração dos artefatos de compilação de executável para library.

 

Só para manter tudo organizado, gosto da ideia de alterar o nome do projeto para um mais apropriado a uma biblioteca. No nosso exemplo, vou alterar o nome do projeto de SS_BOARD para libSS_BOARD. Para fazer isso, é só selecionar o projeto no Solution Explorer e renomeá-lo. O próximo passo é alterar o nome do diretório no Windows para que tudo seja coerente, como mostrado na figura 8.

 

Figura 8: Configuração final da biblioteca

 

O próximo passo é criar o nosso projeto em C++. Adicione o novo projeto através do comando Add->New Project, como ilustrado na figura 9. 

 

Figura 9: adicionando um novo projeto à nossa solução.

 

Selecione o projeto C/C++ e siga os passos do wizard. A próxima etapa é configurar os caminhos dos include files da biblioteca e adicionar o caminho da mesma no linker. A minha configuração de diretórios para o compilador C e para o compilador C++ ficaram como demonstrado abaixo: 

 

 

Após a configuração correta dos diretórios, podemos compilar um programa exemplo que não faz nada. 

 

 

Compilando o projeto notamos que o mesmo está utilizando a biblioteca previamente gerada. 

 

Conclusões

 

Através deste artigo podemos vislumbrar o uso da linguagem C++ em sistemas embarcados, como no nosso exemplo, no Atmel Studio 7. 

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.

Rafael Dias
Sou Bacharel em Física formado pelo Instituto de Física da USP, mestre em Engenharia Elétrica, com ênfase em materiais nanoestruturados pela Escola Politécnica da USP e também Técnico em Automação da Manufatura pela Escola SENAI Anchieta. Trabalho com desenvolvimento de software, firmware e me arrisco com eletrônica analógica para instrumentação e controle. Nos tempos livres gosto de dar uma espairecida e pedalar um pouco.

Deixe um comentário

avatar
 
  Notificações  
Notificar