58
58
#define ETHERNET_EVT_CONNECTED 0x0001
59
59
#define ETHERNET_EVT_STARTED 0x0002
60
60
61
+ #define MSG (fmt , ...) printf("[%u] modeth: " fmt, mp_hal_ticks_ms(), ##__VA_ARGS__)
62
+ //#define MSG(fmt, ...) (void)0
63
+
61
64
/*****************************************************************************
62
65
* DECLARE PRIVATE FUNCTIONS
63
66
*****************************************************************************/
@@ -145,34 +148,30 @@ static esp_err_t modeth_event_handler(void *ctx, system_event_t *event)
145
148
146
149
switch (event -> event_id ) {
147
150
case SYSTEM_EVENT_ETH_CONNECTED :
148
- //printf(" Ethernet Link Up\n");
151
+ MSG ( "EH Ethernet Link Up\n" );
149
152
break ;
150
153
case SYSTEM_EVENT_ETH_DISCONNECTED :
151
- //printf( " Ethernet Link Down\n");
154
+ MSG ( "EH Ethernet Link Down\n" );
152
155
mod_network_deregister_nic (& eth_obj );
153
156
xEventGroupClearBits (eth_event_group , ETHERNET_EVT_CONNECTED );
154
157
break ;
155
158
case SYSTEM_EVENT_ETH_START :
156
- //printf( " Ethernet Started\n");
159
+ MSG ( "EH Ethernet Started\n" );
157
160
break ;
158
161
case SYSTEM_EVENT_ETH_GOT_IP :
159
162
memset (& ip , 0 , sizeof (tcpip_adapter_ip_info_t ));
160
163
ESP_ERROR_CHECK (tcpip_adapter_get_ip_info (ESP_IF_ETH , & ip ));
161
- //printf( "Ethernet Got IP Addr\n");
162
- //printf( "~~~~~~~~~~~\n");
163
- //printf( "ETHIP:\n" IPSTR, IP2STR(&ip.ip));
164
- //printf( "ETHMASK:\n" IPSTR, IP2STR(&ip.netmask));
165
- //printf( "ETHGW:\n" IPSTR, IP2STR(&ip.gw));
166
- //printf( "~~~~~~~~~~~\n");
164
+ MSG ("EH Got IP Addr: " IPSTR " " IPSTR " " IPSTR "\n" , IP2STR (& ip .ip ), IP2STR (& ip .netmask ), IP2STR (& ip .gw ));
167
165
#if defined(FIPY ) || defined(GPY )
166
+ MSG ("EH save DNS\n" );
168
167
// Save DNS info for restoring if wifi inf is usable again after LTE disconnect
169
168
tcpip_adapter_get_dns_info (TCPIP_ADAPTER_IF_ETH , TCPIP_ADAPTER_DNS_MAIN , & eth_sta_inf_dns_info );
170
169
#endif
171
170
mod_network_register_nic (& eth_obj );
172
171
xEventGroupSetBits (eth_event_group , ETHERNET_EVT_CONNECTED );
173
172
break ;
174
173
case SYSTEM_EVENT_ETH_STOP :
175
- //printf( " Ethernet Stopped\n");
174
+ MSG ( "EH Ethernet Stopped\n" );
176
175
xEventGroupClearBits (eth_event_group , ETHERNET_EVT_STARTED );
177
176
break ;
178
177
default :
@@ -201,6 +200,7 @@ static void process_rx(void)
201
200
uint32_t len , frameCnt ;
202
201
203
202
frameCnt = (ksz8851_regrd (REG_RX_FRAME_CNT_THRES ) & RX_FRAME_CNT_MASK ) >> 8 ;
203
+ MSG ("TE process_rx f:%u\n" , frameCnt );
204
204
while (frameCnt > 0 )
205
205
{
206
206
ksz8851RetrievePacketData (modeth_rxBuff , & len );
@@ -210,6 +210,7 @@ static void process_rx(void)
210
210
}
211
211
frameCnt -- ;
212
212
}
213
+ MSG ("TE process_rx len:%u\n" , totalLen );
213
214
}
214
215
static IRAM_ATTR void ksz8851_evt_callback (uint32_t ksz8851_evt )
215
216
{
@@ -251,6 +252,7 @@ static IRAM_ATTR void ksz8851_evt_callback(uint32_t ksz8851_evt)
251
252
}
252
253
253
254
static void TASK_ETHERNET (void * pvParameters ) {
255
+ MSG ("TE\n" );
254
256
255
257
static uint32_t thread_notification ;
256
258
system_event_t evt ;
@@ -259,6 +261,7 @@ static void TASK_ETHERNET (void *pvParameters) {
259
261
260
262
// Block task till notification is recieved
261
263
thread_notification = ulTaskNotifyTake (pdTRUE , portMAX_DELAY );
264
+ MSG ("TE tn=%u\n" , thread_notification );
262
265
263
266
if (thread_notification )
264
267
{
@@ -289,6 +292,7 @@ static void TASK_ETHERNET (void *pvParameters) {
289
292
/* link status */
290
293
ksz8851RegisterEvtCb (ksz8851_evt_callback );
291
294
eth_start :
295
+ MSG ("TE eth_start\n" );
292
296
xQueueReset (eth_cmdQueue );
293
297
xEventGroupWaitBits (eth_event_group , ETHERNET_EVT_STARTED , false, true, portMAX_DELAY );
294
298
// Init Driver
@@ -302,11 +306,13 @@ static void TASK_ETHERNET (void *pvParameters) {
302
306
if (!eth_obj .link_status && (xEventGroupGetBits (eth_event_group ) & ETHERNET_EVT_STARTED ))
303
307
{
304
308
// block till link is up again
309
+ MSG ("TE block til up\n" );
305
310
ulTaskNotifyTake (pdTRUE , portMAX_DELAY );
306
311
}
307
312
308
313
if (!(xEventGroupGetBits (eth_event_group ) & ETHERNET_EVT_STARTED ))
309
314
{
315
+ MSG ("TE deinit\n" );
310
316
// deinit called, free memory and block till re-init
311
317
xQueueReset (eth_cmdQueue );
312
318
heap_caps_free (modeth_rxBuff );
@@ -323,16 +329,17 @@ static void TASK_ETHERNET (void *pvParameters) {
323
329
switch (queue_entry .cmd )
324
330
{
325
331
case ETH_CMD_TX :
332
+ //MSG("TE TX %u\n", queue_entry.len);
326
333
process_tx (queue_entry .buf , queue_entry .len );
327
- //printf("TX command\n");
328
334
break ;
329
335
case ETH_CMD_RX :
330
336
process_rx ();
331
- //printf(" RX command \n");
337
+ //MSG("TE RX {0x%x} \n", queue_entry.isr );
332
338
// Clear Intr status bits
333
339
ksz8851_regwr (REG_INT_STATUS , INT_MASK );
334
340
break ;
335
341
case ETH_CMD_CHK_LINK :
342
+ MSG ("TE CHK_LINK {0x%x}\n" , queue_entry .isr );
336
343
if (ksz8851GetLinkStatus ())
337
344
{
338
345
eth_obj .link_status = true;
@@ -349,7 +356,7 @@ static void TASK_ETHERNET (void *pvParameters) {
349
356
ksz8851_regwr (REG_INT_STATUS , INT_MASK );
350
357
break ;
351
358
case ETH_CMD_OVERRUN :
352
- //printf("\n\n ===================OVERRUN =====================\n\n" );
359
+ MSG ( "TE OVERRUN {0x%x} ========================================\n" , queue_entry . isr );
353
360
xQueueReset (eth_cmdQueue );
354
361
eth_obj .link_status = false;
355
362
ksz8851PowerDownMode ();
@@ -359,6 +366,7 @@ static void TASK_ETHERNET (void *pvParameters) {
359
366
ksz8851Init ();
360
367
break ;
361
368
default :
369
+ MSG ("TE def {0x%x} %u\n" , queue_entry .isr , queue_entry .cmd );
362
370
break ;
363
371
}
364
372
}
@@ -369,12 +377,13 @@ static void TASK_ETHERNET (void *pvParameters) {
369
377
//TODO: This workaround should be removed once the lockup is resolved
370
378
while ((!pin_get_value (KSZ8851_INT_PIN )) && timeout < 5 )
371
379
{
380
+ MSG ("TE TO %u\n" , timeout );
372
381
vTaskDelay (1 / portTICK_PERIOD_MS );
373
382
timeout ++ ;
374
383
}
375
384
if (timeout >= 5 )
376
385
{
377
- //printf(" Force Int\n");
386
+ MSG ( "TE Force Int\n" );
378
387
xQueueReset (eth_cmdQueue );
379
388
eth_obj .link_status = false;
380
389
ksz8851PowerDownMode ();
0 commit comments