JZsdk_Osal.h
3.9 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
129
130
/**
********************************************************************
* @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_JZsdkOsalHandler {
//任务名 任务函数 任务栈大小 任务参数 任务句柄
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_JZsdkReturnCode (*GetFrameSequenceQueueNum)(U8_t *frameSequence);
} T_JZsdkOsalHandler;
/****************
*
* filesysterm 文件系统权柄
*
*
* ******************/
typedef struct T_JZsdkFSHandler {
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******/