AT91SAM7SE512 heap in SDRAM and variable allo

crash81 wrote on Wednesday, August 18, 2010:

I have a following problem: I’m devoloping device based on Atmel AT91SAM7SE512 CPU. It has SDRAM connected with 16-bit wide data bus. I want to put heap in this SDRAM. I’ve used heap_2.c  but I experienced memory leaks when using vPortFree() - it looked like this function returnred more memory that was previously allocated. Then I started using heap_3.c andehence - malloc. I use Rowley CrossWorks in current version. First I had to manually initialize heap because initializastion in provided startup file happened before SDRAM controller initialization. It seemd to be working but recently I’ve experienced some weird effects. When I call subroutine from a task it looks like variables in that subroutine ale allocated under one address and used by the fallowing code with different address. The difference is few words but leads to serious memory leaks. In other words variable is allocated under eg. 0x20010000 and later referenced as 0x2000FFFC. Can someone give me any suggestion wehere to look for a soulution ?

davedoors wrote on Wednesday, August 18, 2010:

I would look at your hardware configuration. Especially where the memory controller is initialized to get around your first problem. Very doubtful this is a FreeRTOS problem.