Segger Linker - how to define symbol to be end of block? And some other questions / suggestion

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Segger Linker - how to define symbol to be end of block? And some other questions / suggestion

      In the linker .icf file, I want to define a symbol to be the end of a block. For example:

      define region CCMRAM = [0x10000000 size 0x10000];
      define block stack with size = __STACKSIZE__, alignment = 8, readwrite access { };
      place at end of CCMRAM { block heap, block stack };

      define symbol _estack = end of stack; <- this doesn't work. What is the proper syntax for determining the start or end of a region / block?

      Also, where is _estack referenced? I looked and in the .map file it says "Linker created".

      A suggestion - in "Placing at the end of a range" description, think about adding something that the placement is done at the end starting with the first item in the list i.e. if the list is:
      place at end of RAM { block heap, block stack };
      it will be placed with block heap at the end and then just before it, block stack. In other words, stack will have a lower address than heap. So, you really want:
      place at end of RAM { block stack, block heap};

      Once you know this, it is kind of obvious but, I got it wrong the first go around.