mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
boards/OPENMV_RT1060: Fix SD Card Detection on power-on.
This commit is contained in:
parent
817014effc
commit
bd11076b87
@ -88,6 +88,7 @@ void exec_boot_script(const char *path, bool interruptible) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
bool sdcard_detected = false;
|
||||||
bool sdcard_mounted = false;
|
bool sdcard_mounted = false;
|
||||||
bool first_soft_reset = true;
|
bool first_soft_reset = true;
|
||||||
|
|
||||||
@ -139,7 +140,6 @@ soft_reset:
|
|||||||
machine_adc_init();
|
machine_adc_init();
|
||||||
#if MICROPY_PY_MACHINE_SDCARD
|
#if MICROPY_PY_MACHINE_SDCARD
|
||||||
machine_sdcard_init0();
|
machine_sdcard_init0();
|
||||||
sdcard_init_pins(&mimxrt_sdcard_objs[MICROPY_HW_SDCARD_SDMMC - 1]);
|
|
||||||
#endif
|
#endif
|
||||||
#if MICROPY_PY_MACHINE_I2S
|
#if MICROPY_PY_MACHINE_I2S
|
||||||
machine_i2s_init0();
|
machine_i2s_init0();
|
||||||
@ -187,7 +187,14 @@ soft_reset:
|
|||||||
// Mount or create a fresh filesystem.
|
// Mount or create a fresh filesystem.
|
||||||
mp_obj_t mount_point = MP_OBJ_NEW_QSTR(MP_QSTR__slash_);
|
mp_obj_t mount_point = MP_OBJ_NEW_QSTR(MP_QSTR__slash_);
|
||||||
#if MICROPY_PY_MACHINE_SDCARD
|
#if MICROPY_PY_MACHINE_SDCARD
|
||||||
if (sdcard_detect(&mimxrt_sdcard_objs[MICROPY_HW_SDCARD_SDMMC - 1])) {
|
mimxrt_sdcard_obj_t *sdcard = &mimxrt_sdcard_objs[MICROPY_HW_SDCARD_SDMMC - 1];
|
||||||
|
if (!sdcard->state->initialized) {
|
||||||
|
mp_hal_pin_input(sdcard->pins->cd_b.pin);
|
||||||
|
sdcard_detected = !mp_hal_pin_read(sdcard->pins->cd_b.pin);
|
||||||
|
} else {
|
||||||
|
sdcard_detected = sdcard_detect(sdcard);
|
||||||
|
}
|
||||||
|
if (sdcard_detected) {
|
||||||
mp_obj_t args[] = { MP_OBJ_NEW_SMALL_INT(MICROPY_HW_SDCARD_SDMMC) };
|
mp_obj_t args[] = { MP_OBJ_NEW_SMALL_INT(MICROPY_HW_SDCARD_SDMMC) };
|
||||||
mp_obj_t bdev = MP_OBJ_TYPE_GET_SLOT(&machine_sdcard_type, make_new) (&machine_sdcard_type, 1, 0, args);
|
mp_obj_t bdev = MP_OBJ_TYPE_GET_SLOT(&machine_sdcard_type, make_new) (&machine_sdcard_type, 1, 0, args);
|
||||||
if (mp_vfs_mount_and_chdir_protected(bdev, mount_point) == 0) {
|
if (mp_vfs_mount_and_chdir_protected(bdev, mount_point) == 0) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user