
【STM32】总线架构
没学过51单片机,能否零基础学STM32?
STM32电机控制用什么型号?高级定时器功能详解与芯片选型指南
STM32H7R/S+TouchGFX:解锁智能家电沉浸式体验新维度
什么是STM32? STM32与ARM有什么关系? STM32能做什么?
STM32 不同时钟频率有什么不同的影响
《STM32H7R/S信息安全线上课程》学习笔记+安全存储
《STM32H7R/S信息安全线上课程》学习笔记+时域隔离,片内与片外存储器保护
《STM32H7R/S信息安全线上课程》学习笔记+跟着视频学一学
《STM32H7R/S信息安全线上课程》学习笔记+2.0 生命周期管理
在大数据量通信交互时,会造成TCP链接中断,抓包显示服务器端有RST,ACK异常,同时ping大包ping不通。经过调试分析,原因是定义的DMA描述定义和RX_buff不够,同时ETHIN的优先级较低导致Lwip内存访问异常。
修改方法:
1.ETH_RX_DESC_CNT 和 ETH_TX_DESC_CNT默认个数是4,根据通信负荷需要扩大,我这里分别扩大到16;
2.修改ETH_DMADescTypeDef
RX:0x30040000
TX:0x30040180
Rx_buff:0x30040400
3.修改MPU的配置
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.BaseAddress = 0x30040000;
MPU_InitStruct.Size = MPU_REGION_SIZE_256B; //从256B 修改为 1K
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER0;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.SubRegionDisable = 0x00;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
4.串口打印可能有影响,视情况关闭;
5.将ETHIN 和 Lwip的任务优先级提高
[md]我这样设后PING不通了