memoria externa

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

memoria externa

Mensagempor deniro » 09 Set 2007 14:38

alguem sabe como enviar dados na memoria mapeada ultilizando o compilador keil linguagem C.
Avatar do usuário
deniro
Byte
 
Mensagens: 135
Registrado em: 19 Out 2006 20:18
Localização: Rio de Janeiro

Mensagempor Maurício » 09 Set 2007 18:07

Enviar dados na memória mapeada?

Num entendí nada, mas, se a sua dúvida é como armazenar um dado numa memória externa, pelo keil é só declarar a área da memória como externa:

Código: Selecionar todos
char xdata minha_var;
int xdata minha_int;
char xdata minha_string [ ] = "STRING";


Era isso?

[]'s
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor deniro » 10 Set 2007 07:30

Bom vou ser mais claro. Eu quero enviar um dado no endereço 0x8000 como faço.
Avatar do usuário
deniro
Byte
 
Mensagens: 135
Registrado em: 19 Out 2006 20:18
Localização: Rio de Janeiro

Mensagempor andre_luis » 10 Set 2007 07:44

Utilizando o arquivo #include apropriado, e montando o circuito corretamente, creio que isso seja feito de maneira automática pelo compilador/linker, em se tratando de programação em 'C'.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor lopesjm » 10 Set 2007 14:17

Olá Deniro,

Vou admitir que você já tem um hardware que identifique o endereço 0x8000.

Declare a sua variável usando estes comandos:

xdata at 0x8000 unsigned char nome_da_variável;

isto funciona no SDCC, creio que funcionará também no Keil.

sds
Jorge
lopesjm
Byte
 
Mensagens: 133
Registrado em: 26 Out 2006 12:40

Mensagempor Maurício » 10 Set 2007 16:55

Salve.

O Jorge está correto, só que no Keil, a forma de declarar é diferente:

Código: Selecionar todos
unsigned int xdata var _at_ 0x8000;


O sublinhado (simples), antes e depois da palavra AT que precede o endereço é obrigatório.

[]'s
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor deniro » 11 Set 2007 07:26

Valeu pela ajuda END.
Avatar do usuário
deniro
Byte
 
Mensagens: 135
Registrado em: 19 Out 2006 20:18
Localização: Rio de Janeiro


Voltar para 8051

Quem está online

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

x