Плата NUCLEO stm32f767ZI .
Задача передать поток с камеры ov2640 2-10Мегабит. Делал такое уже на w5500 и stm32f4.
Сейчас разогнал мк
В кубе включил TCM interface для flash.ART Accelerator,instruction perfetch настройки адреса flash изменил вручную, т.к. куб не прописывает для KEIL почему то.Потребление камня заметно возросло производительность тоже.
Использую DMA (для DСMI) оно вроде как и FLASH( по умолчанию) работает через шину AHB->AXI и там вроде как могут пробыть проблемы если включить кэш команд и данных.Поэтому сделал как написал выше.
В планах разместись стек и кучу и FIFO буфер в DTCM и обработчики прерываний в ITCM.
Работаю без RTOS RAW API.Проблема в том, ЧТО Я НЕ МОГУ ПОЛУЧИТЬ нормальные 10 Мегабит не говоря уже о 10 Мегабайтах в секунду о которых пишут.
Передаю пакеты размером 16Кило след. образом.
while(ETH_TXBUF_SIZE > get_tcp_sndbuf_free(&CI))
MX_LWIP_Process();
tcp_write(CI.tcp_client_pcb,ETH_TX_buf,ETH_TXBUF_SIZE, 1);
tcp_output(CI.tcp_client_pcb);
Проблема в том что пришлось выкрутить TCP_TMR_INTERVAL в 1 вместо 250? Иначе не работает на таких скоростях.
По идее TCP_TMR_INTERVAL я вообще не должен трогать!!!
Сейчас удается передать поток 5 Мегабит с камеры, есть tcp retransmission,tcp dup ACK.
Есть логи отладки через stats_display(); там все ОК.
lwipopts.h