Página 1 de 2

Eclipse + GNUARM

MensagemEnviado: 18 Jun 2007 18:30
por Maia
Olá Todos,
Estou tentando usar o Eclipse e segui todos os passos pra configurar o mesmo segundo o arquivo ARM_Cross_Development_with_Eclipse.pdf porém quando fui rodar o exemplo recebi o seguinte erro no make:
arm-elf-gcc: Command not found
Digitei o nome desse arquivo no prompt e o computador achou ele, significando que o path tá certo. Alguém já teve algum problema parecido?
Abraços,
Maia

MensagemEnviado: 19 Jun 2007 17:55
por Maia
Neniu? (Ninguém em Esperanto) :lol:

MensagemEnviado: 19 Jun 2007 18:05
por Fábio Pereira
Bom,

Eu não sei quanto a versão que você está utilizando mas o pacote fornecido pela ST deve ser instalado no drive C do computador.

T+

MensagemEnviado: 20 Jun 2007 09:01
por chipselect
bom dia

se você está utilizando o eclipse e criou um makefile ou está usando um que é gerado automaticamente, olhe a linha do makefile:
cc=arm-elf-gcc

substitua por
cc=c:\gcc\arm-elf-gcc

isso supondo que o compilador esteja instalado em c:\gcc

coloque ali o caminho completo do executável (compilador), eu acho que funciona. A barra invertida é pra Windows... se estiver rodando em linux, troque \ por / e etc

MensagemEnviado: 09 Ago 2007 10:04
por eletroinf
Daí Maia, conseguiu fazer funcionar? Instalei aqui o Eclipse + GNUarm (precisa também o Cygwin), aparentemente está funcionando, só não gera o código HEx na compilação, não entendi isso ainda... O DBG, segundo entendi, instalando esses pacotes como eu fiz era pra instalar algum debugger, porém dá erro quando eu mando depurar... Bueno, to no começo disso, agora entendo porquê muitos diziam que esses ARM são meio cabulosos... não é o chip em sim, mas as ferramentas de trabalho são sofríveis!

MensagemEnviado: 09 Ago 2007 10:25
por eletroinf
A saída do compilador:
**** Build of configuration Debug for project elev_v8 ****

make all
Building file: ../hw.c
Invoking: Cygwin C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"hw.d" -MT"hw.d" -o"hw.o" "../hw.c"
Finished building: ../hw.c

Building file: ../main.c
Invoking: Cygwin C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.c"
Finished building: ../main.c

Building target: elev_v8.exe
Invoking: Cygwin C Linker
gcc -o"elev_v8.exe" ./hw.o ./main.o ./uart.o
Finished building target: elev_v8.exe

Não dáh erro, mas não gera o bendito HEX pra gravar no LPC! Alguma idéia?!

MensagemEnviado: 09 Ago 2007 15:26
por Maia
Olá Eletroinf,
Na época segui a dica do Chipselect e deu certo. Só que tô sem tempo de continuar mexendo com ARM. Tem um pdf explicando passo a passo como instalar isso tudo. Não lembro bem mas acho que lá explica como gerar o HEX.
Abraços,
Maia

Eclipse + GNUARM

MensagemEnviado: 09 Ago 2007 17:22
por Gilsom
Maia

Qual o endereço eletronico do chipselect ou como eu faço
para conseguir o arquivo PDF que explica como fazer .

Gilsom

MensagemEnviado: 09 Ago 2007 21:17
por eletroinf
O doc que me baseei foi este:
http://www.newmicros.com/download/appno ... clipse.pdf
Porém: Pelo que entendi, agora não precisa baixar o Eclipse SDK + o pacote CDT porquê tem o Eclipse CDT. Aqui eu baixei este último, aquele de 62MB lá do site do Eclipse. Aparentemente está tudo funcionando. Só falta eu descobrir como gerar o HEX (Pelo que entendi do Makefile está configurado pra gerar o HEX, só que não tá gerando).

