Anda di halaman 1dari 24

UNIVERSIDADEFEDERALDEUBERLNDIA FACULDADEDEENGENHARIAELTRICAFEELT

LASEC FEELT

COMOCRIARUMPROJETOEMCPARAARM

ltimaAtualizao03/03/2011

Sumrio
CriandoumProjeto.......................................................................................................................3 ProgramaLED_Blink....................................................................................................................16 ConfiguraesparaDebugaroprogramacomoJLink..............................................................19 SobreEsteTutorial......................................................................................................................24 EdioeReviso:.....................................................................................................................24

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 2

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.

Quando a janela Workspace Launcher surgir, configure o diretrio de trabalho.

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC

Pgina 3

Na janela Welcome to the Eclipse IDE for C/C++ Developers, click com o mouse na opo Workbench.

Na sequncia, escolha File -> New -> C Project

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC

Pgina 4

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

Acesse File -> Import...

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC

Pgina 5

Na janela Import click em File System e em Next >

Click em Browse...

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC

Pgina 6

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

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC

Pgina 7

Aps a execuo destes passos, os arquivos de configurao e inicializao (low_level_init.c, LPC214x.h, startup.S e lpc2148_rom.ld) 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.

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC

Pgina 8

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.

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC

Pgina 9

Na janela Settings -> ARM Yagarto Windows GCC Assembler -> Directories, no item Include Paths (-I), click em Add...

Na janela Add directory path, click em Workspace...

Na janela Folder selection, marque a pasta LED_Blink e click em OK

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 10

Na janela Add directory path click em OK

O resultado da operao mostrado na figura abaixo

Na janela Settings -> ARM Yagarto Windows GCC Compiler -> Directories, no item Include Paths (-I), click em Add...

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 11

Na janela Add directory path, click em Workspace...

Na janela Folder selection, marque a pasta LED_Blink e click em OK

Na janela Add directory path click em OK

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 12

O resultado da operao mostrado na figura abaixo

Na janela Settings -> ARM Yagarto Windows GCC Linker -> General, no item Script file (-T), click em Browse...

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 13

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

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 14

Na janela Properties for LED_Blink, na aba Tool Settings -> ARM Yagarto Windows GNU Print Size -> General, marque o check box Hex

Acesse a opo File -> New -> Source File

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 15

Na janela New Source File, no campo Source file: digite main.c e click em Finish

Programa LED_Blink

Copie e cole o programa abaixo no novo arquivo criado.

/* =============================== C/C++ SOURCE FILE ================================ */ /** \file \description Escrever o que a rotina faz \author Nome do autor */ /* ================================================================================== */ //#define __MAIN_C__

/*------------------------------------------------------------------------------------*/ /* INCLUDES */ /*------------------------------------------------------------------------------------*/ #include "LPC214x.h" /*------------------------------------------------------------------------------------*/ /* DEFINITIONS AND MACROS */ /*------------------------------------------------------------------------------------*/ #define PLOCK 0x400 // Frequency Lock (Configura o PLL)

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 16

/*------------------------------------------------------------------------------------*/ /* TYPEDEFS, CLASSES AND STRUCTURES */ /*------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------*/ /* PROTOTYPES */ /*------------------------------------------------------------------------------------*/ void feed(void); // Utilizado para Alimentar o PLL void Initialize(void); //Inicializa o Microcontrolador /*------------------------------------------------------------------------------------*/ /* GLOBAL VARIABLES */ /*------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------*/ /* LOCAL VARIABLES */ /*------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------*/ /* FUNCTION IMPLEMENTATION */ /*------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------*/ /* Funo que Inicializa o Microcontrolador */ /*------------------------------------------------------------------------------------*/ void Initialize(void) {

// Setting Multiplier and Divider values PLLCFG=0x24; feed(); // Enabling the PLL */ PLLCON=0x1; feed(); // Wait for the PLL to lock to set frequency while(!(PLLSTAT & PLOCK)) ; // Connect the PLL as the clock source PLLCON=0x3; feed(); // Enabling MAM and setting number of clocks used for Flash memory fetch (4 cclks in this case) MAMCR=0x2; MAMTIM=0x4; // Setting peripheral Clock (pclk) to System Clock (cclk) VPBDIV=0x1; } /*------------------------------------------------------------------------------------*/ void feed(void) { PLLFEED=0xAA; // Olhar no datasheet PLLFEED=0x55; }

