Răsfoiți Sursa

add:添加little_flash_erase_write函数

Dozingfiretruck 5 luni în urmă
părinte
comite
6364e2463c

+ 2 - 0
components/little_flash/inc/little_flash.h

@@ -27,6 +27,8 @@ lf_err_t little_flash_chip_erase(const little_flash_t *lf);
 
 lf_err_t little_flash_write(const little_flash_t *lf, uint32_t addr, const uint8_t *data, uint32_t len);
 
+lf_err_t little_flash_erase_write(const little_flash_t *lf, uint32_t addr, const uint8_t *data, uint32_t len);
+
 lf_err_t little_flash_read(const little_flash_t *lf, uint32_t addr, uint8_t *data, uint32_t len);
 
 lf_err_t little_flash_write_status(const little_flash_t *lf, uint8_t address, uint8_t status);

+ 8 - 2
components/little_flash/src/little_flash.c

@@ -473,7 +473,6 @@ error:
     return LF_ERR_READ;
 }
 
-
 lf_err_t little_flash_write(const little_flash_t *lf, uint32_t addr, const uint8_t *data, uint32_t len){
 #ifdef LF_USE_HEAP
     uint8_t* cmd_data = (uint8_t*)lf->malloc(4+lf->chip_info.prog_size);
@@ -597,7 +596,14 @@ error:
     return LF_ERR_WRITE;
 }
 
-
+lf_err_t little_flash_erase_write(const little_flash_t *lf, uint32_t addr, const uint8_t *data, uint32_t len){
+    lf_err_t result = LF_ERR_OK;
+    result = sfud_erase(lf, addr, len);
+    if (result == LF_ERR_OK) {
+        result = sfud_write(lf, addr, data, len);
+    }
+    return result;
+}
 
 lf_err_t little_flash_read(const little_flash_t *lf, uint32_t addr, uint8_t *data, uint32_t len){
     uint8_t cmd_data[4];