MensagemEnviado: 09 Ago 2007 22:28
por Maia
Na época eu usei esse:

http://www.sparkfun.com/tutorial/ARM/ARM_Cross_Development_with_Eclipse.pdf

Já estava meio desatualizado mas serviu.
Abraços,
Maia

MensagemEnviado: 10 Ago 2007 08:32
por xultz
Ele não gera .HEX, você precisa de mais um comando. Estou espremendo meu célebro prá lembrar do comando...
Lembrei!
você precisa executar o arm-elf-objcopy -O ihex origem.elf destino.hex
Eu também me bati nesta parte no começo...

MensagemEnviado: 13 Ago 2007 15:34
por Gilsom
Pessoal consegui que fucionasse gerando ate o Hex.
Mas ele so funciona direito se eu ja utilizar ums arquivos
ja prontos atrves do comando import
os arquivos São
LPC210x.h
crts.s
main.c
makefile
demo2106_blink_flash_.cmd

O que eu gostaria de saber e como eu faço
para começar o projeto do começo e gerar todos
arquivos necessarios para compilação

Gilsom

MensagemEnviado: 13 Ago 2007 16:08
por xultz
Primeira, entenda o que cada arquivo faz:

LPC210x.h - este arquivo contém somente os endereços dos registradores, é somente um facilitador, porque é mais fácil usar IOPIN do que decorar que o endereço dele é 0x400012BF (esse valor eu chutei, só de exemplo ;)

crt.s - este é o programa de inicialização do teu chip. Ele faz bem poucas coisas, configura os ponteiros para interrupção, stack pointers, e mais algumas coisinhas. Ele é um arquivo em assembly.

main.c - ele não tem nada demais, provavelmente somente um include do LPC210x.h, além da função main (que é chamada no final do crt.s) e o teu programa.

makefile - esse script basicamente compila o crt.s, o main.c, e linka os dois. O formato dele é estranho porque ele é capaz de fazer um bocado de coisas, quando o projeto cresce bastante ele faz sentido.

demo2106_blink_flash_.cmd - esse é um arquivo bastante importante. Ele tem os endereços de início e fim das memórias (RAM e ROM) e é usado pelo linker para gerar o binário do teu firmware.


Então, respondendo à tua pergunta. Modificar o LPC210x.h ou criar um novo não faz muito sentido, mas se você quer realmente fazer tudo do zero, vai criar um .h com os nomes de todos os registradores que usar. Se você usar outro microcontrolador, pode ter que alterar ou adicionar registradores, conforme o caso.
O crt.s é importante conhecer, pelo mesmo caso do anterior, mas lembre-se que ele é em asm
O .cmd é de suma importância que você conheça BEM se mudar de modemo de micro.

De qualquer maneira, uma mão na roda é dar uma lido no livro de ARM do Fábio.

MensagemEnviado: 13 Ago 2007 16:59
por Gilsom
xultz

Entendi.Vou ler o livro para sanar minhas duvidas

Por enquanto muito obrigado

Gilsom

MensagemEnviado: 14 Ago 2007 10:03
por eletroinf
Bueno, ainda estou bem perdido, mas de vagarzito to conseguindo alguma coisa.
Esse arquivo crt.s, nos exemplos que baixei tá configurado para o "GCC Assembler", só que quando mando compilar (Ctrl + B) dá erro em todas linhas dele! Qualé a opção certa pra ele? Mudei pra Cygwin C Linker e não deu mais erros, mas se esse arquivo tá em asm devia compilar com a opção GCC Assembly...
Outra coisa, sobre geração do HEX: No Makefile tem referências sobre ele, como:
test: main.out
@ echo "...copying"
$(CP) $(CPFLAGS) main.out main.hex
$(OD) $(ODFLAGS) main.out > main.dmp

Porém não gera o HEX, sobre as linhas que o Xultz citou acima pra gerar o HEX não descobri em que parte inserí-las no programa, paciência, devagar chegamos lá!