<?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: memory allocation before MQX starts</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148076#M239</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Figured it out. Can I remove the initial post?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 24 Mar 2012 04:44:31 GMT</pubDate>
    <dc:creator>michaelhuslig</dc:creator>
    <dc:date>2012-03-24T04:44:31Z</dc:date>
    <item>
      <title>memory allocation before MQX starts</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148075#M238</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to keep some data of variable size in an area of RAM between the end of the MQX kernal data and top of RAM.&amp;nbsp; Since the size is variable, I can't just modify the .lcf linker file.&amp;nbsp; Is there an easy way to tell MQX to set its own data somewhere else?&amp;nbsp; Or is there a better place to put this block of RAM.&amp;nbsp; What I want to do is be able to upload new code to the K40 and reset without affecting this memory.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Mar 2012 08:55:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148075#M238</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2012-03-22T08:55:56Z</dc:date>
    </item>
    <item>
      <title>Re: memory allocation before MQX starts</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148076#M239</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Figured it out. Can I remove the initial post?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 24 Mar 2012 04:44:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148076#M239</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2012-03-24T04:44:31Z</dc:date>
    </item>
    <item>
      <title>Re: memory allocation before MQX starts</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148077#M240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi michael husling,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;great you figure it out therefore it would be appriciated if you can post your solution. Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;MartinK&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 01:31:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148077#M240</guid>
      <dc:creator>c0170</dc:creator>
      <dc:date>2012-03-26T01:31:30Z</dc:date>
    </item>
    <item>
      <title>Re: memory allocation before MQX starts</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148078#M241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry for taking so long; I had hoped to have a final solution before now.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I copied the MQX initialization structure to main.c and removed the const keyword so that the structure would end up in RAM:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;MQX_INITIALIZATION_STRUCT&lt;FONT size="2"&gt;&amp;nbsp; MQX_init_struct =&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;{&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;/* PROCESSOR_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&amp;nbsp; BSP_DEFAULT_PROCESSOR_NUMBER,&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;/* START_OF_KERNEL_MEMORY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&amp;nbsp; BSP_DEFAULT_START_OF_KERNEL_MEMORY,&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;/* END_OF_KERNEL_MEMORY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&amp;nbsp; BSP_DEFAULT_END_OF_KERNEL_MEMORY,&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;&lt;FONT color="#3F7F5F" size="2"&gt;/* INTERRUPT_STACK_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&amp;nbsp; BSP_DEFAULT_INTERRUPT_STACK_SIZE,&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT size="2"&gt;....﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT size="2"&gt;This allows me to change the default end of kernel memory in the beginning of main.c before I start MQX with&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&lt;STRONG&gt;&lt;FONT color="#642880" size="2"&gt;&lt;FONT color="#642880" size="2"&gt;_mqx&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;( (&lt;/FONT&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;MQX_INITIALIZATION_STRUCT_PTR&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;) &amp;amp;MQX_init_struct );&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT size="2"&gt;But since the original linker .lcf file had the boot stack located near the end of the original MQX space, I had to delete the original bstack segment and add my own stack before the beginning of the MQX space:&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .main_application_bss :&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . =&lt;/P&gt;&lt;P align="left"&gt;&lt;STRONG&gt;&lt;FONT color="#0099FF" size="2"&gt;&lt;FONT color="#0099FF" size="2"&gt;ALIGN&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(0x10);&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __START_SBSS = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.sbss)&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(SCOMMON)&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __END_SBSS = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __START_BSS = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss)&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(COMMON)&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __END_BSS = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . =&lt;/P&gt;&lt;P align="left"&gt;&lt;STRONG&gt;&lt;FONT color="#0099FF" size="2"&gt;&lt;FONT color="#0099FF" size="2"&gt;ALIGN&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(16);&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _stack_end = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .=.+0x200;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _stack_addr = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __SP_INIT&amp;nbsp;&amp;nbsp;&amp;nbsp; = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __BOOT_STACK_ADDRESS = .;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt;&amp;gt; ram&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .kernel_data :&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT color="#CC0000" size="2"&gt;&lt;FONT color="#CC0000" size="2"&gt;#AT(ADDR(.main_application_bss) + SIZEOF(.main_application_bss))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __KERNEL_DATA_START =&lt;/P&gt;&lt;P align="left"&gt;&lt;STRONG&gt;&lt;FONT color="#0099FF" size="2"&gt;&lt;FONT color="#0099FF" size="2"&gt;ALIGN&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(0x10);&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT size="2"&gt;...﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT size="2"&gt;I had tried to put the boot stack at the beginning of the MQX space, but when MQX starts it continues to use the boot stack for a while before setting up its own stack;&amp;nbsp; in the process of setting up its space, MQX was apparently overwriting the boot stack﻿.&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT size="2"&gt;I will eventually look into putting the boot stack at beginning of the MQX space, adjust the end of the MQX space as above,&amp;nbsp;and then set the stack pointer to the end of the shortened MQX space just before starting MQX;&amp;nbsp; that way I will not have wasted RAM space on a boot stack that is never used after MQX starts.&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&lt;FONT size="2"&gt;﻿&lt;/FONT&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 May 2012 08:31:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/memory-allocation-before-MQX-starts/m-p/148078#M241</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2012-05-19T08:31:52Z</dc:date>
    </item>
  </channel>
</rss>

