<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>MQX Software Solutions中的主题 Re: MQX IAR Linker File does not have cstack</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-IAR-Linker-File-does-not-have-cstack/m-p/424073#M14130</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;MQX stack usage and works with them looks like this: MQX run on supervisor mode. Supervisor mode stack and irq stack are set to BOOT_STACK area (size is 0x100) – this value depend on MQX startup sequence complexity – for example code which init MQX (scheduler, memory) and install/init device driver run with this stack – depend on real implementation and developer must know what he does when he changes something in BSP (like in init_hardware, bsp_enable_card functions).&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Each task has own stack which are set in MQX task template list. IRQ stack is set by MQX, too – default value is set in BSP_DEFAULT_INTERRUPT_STACK_SIZE. When MQX runs, uses self defined stacks. Stacks size defines in linker file for supervisor and irq mode are important for startup only (BOOT_STACK)&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;we do not use CSTACK and HEAP – (IAR specific) MQX has own startup code which set stacks sizes.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;User mode is not used and stack is not set.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Other stacks for modes like FIQ, Undefined, Abort, System&amp;nbsp; are set to minimal values, because they are not used – there is minimal implementation like infinity loop.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;When someone want use these modes, they must set correct value for stacks size which depend on implemented functionality (developer has to know, what he implemented).&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Sol&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 21 Jul 2015 19:36:21 GMT</pubDate>
    <dc:creator>soledad</dc:creator>
    <dc:date>2015-07-21T19:36:21Z</dc:date>
    <item>
      <title>MQX IAR Linker File does not have cstack</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-IAR-Linker-File-does-not-have-cstack/m-p/424072#M14129</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using the IAR Workbench linker configuration files (.icf) provided with MQX and everything is working fine. I am able to run all of the examples and our custom firmware runs great. I am just curious as to how the examples run when the linker files do not have CSTACK. For example, the intflash_ddrdata.icf file provided by MQX has the following in it:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*-Sizes-*/&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_size_cstack__&amp;nbsp;&amp;nbsp; = 0;&lt;/P&gt;&lt;P&gt;define symbol __ICFEDIT_size_heap__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;/P&gt;&lt;P&gt;/**** End of ICF editor section. ###ICF###*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;define exported symbol __BOOT_STACK_ADDRESS = 0x2000FFF0 - 0x100;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't we need a stack before the RTOS is called? Is this created by the BSP somewhere? Is that what __BOOT_STACK_ADDRESS is for?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Jul 2015 19:11:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-IAR-Linker-File-does-not-have-cstack/m-p/424072#M14129</guid>
      <dc:creator>Roguetroop</dc:creator>
      <dc:date>2015-07-20T19:11:24Z</dc:date>
    </item>
    <item>
      <title>Re: MQX IAR Linker File does not have cstack</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-IAR-Linker-File-does-not-have-cstack/m-p/424073#M14130</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;MQX stack usage and works with them looks like this: MQX run on supervisor mode. Supervisor mode stack and irq stack are set to BOOT_STACK area (size is 0x100) – this value depend on MQX startup sequence complexity – for example code which init MQX (scheduler, memory) and install/init device driver run with this stack – depend on real implementation and developer must know what he does when he changes something in BSP (like in init_hardware, bsp_enable_card functions).&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Each task has own stack which are set in MQX task template list. IRQ stack is set by MQX, too – default value is set in BSP_DEFAULT_INTERRUPT_STACK_SIZE. When MQX runs, uses self defined stacks. Stacks size defines in linker file for supervisor and irq mode are important for startup only (BOOT_STACK)&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;we do not use CSTACK and HEAP – (IAR specific) MQX has own startup code which set stacks sizes.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;User mode is not used and stack is not set.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Other stacks for modes like FIQ, Undefined, Abort, System&amp;nbsp; are set to minimal values, because they are not used – there is minimal implementation like infinity loop.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;When someone want use these modes, they must set correct value for stacks size which depend on implemented functionality (developer has to know, what he implemented).&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Sol&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jul 2015 19:36:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-IAR-Linker-File-does-not-have-cstack/m-p/424073#M14130</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2015-07-21T19:36:21Z</dc:date>
    </item>
  </channel>
</rss>

