<?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 lite and bootlaoder</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447381#M14987</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Setting MQX_ROM_VECTORS to 0 in user_config.h the copy of the interrupt in RAM is not automatic? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 06 Jul 2015 12:43:30 GMT</pubDate>
    <dc:creator>danielecortella</dc:creator>
    <dc:date>2015-07-06T12:43:30Z</dc:date>
    <item>
      <title>MQX lite and bootlaoder</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447378#M14984</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have a device with a uTasker Bootlader an MQX lite. I have change the Memory map of the firmware :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MEMORY {&lt;/P&gt;&lt;P&gt;&amp;nbsp; m_interrupts (RX) : ORIGIN = 0x00008080, LENGTH = 0x00000200&lt;/P&gt;&lt;P&gt;&amp;nbsp; m_cfmprotrom (RX) : ORIGIN = 0x00008400, LENGTH = 0x00000010&lt;/P&gt;&lt;P&gt;&amp;nbsp; m_text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RX) : ORIGIN = 0x00008410, LENGTH = 0x00037BF0&lt;/P&gt;&lt;P&gt;&amp;nbsp; m_data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW) : ORIGIN = 0x1FFFE200, LENGTH = 0x00007E00&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know that MQX can copy the interrupt to RAM with the setting MQX_ROM_VECTORS set to 0 in user_config.h. This is necessary for a correct functioning because at 0x00 address i have the bootlaoder. A&lt;SPAN lang="en"&gt;lthough &lt;/SPAN&gt;this setting the system crash as visible in the image when is execute&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="_jivemacro_uid_14357375106514766 jive_macro_code jive_text_macro" data-renderedposition="302_8_1232_48" jivemacro_uid="_14357375106514766"&gt;&lt;P&gt; #ifdef PEX_RTOS_INIT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PEX_RTOS_INIT();&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */&lt;/P&gt;&lt;P&gt;&amp;nbsp; #endif&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in PE_low_level_init.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PS: the system crash in&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14357379127067705 jive_text_macro" data-renderedposition="476_8_1232_400" jivemacro_uid="_14357379127067705"&gt;&lt;P&gt;void _psp_int_install(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KERNEL_DATA_STRUCT_PTR kernel_data;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _GET_KERNEL_DATA(kernel_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __set_MSP((uint_32)kernel_data-&amp;gt;INTERRUPT_STACK_PTR);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if !MQX_ROM_VECTORS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32_ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (pointer)(&amp;amp;__vect_table);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize the hardware interrupt vector table&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 0: Initial stack pointer&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 1: Initial program counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 16; i &amp;lt; PSP_MAXIMUM_INTERRUPT_VECTORS; i++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr[i] = (uint_32)_int_kernel_isr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when the ptr[i] = (uint_32)_int_kernel_isr; is executed&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Jul 2015 08:01:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447378#M14984</guid>
      <dc:creator>danielecortella</dc:creator>
      <dc:date>2015-07-01T08:01:24Z</dc:date>
    </item>
    <item>
      <title>Re: MQX lite and bootlaoder</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447379#M14985</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If i change the setting &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;MQX_ROM_VECTORS&amp;nbsp; to 1 and add this code in __init_hardware during the initialization &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_1435745124017832" data-renderedposition="50_8_1232_336" jivemacro_uid="_1435745124017832"&gt;&lt;P&gt; uint32_t *pdst;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t *psrc;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint16_t i;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Then redirect the vector table to RAM by changing the SCB_VTOR like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Redirect the vector table to the new copy in RAM&lt;/P&gt;&lt;P&gt;&amp;nbsp; SCB_VTOR = (uint32_t) (0x1FFFE000);&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Copy Application Stored Interrupt Vector table to RAM&lt;/P&gt;&lt;P&gt;&amp;nbsp; pdst = (uint32_t*) (0x1FFFE000);&lt;/P&gt;&lt;P&gt;&amp;nbsp; psrc=(uint32_t*) (0x8080);&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (i = 0; i &amp;lt; 0xC0; i++, pdst++, psrc++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; (*pdst) = (*psrc);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check Copy&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pdst = (uint32_t*) (0x1FFFE000);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; psrc=(uint32_t*) (0x8080);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 0xC0; i++, pdst++, psrc++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((*pdst) != (*psrc)) {&lt;/P&gt;&lt;P&gt;&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; // error&lt;/P&gt;&lt;P&gt;&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; while (1) {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;that copy the interrupt table from flash to ram the code is executed but only for a short time, in my function init &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14357451762913051 jive_text_macro" data-renderedposition="449_8_1232_256" jivemacro_uid="_14357451762913051"&gt;&lt;P&gt;void Init_Device(void) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; int error = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; unsigned int firmware_version_SdCard = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; unsigned int i = 0, bw = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp; * Parte di inizializzazione periferiche del dispositivo &lt;/P&gt;&lt;P&gt;&amp;nbsp; * ADC, SPI, SDCard&lt;/P&gt;&lt;P&gt;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Cpu_SetClockConfiguration(0); //setto la cpu alla massima frequenza&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Ref_EN_SetVal();//abilito il MOS sul riferimento del ADC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //resetto la SdCard agendo sulla alimentazione&lt;/P&gt;&lt;P&gt;&amp;nbsp; SDCard_ON_ClrVal();&lt;/P&gt;&lt;P&gt;&amp;nbsp; WAIT_Waitms(10);&lt;/P&gt;&lt;P&gt;&amp;nbsp; SDCard_ON_SetVal();&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when is executed the wait function the cpu crash .... i think is a problem with the systemtimer interrupt of MQX. The crash is visible in the image&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Jul 2015 10:08:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447379#M14985</guid>
      <dc:creator>danielecortella</dc:creator>
      <dc:date>2015-07-01T10:08:49Z</dc:date>
    </item>
    <item>
      <title>Re: MQX lite and bootlaoder</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447380#M14986</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Daniele Cortellazi:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think your copy to RAM is not correct, you should increment both pointers by 4 with each iteration (&lt;STRONG&gt;pdst&lt;/STRONG&gt; and &lt;STRONG&gt;psrc&lt;/STRONG&gt;).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apart from that I recommend you to instead give a try to the workaround described in the next post:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/336291"&gt;How to put vectors in ram with processor expert?&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have the same problem, although I did not try the solution with a bootloader-ready project.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards!&lt;/P&gt;&lt;P&gt;Jorge Gonzalez&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Jul 2015 21:31:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447380#M14986</guid>
      <dc:creator>Jorge_Gonzalez</dc:creator>
      <dc:date>2015-07-01T21:31:34Z</dc:date>
    </item>
    <item>
      <title>Re: MQX lite and bootlaoder</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447381#M14987</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Setting MQX_ROM_VECTORS to 0 in user_config.h the copy of the interrupt in RAM is not automatic? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jul 2015 12:43:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447381#M14987</guid>
      <dc:creator>danielecortella</dc:creator>
      <dc:date>2015-07-06T12:43:30Z</dc:date>
    </item>
    <item>
      <title>Re: MQX lite and bootlaoder</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447382#M14988</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniele:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the case of MQX Lite, &lt;STRONG&gt;user_config.h&lt;/STRONG&gt; is handled by Processor Expert and there is a bug in MQX Lite component that does not allow to install vectors in RAM automatically, you have to apply the workaround of the other thread.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am sorry for the inconvenience.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards!&lt;/P&gt;&lt;P&gt;Jorge Gonzalez&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Jul 2015 02:04:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447382#M14988</guid>
      <dc:creator>Jorge_Gonzalez</dc:creator>
      <dc:date>2015-07-08T02:04:21Z</dc:date>
    </item>
    <item>
      <title>Re: MQX lite and bootlaoder</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447383#M14989</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;during the __init_hardware i copy the interrupt vector from flash to ram but when the MQX lite is executed with PEX_RTOS_START();&amp;nbsp; the SCB_VTOR change and return to a wrong value ... Why? Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Jul 2015 14:48:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-lite-and-bootlaoder/m-p/447383#M14989</guid>
      <dc:creator>danielecortella</dc:creator>
      <dc:date>2015-07-14T14:48:40Z</dc:date>
    </item>
  </channel>
</rss>

