change OSAL_TASK_DEF to decouple variable name with task name
implement osal_task_delay for freeRTOS & non_os getting both no_os & freertos running with mouse + keyboard
This commit is contained in:
@@ -86,8 +86,8 @@ uint32_t osal_tick_get(void);
|
||||
typedef uint32_t osal_task_t;
|
||||
tusb_error_t osal_task_create(osal_task_t *task);
|
||||
|
||||
#define OSAL_TASK_DEF(name, code, stack_depth, prio) \
|
||||
osal_task_t name
|
||||
#define OSAL_TASK_DEF(variable, name, code, stack_depth, prio) \
|
||||
osal_task_t variable
|
||||
|
||||
#define OSAL_TASK_FUNCTION(task_name) \
|
||||
void task_name
|
||||
|
||||
@@ -81,9 +81,9 @@ typedef struct {
|
||||
unsigned portBASE_TYPE prio;
|
||||
} osal_task_t;
|
||||
|
||||
#define OSAL_TASK_DEF(task_name, task_code, task_stack_depth, task_prio) \
|
||||
osal_task_t task_name = {\
|
||||
.name = #task_name , \
|
||||
#define OSAL_TASK_DEF(task_variable, task_name, task_code, task_stack_depth, task_prio) \
|
||||
osal_task_t task_variable = {\
|
||||
.name = task_name , \
|
||||
.code = task_code , \
|
||||
.stack_depth = task_stack_depth , \
|
||||
.prio = task_prio \
|
||||
@@ -96,6 +96,12 @@ static inline tusb_error_t osal_task_create(osal_task_t *task)
|
||||
TUSB_ERROR_NONE : TUSB_ERROR_OSAL_TASK_CREATE_FAILED;
|
||||
}
|
||||
|
||||
static inline void osal_task_delay(uint32_t msec) ATTR_ALWAYS_INLINE;
|
||||
static inline void osal_task_delay(uint32_t msec)
|
||||
{
|
||||
vTaskDelay(TUSB_CFG_OS_TICKS_PER_SECOND * msec);
|
||||
}
|
||||
|
||||
#define OSAL_TASK_LOOP_BEGIN \
|
||||
while(1) {
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ static inline volatile uint32_t osal_tick_get(void)
|
||||
// OSAL_TASK_LOOP_ENG
|
||||
// }
|
||||
//--------------------------------------------------------------------+
|
||||
#define OSAL_TASK_DEF(name, code, stack_depth, prio)
|
||||
#define OSAL_TASK_DEF(variable, name, code, stack_depth, prio)
|
||||
#define osal_task_create(x) TUSB_ERROR_NONE
|
||||
|
||||
#define OSAL_TASK_FUNCTION(task_func) \
|
||||
@@ -107,6 +107,16 @@ static inline volatile uint32_t osal_tick_get(void)
|
||||
}\
|
||||
return TUSB_ERROR_NONE;
|
||||
|
||||
|
||||
#define osal_task_delay(msec) \
|
||||
do {\
|
||||
timeout = osal_tick_get();\
|
||||
state = __LINE__; case __LINE__:\
|
||||
if ( timeout + osal_tick_from_msec(msec) < osal_tick_get() ) /* time out */ \
|
||||
return TUSB_ERROR_OSAL_WAITING;\
|
||||
}while(0)
|
||||
|
||||
|
||||
//------------- Sub Task -------------//
|
||||
#define OSAL_SUBTASK_INVOKED_AND_WAIT(subtask, status) \
|
||||
do {\
|
||||
|
||||
Reference in New Issue
Block a user