diff --git a/common/src/lx_nor_flash_extended_cache_enable.c b/common/src/lx_nor_flash_extended_cache_enable.c index 7bd2863..b71b01c 100644 --- a/common/src/lx_nor_flash_extended_cache_enable.c +++ b/common/src/lx_nor_flash_extended_cache_enable.c @@ -9,6 +9,8 @@ * SPDX-License-Identifier: MIT **************************************************************************/ +// Some portions generated by Codex (GPT-5). + /**************************************************************************/ /**************************************************************************/ @@ -93,8 +95,11 @@ ULONG block_word; #endif + /* Calculate cache size in words. */ + cache_size = size / sizeof(ULONG); + /* Determine if memory was specified but with an invalid size (less than one NOR sector). */ - if ((memory) && (size < LX_NOR_SECTOR_SIZE)) + if ((memory) && (cache_size < LX_NOR_SECTOR_SIZE)) { /* Error in memory size supplied. */ @@ -110,9 +115,6 @@ ULONG block_word; /* Initialize the internal NOR cache. */ nor_flash -> lx_nor_flash_extended_cache_entries = 0; - /* Calculate cache size in words. */ - cache_size = size/sizeof(ULONG); - /* Setup cache memory pointer. */ cache_memory = (ULONG *) memory; @@ -317,5 +319,3 @@ ULONG block_word; return(LX_DISABLED); #endif } - - diff --git a/test/regression/levelx_nor_flash_test_cache.c b/test/regression/levelx_nor_flash_test_cache.c index d0b24d0..bb5be1b 100644 --- a/test/regression/levelx_nor_flash_test_cache.c +++ b/test/regression/levelx_nor_flash_test_cache.c @@ -9,6 +9,8 @@ /* SPDX-License-Identifier: MIT */ /***************************************************************************/ +// Some portions generated by Codex (GPT-5). + /* Basic NOR flash tests... */ #include @@ -31,6 +33,7 @@ ULONG readbuffer[128]; UCHAR nor_cache_memory[2048+16+8]; UCHAR nor_cache_memory2[8192]; +UCHAR nor_cache_memory_invalid[256]; /* Define LevelX NOR flash simulator prototoypes. */ @@ -1592,7 +1595,25 @@ status += lx_nor_flash_extended_cache_enable(&nor_sim_flash, nor_cache_memory, s /* Open the flash. */ status = lx_nor_flash_open(&nor_sim_flash, "sim nor flash", _lx_nor_flash_simulator_initialize); #ifndef LX_NOR_DISABLE_EXTENDED_CACHE -status += lx_nor_flash_extended_cache_enable(&nor_sim_flash, nor_cache_memory2, sizeof(nor_cache_memory2)); + if (status == LX_SUCCESS) + { + + status = lx_nor_flash_extended_cache_enable(&nor_sim_flash, nor_cache_memory_invalid, sizeof(nor_cache_memory_invalid)); + + if (status != LX_ERROR) + { + + printf("FAILED!\n"); +#ifdef BATCH_TEST + exit(1); +#endif + while(1) + { + } + } + + status = lx_nor_flash_extended_cache_enable(&nor_sim_flash, nor_cache_memory2, sizeof(nor_cache_memory2)); + } #endif if (status != LX_SUCCESS) @@ -1668,5 +1689,3 @@ status += lx_nor_flash_extended_cache_enable(&nor_sim_flash, nor_cache_memory2, { } } - -