Professional Documents
Culture Documents
LASEC FEELT
COMOCRIARUMPROJETOEMCPARAARM
ltimaAtualizao13/05/2011
1Edio03/2011
Sumrio
CriandoumProjeto.......................................................................................................................3 ProgramaLED_Blink....................................................................................................................17 ComoImportarumArquivonoProjeto......................................................................................21 ProgramaLED_Blinkcomdelay_ms........................................................................................25 EdioeReviso:.....................................................................................................................27
Pgina 2
1Edio03/2011
Criando um Projeto
Para executar o Eclipse, acesse o Menu Iniciar do Windows e Click em ARM C, no grupo de trabalho ARM C, como mostrado na figura abaixo.
Pgina 3
1Edio03/2011
Na janela Welcome to the Eclipse IDE for C/C++ Developers, click com o mouse na opo Workbench.
Pgina 4
1Edio03/2011
Na janela C Project (Create C project of selected type), na opo Project Name:, crie um projeto chamado LED_Blink, selecione a opo ARM Windows GCC (Yagarto) e click em Finish. OBS: O nome do projeto no deve possuir espao.
Pgina 5
1Edio03/2011
Click em Browse...
Pgina 6
1Edio03/2011
Na janela Import from directory, selecione a pasta Arquivos de Configurao do ARM LPC2148 e click em OK
Na janela File system, selecione o check box do diretrio Arquivos de Configurao do ARM LPC2148 e click em Finish
Pgina 7
1Edio03/2011
Aps a execuo destes passos, os arquivos de configurao e inicializao (low_level_init.c, LPC214x.h, startup.S, lpc2148_rom.ld, cpu_init.c e cpu_init.h) do ARM LPC2148 sero acrescentados ao projeto LED_Blink, como mostra a figura a seguir.
Click com o boto direito do mouse sobre o nome do projeto LED_Blink e escolha a opo Properties.
Pgina 8
1Edio03/2011
Na janela Properties for LED_Blink, click em C/C++ Build e selecione a opo [All configurations].
Click em Settings, na aba Tool Settings click em Target Processor e na opo Processor escolha arm7tdmi, pois o microcontrolador que ser utilizado o LPC2148 que pertence a famlia ARM7. A opo Thumb deve ser desmarcada.
Pgina 9
1Edio03/2011
Na janela Settings -> ARM Yagarto Windows GCC Assembler -> Directories, no item Include Paths (-I), click em Add...
Pgina 10
1Edio03/2011
Na janela Settings -> ARM Yagarto Windows GCC Compiler -> Directories, no item Include Paths (-I), click em Add...
Pgina 11
1Edio03/2011
Pgina 12
1Edio03/2011
Na janela Settings -> ARM Yagarto Windows GCC Linker -> General, no item Script file (-T), click em Browse...
Pgina 13
1Edio03/2011
Click no arquivo lpc2148_rom.ld que se encontra na pasta do projeto LED_Blink e, na sequncia, click em Abrir
Na janela Properties for LED_Blink, na aba Tool Settings -> ARM Yagarto Windows GNU Create Listing -> General, acrescente no campo Other flags a opo C
Pgina 14
1Edio03/2011
Na janela Properties for LED_Blink, na aba Tool Settings -> ARM Yagarto Windows GNU Print Size -> General, marque o check box Hex e, para finalizar, click em OK.
Pgina 15
1Edio03/2011
Na janela New Source File, no campo Source file: digite main.c e click em Finish
Pgina 16
1Edio03/2011
Programa LED_Blink
Copie e cole o programa abaixo no novo arquivo criado.
/*------------------------------------------------------------------------------------*/ /* INCLUDES */ /*------------------------------------------------------------------------------------*/ #include "LPC214x.h" #include "cpu_init.h"
/*------------------------------------------------------------------------------------*/ /* FUNCTION IMPLEMENTATION */ /*------------------------------------------------------------------------------------*/ int main (void) { int j; cpu_init(); // Inicializa a CPU do ARM LPC2148 PINSEL1 &= ~((1<<30)|(1<<31)); // O PINSEL1 um registrador que seleciona a funo dos pinos (P0.16-31) do PORT0 e utiliza 2 bits de configurao para cada pino. Neste caso, quando o bit 30 e 31 do registrador igual a 0 (zero), o pino P0.31 configurado como entrada/sada (I/O)- Ver item 7.4.1, denominado Pin Function Select Register no documento LPC214X User Manual.pdf IODIR0 |= (1<<31); // Configura o pino correspondente ao bit 31 para sada
while(1){ IOSET0 = (1<<31); // Coloca o bit 31 em nvel lgico alto for (j = 0; j < 1000000; j++ ) asm volatile ("NOP"); // Espera IOCLR0 = (1<<31); // Coloca o bit 31 em nvel lgico baixo for (j = 0; j < 1000000; j++ ) asm volatile ("NOP"); // Espera } return(0); } /*------------------------------------------------------------------------------------*/ /* EOF */ /*------------------------------------------------------------------------------------*/
Para salvar e compilar o programa pressione os cones indicados pelas setas 1 e 2, como indicado na figura seguinte.
Para transferir o arquivo binrio gerado na compilao para o microcontrolador ARM, consulte o tutorial Gravando e Debugando o Microcontrolador ARM, fornecido no arquivo Aulas.zip.
Pgina 17
1Edio03/2011
OU
Nestes casos, ou em alguma outra ocorrncia de arquivo no encontrado, para acrescentar variveis de ambiente no ECLIPSE, click com o boto direito do mouse sobre o nome do projeto LED_Blink e escolha a opo Properties.
Pgina 18
1Edio03/2011
Na janela Properties for LED_Blink, click em C/C++ Build e selecione a opo Enviroment.
Em seguida, click em Add... Na janela New variable, no campo Name: digite path e no campo Value: digite C:\ARM\yagarto\bin;C:\ARM\yagartotools\bin;
Prof. Fbio V.R.S. www.lasec.feelt.ufu.br & Eng. Gilson F.P.F. www.sths.com.br Pgina 19
1Edio03/2011
Se ao clicar em OK, o valor do path sofrer alterao, como mostrado no exemplo abaixo, selecione a opo Replace native environment with specified one e em seguida click em Edit...
Na janela Edit variable, substitua novamente o valor do campo Value: por C:\ARM\yagarto\bin;C:\ARM\yagartotools\bin; e click em OK. Finalize clicando no boto OK da janela principal intitulada Properties for LED_Blink.
Compile o programa novamente utilizando o cone: OBS: A informao bash.exe: warning: could not find /tmp, please create! indica que o caminho C:\ARM\yagarto\bin, na varivel de ambiente do windows, no est operando adequadamente. Porm, neste caso, os arquivos com a extenso elf e hex sero criados normalmente.
Pgina 20
1Edio03/2011
Pgina 21
1Edio03/2011
Pgina 22
1Edio03/2011
Na janela Import from directory selecione a pasta _Mdulos do ARM LPC2148 localizada em C:\ARM\PROGRAMAS\LPC2148\
Prof. Fbio V.R.S. www.lasec.feelt.ufu.br & Eng. Gilson F.P.F. www.sths.com.br Pgina 23
1Edio03/2011
Na janela Import marque os arquivos delay_loop.c e delay_loop.h e em seguida click em Finish. Caso a pasta mencionada no esteja atualizada, o arquivo Aulas.zip, encontrado na rea de download do site: www.lasec.feelt.ufu.br, contm uma pasta chamada _Mdulos do ARM LPC2148, com os mdulos atualizados.
Pgina 24
1Edio03/2011
em
amarelo
foram
while(1){ IOSET0 = (1<<31); delay_ms(500); // Espera 500ms IOCLR0 = (1<<31); delay_ms(500); // Espera 500ms } return(0); } /*------------------------------------------------------------------------------------*/ /* EOF */ /*------------------------------------------------------------------------------------*/
Pgina 25
1Edio03/2011
Esta configurao poupa muito tempo do programador, porque, muitas vezes, ele descobre que o programa no foi salvo somente aps gravar e rodar o programa compilado com a verso anterior. Para que o Eclipse salve o programa automaticamente antes de compilar, execute os passos descritos abaixo: Window -> Preferences -> General -> Workspace -> Save automatically before build Click na opo Windows, na barra de tarefas do Eclipse e em seguida click em Preferences, como mostrado na figura a seguir.
O prximo passo expandir a rvore de opes do ramo General, selecionar a opo Workspace e marcar o check box com a opo Save automatically before build, como mostrado na figura abaixo.
Pgina 26
1Edio03/2011
Edio e Reviso:
Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica
LASEC Laboratrio de Automao, Servomecanismos e Controle www.lasec.feelt.ufu.br
STHS Tecnologia
http://www.sths.com.br Eng. Gilson Fonseca Peres Filho solucoes@sths.com.br
Agradecimentos
Antes de comear a citar nomes, gostaramos de agradecer a todos de modo geral, pois temos falado com muitas pessoas tanto no meio acadmico quanto no comrcio, indstria e servios sobre os benefcios de se criar material didtico para esta rea de Sistemas Embarcados. A resposta de todos tem sido muito encorajamento e entusiasmo. Obrigado, vocs ajudaram muito. Agradecemos a todos aqueles que contriburam e que ainda contribuiro com exemplos e sugestes para melhorar este material didtico e com apoio financeiro para a construo de kits didticos utilizados nas aulas e laboratrios de pesquisa. Neste sentido, em nome de todos aqueles que j se beneficiaram e daqueles que iro se beneficiar com este material, nossos mais sinceros agradecimentos aos amigos: Universidade Federal de Uberlndia
Faculdade de Engenharia Eltrica FEELT Felipe Adriano da Silva Gonalves (Aluno da FEELT - UFU) Joo Batista Vieira Jnior (Professor da FEELT - UFU) Leandro dos Santos Martins (Aluno de Mestrado da FEELT - UFU) Raony Barrios (Aluno da FEELT UFU)
Pgina 27