Skip to content

Commit a7208bc

Browse files
committed
cc3200: Remove sd paths from sys path when disabling the sd card.
1 parent 1cf82a9 commit a7208bc

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

cc3200/mods/pybsd.c

+13-6
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ static byte pybsd_af_d0, pybsd_af_clk, pybsd_af_cmd;
5454
static const pin_obj_t *pybsd_pin_sd_detect;
5555
static bool pybsd_pin_config_set;
5656
static bool pybsd_is_enabled;
57+
static bool pybsd_in_path;
5758
static FATFS *sd_fatfs;
5859

5960

@@ -141,14 +142,16 @@ STATIC mp_obj_t pybsd_enable(mp_obj_t self) {
141142
else {
142143
nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, mpexception_os_resource_not_avaliable));
143144
}
145+
pybsd_is_enabled = true;
144146

145147
// try to mount the sd card on /SD
146-
if (FR_OK == f_mount(sd_fatfs, "/SD", 1)) {
147-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SD));
148-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SD_slash_LIB));
148+
if (FR_OK != f_mount(sd_fatfs, "/SD", 1)) {
149+
nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, mpexception_os_operation_failed));
149150
}
150151

151-
pybsd_is_enabled = true;
152+
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SD));
153+
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SD_slash_LIB));
154+
pybsd_in_path = true;
152155

153156
return mp_const_none;
154157
}
@@ -159,10 +162,15 @@ STATIC mp_obj_t pybsd_disable(mp_obj_t self) {
159162
pybsd_is_enabled = false;
160163
// unmount the sd card
161164
f_mount (NULL, "/SD", 1);
165+
// remove sd paths from mp_sys_path
166+
if (pybsd_in_path) {
167+
mp_obj_list_remove(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SD));
168+
mp_obj_list_remove(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SD_slash_LIB));
169+
pybsd_in_path = false;
170+
}
162171
// disable the peripheral
163172
MAP_PRCMPeripheralClkDisable(PRCM_SDHOST, PRCM_RUN_MODE_CLK | PRCM_SLP_MODE_CLK);
164173
}
165-
166174
return mp_const_none;
167175
}
168176
STATIC MP_DEFINE_CONST_FUN_OBJ_1(pybsd_disable_obj, pybsd_disable);
@@ -172,7 +180,6 @@ STATIC const mp_map_elem_t pybsd_locals_dict_table[] = {
172180
{ MP_OBJ_NEW_QSTR(MP_QSTR_enable), (mp_obj_t)&pybsd_enable_obj },
173181
{ MP_OBJ_NEW_QSTR(MP_QSTR_disable), (mp_obj_t)&pybsd_disable_obj },
174182
};
175-
176183
STATIC MP_DEFINE_CONST_DICT(pybsd_locals_dict, pybsd_locals_dict_table);
177184

178185
static const mp_obj_type_t sdcard_type = {

0 commit comments

Comments
 (0)