This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

maximum level of functions than can be called within

function1 calling function2, function2 calling function3, function3 calling function4 and so on.

Maximum stage depends upon Stack Size, right? How to identify Stack Size and if required how to change it? I am using IAR and Fujitsu ARM Cortex M3 MB9AF312K.

I can see in map file

"P3", part 3 of 3:                          0x600

  HEAP                        0x20000000    0x400  <Block>

    HEAP             uninit   0x20000000    0x400  <Block tail>

  CSTACK                      0x20000400    0x200  <Block>

    CSTACK           uninit   0x20000400    0x200  <Block tail>

                            - 0x20000600    0x600

Help appreciated for clearing the concept.

Thanks

Parents
  • Hi nabeen,

    Maximum stage depends upon Stack Size, right?

    It is right.

    How to identify Stack Size and if required how to change it?

    The stack and heap sizes are defined in the *.icf file.
    In the case of MB9AF312K, the *.icf file is located at
    C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.70\arm\config\linker\Cypress\mb9af312k.icf
    By reading it, you can know the sizes of the stack and heap.
    However, it is not recommended to modify it directly.
    To modify it, you should use ICF editor invoked from EWARM.
    You can select the edit button from the pull down menu of EWARM by following
    [Project]->[Options(O)...]->[Linker]->[Setting].
    Also you can modify the stack size (i.e. CSTACK) by the editor.
    Please refer to the following figures as your information.
    I'm sorry but I have only Japanese version EWARM.

    Best Regards,

    Yasuhiko Koumoto.

Reply
  • Hi nabeen,

    Maximum stage depends upon Stack Size, right?

    It is right.

    How to identify Stack Size and if required how to change it?

    The stack and heap sizes are defined in the *.icf file.
    In the case of MB9AF312K, the *.icf file is located at
    C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.70\arm\config\linker\Cypress\mb9af312k.icf
    By reading it, you can know the sizes of the stack and heap.
    However, it is not recommended to modify it directly.
    To modify it, you should use ICF editor invoked from EWARM.
    You can select the edit button from the pull down menu of EWARM by following
    [Project]->[Options(O)...]->[Linker]->[Setting].
    Also you can modify the stack size (i.e. CSTACK) by the editor.
    Please refer to the following figures as your information.
    I'm sorry but I have only Japanese version EWARM.

    Best Regards,

    Yasuhiko Koumoto.

Children