Página 1 de 1

SDCC e rotinas mapeadas

MensagemEnviado: 04 Abr 2010 10:15
por sisae
Ola a todos,

Recetemente estou usando o Eclipse como IDE para compilar C do SDCC.
Muito bom, se querem saber, quem estiver iniciando, ta ai uma otima ferrramenta livre.
Continuo com meu projeto de um computador 8051, que esta em otima fase.
Agora estou implementando serviços ao usuario atraves do S.O.
Preciso determinar espaço na memoria para algumas rotinas. Por exemplo:

void le_setor(){
mmc_command(xx, yyyyy, zz);
}


esta rotina tem como parametros variaveis na XDATA com endereços definidos.
agora preciso q a rotina seja tambem. Para o poder usuario chama-la.

MensagemEnviado: 04 Abr 2010 21:44
por Francesco
Olá Sisae,

Eu uso o Eclipse com SDCC também. Concordo contigo, é uma ferramenta ótima. Recomendo.

Quanto a sua pergunta sobre o 8051, não entendi exatamente. Você quer carregar uma rotina do MMC na memória RAM e executar à partir de seu programa? Se for isso, a solução é usar um ponteiro para função. Os parâmetros e retornos precisam ser padronizados, mas podem ser qualquer um.

Nesta situação, outro cuidado que você precisa tomar é mapear na mesma memória o XDATA e o CODE, com uma porta lógica entre o PSEN e o WR. O que acredito que você já fez.

Francesco

MensagemEnviado: 05 Abr 2010 08:28
por lopesjm
Olá Sisae,

Estou curioso. Como você ligou o cartão SD ao AT89S52 ? Que tensão está usando ?

Jorge

MensagemEnviado: 05 Abr 2010 20:00
por sisae
Ola Francesco,

Depois que postei isto, fui tomar um cafezinho, olhando nuvens e procurando inspiracao, ai veio esta mesma forma de se resolver, eu ja estava mapeando 32K de RAM externa, só determinei variaveis e ponteiros e tudo comecou a ficar bem novamente.
Eu estava querendo compilar uma rotina numa area da Flash mesmo, como no ORG. ai iria executar esta rotina atraves de programas de usuarios gravados no SD Card. Isso eu ja estou fazendo. executar programas, basta compila-los no ORG 0x8000 e se quiser proteger as variaveis do sistema, tem uma INT que armazena o RAMTOP nos ultimos 2K da 32K. Ta ficando muito bom, parece ate que to lendo as revistas INPUT com um MSX (rsss).
E ai LopesJM, o negocio do SD Card comeca com uma interface ISP, pode ser implementada por software, como fiz, depois é só estudar como funciona um SD Card, que na verdade é igual qualquer outra memória, como I2C ou paralela, e por fim, o mais chatim, mas nao impossivel, criar rotinas de tratamento FAT16.