Mount FLASH FS if SD card fails to mount.

This commit is contained in:
iabdalkader 2018-03-25 01:34:55 +02:00
parent eef37ce696
commit 6a3eb2814d

View File

@ -190,6 +190,9 @@ static const char fresh_selftest_py[] =
#endif #endif
void flash_error(int n) { void flash_error(int n) {
led_state(LED_RED, 0);
led_state(LED_GREEN, 0);
led_state(LED_BLUE, 0);
for (int i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
led_state(LED_RED, 0); led_state(LED_RED, 0);
HAL_Delay(100); HAL_Delay(100);
@ -407,6 +410,7 @@ FRESULT exec_boot_script(const char *path, bool selftest, bool interruptible)
int main(void) int main(void)
{ {
int sensor_init_ret = 0; int sensor_init_ret = 0;
bool sdcard_mounted = false;
bool first_soft_reset = true; bool first_soft_reset = true;
// Uncomment to disable write buffer to get precise faults. // Uncomment to disable write buffer to get precise faults.
@ -473,6 +477,7 @@ soft_reset:
servo_init(); servo_init();
usbdbg_init(); usbdbg_init();
wifi_dbg_init(); wifi_dbg_init();
sdcard_init();
if (first_soft_reset) { if (first_soft_reset) {
rtc_init_start(false); rtc_init_start(false);
@ -491,8 +496,6 @@ soft_reset:
// Initialize storage // Initialize storage
if (sdcard_is_present()) { if (sdcard_is_present()) {
sdcard_init();
// Init the vfs object // Init the vfs object
vfs_fat->flags = 0; vfs_fat->flags = 0;
sdcard_init_vfs(vfs_fat, 1); sdcard_init_vfs(vfs_fat, 1);
@ -500,12 +503,15 @@ soft_reset:
// Try to mount the SD card // Try to mount the SD card
FRESULT res = f_mount(&vfs_fat->fatfs); FRESULT res = f_mount(&vfs_fat->fatfs);
if (res != FR_OK) { if (res != FR_OK) {
__fatal_error("Could not mount SD card\n"); sdcard_mounted = false;
} } else {
sdcard_mounted = true;
// Set USB medium to SD // Set USB medium to SD
pyb_usb_storage_medium = PYB_USB_STORAGE_MEDIUM_SDCARD; pyb_usb_storage_medium = PYB_USB_STORAGE_MEDIUM_SDCARD;
} else { }
}
if (sdcard_mounted == false) {
storage_init(); storage_init();
// init the vfs object // init the vfs object