fixes to db update

This commit is contained in:
Michele Balistreri 2023-07-24 11:41:20 +02:00
parent e9d2d1bd25
commit 718dff1589
No known key found for this signature in database
GPG Key ID: E9567DA33A4F791A
5 changed files with 10 additions and 4 deletions

View File

@ -86,7 +86,10 @@ app_err_t eth_db_lookup_erc20(erc20_desc_t* erc20) {
app_err_t eth_db_update(fs_entry_t* entries, size_t len) { app_err_t eth_db_update(fs_entry_t* entries, size_t len) {
app_err_t err = fs_erase_all(_eth_db_match_all, NULL); app_err_t err = fs_erase_all(_eth_db_match_all, NULL);
if (err != ERR_OK) { // since our matcher doesn't know when it has reached
// completion, if everything went OK the error code
// will be ERR_DATA on success.
if (err != ERR_DATA) {
return err; return err;
} }

View File

@ -2,3 +2,4 @@
#include "common.h" #include "common.h"
APP_ALIGNED(uint8_t g_mem_heap[MEM_HEAP_SIZE], 4); APP_ALIGNED(uint8_t g_mem_heap[MEM_HEAP_SIZE], 4);
APP_ALIGNED(uint8_t g_flash_swap[HAL_FLASH_BLOCK_SIZE], 4);

View File

@ -2,9 +2,11 @@
#define _MEM_H_ #define _MEM_H_
#include <stdint.h> #include <stdint.h>
#include "hal.h"
#define MEM_HEAP_SIZE (64 * 1024) #define MEM_HEAP_SIZE (64 * 1024)
extern uint8_t g_mem_heap[MEM_HEAP_SIZE]; extern uint8_t g_mem_heap[MEM_HEAP_SIZE];
extern uint8_t g_flash_swap[HAL_FLASH_BLOCK_SIZE];
#endif #endif

View File

@ -244,7 +244,7 @@ app_err_t fs_write(fs_entry_t* first_entry, size_t total_length) {
} }
app_err_t fs_erase(fs_entry_t* entry) { app_err_t fs_erase(fs_entry_t* entry) {
struct fs_erase_ctx erase_ctx = { .block = 0, .data = g_mem_heap, .predicate = _fs_erase_one, .ctx = entry, .err = ERR_OK, .stop = 0 }; struct fs_erase_ctx erase_ctx = { .block = 0, .data = g_flash_swap, .predicate = _fs_erase_one, .ctx = entry, .err = ERR_OK, .stop = 0 };
_fs_iterate_page((uint8_t*) HAL_FLASH_BLOCK_ADDR(HAL_FLASH_ADDR_TO_BLOCK((uint32_t)entry)), _fs_erase_entries, &erase_ctx); _fs_iterate_page((uint8_t*) HAL_FLASH_BLOCK_ADDR(HAL_FLASH_ADDR_TO_BLOCK((uint32_t)entry)), _fs_erase_entries, &erase_ctx);
_fs_commit_block(&erase_ctx); _fs_commit_block(&erase_ctx);
@ -256,7 +256,7 @@ app_err_t fs_erase_all(fs_predicate_t predicate, void* ctx) {
return ERR_HW; return ERR_HW;
} }
struct fs_erase_ctx erase_ctx = { .block = 0, .data = g_mem_heap, .predicate = predicate, .ctx = ctx, .err = ERR_DATA, .stop = 0, .pending_erase = 0 }; struct fs_erase_ctx erase_ctx = { .block = 0, .data = g_flash_swap, .predicate = predicate, .ctx = ctx, .err = ERR_DATA, .stop = 0, .pending_erase = 0 };
_fs_iterate(_fs_erase_entries, &erase_ctx); _fs_iterate(_fs_erase_entries, &erase_ctx);
_fs_commit_block(&erase_ctx); _fs_commit_block(&erase_ctx);

View File

@ -5,7 +5,7 @@
#include "error.h" #include "error.h"
#define UR_MAX_PART_COUNT 32 #define UR_MAX_PART_COUNT 32
#define UR_PART_DESC_COUNT (UR_MAX_PART_COUNT + 5) #define UR_PART_DESC_COUNT (UR_MAX_PART_COUNT + 10)
typedef enum { typedef enum {
BYTES = 0, BYTES = 0,