mirror of
https://github.com/pellepl/spiffs.git
synced 2026-08-30 05:40:05 +00:00
Merge branch 'master' of https://github.com/pellepl/spiffs
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
diff --git a/src/spiffs_cache.c b/src/spiffs_cache.c
|
||||
index 0c5b5b9..76688a9 100644
|
||||
--- a/src/spiffs_cache.c
|
||||
+++ b/src/spiffs_cache.c
|
||||
@@ -203,6 +203,16 @@ s32_t spiffs_phys_wr(
|
||||
}
|
||||
|
||||
u8_t *mem = spiffs_get_cache_page(fs, cache, cp->ix);
|
||||
+
|
||||
+ intptr_t a1 = (intptr_t)((u8_t*)src);
|
||||
+ intptr_t a2 = (intptr_t)((u8_t*)src+len);
|
||||
+ intptr_t b1 = (intptr_t)((u8_t*)&mem[SPIFFS_PADDR_TO_PAGE_OFFSET(fs, addr)]);
|
||||
+ intptr_t b2 = (intptr_t)((u8_t*)&mem[SPIFFS_PADDR_TO_PAGE_OFFSET(fs, addr)]+len);
|
||||
+ if (a1 <= b2 && b1 <= a2) {
|
||||
+ printf("CACHE_PHYS_WR: memcpy from %lx..%lx to %lx..%lx\n", a1, a2, b1, b2);
|
||||
+ printf(" OVERLAP\n");
|
||||
+ }
|
||||
+
|
||||
memcpy(&mem[SPIFFS_PADDR_TO_PAGE_OFFSET(fs, addr)], src, len);
|
||||
|
||||
cache->last_access++;
|
||||
diff --git a/src/spiffs_hydrogen.c b/src/spiffs_hydrogen.c
|
||||
index b6fd093..de87e31 100644
|
||||
--- a/src/spiffs_hydrogen.c
|
||||
+++ b/src/spiffs_hydrogen.c
|
||||
@@ -543,6 +543,15 @@ s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
||||
offset, offset_in_cpage, len);
|
||||
spiffs_cache *cache = spiffs_get_cache(fs);
|
||||
u8_t *cpage_data = spiffs_get_cache_page(fs, cache, fd->cache_page->ix);
|
||||
+
|
||||
+ intptr_t a1 = (u8_t*)&cpage_data[offset_in_cpage]-(u8_t*)cache;
|
||||
+ intptr_t a2 = (u8_t*)&cpage_data[offset_in_cpage]+len-(u8_t*)cache;
|
||||
+ intptr_t b = sizeof(spiffs_cache) + cache->cpage_count * (sizeof(spiffs_cache_page) + SPIFFS_CFG_LOG_PAGE_SZ(fs));
|
||||
+ if (a1 >= b || a2 >= b) {
|
||||
+ printf("CACHE_WR: memcpy to cache buffer ixs:%4ld..%4ld of %4ld\n", a1, a2, b);
|
||||
+ printf(" OOB\n");
|
||||
+ }
|
||||
+
|
||||
memcpy(&cpage_data[offset_in_cpage], buf, len);
|
||||
fd->cache_page->size = MAX(fd->cache_page->size, offset_in_cpage + len);
|
||||
fd->fdoffset += len;
|
||||
Reference in New Issue
Block a user