OpenCores
URL https://opencores.org/ocsvn/gecko3/gecko3/trunk

Subversion Repositories gecko3

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /gecko3/trunk/GECKO3COM/gecko3com-fw
    from Rev 20 to Rev 21
    Reverse comparison

Rev 20 → Rev 21

/firmware/include/firmware_version.h
36,6 → 36,6
#define _FIRMWARE_VERSION_H_
 
/** Version number of this firmware release */
#define FIRMWARE_VERSION "0.4rc3\n"
#define FIRMWARE_VERSION "0.5rc0\n"
 
#endif
/firmware/src/fpga_load.c
244,7 → 244,7
if(!fpga_done()) {
/* if not DONE, an error occoured during configuration */
print_err("fin.\n");
//print_err("fin.\n");
return 0;
}
 
/firmware/src/gecko3com_main.c
854,15 → 854,27
} /* end of IN Transfer clause */
 
/* if we operate in REMOTE mode (means we pass the data to the FPGA)
* continously check the DONE pin from the FPGA, to avoid that bad things
* happen when someone reconfigures the FPGA through JTAG */
if(flLOCAL == GECKO3COM_REMOTE && !fpga_done()) {
deactivate_gpif();
flLOCAL = GECKO3COM_LOCAL;
if(flLOCAL == GECKO3COM_REMOTE) {
/* if we operate in REMOTE mode (means we pass the data to the FPGA)
* continously check the DONE pin from the FPGA, to avoid that bad things
* happen when someone reconfigures the FPGA through JTAG */
if(!fpga_done()) {
mdelay(40);
if(!fpga_done()) {
//set_led_ext(GREEN);
deactivate_gpif();
flLOCAL = GECKO3COM_LOCAL;
}
}
 
if(!(EP2468STAT & bmEP2EMPTY) && (GPIFTRIG & bmGPIF_IDLE)) {
flGPIF = 0;
gpif_trigger_write();
}
}
 
 
/* if the LED flag is set to off, disable the external LED */
if(flLED == LEDS_OFF) {
set_led_ext(LEDS_OFF);
938,8 → 950,8
USBCS |= bmDISCON;
 
#ifdef DEBUG_LEVEL_ERROR
ser_init();
printf_tiny("hi\n");
//ser_init();
//printf_tiny("hi\n");
#endif
 
/* set the context switch flag to local operation, not fpga */
/firmware/src/gecko3com_gpif.c
95,19 → 95,25
INPKTEND = USB_TMC_EP_IN;
}
 
//EA = 0; /* disable all interrupts */
while(!(GPIFTRIG & bmGPIF_IDLE));
//EA = 1; /* global interrupt enable */
 
/* check if there is data available for an OUT transfer */
if((flGPIF & bmGPIF_PENDING_DATA) == bmGPIF_PENDING_DATA) {
//if((flGPIF & bmGPIF_PENDING_DATA) == bmGPIF_PENDING_DATA) {
//if(!(EP2468STAT & bmEP2EMPTY)) {
flGPIF &= ~bmGPIF_PENDING_DATA;
gpif_trigger_write();
flGPIF &= ~bmGPIF_READ_IN_PROGRESS;
}
else {
//flGPIF &= ~bmGPIF_PENDING_DATA;
//EA = 0; /* disable all interrupts */
//flGPIF &= ~bmGPIF_READ_IN_PROGRESS;
//gpif_trigger_write();
//EA = 1; /* global interrupt enable */
//}
/*else*/ {
EA = 0; /* disable all interrupts */
flGPIF |= bmGPIF_READ_IN_PROGRESS;
gpif_trigger_read();
flGPIF |= bmGPIF_READ_IN_PROGRESS;
EA = 1; /* global interrupt enable */
}
 
clear_fifo_gpif_irq();
129,11 → 135,20
flGPIF |= bmGPIF_PENDING_DATA;
}
else {
GPIFABORT = 0xFF;
SYNCDELAY;
//EA = 0; /* disable all interrupts */
if((flGPIF & bmGPIF_READ_IN_PROGRESS) == bmGPIF_READ_IN_PROGRESS) {
GPIFABORT = 0xFF;
SYNCDELAY;
flGPIF &= ~bmGPIF_READ_IN_PROGRESS;
}
//EA = 1; /* global interrupt enable */
//EA = 0; /* disable all interrupts */
while(!(GPIFTRIG & bmGPIF_IDLE));
gpif_trigger_write();
//EA = 1; /* global interrupt enable */
EA = 0; /* disable all interrupts */
flGPIF &= ~bmGPIF_READ_IN_PROGRESS;
gpif_trigger_write();
EA = 1; /* global interrupt enable */
}
 
clear_fifo_gpif_irq();
227,6 → 242,7
 
 
/* start gpif read, default state of the gpif to wait for fpga data */
flGPIF |= bmGPIF_READ_IN_PROGRESS;
gpif_trigger_read();
 
}
/gecko3com.iic Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.