diff --git a/bsp/simulator/drivers/sd_sim.c b/bsp/simulator/drivers/sd_sim.c index 1f39843d3e1d63eda1b90e8d37d095676f6d4572..a01b275593c4df4ca5a624d8737182fd4e307108 100755 --- a/bsp/simulator/drivers/sd_sim.c +++ b/bsp/simulator/drivers/sd_sim.c @@ -185,9 +185,25 @@ rt_err_t rt_hw_sdcard_init(const char *spi_device_name) #ifdef RT_USING_FINSH #include -void eraseall(void) +int sd_erase(void) { - printf("had not implemented yet!\n"); + rt_uint32_t index; + char * buffer; + struct rt_device *device; + device = &_sdcard.parent; + if ((buffer = rt_malloc(SECTOR_SIZE)) == RT_NULL) + { + rt_kprintf("out of memory\n"); + return -1; + } + + memset(buffer, 0, SECTOR_SIZE); + /* just erase the MBR! */ + for (index = 0; index < 2; index ++) + { + rt_sdcard_write(device, index, buffer, SECTOR_SIZE); + } + return 0; } -FINSH_FUNCTION_EXPORT(eraseall, erase all block in SPI flash); +FINSH_FUNCTION_EXPORT(sd_erase, erase all block in SPI flash); #endif