/*------------------------------------------------------------------------------------*/ /* Funo Principal */ /*------------------------------------------------------------------------------------*/ int main (void) { int j; Initialize(); PINSEL0 |= (1<<8)|(1<<10)|(1<<12)|(1<<31); IODIR0 |= (1<<31); // Configura o pino correspondente ao bit 31 para sada

while(1){ IOSET0 |= (1<<31);

// Seta o bit 31 em nvel lgico alto

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 17

for (j = 0; j < 1000000; j++ ) asm volatile ("NOP");

// Espera

IOCLR0 |= (1<<31);

// Seta o bit 31 em nvel lgico baixo // Espera

for (j = 0; j < 1000000; j++ ) asm volatile ("NOP");

IOSET0 |= (1<<31); }

// Seta o bit 31 em nvel lgico baixo

return(0); } /*------------------------------------------------------------------------------------*/ /* EOF */ /*------------------------------------------------------------------------------------*/

Para salvar e compilar o programa pressione os cones indicados pelas setas 1 e 2, como indicado na figura seguinte.

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 18

Configuraes para Debugar o programa com o J-Link


Acesse a opo Debug Configurations que exibida por meio de um click na seta localizada direita do cone do besouro.

Na Janela Debug Configurations, duplo click em Zylin Embedded debug (Native)

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 19

Na janela Debug Configurations, na aba Main, inverta a Barra de Debug\LED_Blink.elf para Debug/LED_Blink.elf

Na janela Debug Configurations, na aba Debugger, no campo GDB command debugger: click em Browse

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 20

No diretrio C:\ARM\yagarto\bin selecionar o arquivo arm-none-eabigdb.exe

Na janela Debug Configurations, na aba Commands, no campo Initialize commands, copie o cdigo abaixo e cole no campo correspondente.
#ListeningforcommandsonthisPC'stcpport2331 targetremotelocalhost:2331 #Enableflashdownloadandflashbreakpoints. #Flashdownloadandflashbreakpointsarefeaturesof #theJLinksoftwarewhichrequireseparatelicenses #fromSEGGER. #Selectflashdevice monitorflashdevice=LPC2148 #EnableFlashDLandFlashBPs monitorflashdownload=1 monitorflashbreakpoints=1 #Setgdbservertolittleendian monitorendianlittle #SetJTAGspeedtoadaptive monitorspeedadaptive #Resetthechiptogettoaknownstate monitorreset0 #Setuptarget, #remapfirst64bytestotheinternalflash monitorwriteu160xE01FC040=0x0001 monitorwriteu160xE01FC040 fileoutput.elf load breakmain continue Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 21

Trocar a linha de cdigo file output.elf Debug/nome_do_arquivo.elf, como mostrado na figura seguinte.

por

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 22

Na janela Debug Configurations, na aba Common, no campo Display in favorites menu, marque o check box Debug, click em Apply e, para finalizar, em Close

Pronto!... Para debugar o programa, click na seta localizada direita do besouro e, em seguida, click na opo LED_Blink Debug

Se a janela Confirm Perspective Switch aparecer, click em Yes

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 23

Para rodar o programa, click no cone na figura abaixo.

Resume (F8), como indicado

Sobre Este Tutorial


Este tutorial foi elaborado para servir de apoio didtico a disciplina de Sistemas Embarcados ministrada na Universidade Federal de Uberlndia. Este material distribudo gratuitamente para os alunos matriculados na disciplina de Sistemas Embarcados. Todos os softwares que sero instalados so distribudos gratuitamente pelos seus respectivos fornecedores, por isso, expressamente proibida a comercializao destes softwares.

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

Prof. Fbio Vincenzi R. da Silva

Universidade Federal de Uberlndia Faculdade de Engenharia Eltrica LASEC Pgina 24

Anda mungkin juga menyukai