From 16081c38a9e18a0cf35ed3fff6a46650db7f06e4 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Tue, 3 May 2022 15:41:58 +0200 Subject: [PATCH] Added some memory related debug features --- src_features/signMessageEIP712/entrypoint.c | 4 +++- src_features/signMessageEIP712/mem.c | 23 ++++++++++++++++++++- src_features/signMessageEIP712/mem.h | 6 ++++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src_features/signMessageEIP712/entrypoint.c b/src_features/signMessageEIP712/entrypoint.c index f65e11f..ccd2b42 100644 --- a/src_features/signMessageEIP712/entrypoint.c +++ b/src_features/signMessageEIP712/entrypoint.c @@ -739,6 +739,8 @@ int main(void) return EXIT_FAILURE; } } - //printf("\n%d bytes used in RAM\n", (mem_idx + 1)); +#ifdef DEBUG + printf("\n%lu bytes used in RAM\n", (mem_max + 1)); +#endif return EXIT_SUCCESS; } diff --git a/src_features/signMessageEIP712/mem.c b/src_features/signMessageEIP712/mem.c index 0677783..17b98b2 100644 --- a/src_features/signMessageEIP712/mem.c +++ b/src_features/signMessageEIP712/mem.c @@ -1,8 +1,18 @@ #include +#ifdef DEBUG +#include +#endif #include "mem.h" + +#define SIZE_MEM_BUFFER 1024 + static uint8_t mem_buffer[SIZE_MEM_BUFFER]; static size_t mem_idx; +#ifdef DEBUG +size_t mem_max; +#endif + /** * Initializes the memory buffer index @@ -10,6 +20,9 @@ static size_t mem_idx; void mem_init(void) { mem_idx = 0; +#ifdef DEBUG + mem_max = 0; +#endif } /** @@ -26,16 +39,24 @@ void mem_reset(void) * the current location in the memory buffer and moves the index accordingly. * * @param[in] size Requested allocation size in bytes - * * @return Allocated memory pointer; \ref NULL if not enough space left. */ void *mem_alloc(size_t size) { if ((mem_idx + size) > SIZE_MEM_BUFFER) // Buffer exceeded { +#ifdef DEBUG + printf("Memory exhausted!\n"); +#endif return NULL; } mem_idx += size; +#ifdef DEBUG + if (mem_idx > mem_max) + { + mem_max = mem_idx; + } +#endif return &mem_buffer[mem_idx - size]; } diff --git a/src_features/signMessageEIP712/mem.h b/src_features/signMessageEIP712/mem.h index 2a7b179..d91f57f 100644 --- a/src_features/signMessageEIP712/mem.h +++ b/src_features/signMessageEIP712/mem.h @@ -3,11 +3,13 @@ #include -#define SIZE_MEM_BUFFER 1024 - void mem_init(void); void mem_reset(void); void *mem_alloc(size_t size); void mem_dealloc(size_t size); +#ifdef DEBUG +extern size_t mem_max; +#endif + #endif // MEM_H_