<div dir="ltr"><div><div><div>Thanks for the clarifications. Now I actually understand what the MPU_Config call from the STM32 example does. I was not sure what that was for. I reintroduced the lwip sections (from my first mail9<br></div>again with the values from the STM32 linker script and used the MPU_Config call from the STM32 example. <br>It is now not crashing anymore. I still can't receive UDP packets, but at least I am now able to run my polling loop.<br><br></div>Kind Regards<br></div>Robin Müller<br><div><div><br><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 28 Jan 2021 at 18:33, Mr. Andrei Chichak <<a href="mailto:groups@chichak.ca">groups@chichak.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div style="overflow-wrap: break-word;">Good morning,<div><br></div><div>I’ve been trying to get ethernet on STM32F7 going using the bsd networking stack (not going that well, there is a LOT of undocumented knowledge to straighten out).</div><div><br></div><div><br></div><div>The STM32x7 ethernet controllers need their descriptors and data areas to be located on 32-byte boundaries with a combination of cache being turned off and buffering being turned off. This is a side effect of the STM32x7 DMA and data caching.</div><div><br></div><div>The examples that ST have for LWiP under FreeRTOS have some issues with the linker file having overlapping sections and the stack (above the ETH data areas) being left with no cache and no buffering. The space above the rx/tx buffers is also less than the stack space minimum specified in the linker file as well.  Some rearranging of the ETH descriptors and data areas would be prudent. Like push them to the top of SRAM and locate the stack below.</div><div><br></div><div>To get this all going, they set up the MPU for two overlapping sections, one being the top 16kB of SRAM and the other the 256B that contain the ETH descriptors. I believe the MPU regions can be set in increments of 32Bytes, so setting up the cache and buffering should be do-able without affecting the stack.</div><div><br></div><div><br></div><div><br></div><div>In RTEMS it appears that I have to pull the data and lengths out of some mbufs (I had to look that up), and push it all into the data areas. Using LWiP, I think you do similar things, just pulling the data out of the pbuf chains.</div><div><br></div><div>On the STM forums is an item about how to actually get a working ETH going on ST processors. There’s all sorts of issues including Cube generating code for ST’s dev boards that has the incorrect address for the PHY chip.</div><div>Take a look at: <a href="https://community.st.com/s/question/0D50X0000BOtfhnSQB/how-to-make-ethernet-and-lwip-working-on-stm32" target="_blank">https://community.st.com/s/question/0D50X0000BOtfhnSQB/how-to-make-ethernet-and-lwip-working-on-stm32</a></div><div><br></div><div>More later,</div><div><br></div><div>Andrei</div><div><br></div><br><br><div>
<div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-spacing:0px"><div style="overflow-wrap: break-word;"><span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-spacing:0px"><div style="overflow-wrap: break-word;"><span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-spacing:0px"><div style="overflow-wrap: break-word;"><span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-spacing:0px"><div style="overflow-wrap: break-word;"><span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-spacing:0px"><div style="overflow-wrap: break-word;"><span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;border-spacing:0px"><div style="overflow-wrap: break-word;"><div>---------------------</div><div>Andrei Chichak</div><div><br></div><div>Systems Developer</div><div>CBF Systems Inc.</div><div>225 College Plaza</div><div>8215 112 Street.</div><div>EDMONTON, ALBERTA</div><div>T6G 2C8</div><div><span>CANADA</span></div><div><br></div><div>Phone: 780-628-2072</div><div>Skype: andrei.chichak</div><div><br></div></div></span><br></div></span><br></div></span><br></div></span><br></div></span><br></div></span><br></div><br><br>
</div>
<br></div></div></blockquote></div>