示例#1
0
// fatal error
void FatalError(void)
{
  DEBUG_FUNC_IN();

  DisableCard();

  // loop forever
  while(1) {
    TIMER_wait(200);
    LEDS(0x0);
    TIMER_wait(200);
    LEDS(led);
  }

  DEBUG_FUNC_OUT();
}
示例#2
0
void main(void)
{
  DEBUG_FUNC_IN();

  fileTYPE ft;
  int i;

  // !!! a pointer to start of RAM
  unsigned char * ram = ((unsigned char *)0x400000);

  // initialize SD card
  LEDS(led=0xf);
  if (!MMC_Init()) FatalError();

  // find drive
  LEDS(led=0x8);
  if (!FindDrive()) FatalError();

  // open file
  LEDS(led=0x3);
  LoadFile(firmware,ram);
#if 0
  if (!FileOpen(&ft, firmware)) FatalError();

  // load firmware to RAM
  LEDS(led=0x1);
  for(i=0; i<((ft.size>>9)+1); i++) {
    FileRead(&ft, ram+(i*512));
    FileNextSector(&ft);
  }
#endif
  // jump to RAM firmware
  LEDS(led=0x0);
  DisableCard();
  sys_jump(0x400004);

  // loop forever
  while(1);

  DEBUG_FUNC_OUT();
}