/*--------------------------------------------------------*\ | FICHEIRO: lca-util.c | | DATA: 23-03-96 | | AUTOR: António Esteves | | | | Funções associadas com a utilização de LCAs do EDgAR | \*--------------------------------------------------------*/ #include #include #include #include /*----------------------------------------------------------------*\ | void ClearFfsResetReprogram (void) | | | | Como no arranque do sistema os F/Fs de RESET e REPROGRAM estão | | no estado activo e' preciso desactiva-los. Para isso escreve-se | | um '0' no bit do F/F de RESET e envia-se em sequência para o F/F | | de REPROGRAM '010', que origina no sinal notREPROGRAM o padrão | | ___ ___ | | __| |____| | | | | Este permite ter a certeza que ocorre a transição 1->0 e passado | | algum tempo desactiva o sinal. | \*----------------------------------------------------------------*/ void ClearFfsResetReprogram (void) { char *iniciar; int i; /* endereço para reset e reprogram por s/w */ iniciar = (char *)0x80600000; /* printf("\nDESACTIVAÇÃO DO F/F DE RESET DO EDgAR ..."); */ *iniciar = 2; /* bits_1_0 = 10 */ /* printf("\nGEROU-SE TRANSICAO 0->1 em notREPROGRAM das LCAs");*/ *iniciar = 0; /* bits_1_0 = 00 */ for(i=0;i<1000;++i) ; /* printf("\nGEROU-SE TRANSICAO 1->0 em notREPROGRAM das LCAs");*/ *iniciar = 2; /* bit_1_0 = 10 */ for(i=0;i<1000;++i) ; /* printf("\nGEROU-SE TRANSICAO 0->1 em notREPROGRAM das LCAs");*/ *iniciar = 0; /* bit_1_0 = 00 */ } /***************************************************************\ | void programarLca() | | | | addLca = endereco base da LCA a programar (ver edgar-hw.h) | | file = apontador para o nome do ficheiro .bit | | | | Funcao para enviar um programa de configuracao para uma LCA | \***************************************************************/ void programarLca(unsigned long *addLca, char *file) { FILE *fp; char nome[100]; unsigned char byteCfg[512]; unsigned long LcaReady; unsigned int i=0, num, n; strcpy (nome,file); strcat (nome,".BIT"); if((fp=fopen(nome,"rb")) == NULL) { printf("Erro ao Abrir o Ficheiro %s\n",nome); exit_terminate(EXIT_SUCCESS); } for(n=0;;) { num=fread((unsigned char *)byteCfg, sizeof(char), 512,fp); for(i=0;i