FLASH MAGIC: Cuidado como Set Read Protect

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

FLASH MAGIC: Cuidado como Set Read Protect

Mensagempor Rodrigo_P_A » 14 Dez 2009 08:53

Pessoal, cuidado ao usar o Set Read Protect no FLASH MAGIC.

Se você fizer um programa, e quando gravar ele com o flash magic perceber que está funcionando de forma estranha ou não estivert funcionando, verifique se você setou a proteção de código.

Usando o LPC2368 quando seto o Set Read Protect o programa não roda, o Flash magic gratuíto deve ter um pau ao calcular o valor que deve ser escrito na área da flash que é lida pelo bootloader ao inicializar o chip "OU ESSE BUG é PROPOSITAL" pois o Flash Magic gratuíto não pode ser usado em modo de produção.

Se você precisar setar a proteção de código, faça isso manualmente dentro de seu código C.

fica a dica.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor proex » 14 Dez 2009 09:24

Cacilda, mais essa!!!

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor proex » 14 Dez 2009 09:24

O que usar entao na produçao?

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor Rodrigo_P_A » 14 Dez 2009 10:11

proex escreveu:O que usar entao na produçao?

.


Pode usar o flash magic, mas não sete a Proteção de código, e faça o seguinte em seu programa:

#include <absacc.h>
// Proteçào do código
long proteger __at(0x01FC) =0x87654321;


ATENÇÃO, não faça isso e tente depurar via JTAG, pois após gravado o código no ARM com esta "instrução" você não vai mais conseguir usar o JTAG com o LPC, para voltar a usar você terá que apagar o código usando o FLASH MAGIC.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor proex » 14 Dez 2009 13:18

Isso é muito complicado, nao vou usar mais ARM, vou voltar pro 8051.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor lopesjm » 18 Dez 2009 15:53

Olá,

Quer voltar para o 8051 ? Olha só que interessante. Tenho o mesmo problema do Rodrigo_PA, só que no LPC915 e no LPC952, que é core 8051.
Se eu setar a Proteção de código, o micro não lê minha tabela. Legal né !

Minha alternativa foi jogar a tabela para o final da flash e não proteger essa área.

Será "problema" do flashmagic mesmo ?

Jorge

proex escreveu:Isso é muito complicado, nao vou usar mais ARM, vou voltar pro 8051.
lopesjm
Byte
 
Mensagens: 133
Registrado em: 26 Out 2006 12:40

Mensagempor Rodrigo_P_A » 20 Dez 2009 19:59

lopesjm escreveu:Olá,

Quer voltar para o 8051 ? Olha só que interessante. Tenho o mesmo problema do Rodrigo_PA, só que no LPC915 e no LPC952, que é core 8051.
Se eu setar a Proteção de código, o micro não lê minha tabela. Legal né !

Minha alternativa foi jogar a tabela para o final da flash e não proteger essa área.

Será "problema" do flashmagic mesmo ?

Jorge

proex escreveu:Isso é muito complicado, nao vou usar mais ARM, vou voltar pro 8051.


no meu caso é problema no Flash Magic, pois qdo mando protejer no código escrevendo no endereço de "proteção" o valor para "proteção" da flash funciona.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor fabim » 21 Dez 2009 08:14

sei lá, sou contra passar raiva com o flash magic, ao invés de usar um Jtag.
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 lrfad2 » 18 Jan 2010 08:46

#include <absacc.h>
// Proteçào do código
long proteger __at(0x01FC) =0x87654321;


Eu já havia percebido isso à um tempo.
Acontece que esse endereço é fixo (olhem o item Code Read Protection (CRP) no manual ). Quando o compilador gera o *.hex ele escreve código nesse endereço. Quando vc manda setar o código de proteção no flash mágic ele escreve por cima, corrompendo o programa.
No meu ponto de vista não tem nada de errado com o flash magic. Se tiver que culpar alguem, culparia o compilador por não prever isso

Podem fazer isso que o Rodrigo sugeriu, que eu já venho testando a tempos e sempre funciona.

Fabim,
Eu pelo menos, nem mando montar o circuito do JTAG quando o equipamento está em produção (grava tudo pela serial). Primeiro que a serial é muito mais barata que o JTAG. Os pinos do processador ficam expostos, sendo que a chance de queimar o processador por uma chave de fenda que caia do bolso aumenta significativamente. Sem falar que pode ser mais uma fonte de ruído (pelo menos no que eu trabalho, vejo algumas coisas absurdas). A produção não precisa debugar o software
"Quem come de tudo, está sempre mastigando"
Avatar do usuário
lrfad2
Byte
 
Mensagens: 152
Registrado em: 19 Out 2006 17:35
Localização: São Paulo


Voltar para ARM

Quem está online

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

cron

x