XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_main.c
浏览该文件的文档.
1
17/* ==================== [Includes] ========================================== */
18
19#include "lfs.h"
20
21#include "xf_lfs_by_fal.h"
22
23/* ==================== [Defines] =========================================== */
24
25#define TAG "littlefs_example"
26
27/* ==================== [Typedefs] ========================================== */
28
29/* ==================== [Static Prototypes] ================================= */
30
31/* ==================== [Static Variables] ================================== */
32
33/* ==================== [Macros] ============================================ */
34
35#define CHECK_LFS_ERR(_lfs_err) XF_CHECK((_lfs_err) != 0, XF_RETURN_VOID, TAG, "An error occurred.");
36
37/* ==================== [Global Functions] ================================== */
38
39void xf_main(void)
40{
41 xf_err_t xf_ret;
42 lfs_t *p_lfs;
43 lfs_file_t lfs_file = {0};
44 lfs_file_t *p_lfs_file = &lfs_file;
45 int lfs_err = 0;
46
47 /* 初始化 */
48 xf_ret = xf_lfs_init(NULL, true);
49 if (xf_ret != XF_OK) {
50 XF_LOGI(TAG, "xf_lfs init failed: %s", xf_err_to_name(xf_ret));
51 return;
52 }
53 /* 获取 littlefs 句柄 */
54 p_lfs = xf_lfs_get_lfs_handle();
55
56 uint32_t boot_count = 0;
57 lfs_err = lfs_file_open(p_lfs, p_lfs_file, "boot_count", LFS_O_RDWR | LFS_O_CREAT);
58 CHECK_LFS_ERR(lfs_err);
59 lfs_file_read(p_lfs, p_lfs_file, &boot_count, sizeof(boot_count));
60 /* 更新计数 */
61 boot_count += 1;
62 lfs_err = lfs_file_rewind(p_lfs, p_lfs_file); // seek the file to begin
63 CHECK_LFS_ERR(lfs_err);
64 lfs_file_write(p_lfs, p_lfs_file, &boot_count, sizeof(boot_count));
65 /* 在文件成功关闭之前,存储不会更新 */
66 lfs_err = lfs_file_close(p_lfs, p_lfs_file);
67 CHECK_LFS_ERR(lfs_err);
68
69 XF_LOGI(TAG, "boot_count: %u", (unsigned int)boot_count);
70}
71
72/* ==================== [Static Functions] ================================== */
void xf_main(void)
Definition xf_main.c:28
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
const char * xf_err_to_name(xf_err_t code)
返回 xf_err_code_t 错误代码对应的错误信息字符串。
@ XF_OK
Definition xf_err.h:43
#define TAG
Definition xf_main.c:24
static uint32_t boot_count
Definition xf_main.c:68
#define CHECK_LFS_ERR(_lfs_err)
Definition xf_main.c:35
#define XF_LOGI(tag, format,...)