50 void __esos_InitCommSystem(
void);
    61 void __esos_unsafe_PutUint8(
uint8_t u8_c);
    62 void __esos_unsafe_PutString(
char* psz_in);
    63 uint8_t __esos_unsafe_GetUint8(
void);
    66 #define ESOS_COMM_SYS_USB       0x80    67 #define ESOS_COMM_SYS_SERIAL    0x00    68 #define ESOS_COMM_SYS_SERIAL_REV  (ESOS_COMM_SYS_SERIAL + 0x01)    70 #define ESOS_SERIAL_OUT_EP_SIZE    64    72 #define ESOS_SERIAL_IN_EP_SIZE     64    77 #define   __ESOS_COMM_TXFIFO_PREP()                     \    78   u16_tmp = __st_TxBuffer.u16_Head;                     \    80   if (u16_tmp == ESOS_SERIAL_IN_EP_SIZE) u16_tmp = 0    82 #define   __ESOS_COMM_WRITE_TXFIFO( u8_out )            \    83     __st_TxBuffer.pau8_Data[u16_tmp] = (u8_out);        \    84     __st_TxBuffer.u16_Head = u16_tmp   113 #define GET_ESOS_COMM_IN_DATA_LEN()   ((__st_RxBuffer.u16_Head>=__st_RxBuffer.u16_Tail)?(__st_RxBuffer.u16_Head-__st_RxBuffer.u16_Tail):(__st_RxBuffer.u16_Length-__st_RxBuffer.u16_Tail+__st_RxBuffer.u16_Head))   125 #define IS_ESOS_COMM_GOT_EXACTLY_DATA_BYTES(x)    (GET_ESOS_COMM_IN_DATA_LEN() == x)   137 #define IS_ESOS_COMM_GOT_AT_LEAST_DATA_BYTES(x)   (GET_ESOS_COMM_IN_DATA_LEN() >= x)   148 #define FLUSH_ESOS_COMM_IN_DATA()             (__st_RxBuffer.u16_Head = __st_RxBuffer.u16_Tail)   159 #define IS_ESOS_COMM_GOT_IN_DATA()            (__st_RxBuffer.u16_Head != __st_RxBuffer.u16_Tail)   179 #define PEEK_ESOS_COMM_IN_DATA(x)             ( __st_RxBuffer.pau8_Data[((__st_RxBuffer.u16_Tail+1+x)% ESOS_SERIAL_OUT_EP_SIZE)] )   197 #define PEEK_ESOS_COMM_IN_LATEST_DATA()       ( __st_RxBuffer.pau8_Data[__st_RxBuffer.u16_Head] )   208 #define IS_ESOS_COMM_READY_OUT_DATA()             (__st_TxBuffer.u16_Head != __st_TxBuffer.u16_Tail)   217 #define   ESOS_TASK_WAIT_ON_AVAILABLE_IN_COMM()                                                \   218             ESOS_TASK_WAIT_WHILE( __esos_IsSystemFlagSet( __ESOS_SYS_COMM_RX_IS_BUSY ) );      \   219             __esos_SetSystemFlag( __ESOS_SYS_COMM_RX_IS_BUSY )   228 #define   ESOS_TASK_WAIT_ON_AVAILABLE_OUT_COMM()                                                \   229             ESOS_TASK_WAIT_WHILE( __esos_IsSystemFlagSet( __ESOS_SYS_COMM_TX_IS_BUSY ) );       \   230             __esos_SetSystemFlag( __ESOS_SYS_COMM_TX_IS_BUSY )   241 #define   ESOS_TASK_SIGNAL_BUSY_IN_COMM()     __esos_SetSystemFlag( __ESOS_SYS_COMM_RX_IS_BUSY )   253 #define   ESOS_TASK_SIGNAL_BUSY_OUT_COMM()    __esos_SetSystemFlag( __ESOS_SYS_COMM_TX_IS_BUSY )   263 #define   ESOS_TASK_SIGNAL_AVAILABLE_IN_COMM()         __esos_ClearSystemFlag( __ESOS_SYS_COMM_RX_IS_BUSY )   271 #define   ESOS_TASK_SIGNAL_AVAILABLE_OUT_COMM()         __esos_ClearSystemFlag( __ESOS_SYS_COMM_TX_IS_BUSY )   282 #define   ESOS_TASK_RELEASE_IN_COMM()     ESOS_TASK_SIGNAL_AVAILABLE_IN_COMM()   292 #define   ESOS_TASK_RELEASE_OUT_COMM()    ESOS_TASK_SIGNAL_AVAILABLE_OUT_COMM()   309 #define   ESOS_TASK_WAIT_ON_GET_UINT8( u8_in )                                    \   310             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskRx, __esos_getBuffer, &(u8_in), 1 )   326 #define   ESOS_TASK_WAIT_ON_GET_U8BUFFER( pau8_in, u8_size)                                                \   327             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE) &__stChildTaskRx, __esos_getBuffer, (pau8_in), (u8_size) )   342 #define   ESOS_TASK_WAIT_ON_GET_UINT16( u16_in )                                    \   343             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskRx, __esos_getBuffer, (uint8_t*) &(u16_in), 2 )   358 #define   ESOS_TASK_WAIT_ON_GET_UINT32( u32_in )                                    \   359             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskRx, __esos_getBuffer, (uint8_t*) &(u32_in), 4 )   381 #define   ESOS_TASK_WAIT_ON_GET_STRING( pau8_in )                                                \   382             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskRx, __esos_getString, (pau8_in) )   392 #define   ESOS_TASK_WAIT_ON_SEND_UINT8( u8_out)         \   393             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE) &__stChildTaskTx, __esos_OutChar, (u8_out) )   404 #define   ESOS_TASK_WAIT_ON_SEND_UINT8_AS_HEX_STRING( u8_out)         \   405             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskTx, __esos_OutUint8AsHexString, (u8_out) )   417 #define   ESOS_TASK_WAIT_ON_SEND_UINT8_AS_DEC_STRING( u8_out)           \   418             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskTx, __esos_OutUint8AsDecString,(u8_out))   428 #define   ESOS_TASK_WAIT_ON_SEND_UINT32_AS_HEX_STRING( u32_out)         \   429             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskTx, __esos_OutUint32AsHexString, (u32_out) )   439 #define   ESOS_TASK_WAIT_ON_SEND_STRING( psz_out)         \   440             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskTx, __esos_OutString, (psz_out) )   451 #define   ESOS_TASK_WAIT_ON_SEND_U8BUFFER( pau8_out, u8_size)         \   452             ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskTx, __esos_OutCharBuffer, (pau8_out), (u8_size) )   463 typedef struct _ESOS_COMM_BUFF_DSC {
   471 extern volatile uint8_t                 __esos_comm_tx_buff[ESOS_SERIAL_IN_EP_SIZE];
   472 extern volatile uint8_t                 __esos_comm_rx_buff[ESOS_SERIAL_OUT_EP_SIZE];
   474 extern volatile struct stTask         __stChildTaskTx, __stChildTaskRx;
   498 void  __esos_InitCommSystem(
void);
   501 void __esos_unsafe_PutUint8(
uint8_t u8_c);
   502 void __esos_unsafe_PutString(
char* psz_in);
   503 uint8_t __esos_unsafe_GetUint8(
void);
   506 void __esos_hw_signal_start_tx(
void);
   507 void __esos_hw_signal_stop_tx(
void);
   508 void  __esos_hw_InitCommSystem(
void);
   512 #endif    // ESOS_COMM_H uint8_t esos_GetCommSystemMaxInDataLen(void)
#define ESOS_CHILD_TASK(taskname,...)
uint8_t esos_GetCommSystemVersion(void)
uint8_t esos_GetCommSystemMaxOutDataLen(void)
unsigned char uint8_t
An abbreviation for an 8-bit unsigned integer.