整理代码

This commit is contained in:
2025-10-10 17:02:17 +08:00
parent 99a4282aca
commit e3d28917b8
2 changed files with 13 additions and 39 deletions

View File

@@ -108,16 +108,16 @@ static const dhcp_config_t dhcp_config = {
static void tud_output_fn(void *t){ static int tud_output_fn(void *t){
struct pbuf *p = t; struct pbuf *p = t;
rt_kprintf("arrive %s:%d\n", __FILE__, __LINE__); // rt_kprintf("arrive %s:%d\n", __FILE__, __LINE__);
/* if the network driver can accept another packet, we make it happen */ /* if the network driver can accept another packet, we make it happen */
if (tud_network_can_xmit(p->tot_len)) { if (tud_network_can_xmit(p->tot_len)) {
tud_network_xmit(p, 0 /* unused for this example */); tud_network_xmit(p, 0 /* unused for this example */);
rt_kprintf("send %d bytes\n", p->tot_len); // rt_kprintf("send %d bytes\n", p->tot_len);
// return ERR_OK; return ERR_OK;
} }
// return ERR_USE; return ERR_USE;
} }
@@ -130,14 +130,9 @@ static err_t linkoutput_fn(struct netif *netif, struct pbuf *p) {
/* if TinyUSB isn't ready, we must signal back to lwip that there is nothing we can do */ /* if TinyUSB isn't ready, we must signal back to lwip that there is nothing we can do */
if (!tud_ready()) if (!tud_ready())
return ERR_USE; return ERR_USE;
/*rc this packet will be sent in usbd task */ // rt_kprintf("arrive %s:%d\n", __FILE__, __LINE__);
rt_kprintf("arrive %s:%d\n", __FILE__, __LINE__); // <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD>ȴ<EFBFBD>usb<73>̴߳<DFB3><CCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>lwip<69><70><EFBFBD>ͷ<EFBFBD>p
usbd_defer_func(tud_output_fn, p, false); return usbd_defer_func_wait(tud_output_fn, p);
return ERR_OK;
// return usbd_defer_func_wait(tud_output_fn, p);
/* transfer execution to TinyUSB in the hopes that it will finish transmitting the prior packet */
/*rc: if use rtos, this function still will be called? */
// tud_task();
} }
} }
@@ -228,10 +223,7 @@ bool tud_network_recv_cb(const uint8_t *src, uint16_t size) {
/* Copy buf to pbuf */ /* Copy buf to pbuf */
pbuf_take(p, src, size); pbuf_take(p, src, size);
// Surrender ownership of our pbuf unless there was an error // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD>lwip<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>usb<EFBFBD>߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD>tcpip<EFBFBD>߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ȴ<EFBFBD>lwip<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// Only call pbuf_free if not Ok else it will panic with "pbuf_free: p->ref > 0"
// or steal it from whatever took ownership of it with undefined consequences.
// See: https://savannah.nongnu.org/patch/index.php?10121
if (err=netif->input(p, netif),err != ERR_OK) { if (err=netif->input(p, netif),err != ERR_OK) {
rt_kprintf("ERROR: netif input failed, err=%d\n", err); rt_kprintf("ERROR: netif input failed, err=%d\n", err);
pbuf_free(p); pbuf_free(p);
@@ -358,9 +350,9 @@ int init_tinyusb(void) {
while (dhserv_init(&dhcp_config) != ERR_OK){ while (dhserv_init(&dhcp_config) != ERR_OK){
rt_thread_mdelay(10); rt_thread_mdelay(10);
} }
// while (dnserv_init(IP_ADDR_ANY, 53, dns_query_proc) != ERR_OK){ while (dnserv_init(IP_ADDR_ANY, 53, dns_query_proc) != ERR_OK){
// rt_thread_mdelay(10); rt_thread_mdelay(10);
// } }
httpd_init(); httpd_init();
#ifdef INCLUDE_IPERF #ifdef INCLUDE_IPERF
@@ -393,26 +385,8 @@ int init_tinyusb(void) {
} }
rt_thread_startup(tid); rt_thread_startup(tid);
// while (1) {
// tud_task();
// // sys_check_timeouts(); // service lwip
// // handle_link_state_switch();
// }
return 0; return 0;
} }
extern_init(tinyusb, init_tinyusb); extern_init(tinyusb, init_tinyusb);
/* lwip has provision for using a mutex, when applicable */
/* This implementation is for single-threaded use only */
// sys_prot_t sys_arch_protect(void) {
// return 0;
// }
// void sys_arch_unprotect(sys_prot_t pval) {
// (void) pval;
// }
// /* lwip needs a millisecond time source, and the TinyUSB board support code has one available */
// uint32_t sys_now(void) {
// return board_millis();
// }

View File

@@ -139,7 +139,7 @@ static void udp_recv_proc(void *arg, struct udp_pcb *upcb, struct pbuf *p, const
ip4_addr_t host_addr; ip4_addr_t host_addr;
dns_answer_t *answer; dns_answer_t *answer;
rt_kprintf("DNS query\n"); // rt_kprintf("DNS query\n");
(void)arg; (void)arg;
if (p->len <= sizeof(dns_header_t)) goto error; if (p->len <= sizeof(dns_header_t)) goto error;