Página 1 de 2
Travar o ARM LPC2148, e agora ?

Enviado:
18 Dez 2006 17:10
por jeanfernandes
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.

Enviado:
18 Dez 2006 17:39
por xultz
AFAIK esse endereço é preenchido com 0x87654321 (ou coisa parecida) pelo linker e não pelo compilador.

Enviado:
18 Dez 2006 19:45
por jeanfernandes
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+

Enviado:
18 Dez 2006 19:51
por jeanfernandes
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

Enviado:
18 Dez 2006 21:04
por gibim
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.

Enviado:
18 Dez 2006 21:04
por gibim
.a

Enviado:
19 Dez 2006 13:22
por xultz
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.

Enviado:
19 Dez 2006 14:42
por jeanfernandes
Valeu Sr. XULTZ (XUTA é melhor).....
Options - Target - LA Locate - User Classes
Sobre o SEGMENTS quem postou ae....
poe a parada certa.....

Enviado:
19 Dez 2006 17:15
por gibim
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

Enviado:
19 Dez 2006 17:19
por gibim
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.

Enviado:
19 Dez 2006 21:46
por jeanfernandes
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.

Enviado:
19 Dez 2006 23:25
por Rodrigo_P_A
q isso, num foi nada, eu tava usando ele hoje e vi esta opção, então lembrei da tua mensagem do forum t+

Enviado:
20 Abr 2007 13:39
por Rodrigo_P_A
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 ?

Enviado:
20 Abr 2007 16:55
por Viktor
Melhor dizendo :
#include <absacc.h>
const unsigned long protect __at (0x1FC) =0x87654321;

Enviado:
20 Abr 2007 17:13
por Rodrigo_P_A
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 ?