diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt index 9d77d85..980601e 100644 --- a/build/CMakeCache.txt +++ b/build/CMakeCache.txt @@ -495,7 +495,7 @@ PICO_BOOT_STAGE2_DIR:INTERNAL=/mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sd PICO_CMAKE_PRELOAD_PLATFORM_DIR:INTERNAL=/mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/cmake/preload/platforms PICO_CMAKE_PRELOAD_PLATFORM_FILE:INTERNAL=/mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/cmake/preload/platforms/rp2040.cmake PICO_COMPILER_ASM:INTERNAL=/usr/bin/arm-none-eabi-gcc -PICO_DOXYGEN_EXCLUDE_PATHS:INTERNAL= /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs +PICO_DOXYGEN_EXCLUDE_PATHS:INTERNAL= /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common/cmsis /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040/hardware_regs PICO_DOXYGEN_PATHS:INTERNAL= /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/common /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/lib/cyw43-driver/src /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2_common /mnt/c/Users/Aayush/Desktop/pico-webserver/pico-sdk/src/rp2040 PICO_NO_HARDWARE:INTERNAL=0 PICO_ON_DEVICE:INTERNAL=1 diff --git a/build/CMakeFiles/pico_webserver.dir/tusb_lwip_glue.c.obj b/build/CMakeFiles/pico_webserver.dir/tusb_lwip_glue.c.obj index d203995..faa48c6 100644 Binary files a/build/CMakeFiles/pico_webserver.dir/tusb_lwip_glue.c.obj and b/build/CMakeFiles/pico_webserver.dir/tusb_lwip_glue.c.obj differ diff --git a/build/CMakeFiles/pico_webserver.dir/wifi_code.c.obj b/build/CMakeFiles/pico_webserver.dir/wifi_code.c.obj index a17f17a..b9e3784 100644 Binary files a/build/CMakeFiles/pico_webserver.dir/wifi_code.c.obj and b/build/CMakeFiles/pico_webserver.dir/wifi_code.c.obj differ diff --git a/build/pico_webserver.bin b/build/pico_webserver.bin index f2e151c..85f7ed8 100644 Binary files a/build/pico_webserver.bin and b/build/pico_webserver.bin differ diff --git a/build/pico_webserver.dis b/build/pico_webserver.dis index 66ed098..9c91dd4 100644 --- a/build/pico_webserver.dis +++ b/build/pico_webserver.dis @@ -559,11 +559,11 @@ Disassembly of section .text: 1000050e: d0f6 beq.n 100004fe 10000510: 0022 movs r2, r4 10000512: 0029 movs r1, r5 -10000514: 6840 ldr r0, [r0, #4] -10000516: f004 fb2b bl 10004b70 <__wrap___aeabi_memcpy> -1000051a: 2001 movs r0, #1 -1000051c: 6037 str r7, [r6, #0] -1000051e: e7eb b.n 100004f8 +10000514: f00c fbd0 bl 1000ccb8 +10000518: 2001 movs r0, #1 +1000051a: 6037 str r7, [r6, #0] +1000051c: e7ec b.n 100004f8 +1000051e: 46c0 nop ; (mov r8, r8) 10000520: 2000df90 .word 0x2000df90 10000524 : @@ -578,27 +578,27 @@ Disassembly of section .text: 10000536: 46c0 nop ; (mov r8, r8) 10000538 : -10000538: b530 push {r4, r5, lr} +10000538: b510 push {r4, lr} 1000053a: 4c0b ldr r4, [pc, #44] ; (10000568 ) -1000053c: b083 sub sp, #12 -1000053e: 6822 ldr r2, [r4, #0] -10000540: 2a00 cmp r2, #0 +1000053c: b082 sub sp, #8 +1000053e: 6823 ldr r3, [r4, #0] +10000540: 2b00 cmp r3, #0 10000542: d00f beq.n 10000564 -10000544: 2500 movs r5, #0 -10000546: 6853 ldr r3, [r2, #4] -10000548: 2100 movs r1, #0 -1000054a: 8952 ldrh r2, [r2, #10] -1000054c: 4807 ldr r0, [pc, #28] ; (1000056c ) -1000054e: 9500 str r5, [sp, #0] -10000550: f009 fe24 bl 1000a19c -10000554: 4b06 ldr r3, [pc, #24] ; (10000570 ) -10000556: 6018 str r0, [r3, #0] -10000558: 6820 ldr r0, [r4, #0] -1000055a: f00c f9af bl 1000c8bc -1000055e: 6025 str r5, [r4, #0] +10000544: 2101 movs r1, #1 +10000546: 891a ldrh r2, [r3, #8] +10000548: 4808 ldr r0, [pc, #32] ; (1000056c ) +1000054a: 9100 str r1, [sp, #0] +1000054c: 2100 movs r1, #0 +1000054e: f009 fe25 bl 1000a19c +10000552: 4b07 ldr r3, [pc, #28] ; (10000570 ) +10000554: 6018 str r0, [r3, #0] +10000556: 6820 ldr r0, [r4, #0] +10000558: f00c f9b0 bl 1000c8bc +1000055c: 2300 movs r3, #0 +1000055e: 6023 str r3, [r4, #0] 10000560: f005 fce2 bl 10005f28 -10000564: b003 add sp, #12 -10000566: bd30 pop {r4, r5, pc} +10000564: b002 add sp, #8 +10000566: bd10 pop {r4, pc} 10000568: 2000df90 .word 0x2000df90 1000056c: 2000cb30 .word 0x2000cb30 10000570: 2000d468 .word 0x2000d468 @@ -1119,16 +1119,16 @@ Disassembly of section .text: 100009d6: 2800 cmp r0, #0 100009d8: d1f6 bne.n 100009c8 100009da: 22c1 movs r2, #193 ; 0xc1 -100009dc: b2a1 uxth r1, r4 -100009de: 0052 lsls r2, r2, #1 -100009e0: 2000 movs r0, #0 -100009e2: f00b fd15 bl 1000c410 -100009e6: 4e0d ldr r6, [pc, #52] ; (10000a1c ) -100009e8: 0022 movs r2, r4 -100009ea: 6030 str r0, [r6, #0] +100009dc: b2a4 uxth r4, r4 +100009de: 0021 movs r1, r4 +100009e0: 0052 lsls r2, r2, #1 +100009e2: 2000 movs r0, #0 +100009e4: f00b fd14 bl 1000c410 +100009e8: 4e0c ldr r6, [pc, #48] ; (10000a1c ) +100009ea: 0022 movs r2, r4 100009ec: 0029 movs r1, r5 -100009ee: 6840 ldr r0, [r0, #4] -100009f0: f004 f8be bl 10004b70 <__wrap___aeabi_memcpy> +100009ee: 6030 str r0, [r6, #0] +100009f0: f00c f962 bl 1000ccb8 100009f4: 6833 ldr r3, [r6, #0] 100009f6: 8958 ldrh r0, [r3, #10] 100009f8: f005 fc8a bl 10006310 diff --git a/build/pico_webserver.elf b/build/pico_webserver.elf index 8faf5e1..0111262 100644 Binary files a/build/pico_webserver.elf and b/build/pico_webserver.elf differ diff --git a/build/pico_webserver.elf.map b/build/pico_webserver.elf.map index c1ea694..109ecd6 100644 --- a/build/pico_webserver.elf.map +++ b/build/pico_webserver.elf.map @@ -1466,9 +1466,9 @@ Discarded input sections .bss 0x0000000000000000 0x0 liblwipcore.a(inet_chksum.c.obj) .text 0x0000000000000000 0x0 liblwipcore.a(ip.c.obj) .data 0x0000000000000000 0x0 liblwipcore.a(ip.c.obj) - .text 0x0000000000000000 0x0 /tmp/cc9Uvqkl.o - .data 0x0000000000000000 0x0 /tmp/cc9Uvqkl.o - .bss 0x0000000000000000 0x0 /tmp/cc9Uvqkl.o + .text 0x0000000000000000 0x0 /tmp/cclEhIKL.o + .data 0x0000000000000000 0x0 /tmp/cclEhIKL.o + .bss 0x0000000000000000 0x0 /tmp/cclEhIKL.o .data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.3.1/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o) .bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.3.1/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o) .text 0x0000000000000000 0x10 /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc.a(lib_a-atexit.o) @@ -1624,7 +1624,7 @@ LOAD /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/thumb/v6-m/nof .boot2 0x0000000010000000 0x100 0x0000000010000000 __boot2_start__ = . *(.boot2) - .boot2 0x0000000010000000 0x100 /tmp/cc9Uvqkl.o + .boot2 0x0000000010000000 0x100 /tmp/cclEhIKL.o 0x0000000010000100 __boot2_end__ = . 0x0000000000000001 ASSERT (((__boot2_end__ - __boot2_start__) == 0x100), ERROR: Pico second stage bootloader must be 256 bytes in size) @@ -3602,7 +3602,7 @@ LOAD CMakeFiles/pico_webserver.dir/pico-sdk/src/rp2_common/pico_async_context/as LOAD CMakeFiles/pico_webserver.dir/pico-sdk/src/rp2_common/pico_async_context/async_context_base.c.obj LOAD CMakeFiles/pico_webserver.dir/pico-sdk/src/rp2_common/pico_multicore/multicore.c.obj LOAD liblwipcore.a -LOAD /tmp/cc9Uvqkl.o +LOAD /tmp/cclEhIKL.o LOAD /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/thumb/v6-m/nofp/libstdc++.a LOAD /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/thumb/v6-m/nofp/libm.a START GROUP @@ -3782,7 +3782,7 @@ LOAD linker stubs .ARM.attributes 0x0000000000000d32 0x32 liblwipcore.a(ip.c.obj) .ARM.attributes - 0x0000000000000d64 0x22 /tmp/cc9Uvqkl.o + 0x0000000000000d64 0x22 /tmp/cclEhIKL.o .ARM.attributes 0x0000000000000d86 0x1e /usr/lib/gcc/arm-none-eabi/10.3.1/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o) .ARM.attributes diff --git a/build/pico_webserver.hex b/build/pico_webserver.hex index 095a268..8f9f9d5 100644 --- a/build/pico_webserver.hex +++ b/build/pico_webserver.hex @@ -80,12 +80,12 @@ :1004E000236010BD90DF0020F8B50D4E0500336885 :1004F0000C000020002B00D0F8BD002901D1012004 :10050000FAE7C122002052000BF082FF071EF6D04E -:1005100022002900406804F02BFB01203760EBE744 +:10051000220029000CF0D0FB01203760ECE7C04638 :1005200090DF002010B504000A8908000023210094 -:100530000CF024FB10BDC04630B50B4C83B02268D4 -:10054000002A0FD0002553680021528907480095E2 -:1005500009F024FE064B186020680CF0AFF9256006 -:1005600005F0E2FC03B030BD90DF002030CB00206E +:100530000CF024FB10BDC04610B50B4C82B02368F4 +:10054000002B0FD001211A8908480091002109F0E1 +:1005500025FE074B186020680CF0B0F900232360DB +:1005600005F0E2FC02B010BD90DF002030CB00208F :1005700068D400202923034AD35CDB0700D4FEE7BC :100580007047C04680D80020002070477047C046A2 :1005900010B501F043FD002905D0FA220023920096 @@ -156,9 +156,9 @@ :1009A0001A78002A00D110BD00221A701978002090 :1009B000C9B205F04FFEF6E70EE7002070B514004F :1009C000154A1D00944200D970BD04F089FC00282E -:1009D000FAD004F08DFC0028F6D1C122A1B2520059 -:1009E00000200BF015FD0D4E2200306029004068FC -:1009F00004F0BEF83368588905F08AFC002805D158 +:1009D000FAD004F08DFC0028F6D1C122A4B2210087 +:1009E000520000200BF014FD0C4E22002900306054 +:1009F0000CF062F93368588905F08AFC002805D1AB :100A000030680BF05BFF00233360DDE700213068C6 :100A100005F084FCF4E7C046DC05000030D9002076 :100A200070B51B4805F00EFE05F0DAFD19491A48AD diff --git a/build/pico_webserver.uf2 b/build/pico_webserver.uf2 index c743770..484cd8f 100644 Binary files a/build/pico_webserver.uf2 and b/build/pico_webserver.uf2 differ diff --git a/tusb_lwip_glue.c b/tusb_lwip_glue.c index f3e5e0a..6ec4d62 100644 --- a/tusb_lwip_glue.c +++ b/tusb_lwip_glue.c @@ -160,7 +160,8 @@ bool tud_network_recv_cb(const uint8_t *src, uint16_t size) if (p) { /* pbuf_alloc() has already initialized struct; all we need to do is copy the data */ - memcpy(p->payload, src, size); + //memcpy(p->payload, src, size); + pbuf_take(p, src, size); //if(size!=in_pkt.len){ //} /* store away the pointer for service_traffic() to later handle */ @@ -186,7 +187,7 @@ void service_traffic(void) /* handle any packet received by tud_network_recv_cb() */ if (received_frame) { - eth_frame_send_success=cyw43_send_ethernet(&cyw43_state, CYW43_ITF_STA, received_frame->len, received_frame->payload, false); + eth_frame_send_success=cyw43_send_ethernet(&cyw43_state, CYW43_ITF_STA, received_frame->tot_len, (void*)received_frame, true); if(eth_frame_send_success==0){ // packet send pass } pbuf_free(received_frame); diff --git a/wifi_code.c b/wifi_code.c index 2a65766..caf28bb 100644 --- a/wifi_code.c +++ b/wifi_code.c @@ -24,7 +24,8 @@ void cyw43_cb_tcpip_set_link_down(cyw43_t *self, int itf) { void cyw43_cb_process_ethernet(void *cb_data, int itf, size_t len, const uint8_t *buf) { if (len <= MTU && tud_ready()) { out_pkt = pbuf_alloc(PBUF_RAW, len, PBUF_POOL); - memcpy(out_pkt->payload, buf, len); + //memcpy(out_pkt->payload, buf, len); + pbuf_take(out_pkt, buf, len); if (tud_network_can_xmit(out_pkt->len)) { tud_network_xmit(out_pkt, 0 /* unused for this example */);