34 volatile uint8_t __esos_comm_tx_buff[ESOS_SERIAL_IN_EP_SIZE];
35 volatile uint8_t __esos_comm_rx_buff[ESOS_SERIAL_OUT_EP_SIZE];
37 volatile struct stTask __stChildTaskTx, __stChildTaskRx;
42 void __esos_InitCommSystem(
void) {
44 __st_TxBuffer.pau8_Data = &__esos_comm_tx_buff[0];
45 __st_TxBuffer.u16_Head = 0;
46 __st_TxBuffer.u16_Tail = 0;
47 __st_TxBuffer.u16_Length = ESOS_SERIAL_IN_EP_SIZE;
48 __st_RxBuffer.pau8_Data = __esos_comm_rx_buff;
49 __st_RxBuffer.u16_Head = 0;
50 __st_RxBuffer.u16_Tail = 0;
51 __st_RxBuffer.u16_Length = ESOS_SERIAL_OUT_EP_SIZE;
53 __esos_hw_InitCommSystem();
60 u8_c = (u8_x>>4)& 0xf;
61 if (u8_c > 9)
return(
'A'+u8_c-10);
62 else return(
'0'+u8_c);
69 if (u8_c > 9)
return(
'A'+u8_c-10);
70 else return(
'0'+u8_c);
75 static uint16_t u16_tmp;
81 __ESOS_COMM_TXFIFO_PREP();
84 __ESOS_COMM_WRITE_TXFIFO( u8_TempChar );
85 __esos_hw_signal_start_tx();
94 static uint16_t u16_tmp;
99 au8_String[2] = __esos_u8_GetMSBHexCharFromUint8(u8_x);
100 au8_String[3] = __esos_u8_GetLSBHexCharFromUint8(u8_x);
105 __ESOS_COMM_TXFIFO_PREP();
107 __ESOS_COMM_WRITE_TXFIFO( au8_String[u8_c++] );
108 __esos_hw_signal_start_tx();
119 static uint16_t u16_tmp;
124 au8_String[u8_digit++] =
'0' + u8_x / 100;
126 au8_String[u8_digit++] =
'0' + (u8_x % 100) / 10;
127 au8_String[u8_digit++] =
'0' + (u8_x % 10);
128 au8_String[u8_digit] = 0;
130 while (u8_c < u8_digit) {
131 __ESOS_COMM_TXFIFO_PREP();
133 __ESOS_COMM_WRITE_TXFIFO( au8_String[u8_c++] );
134 __esos_hw_signal_start_tx();
142 static uint16_t u16_tmp;
147 u8_c = (u32_x >> 24);
148 au8_String[2] = __esos_u8_GetMSBHexCharFromUint8(u8_c);
149 au8_String[3] = __esos_u8_GetLSBHexCharFromUint8(u8_c);
150 u8_c = (u32_x >> 16);
151 au8_String[4] = __esos_u8_GetMSBHexCharFromUint8(u8_c);
152 au8_String[5] = __esos_u8_GetLSBHexCharFromUint8(u8_c);
154 au8_String[6] = __esos_u8_GetMSBHexCharFromUint8(u8_c);
155 au8_String[7] = __esos_u8_GetLSBHexCharFromUint8(u8_c);
157 au8_String[8] = __esos_u8_GetMSBHexCharFromUint8(u8_c);
158 au8_String[9] = __esos_u8_GetLSBHexCharFromUint8(u8_c);
163 __ESOS_COMM_TXFIFO_PREP();
165 __ESOS_COMM_WRITE_TXFIFO( au8_String[u8_c++] );
166 __esos_hw_signal_start_tx();
174 static uint16_t u16_tmp;
180 u8_StoreLen = u8_len;
181 pu8_StorePtr = pu8_out;
183 while (u8_StoreLen) {
184 __ESOS_COMM_TXFIFO_PREP();
186 __ESOS_COMM_WRITE_TXFIFO( pu8_StorePtr[u8_i++] );
187 __esos_hw_signal_start_tx();
200 u8_LocalSize = u8_size;
201 pau8_LocalPtr = pau8_buff;
203 for (u8_i=0; u8_i<u8_size; u8_i++) {
207 __st_RxBuffer.u16_Tail++;
208 if (__st_RxBuffer.u16_Tail == ESOS_SERIAL_OUT_EP_SIZE) __st_RxBuffer.u16_Tail=0;
210 pau8_buff[u8_i] = __st_RxBuffer.pau8_Data[__st_RxBuffer.u16_Tail];
220 for (u8_i=0; u8_i<(ESOS_SERIAL_OUT_EP_SIZE-1); u8_i++) {
224 __st_RxBuffer.u16_Tail++;
225 if (__st_RxBuffer.u16_Tail == ESOS_SERIAL_OUT_EP_SIZE) __st_RxBuffer.u16_Tail=0;
227 pau8_buff[u8_i] = __st_RxBuffer.pau8_Data[__st_RxBuffer.u16_Tail];
228 if ((pau8_buff[u8_i] ==
'\n') || (pau8_buff[u8_i] ==
'\r') || (pau8_buff[u8_i] == 0))
break;
235 static uint16_t u16_tmp;
236 static char* psz_local;
240 while ( *psz_local ) {
241 __ESOS_COMM_TXFIFO_PREP();
243 __ESOS_COMM_WRITE_TXFIFO( *psz_local++ );
244 __esos_hw_signal_start_tx();
259 void __esos_unsafe_PutUint8(
uint8_t u8_c) {
262 __ESOS_COMM_TXFIFO_PREP();
264 while (u16_tmp == __st_TxBuffer.u16_Tail);
265 __ESOS_COMM_WRITE_TXFIFO( u8_c );
266 __esos_hw_signal_start_tx();
270 void __esos_unsafe_PutString(
char* psz_in) {
274 __ESOS_COMM_TXFIFO_PREP();
276 while (u16_tmp == __st_TxBuffer.u16_Tail);
277 __ESOS_COMM_WRITE_TXFIFO( *psz_in++ );
278 __esos_hw_signal_start_tx();
283 uint8_t __esos_unsafe_GetUint8(
void) {
285 while (__st_RxBuffer.u16_Head == __st_RxBuffer.u16_Tail);
286 __st_RxBuffer.u16_Tail++;
287 if (__st_RxBuffer.u16_Tail == ESOS_SERIAL_OUT_EP_SIZE) __st_RxBuffer.u16_Tail=0;
288 return __st_RxBuffer.pau8_Data[__st_RxBuffer.u16_Tail];
#define ESOS_CHILD_TASK(taskname,...)
#define ESOS_TASK_WAIT_WHILE(cond)
#define ESOS_TASK_BEGIN()
unsigned char uint8_t
An abbreviation for an 8-bit unsigned integer.