You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/09/14 12:16:23 UTC
[incubator-nuttx-apps] branch master updated: testing/nvconfig:fix compiling err after removing MTD_CONFIG_ERASEDVALUE
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git
The following commit(s) were added to refs/heads/master by this push:
new 3d53b7e0e testing/nvconfig:fix compiling err after removing MTD_CONFIG_ERASEDVALUE
3d53b7e0e is described below
commit 3d53b7e0e02b019097c7593b10442717f496ffdd
Author: 田昕 <ti...@xiaomi.com>
AuthorDate: Wed Sep 14 18:08:15 2022 +0800
testing/nvconfig:fix compiling err after removing MTD_CONFIG_ERASEDVALUE
Signed-off-by: 田昕 <ti...@xiaomi.com>
---
testing/mtd_config_fs/mtd_config_fs_test_main.c | 85 +++++++++++++++----------
1 file changed, 50 insertions(+), 35 deletions(-)
diff --git a/testing/mtd_config_fs/mtd_config_fs_test_main.c b/testing/mtd_config_fs/mtd_config_fs_test_main.c
index 782743087..33b30843b 100644
--- a/testing/mtd_config_fs/mtd_config_fs_test_main.c
+++ b/testing/mtd_config_fs/mtd_config_fs_test_main.c
@@ -80,6 +80,7 @@ struct mtdnvs_ctx_s
struct mallinfo mmbefore;
struct mallinfo mmprevious;
struct mallinfo mmafter;
+ uint8_t erasestate;
};
/****************************************************************************
@@ -128,9 +129,10 @@ static void fill_crc8_update(FAR struct nvs_ate *entry)
* Name: fill_gc_done_ate
****************************************************************************/
-static void fill_corrupted_close_ate(FAR struct nvs_ate *close_ate)
+static void fill_corrupted_close_ate(FAR struct mtdnvs_ctx_s *ctx,
+ FAR struct nvs_ate *close_ate)
{
- memset((FAR void *)close_ate, CONFIG_MTD_CONFIG_ERASEDVALUE,
+ memset((FAR void *)close_ate, ctx->erasestate,
sizeof(struct nvs_ate));
close_ate->id = 0xffffffff;
close_ate->len = 0U;
@@ -140,9 +142,10 @@ static void fill_corrupted_close_ate(FAR struct nvs_ate *close_ate)
* Name: fill_close_ate
****************************************************************************/
-static void fill_close_ate(FAR struct nvs_ate *close_ate, int offset)
+static void fill_close_ate(FAR struct mtdnvs_ctx_s *ctx,
+ FAR struct nvs_ate *close_ate, int offset)
{
- memset((FAR void *)close_ate, CONFIG_MTD_CONFIG_ERASEDVALUE,
+ memset((FAR void *)close_ate, ctx->erasestate,
sizeof(struct nvs_ate));
close_ate->id = 0xffffffff;
close_ate->len = 0U;
@@ -154,9 +157,10 @@ static void fill_close_ate(FAR struct nvs_ate *close_ate, int offset)
* Name: fill_gc_done_ate
****************************************************************************/
-static void fill_gc_done_ate(FAR struct nvs_ate *gc_done_ate)
+static void fill_gc_done_ate(FAR struct mtdnvs_ctx_s *ctx,
+ FAR struct nvs_ate *gc_done_ate)
{
- memset((FAR void *)gc_done_ate, CONFIG_MTD_CONFIG_ERASEDVALUE,
+ memset((FAR void *)gc_done_ate, ctx->erasestate,
sizeof(struct nvs_ate));
gc_done_ate->id = 0xffffffff;
gc_done_ate->len = 0U;
@@ -167,10 +171,11 @@ static void fill_gc_done_ate(FAR struct nvs_ate *gc_done_ate)
* Name: fill_ate
****************************************************************************/
-static void fill_ate(FAR struct nvs_ate *ate, FAR const char *key,
- uint16_t len, uint16_t offset, bool expired)
+static void fill_ate(FAR struct mtdnvs_ctx_s *ctx, FAR struct nvs_ate *ate,
+ FAR const char *key, uint16_t len, uint16_t offset,
+ bool expired)
{
- memset((FAR void *)ate, CONFIG_MTD_CONFIG_ERASEDVALUE,
+ memset((FAR void *)ate, ctx->erasestate,
sizeof(struct nvs_ate));
ate->id = nvs_fnv_hash((FAR const uint8_t *)key, strlen(key) + 1)
% 0xfffffffd + 1;
@@ -185,10 +190,11 @@ static void fill_ate(FAR struct nvs_ate *ate, FAR const char *key,
* Name: fill_corrupted_ate
****************************************************************************/
-static void fill_corrupted_ate(FAR struct nvs_ate *ate,
- FAR const char *key, uint16_t len, uint16_t offset)
+static void fill_corrupted_ate(FAR struct mtdnvs_ctx_s *ctx,
+ FAR struct nvs_ate *ate, FAR const char *key,
+ uint16_t len, uint16_t offset)
{
- memset((FAR void *)ate, CONFIG_MTD_CONFIG_ERASEDVALUE,
+ memset((FAR void *)ate, ctx->erasestate,
sizeof(struct nvs_ate));
ate->id = nvs_fnv_hash((FAR const uint8_t *)key, strlen(key) + 1)
% 0xfffffffd + 1;
@@ -298,6 +304,14 @@ static int setup(struct mtdnvs_ctx_s *ctx)
return -errno;
}
+ ret = MTD_IOCTL(sys_node->u.i_mtd, MTDIOC_ERASESTATE,
+ (unsigned long)((uintptr_t)&ctx->erasestate));
+ if (ret < 0)
+ {
+ printf("ERROR: MTD ioctl(MTDIOC_ERASESTATE) failed: %d\n", ret);
+ return ret;
+ }
+
ret = mtdconfig_register(sys_node->u.i_mtd);
if (ret < 0)
{
@@ -476,7 +490,7 @@ static void test_nvs_corrupt_expire(struct mtdnvs_ctx_s *ctx)
int nvs_fd = -1;
int ret;
int i;
- uint8_t erase_value = CONFIG_MTD_CONFIG_ERASEDVALUE;
+ uint8_t erase_value = ctx->erasestate;
struct config_data_s data;
char rd_buf[50];
@@ -537,7 +551,7 @@ static void test_nvs_corrupt_expire(struct mtdnvs_ctx_s *ctx)
/* Write ate */
- fill_ate(&ate, TEST_KEY1, strlen(TEST_DATA2) + 1,
+ fill_ate(ctx, &ate, TEST_KEY1, strlen(TEST_DATA2) + 1,
strlen(TEST_KEY1) + strlen(TEST_DATA1) + 2, false);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
@@ -546,7 +560,7 @@ static void test_nvs_corrupt_expire(struct mtdnvs_ctx_s *ctx)
goto test_fail;
}
- fill_ate(&ate, TEST_KEY1, strlen(TEST_DATA1) + 1, 0, false);
+ fill_ate(ctx, &ate, TEST_KEY1, strlen(TEST_DATA1) + 1, 0, false);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -556,7 +570,7 @@ static void test_nvs_corrupt_expire(struct mtdnvs_ctx_s *ctx)
/* write gc_done ate */
- fill_gc_done_ate(&ate);
+ fill_gc_done_ate(ctx, &ate);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -566,7 +580,7 @@ static void test_nvs_corrupt_expire(struct mtdnvs_ctx_s *ctx)
/* write close ate, mark section 0 as closed */
- fill_close_ate(&ate,
+ fill_close_ate(ctx, &ate,
CONFIG_TESTING_MTD_CONFIG_FAIL_SAFE_FLASH_SECTION_SIZE - 4 * 16);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
@@ -660,7 +674,7 @@ static void test_nvs_corrupted_write(struct mtdnvs_ctx_s *ctx)
int mtd_fd = -1;
int nvs_fd = -1;
int i;
- uint8_t erase_value = CONFIG_MTD_CONFIG_ERASEDVALUE;
+ uint8_t erase_value = ctx->erasestate;
struct nvs_ate ate;
struct config_data_s data;
@@ -723,7 +737,7 @@ static void test_nvs_corrupted_write(struct mtdnvs_ctx_s *ctx)
/* write ate */
- fill_ate(&ate, key1, sizeof(wr_buf_1), 0, false);
+ fill_ate(ctx, &ate, key1, sizeof(wr_buf_1), 0, false);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -733,7 +747,7 @@ static void test_nvs_corrupted_write(struct mtdnvs_ctx_s *ctx)
/* write gc_done ate */
- fill_gc_done_ate(&ate);
+ fill_gc_done_ate(ctx, &ate);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -1294,7 +1308,7 @@ static void test_nvs_corrupted_sector_close(struct mtdnvs_ctx_s *ctx)
int nvs_fd = -1;
int loop_section;
int i;
- uint8_t erase_value = CONFIG_MTD_CONFIG_ERASEDVALUE;
+ uint8_t erase_value = ctx->erasestate;
struct nvs_ate ate;
struct config_data_s data;
@@ -1352,7 +1366,8 @@ static void test_nvs_corrupted_sector_close(struct mtdnvs_ctx_s *ctx)
/* write ate 2 times */
- fill_ate(&ate, key1, sizeof(wr_buf), sizeof(wr_buf) + sizeof(key1),
+ fill_ate(ctx, &ate, key1, sizeof(wr_buf),
+ sizeof(wr_buf) + sizeof(key1),
(loop_section ==
CONFIG_TESTING_MTD_CONFIG_FAIL_SAFE_FLASH_SECTION_COUNT - 2)
? false : true);
@@ -1363,7 +1378,7 @@ static void test_nvs_corrupted_sector_close(struct mtdnvs_ctx_s *ctx)
goto test_fail;
}
- fill_ate(&ate, key1, sizeof(wr_buf), 0, true);
+ fill_ate(ctx, &ate, key1, sizeof(wr_buf), 0, true);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -1373,7 +1388,7 @@ static void test_nvs_corrupted_sector_close(struct mtdnvs_ctx_s *ctx)
/* write gc_done ate */
- fill_gc_done_ate(&ate);
+ fill_gc_done_ate(ctx, &ate);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -1384,11 +1399,11 @@ static void test_nvs_corrupted_sector_close(struct mtdnvs_ctx_s *ctx)
if (loop_section ==
CONFIG_TESTING_MTD_CONFIG_FAIL_SAFE_FLASH_SECTION_COUNT - 2)
{
- fill_corrupted_close_ate(&ate);
+ fill_corrupted_close_ate(ctx, &ate);
}
else
{
- fill_close_ate(&ate,
+ fill_close_ate(ctx, &ate,
CONFIG_TESTING_MTD_CONFIG_FAIL_SAFE_FLASH_SECTION_SIZE - 4 * 16);
}
@@ -1655,7 +1670,7 @@ static void test_nvs_gc_corrupt_close_ate(struct mtdnvs_ctx_s *ctx)
int nvs_fd = -1;
int ret;
int i;
- uint8_t erase_value = CONFIG_MTD_CONFIG_ERASEDVALUE;
+ uint8_t erase_value = ctx->erasestate;
struct config_data_s data;
char rd_buf[50];
@@ -1700,7 +1715,7 @@ static void test_nvs_gc_corrupt_close_ate(struct mtdnvs_ctx_s *ctx)
/* Write valid ate at -6 */
- fill_ate(&ate, TEST_KEY1, strlen(TEST_DATA1) + 1, 0, false);
+ fill_ate(ctx, &ate, TEST_KEY1, strlen(TEST_DATA1) + 1, 0, false);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -1724,7 +1739,7 @@ static void test_nvs_gc_corrupt_close_ate(struct mtdnvs_ctx_s *ctx)
/* write gc_done ate */
- fill_gc_done_ate(&ate);
+ fill_gc_done_ate(ctx, &ate);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -1734,7 +1749,7 @@ static void test_nvs_gc_corrupt_close_ate(struct mtdnvs_ctx_s *ctx)
/* write invalid close ate, mark section 0 as closed */
- fill_corrupted_close_ate(&close_ate);
+ fill_corrupted_close_ate(ctx, &close_ate);
ret = write(mtd_fd, &close_ate, sizeof(close_ate));
if (ret != sizeof(ate))
{
@@ -1758,7 +1773,7 @@ static void test_nvs_gc_corrupt_close_ate(struct mtdnvs_ctx_s *ctx)
/* write invalid close ate, mark section 1 as closed */
- fill_corrupted_close_ate(&close_ate);
+ fill_corrupted_close_ate(ctx, &close_ate);
ret = write(mtd_fd, &close_ate, sizeof(close_ate));
if (ret != sizeof(ate))
{
@@ -1841,11 +1856,11 @@ static void test_nvs_gc_corrupt_ate(struct mtdnvs_ctx_s *ctx)
int mtd_fd = -1;
int ret;
int i;
- uint8_t erase_value = CONFIG_MTD_CONFIG_ERASEDVALUE;
+ uint8_t erase_value = ctx->erasestate;
printf("%s: test begin\n", __func__);
- fill_corrupted_ate(&ate, TEST_KEY1, 10, 0);
+ fill_corrupted_ate(ctx, &ate, TEST_KEY1, 10, 0);
mtd_fd = open(CONFIG_TESTING_MTD_CONFIG_FAIL_SAFE_MOUNTPT_NAME, O_RDWR);
if (mtd_fd < 0)
@@ -1889,7 +1904,7 @@ static void test_nvs_gc_corrupt_ate(struct mtdnvs_ctx_s *ctx)
/* write gc_done ate */
- fill_gc_done_ate(&ate);
+ fill_gc_done_ate(ctx, &ate);
ret = write(mtd_fd, &ate, sizeof(ate));
if (ret != sizeof(ate))
{
@@ -1899,7 +1914,7 @@ static void test_nvs_gc_corrupt_ate(struct mtdnvs_ctx_s *ctx)
/* write close ate, mark section 0 as closed */
- fill_close_ate(&close_ate,
+ fill_close_ate(ctx, &close_ate,
CONFIG_TESTING_MTD_CONFIG_FAIL_SAFE_FLASH_SECTION_SIZE / 2);
ret = write(mtd_fd, &close_ate, sizeof(close_ate));
if (ret != sizeof(ate))