Problem executing from SDRAM when running at 204Mhz (Hitex Eval board)

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 15, 2016 by lpcware
Content originally posted in LPCWare by larsjep on Wed Oct 10 05:45:55 MST 2012

I have for some time been trying to run my application from SDRAM with the LPC4350 core running at 204MHhz.
But it kept going into hard fault.

I have now been able to isolate what triggers the problem and build a little example that shows the problem.
The problem is that memory writes sometimes goes to incorrect addresses (wrong bank/row).

My example is based on the BOOTFAST example from the PDL.

Here is a description of what the program does.

The program contains a couple of function located at different location in SDRAM. (It seems like that the functions must be located in different banks to trigger the problem)
The main function is do_test() that calls the other functions and validates that a certain address in SDRAM hasn't been changed.

func2(): returns a pointer that points to the address 0x28235E54
func1(): Calls func2() and writes to the returned address (the value 17).

do_test() writes a value to address 0x28605654, and then calls func2()/func1() in a loop.
The data at address 0x28605654 should never change, but suddenly the address contains 17.

When the error is detected do_test() stops at an infinite loop.
The loopCount variable can then be inspected to see how many times the loop has runned before the overwrite occured.

The tools I have used is Keil uVision V4.23.00.0 and a ULink Pro debugger.

The problem seems to be related to the temperature of the SDRAM chip. If I cool down the SDRAM the problem disappears.

I have tested it on 3 different Hitex boards.
The 2 boards fails at normal room temperature, but the thirds only fails when the SDRAM is heated up (About 10-20 degress).

I have attached the example project.

Best regards

Original Attachment has been moved to: SDRAM_Execute_204Mhz.zip