Ejemplo n.º 1
0
int sdcard_initialize_sync (uint32_t* block_size, uint32_t* size_in_kB) {
  int err;
  sdcard_data_t result;
  result.fired = false;
  result.error = TOCK_SUCCESS;

  err = sdcard_set_callback(sdcard_cb, (void*) &result);
  if (err < 0) return err;

  err = sdcard_initialize();
  if (err < 0) return err;

  // wait for callback
  yield_for(&result.fired);

  // copy args
  if (block_size != NULL) {
    *block_size = result.block_size;
  }
  if (size_in_kB != NULL) {
    *size_in_kB = result.size_in_kB;
  }

  return result.error;
}
Ejemplo n.º 2
0
DSTATUS disk_initialize(BYTE drv        /* Physical drive number (0..) */
    )
{
	if (drv) return STA_NOINIT;	
	
	if (sdcard_initialize() == 0)
		Stat &= ~STA_NOINIT;

	return Stat;
}