2021-11-23 05:00 AM
I am trying to set up ethernet on stm32h745iit6.
I bare ethernet project from the H7 examples and use (low_level_output) func from ethernetif.cpp.
I send buffer, located 0x24000008, where dma can access. And ethernet always send only init string of buffer. When I try to change content of the buf from code, its changes (as i saw in debug) at location 0x24000008. But in wireshark i still recieving init content of the value (string, that no longer exist).
When i change content of the buffer from debug at the same location, its ok and recieve correct string with all changes, that was made in debug.
Also a watch on the descriptor field DESC0, there 0x24000008, where located my buf.
Is there any explanation of this wierd moment? How i should change content of buf so that it works correctly ? Maybe data cashes somewere in DMA or MTL?
Solved! Go to Solution.
2021-11-23 06:02 AM
2021-11-23 05:47 AM
Disable the data cache, or manage it appropriately (e.g. clean buffer before sending out on DMA).
2021-11-23 05:56 AM
yes, it helps to disable D cache. But how to work correctly with enabled D cache ?
2021-11-23 06:02 AM