Olá pessoal! Este é meu primeiro artigo que estou publicando aqui no embarcados. Pretendo iniciar com uma série de 3 artigos que descrevem o procedimento para criar um projeto usando linguagem C para a arquitetura ARM. A IDE utilizada para isso é o uVision da Keil.
Hoje existem diversas plataformas que abordam esta arquitetura, mas a forma de configuração é sempre bem similar e dentre as várias IDE’s para desenvolvimento, sem dúvida a uVision da Keil é um destaque.
O uVision possui seu próprio editor de texto incorporado à IDE o que facilita o processo de criação do projeto. Neste início, vou me atentar somente à criação do projeto que deve seguir alguns passos importantes antes de iniciar a programação propriamente dita. Conforme a evolução dos artigos e do conhecimento de vocês vamos evoluindo. A uVision disponibiliza uma versão demo limitada ao tamanho de código compilado de 32KB. Ou seja, ideal para iniciar seus estudos com a disponibilidade de todos os recursos da versão Full.
Você pode fazer o download do uVision direto do site da Keil após um breve cadastro. O programa possui aproximadamente 580MB.
Um novo projeto no Keil
Abrindo o programa Keil uVision4, temos sua IDE básica conforme mostrado na figura abaixo :
Vamos agora iniciar as configurações da IDE do Keil. Clique em Project→ New uVsion Project:
Em seguida, escolha o diretório onde será salvo seu projeto e o nome dele:
Após esta etapa, devemos agora selecionar o Microcontrolador ARM no qual nosso projeto será baseado. Para o meu caso, estarei sempre trabalhando com a plataforma LPC2129/01. Nesta etapa são disponibilizadas todas as arquiteturas que possuem licenciamento junto à ARM.
Neste momento será oferecido um arquivo de startup de configuração do microcontrolador escolhido. Clique em OK.
NOTA: Depois de escolher o Microcontrolador para o projeto, nesta etapa, programa vai esperar para que o usuário confirme a aceitação de uma cópia do arquivo de inicialização do Keil. O arquivo startup.s. Este arquivo de inicialização vem com a configuração default de operação para o Microcontrolador escolhido. O código de inicialização tem que corresponder à configuração do design de hardware do microcontrolador que você estiver utilizando. O arquivo de startup.s carrega informações importantes da arquitetura do microcontrolador utilizado como por exemplo: tabela e endereço de vetores, configuração do tamanho da stack e heap, etc.
Caso este arquivo não seja aceito neste momento, todas as diretivas contidas nele devem passar a fazer parte do programa desenvolvido pelo próprio usuário.
Logo, é altamente recomendável a aceitação deste arquivo para inclusão do mesmo ao projeto!
Neste momento, nossa IDE já começa a tomar “corpo”. Já podemos notar no canto esquerdo superior os componentes atuais de nosso projeto bem como sua hierarquia e extensões de cada arquivo.
Devemos agora selecionar Project → Components, Enviroment, Books … e, em seguida, clique em Folders/Extensions, para realizarmos configurações adicionais ao projeto. A figura abaixo mostra esta etapa.
Como nossa proposta neste primeiro artigo é uma configuração básica de um projeto, podemos manter as caixas de seleção na configuração default. Conforme as seleções das caixas de configuração como na imagem abaixo:
Existem algumas opções de configuração a serem efetuadas na IDE do Keil. Elas são importantes para o caso de você utilizar o Debug do simulador do Keil. Um recurso bastante interessante que será citado em particular nos próximos artigos.
Agora que configuramos a IDE, precisamos executar algumas configurações específicas do microcontrolador. Clique em Project → Options for Target …
Configurar o X-TAL. No meu caso específico estarei colocando 12 MHz e verifique se a configuração da memória está de acordo com o Mapa de memória do seu Microcontrolador. Você pode obter esta informação através do Datasheet do seu microcontrolador escolhido.
Output: Seleciona o check box para criação do arquivo .Hex. Finalizar em OK como na imagem abaixo.
O procedimento acima é importante ser realizado independente da utilização do simulador ou PCI Didática. Pois só a partir deste momento o Keil passará a gerar o arquivo .hex que será descarregado no Microcontrolador.
Programando
Agora iremos começar a escrever nosso arquivo de projeto em C. Clique em File→ New … ou podemos utilizar o atalho colocado no menu principal:
Após finalizarmos nosso programa, devemos salva-lo colocando como extensão .c. File→Save as..
Notem que, após nomear o arquivo como “main.c”, podemos ver que as cores de alguns caracteres no programa são alteradas pelas funções que a mesma representa no programa como comentário, variável e de comando, diretivas, etc. Isso faz com que o utilizador (Programador) tenha uma compreensão melhor e mais intuitiva do programa.
Para adicionar arquivos em um de projeto, clique em Project → Components, Enviroment, Books … selecione a aba Components, e clique em Add Files.. Esta é uma grande flexibilidade de se trabalhar com ARM. Já existem muitas bibliotecas prontas de módulos, IOs, ADs, CAN, que podemos facilmente integrar ao nosso projeto a partir desse conceito.
Neste primeiro momento, devemos selecionar arquivos do tipo “Arquivos fonte (*. C)”.
E a partir do quadro a esquerda, podemos observar toda a hierarquia criada para nosso projeto.
Agora com o projeto organizado, podemos compilar o mesmo e criar os links entre as funções caso existam.
Podemos executar a compilação clicando no botão abaixo:
Agora é compilar e compilar até não haver mais erros….
No próximo artigo desta série vamos criar nosso primeiro programa. Abraço e até lá.







Muito bom artigo. Leandro comecei a uma semana usar o Keil uVision5 devido a um projeto de um cliente que ele quer que eu modifique. O programador anterior que fez o projeto sumiu. Minha duvida : O cliente mandou todos os arquivos do firmware, mas esta dando erro que esta faltando alguns arquivos .h. Ele me mandou uma lib também, eu editei e vi um monte de caracteres estranhos e nessa mistura vi as definições desses arquivos. Estão definidos dentro da lib. Como eu acrescento essa lib no projeto para resolver essas pendencia ? Obs: O arquivo com extenção uvprojx… Leia mais »