@@ -46,14 +46,13 @@ static rt_err_t uart_input3(rt_device_t dev, rt_size_t size)
46
46
void TF_WriteImpl (TinyFrame * tf , const uint8_t * buff , uint32_t len )
47
47
{
48
48
TinyFramUserData * tfu = (TinyFramUserData * )tf -> userdata ;
49
- if (tfu -> serial != RT_NULL )
50
- {
51
- rt_device_write (tfu -> serial , 0 , buff , len );
52
- }
53
- else
54
- {
55
- RT_ASSERT (0 );
56
- }
49
+ RT_ASSERT (tfu -> serial != RT_NULL )
50
+
51
+ // for (int i = 0; i < len; i++)
52
+ // {
53
+ // rt_kprintf("%c", buff[i]);
54
+ // }
55
+ rt_device_write (tfu -> serial , 0 , buff , len );
57
56
}
58
57
59
58
static void tf_thread_entry (void * parameter )
@@ -68,37 +67,38 @@ static void tf_thread_entry(void *parameter)
68
67
{
69
68
rt_sem_take (& tfu -> rx_sem , RT_WAITING_FOREVER );
70
69
}
70
+ // rt_kprintf("%c", ch);
71
71
TF_Accept (tf , & ch , 1 );
72
72
TF_Tick (tf );
73
73
}
74
74
}
75
75
76
76
static int _tf_uart_init (TinyFrame * tf , TinyFramUserData * tfu , char * uart_name , rt_err_t (* rx_ind )(rt_device_t dev , rt_size_t size ))
77
77
{
78
- rt_device_t serial = RT_NULL ;
79
- static struct rt_semaphore * rx_sem = RT_NULL ;
80
78
79
+ tf -> userdata = tfu ;
81
80
/* init sem */
82
- rx_sem = & tfu -> rx_sem ;
81
+
83
82
char buf [PKG_TINYFRAME_UART_NAME_MAX_LEN + 6 ] = {0 };
84
83
char sem_name [] = "_rx_sem" ;
85
84
memcpy (buf , uart_name , strlen (uart_name ) + 1 );
86
85
strcat (buf , sem_name );
87
- rt_sem_init ((rt_sem_t )& rx_sem , buf , 0 , RT_IPC_FLAG_FIFO );
86
+ rt_kprintf ("sem name:%s\n" , buf );
87
+ rt_sem_init (& tfu -> rx_sem , buf , 0 , RT_IPC_FLAG_FIFO );
88
88
89
89
/* init uart */
90
- memcpy (tfu -> uart_name , uart_name , strlen (uart_name ) + 1 );
90
+ int uart_len = strlen (uart_name ) + 1 ;
91
+
92
+ RT_ASSERT (uart_len < PKG_TINYFRAME_UART_NAME_MAX_LEN );
93
+ memcpy (tfu -> uart_name , uart_name , uart_len );
91
94
tfu -> serial = rt_device_find (tfu -> uart_name );
92
- serial = tfu -> serial ;
93
- if (serial == RT_NULL )
94
- {
95
- RT_ASSERT (0 );
96
- }
97
- rt_device_open (serial , RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX );
98
95
99
- rt_device_set_rx_indicate (serial , rx_ind );
96
+ RT_ASSERT (tfu -> serial != RT_NULL );
97
+
98
+ rt_device_open (tfu -> serial , RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX );
99
+
100
+ rt_device_set_rx_indicate (tfu -> serial , rx_ind );
100
101
101
- tf -> userdata = tfu ;
102
102
/* creat thread */
103
103
rt_thread_t thread = rt_thread_create ("serial" , tf_thread_entry , tf , 1024 , 25 , 10 );
104
104
if (thread != RT_NULL )
0 commit comments