scater file problems

Hi
I am using uvision to develop code for LPC1768. my code is not small but I am sure I have lots of unused SRAM and I have assigned enough heap and stack

But I have a problem. Some of my variables get values other than what they should have. For example a variable that I set it 1 in timer interrupt (and define it volatile when declaring it), is having 0 value when is referred to in code, etc

When these problems happen, I define the variable in a specific address, like this

unsigned char Flash_write_values[512] __attribute__((at(RAM_BaseAddress + 0x5000)));
unsigned char Flash_Data[512] __attribute__((at(RAM_BaseAddress + 0x5200)));
volatile unsigned char  SMS_QueueActive __attribute__((at(RAM_BaseAddress + 0x5A04)));

Now that my code is getting bigger, this problem is occurring more frequently.
Maybe I should define all my variables in specific addresses. What is your opinion?

I started studying linker manuals to learn how to create scatter files, but it seems the manuals are too large and not enough simple to work/start with

How do you suggest me to proceed?
Thanks in advance

Parents
  • Hi again
    I'm sorry but it still seems that my variables are getting changed with no reason

    In more tests, I noticed when I change some local variables to global variables, the problems happen less

    Maybe the problem is "stack overflow"
    But I have set the stack size an enough big number in configuration wizard of lpc17xx_startup.s

    Should I change anything else to have enough stack size?

    Maybe I should define what address of RAM should be used for stack in scatter file, but I can't understand how to do this based on my studies of linker manuals ):

Reply
  • Hi again
    I'm sorry but it still seems that my variables are getting changed with no reason

    In more tests, I noticed when I change some local variables to global variables, the problems happen less

    Maybe the problem is "stack overflow"
    But I have set the stack size an enough big number in configuration wizard of lpc17xx_startup.s

    Should I change anything else to have enough stack size?

    Maybe I should define what address of RAM should be used for stack in scatter file, but I can't understand how to do this based on my studies of linker manuals ):

Children
More questions in this forum