JZsdk_Osal.h
3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/**
********************************************************************
* @file JZsdk_Osal.h
* JZsdk_Osal.c 的头文件
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_OSAL_H
#define JZSDK_OSAL_H
/* Includes ------------------------------------------------------------------*/
#include "../JZsdk_Code/JZsdk_Code.h"
#include "./JZsdk_CheckSum/JZsdk_CheckSum.h"
#include "./JZsdk_FileSystm/JZsdk_FileSystm.h"
#include "./JZsdk_MemoryAdapter/JZsdk_MemoryAdapter.h"
#include "./JZsdk_Mutex/JZsdk_Mutex.h"
#include "./JZsdk_Semaphore/JZsdk_Semaphore.h"
#include "./JZsdk_Task/JZsdk_Task.h"
#include "./JZsdk_Timer/JZsdk_Timer.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/****************
*
* osal权柄
*
*
* ******************/
typedef struct {
//任务名 任务函数 任务栈大小 任务参数 任务句柄
T_JZsdkReturnCode (*TaskCreate)(const char *name, void *(*taskFunc)(void *),
unsigned int stackSize, void *arg, T_JZTaskHandle *task);
T_JZsdkReturnCode (*TaskDestroy)(T_JZTaskHandle task);
T_JZsdkReturnCode (*TaskSleepMs)(U32_t timeMs);
T_JZsdkReturnCode (*MutexCreate)(T_JZsdkMutexHandle *mutex);
T_JZsdkReturnCode (*MutexDestroy)(T_JZsdkMutexHandle mutex);
T_JZsdkReturnCode (*MutexLock)(T_JZsdkMutexHandle mutex);
T_JZsdkReturnCode (*MutexUnlock)(T_JZsdkMutexHandle mutex);
T_JZsdkReturnCode (*SemaphoreCreate)(U32_t initValue, T_JZsdkSemaHandle *semaphore);
T_JZsdkReturnCode (*SemaphoreDestroy)(T_JZsdkSemaHandle semaphore);
T_JZsdkReturnCode (*SemaphoreWait)(T_JZsdkSemaHandle semaphore);
T_JZsdkReturnCode (*SemaphoreTimedWait)(T_JZsdkSemaHandle semaphore, U32_t waitTimeMs);
T_JZsdkReturnCode (*SemaphorePost)(T_JZsdkSemaHandle semaphore);
T_JZsdkReturnCode (*GetTimeMs)(U32_t *ms);
T_JZsdkReturnCode (*GetTimeUs)(U64_t *us);
T_JZsdkReturnCode (*GetRandomNum)(U16_t *randomNum);
void *(*Malloc)(U32_t size);
void (*Free)(void *ptr);
} T_JZsdkOsalHandler;
/****************
*
* filesysterm 文件系统权柄
*
*
* ******************/
typedef struct {
T_JZsdkReturnCode (*FileOpen)(const char *fileName, const char *fileMode, T_JZsdkFileHandle *fileObj);
T_JZsdkReturnCode (*FileClose)(T_JZsdkFileHandle fileObj);
T_JZsdkReturnCode (*FileWrite_U8)(T_JZsdkFileHandle fileObj, const U8_t *buf, U32_t len, U32_t *realLen);
T_JZsdkReturnCode (*FileRead_U8)(T_JZsdkFileHandle fileObj, U8_t *buf, U32_t len, U32_t *realLen);
T_JZsdkReturnCode (*FileSeek)(T_JZsdkFileHandle fileObj, U32_t offset);
T_JZsdkReturnCode (*FileSync)(T_JZsdkFileHandle fileObj);
T_JZsdkReturnCode (*DirOpen)(const char *filePath, T_JZsdkDirHandle *dirObj);
T_JZsdkReturnCode (*DirClose)(T_JZsdkDirHandle dirObj);
T_JZsdkReturnCode (*DirRead)(T_JZsdkDirHandle dirObj, T_JZsdkFileInfo *fileInfo);
T_JZsdkReturnCode (*Mkdir)(const char *filePath);
T_JZsdkReturnCode (*Unlink)(const char *filePath);
T_JZsdkReturnCode (*Rename)(const char *oldFilePath, const char *newFilePath);
T_JZsdkReturnCode (*Stat)(const char *filePath, T_JZsdkFileInfo *fileInfo);
} T_JZsdkFSHandler;
/* Exported macro ------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode JZsdk_OsalInit();
T_JZsdkOsalHandler *JZsdk_Platform_GetOsalHandler(void);
T_JZsdkFSHandler *JZsdk_GetFsHandler(void);
#ifdef __cplusplus
}
#endif
#endif
/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/