Boot ARM NXP

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Boot ARM NXP

Mensagempor lbeumesmo » 27 Mai 2011 09:50

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?
Avatar do usuário
lbeumesmo
Bit
 
Mensagens: 37
Registrado em: 06 Abr 2010 18:27
Localização: Oktoberlandia

Mensagempor fabim » 27 Mai 2011 10:48

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 ?
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

...

Mensagempor lbeumesmo » 27 Mai 2011 17:18

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?
Avatar do usuário
lbeumesmo
Bit
 
Mensagens: 37
Registrado em: 06 Abr 2010 18:27
Localização: Oktoberlandia

Mensagempor fabim » 28 Mai 2011 13:26

cara é isso mesmo.
mais se for usar algum uc que não tem flash, vai ser um pouco mais aprofundado seu estudo para boot...
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor deniro » 31 Mai 2011 13:00

Tem que ser com o ARM não pode ser outro micro não?
Avatar do usuário
deniro
Byte
 
Mensagens: 135
Registrado em: 19 Out 2006 20:18
Localização: Rio de Janeiro

Mensagempor lbeumesmo » 02 Jun 2011 14:22

Até pode ser tenho preferência por ARM e Msp, qual a tua sugestão?
----------------------------------
LB 1/4 Bit
----------------------------------
Avatar do usuário
lbeumesmo
Bit
 
Mensagens: 37
Registrado em: 06 Abr 2010 18:27
Localização: Oktoberlandia

Mensagempor deniro » 07 Jun 2011 16:01

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.
Avatar do usuário
deniro
Byte
 
Mensagens: 135
Registrado em: 19 Out 2006 20:18
Localização: Rio de Janeiro

Mensagempor Red Neck Guy » 07 Jun 2011 16:37

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.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor lbeumesmo » 08 Jun 2011 08:57

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...
Avatar do usuário
lbeumesmo
Bit
 
Mensagens: 37
Registrado em: 06 Abr 2010 18:27
Localização: Oktoberlandia

Mensagempor Red Neck Guy » 09 Jun 2011 15:51

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.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor lbeumesmo » 22 Jun 2011 14:43

Alguém conhece um microcontrolador que "da boot" em memorias como a 27c4001 e 27C080 (velharias paralelas) ?
Avatar do usuário
lbeumesmo
Bit
 
Mensagens: 37
Registrado em: 06 Abr 2010 18:27
Localização: Oktoberlandia


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x