本帖最后由 Ainit 于 2025-6-25 18:20 编辑
根据数据手册中的说明,我将Rx_PoolSection的存储地址设置到RAM地址中,总共占18~19KB左右,这种情况下,ping 最大MTU1472字节,百万包数据出现一次超时的情况,情况还算好,但按照道理来说,RAM_D2这个内存段中也有足够的地址用于存放Rx_PoolSection,但是只要将Rx_PoolSection放在RAM_D2段内存中,就会出现ping有问题。
1、有问题的内存段分配:
[C] 纯文本查看 复制代码 .lwip_sec (NOLOAD) :
{
. = ABSOLUTE(0x30000000);
. = ALIGN(32);
*(.RxDecripSection)
. = ABSOLUTE(0x30000080);
. = ALIGN(32);
*(.TxDecripSection)
. = ABSOLUTE(0x30000100);
. = ALIGN(32);
*(.Rx_PoolSection)
} >RAM_D2 AT>FLASH
2、能正常ping大数据量的内存段
[C] 纯文本查看 复制代码
有懂的大佬能指点一下吗?
.lwip_rx_pollsection(NOLOAD):
{
. = ABSOLUTE(0x24000000);
. = ALIGN(32);
*(.Rx_PoolSection)
}>RAM AT>FLASH
.lwip_sec (NOLOAD) :
{
. = ABSOLUTE(0x30000000);
*(.RxDecripSection)
. = ABSOLUTE(0x30000080);
*(.TxDecripSection)
/* . = ABSOLUTE(0x30000100);*/
/* . = ALIGN(32);*/
/* *(.Rx_PoolSection)*/
} >RAM_D2 AT>FLASH |