工具/软件:
尊敬的专家:
我的客户在 F28388D 上使用 SDRAM IS42R86400F。 它们正在写入数据并读回以检查 SDRAM 是否正常运行。 但是、他们发现从1025kb 开始的读回数据不正确、如下图所示。

如果他们在表达式窗口中手动写入和读取、则读回的数据是正确的。 仅当它们通过循环写入和读取时才会发生错误。 是否知道此处的问题可能是什么?
以下是它们的设置:
CMD setting:
SDRAM : origin = 0x80000000, length = 0x02000000 //512Mb, 8M*16bit*4banks
buffer defination
#pragma DATA_SECTION(".sdram_data");
__attribute__((far)) volatile uint32_t extSDRAMBuf[MEM_BUFFER_PAGE][MEM_BUFFER_SIZE];
mapfile:
SDRAM 80000000 02000000 02000000 00000000 RWIX
和 syscfg 文件
emif11.$name = "myEMIF10"; emif11.useCase = "CUSTOM"; emif11.enableCS2 = false; emif11.enableCS3 = false; emif11.enableCS4 = false; emif11.cs0Narrow = "EMIF_SYNC_NARROW_MODE_TRUE"; emif11.useInterfacePins = ["EMIF1_A0","EMIF1_A1","EMIF1_A10","EMIF1_A11","EMIF1_A12","EMIF1_A2","EMIF1_A3","EMIF1_A4","EMIF1_A5","EMIF1_A6","EMIF1_A7","EMIF1_A8","EMIF1_A9","EMIF1_BA0","EMIF1_BA1","EMIF1_CAS","EMIF1_CLK","EMIF1_CS0n","EMIF1_D0","EMIF1_D1","EMIF1_D10","EMIF1_D11","EMIF1_D12","EMIF1_D13","EMIF1_D14","EMIF1_D15","EMIF1_D2","EMIF1_D3","EMIF1_D4","EMIF1_D5","EMIF1_D6","EMIF1_D7","EMIF1_D8","EMIF1_D9","EMIF1_DQM0","EMIF1_DQM1","EMIF1_RAS","EMIF1_SDCKE","EMIF1_WEn"]; emif11.cs0CAWidth = "EMIF_SYNC_COLUMN_WIDTH_10"; emif11.cs0AddrMSB = "EM1A12"; emif11.selController = "EMIF_CONTROLLER_CPU1_G"; emif11.enableSyncSelfrefresh = true; emif11.cs0Refresh = 750; emif11.cs0tRFC = 6; emif11.cs0tRP = 2; emif11.cs0tRAS = 5; emif11.cs0tWR = 2; emif11.cs0tRRD = 2; emif11.emif1.$assign = "EMIF1"; emif11.emif1.emif1_cs0nPin.$assign = "GPIO32"; emif11.emif1.emif1_sdckePin.$assign = "GPIO29"; emif11.emif1.emif1_clkPin.$assign = "GPIO30"; emif11.emif1.emif1_wenPin.$assign = "GPIO31"; emif11.emif1.emif1_casPin.$assign = "GPIO86"; emif11.emif1.emif1_rasPin.$assign = "GPIO87"; emif11.emif1.emif1_dqm0Pin.$assign = "GPIO88"; emif11.emif1.emif1_dqm1Pin.$assign = "GPIO89"; emif11.emif1.emif1_ba0Pin.$assign = "GPIO33"; emif11.emif1.emif1_ba1Pin.$assign = "GPIO34"; emif11.emif1.emif1_a0Pin.$assign = "GPIO35"; emif11.emif1.emif1_a1Pin.$assign = "GPIO39"; emif11.emif1.emif1_a2Pin.$assign = "GPIO40"; emif11.emif1.emif1_a3Pin.$assign = "GPIO38"; emif11.emif1.emif1_a4Pin.$assign = "GPIO44"; emif11.emif1.emif1_a5Pin.$assign = "GPIO45"; emif11.emif1.emif1_a6Pin.$assign = "GPIO46"; emif11.emif1.emif1_a7Pin.$assign = "GPIO47"; emif11.emif1.emif1_a8Pin.$assign = "GPIO48"; emif11.emif1.emif1_a9Pin.$assign = "GPIO49"; emif11.emif1.emif1_a10Pin.$assign = "GPIO50"; emif11.emif1.emif1_a11Pin.$assign = "GPIO51"; emif11.emif1.emif1_a12Pin.$assign = "GPIO52"; emif11.emif1.emif1_d0Pin.$assign = "GPIO85"; emif11.emif1.emif1_d1Pin.$assign = "GPIO83"; emif11.emif1.emif1_d2Pin.$assign = "GPIO82"; emif11.emif1.emif1_d3Pin.$assign = "GPIO81"; emif11.emif1.emif1_d4Pin.$assign = "GPIO80"; emif11.emif1.emif1_d5Pin.$assign = "GPIO79"; emif11.emif1.emif1_d6Pin.$assign = "GPIO78"; emif11.emif1.emif1_d7Pin.$assign = "GPIO77"; emif11.emif1.emif1_d8Pin.$assign = "GPIO76"; emif11.emif1.emif1_d9Pin.$assign = "GPIO75"; emif11.emif1.emif1_d10Pin.$assign = "GPIO74"; emif11.emif1.emif1_d11Pin.$assign = "GPIO73"; emif11.emif1.emif1_d12Pin.$assignAllowConflicts = "GPIO72"; emif11.emif1.emif1_d13Pin.$assign = "GPIO71"; emif11.emif1.emif1_d14Pin.$assign = "GPIO70"; emif11.emif1.emif1_d15Pin.$assign = "GPIO69"; emif11.ba0Qual.padConfig = "PULLUP"; emif11.ba1Qual.padConfig = "PULLUP"; emif11.d0Qual.padConfig = "PULLUP"; emif11.d1Qual.padConfig = "PULLUP"; emif11.d10Qual.padConfig = "PULLUP"; emif11.d11Qual.padConfig = "PULLUP"; emif11.d12Qual.padConfig = "PULLUP"; emif11.d13Qual.padConfig = "PULLUP"; emif11.d14Qual.padConfig = "PULLUP"; emif11.d15Qual.padConfig = "PULLUP"; emif11.d2Qual.padConfig = "PULLUP"; emif11.d3Qual.padConfig = "PULLUP"; emif11.d4Qual.padConfig = "PULLUP"; emif11.d5Qual.padConfig = "PULLUP"; emif11.d6Qual.padConfig = "PULLUP"; emif11.d7Qual.padConfig = "PULLUP"; emif11.d8Qual.padConfig = "PULLUP"; emif11.d9Qual.padConfig = "PULLUP"; emif11.dqm0Qual.padConfig = "PULLUP"; emif11.dqm1Qual.padConfig = "PULLUP";