Página 1 de 1
Boot ARM NXP

Enviado:
27 Mai 2011 09:50
por lbeumesmo
Bom Dia,
Estou começando um projeto onde não posso ter memória de programa interna, a ideia é ter uma memória onde vai estar gravado o software que o ARM irá rodar.
Hoje eu uso o lpc 2368,2388 e 2103 (quando for aplicar terei de usar um arm9 provavelmente) alguém tem uma ideia de como "botar" o bichinho através de uma memoria externa?
E como isso funciona, tipo só gravo o .hex sequencialmente em uma EEPROM da vida?

Enviado:
27 Mai 2011 10:48
por fabim
Cabra, eu não sei qual é a necessidade de clock do seu projeto.
Mais veja que, é absolutamente e muito possivel o uso de um ARM7 com EMC.
O LPC2478 tem EMC com até 1/2CCLK ou seja, se rodar a 72KK/2, e lembre-se conforme o samsonite explicou a pouco tempo, o periferico de controle de EMC consegue até 2 transações ou mais por CK.
No caso, funciona da seguinte forma.
Tu cria o seu projeto normalmente no keil, porem com os pragmas apontando o start program pro mesmo endereço da EMC onde seu programa vai rodar. Saca?
O 2478 a EMC começa no endereço, 0xA0000000.
Lá o keil tu faz o seu programa em apenas um *.C, e com o botão direito sobre o arquivo, tu informa qual região vai estar o seu programa.
Bom, isso é o executavel infinito que vai ser rodado na ram, de forma simploriamente explicado.
Mas para subir este programa para a EMC, você precisa de um outro programa que por sua vez vai estar gravado na flash interna.
Este programa simplesmente faz o seguinte:
1° Configura os perifericos minimos para que o processador funcione.
2° Habilita e configura o periferico EMC
3° Habilita e configura o meio de memoria qual o programa que vai rodar a EMC esta armazenado.
4° Se estiver em hex32 intel, faz a linkedição, se estiver em bin só jogar todos os N bytes do cheksum lá na memoria, partindo do endereço X.
5° GOTO 2° MAIN, não CALL, é GOTO. E lá fica while 1...
Isso é estatico, para qualquer sistema, isso é o que o boot faz!!
Você ainda não aprendeu dar o BOOT ?
...

Enviado:
27 Mai 2011 17:18
por lbeumesmo
Nem quero dar o Boot...
rsrsrs
EMC = External Memory Controler?
Preciso entender como isso funciona, o problema que é o uC não pode ter flash interna pelo que entendi(uma das exigências do projeto).
Mas basicamente seria isso.
uC energizado.
Copia dados da memoria externa pra ram.
Executa o codigo da ram?
Entendi errado?

Enviado:
28 Mai 2011 13:26
por fabim
cara é isso mesmo.
mais se for usar algum uc que não tem flash, vai ser um pouco mais aprofundado seu estudo para boot...

Enviado:
31 Mai 2011 13:00
por deniro
Tem que ser com o ARM não pode ser outro micro não?

Enviado:
02 Jun 2011 14:22
por lbeumesmo
Até pode ser tenho preferência por ARM e Msp, qual a tua sugestão?

Enviado:
07 Jun 2011 16:01
por deniro
Eu estava pensando na familia 8051 que são super simples para trabalhar com memória eprom ou flash, mas o clock deles é mais baixo que a familia ARM.

Enviado:
07 Jun 2011 16:37
por Red Neck Guy
Esse chip não é da NXP mas dá pra fazer o que tu queres:
http://www.atmel.com/dyn/resources/prod_documents/doc6221.pdf
Basta gravar o teu hex numa flash spi e o loader dele carrega quando o chip for energizado. Claro que não é tão simples, mas é simples.

Enviado:
08 Jun 2011 08:57
por lbeumesmo
8051 infelizmente não mais (eu gostava) , já vi alguma coisa funcionando de maneira parecida...
Esse cara é legal Aquino, ARM9 com Jazele, 6 seriais e core clock de até 180MHz. O problema é aprender uma nova família.
Eu fiz alguns programinhas (linux) e rodei no lpc 3131 e 3141, vou estudar um pouco mais qual chip usar.
Por enquanto atolado em legislação...

Enviado:
09 Jun 2011 15:51
por Red Neck Guy
O LPC3131 possuí um sistema de boot bem flexível, ele pode carregar uma imagem a partir da SPI, USB e SD (entre outros). Pelo que vi no manual não dá pra carregar o hex direto pois existe um formato de imagem que o loader do chip reconhece. Mas pelo que vi é bem simples fazer um programinha que pega o hex e converte nesse formato.

Enviado:
22 Jun 2011 14:43
por lbeumesmo
Alguém conhece um microcontrolador que "da boot" em memorias como a 27c4001 e 27C080 (velharias paralelas) ?