int StorageInit(void) { int runResult = 0; #ifdef FAL_USING_SFUD_PORT fal_init(); #else W25qxxInit(); G_NfOptMutex = xSemaphoreCreateMutex(); if (G_NfOptMutex) { xSemaphoreGive(G_NfOptMutex); } else { MhError("NandFlash信号量创建失败"); } #endif // FhFirstUseSignErase(); // FhFirstUseSignWrite(); runResult = FhFirstUseSignRead(); if (runResult == 0) { MhDebug("NandFlash initialized!"); StorageDevParaRead(); // 读取参数。 NandFlashCtxInit(); ChargeRecordNotSaveCheck(); } else { MhError("NandFlash is not initialize!"); StorageUsingAreaInit(); DevDefaultParaSet(); StorageDevParaWrite(); FhFirstUseSignWrite(); NandFlashCtxInit(); } StorageLogInit(); return 0; }
时间: 2024-03-07 19:54:23 浏览: 100
这段代码是一个函数,它的名称为 `StorageInit`,它的返回值是一个整数类型。该函数主要用于初始化存储设备,以及读取和设置存储设备的参数信息。
在函数体中,首先通过 `fal_init()` 或 `W25qxxInit()` 函数初始化存储设备,具体使用哪个函数取决于是否定义了 `FAL_USING_SFUD_PORT` 宏。然后创建一个互斥锁 `G_NfOptMutex`,并将其初始化。如果创建成功,则将互斥锁释放;否则记录一个错误信息。接下来,通过调用 `FhFirstUseSignRead()` 函数读取设备的第一次使用标志,根据返回值判断设备是否已经被初始化过。如果设备已经被初始化过,则读取设备中保存的参数信息,并进行相关操作;否则进行设备的初始化,并设置默认参数并保存到设备中。最后,调用 `StorageLogInit()` 函数初始化存储设备的日志功能,并返回 0 表示初始化成功。
阅读全文