Travar o ARM LPC2148, e agora ?

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Travar o ARM LPC2148, e agora ?

Mensagempor jeanfernandes » 18 Dez 2006 17:10

Bom ja instalei o LPC2000 Flash e tals,....maravilha
programa direitinho via serial.

Agora onde mexer no programa pra travar o arm ?

ALguem tem a sequencia correta ae ?

To carregando o .hex no LPC2000 Flash Utility...no buffer da Flash eu vejo la....so que no endereco 0x1FC como ele diz no manoel tem coisa do meu programa ....assim nao creio que seja la naquele lugar nao.....ehehehehehehehehehe (pelo menos no que to vendo no buffer)

Valeu.
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor xultz » 18 Dez 2006 17:39

AFAIK esse endereço é preenchido com 0x87654321 (ou coisa parecida) pelo linker e não pelo compilador.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Mensagempor jeanfernandes » 18 Dez 2006 19:45

Valeu Xuta...

Seguinte, acho que consegui.

1) Eu fui la no Keil e na parte do LA Locate, desabilitei a opcao Use Memory Layout from Target Dialog.

2) No campo User Classes eu coloquei

DATA (0x40000000-0x40007FFF),
CODE (0x300-0x7FFFF), CONST (0x300-0x7FFFF))

Ou seja o vulva do endereco 0x1FC agora ta livre e desempedido.

Gerei o .HEX novamente

Fui la no LPC2000 e editei o endereco na posicao de memoria
0x1FC....colocando na ordem

87 65 43 21

Salvei o hexa novamente com outro nome pra nao confundir com o mizera la..... dai mandei bala no arm, gravou via ISP....

Depois desliguei a placa liguei novamente e tentei acessar via HJTAG....nem F**** acessou.......

4) Fui no LPC2000 Flash e apaguei a memoria toda........

5) Desliguei Liguei Reset e tals e fui no HJTAG beleza agora detectou o ARM......gravei sem lock so pra terminar de fazer umas coisas.... e xau....

Parece simples....ne ?
Mas carhai ....eh f**** eu li trocentos links e nem no site da Keil tem a mutreta pra fazer pqp.....

Fuiz....
De novo valeu Xuta.....

T+
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor jeanfernandes » 18 Dez 2006 19:51

Só pra constar

O esquema da placa que fiz....
ta ae

Esquema

Placa


Mas o ideal seria setar no Keil isso direto o tal valor na tal posicao de memoria. Vou correr atras pra ver no que dá.


Fuiz
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor gibim » 18 Dez 2006 21:04

Posso estar enganado, mas eu fiz e deu certo no meu uVision da Keil.

Eu procurei por "SEGMENTS Linker Directive" e encontrei os métodos para reservar determinado segmento de memória.

Uma pergunta que faço ao jeanfernandes:

Estou boiando aonde encontrar o lugar de setar "User Classes" no LA locate, na verdade, não achei nem dos dois (isso no uVision).

Obrigado.
Avatar do usuário
gibim
Byte
 
Mensagens: 117
Registrado em: 08 Nov 2006 21:40
Localização: Londrina - PR

Mensagempor gibim » 18 Dez 2006 21:04

.a
Editado pela última vez por gibim em 20 Dez 2006 10:50, em um total de 1 vez.
Avatar do usuário
gibim
Byte
 
Mensagens: 117
Registrado em: 08 Nov 2006 21:40
Localização: Londrina - PR

Mensagempor xultz » 19 Dez 2006 13:22

Ficou chique bagarai teu gravador, controlando reset e o pino de ISP...
O meu eu fiz com duas chavinhas mesmo porque tava com preguiça, e eu acho mais massa ficar apertando botões do que enviando comandinhos pelo computador. Meu próximo gravador eu vou usar no lugar de botõezinhos uns disjuntores trifásicos, prá fazer bastante barulho na hora de ligar/gravar, dá uma sensação de poder do cacilda.

Ah, e Xuta é a PQTP.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Mensagempor jeanfernandes » 19 Dez 2006 14:42

Valeu Sr. XULTZ (XUTA é melhor).....

Options - Target - LA Locate - User Classes

Sobre o SEGMENTS quem postou ae....
poe a parada certa.....
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor gibim » 19 Dez 2006 17:15

No startup do meu uVision da Keil, estou usando o GCC para compilar o projeto.

Então eu uso o arquivo chamado " crt0.s ". Ele contém as especificações de inicialização, tanto dos vetores quanto dos registradores de sistema como MAM e PLL.

A diretiva do GAS (GNU ASsembler) é bem simples:


É só incluir isso depois da chamada do "main"


.org 0x1FC
.word 0x87654321


Fica assim no final do arquivo crt0.s :

__main_exit:
B __main_exit

.org 0x1FC
.word 0x87654321

.size _startup, . - _startup
.endfunc

.end
Avatar do usuário
gibim
Byte
 
Mensagens: 117
Registrado em: 08 Nov 2006 21:40
Localização: Londrina - PR

Mensagempor gibim » 19 Dez 2006 17:19

Usando as ferramentas de debug e disassembler do GNU, consigo ver que o arquivo foi gerado com o valor de programação do fusível no local correto.

Para apagar a memória, e voltar a usar o J-TAG, uso o Flash Utilities da Philips, conecto no chips via BSL e apago, voltando a funcionar corretamente.
Avatar do usuário
gibim
Byte
 
Mensagens: 117
Registrado em: 08 Nov 2006 21:40
Localização: Londrina - PR

Mensagempor jeanfernandes » 19 Dez 2006 21:46

O PA acho que matou a PAU....
tem o Flash Magic 3.4 que pode fazer isso pra ieu.

http://www.flashmagictool.com/

Agora a XIT da NXP poderia ter posto isso la como info.....


Valeu Rodrigo.
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor Rodrigo_P_A » 19 Dez 2006 23:25

q isso, num foi nada, eu tava usando ele hoje e vi esta opção, então lembrei da tua mensagem do forum t+
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor Rodrigo_P_A » 20 Abr 2007 13:39

No keil eu fiz assim:

// protecao de codigo
const unsigned long protect __at 0x1FC=0x87654321;

usando LPC2148

e testei, mas agora num consigo mais acessar o LPC, nem usando o ULINK, e isso mesmo que acontece qdo se protege o LPC ?
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor Viktor » 20 Abr 2007 16:55

Melhor dizendo :

#include <absacc.h>

const unsigned long protect __at (0x1FC) =0x87654321;
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor Rodrigo_P_A » 20 Abr 2007 17:13

Viktor escreveu:Melhor dizendo :

#include <absacc.h>

const unsigned long protect __at (0x1FC) =0x87654321;


Victor, agora eu não estou conseguindo acessar mais o meu chip, usando o ULINK, qdo protegemos dessa forma, ele não permite mais acesso nenhum? ou dá para apagar usando o ISP ?
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Próximo

Voltar para ARM

Quem está online

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

x