<?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>topic Re: where is systick interrupt vector being set by MQX? in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405256#M1633</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michael,&lt;/P&gt;&lt;P&gt;I am not sure I understand your question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are you using MQX in KSDK_1.3?&lt;/P&gt;&lt;P&gt;Or using MQX_4.2?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For a new project built using KDS_3.0 + KSDK_1.3 + PE +MQX the init_bsp.c file has _bsp_pre_init() function that initializes the systick (MQX tick timer).&lt;/P&gt;&lt;P&gt;The vector table by default is in RAM when using PE.&amp;nbsp; The CPU component Inspector has a "Build options" tab that has Vector table copy in RAM enabled/checked.&lt;/P&gt;&lt;P&gt;The startup.c init_data_bss() function then handle setting VTOR accordingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MQX4.2 has a header file small_ram_config.h that has following #define:&amp;nbsp; #define MQX_ROM_VECTORS&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;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1 = VTOR points to Flash&lt;/P&gt;&lt;P&gt;0 = VTOR points to SRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To over ride the default just add the #define to user_config.h and set to 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The init_bsp.c _bsp_pre_init() function sets the VTOR accordingly with a call to _int_set_vetor_table().&lt;/P&gt;&lt;P&gt;Later in that same function the hwtimer (aka systick) is initialized with several function calls:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize , set and run system hwtimer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_init(&amp;amp;systimer, &amp;amp;BSP_SYSTIMER_DEV, BSP_SYSTIMER_ID, BSP_SYSTIMER_ISR_PRIOR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_set_freq(&amp;amp;systimer, BSP_SYSTIMER_SRC_CLK, BSP_ALARM_FREQUENCY);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwtimer_deinit(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_callback_reg(&amp;amp;systimer,(HWTIMER_CALLBACK_FPTR)_bsp_systimer_callback, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwtimer_deinit(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_start(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwtimer_deinit(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 12 Nov 2015 18:31:52 GMT</pubDate>
    <dc:creator>DavidS</dc:creator>
    <dc:date>2015-11-12T18:31:52Z</dc:date>
    <item>
      <title>where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405255#M1632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am doing a custom board porting an MQX app from the twrk40 and I am stuck.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After MQX initialization I get a default ISR fault when the systick interrupt occurs.&amp;nbsp; I see in the code where the default ISRs are copied to the beginning of RAM in startup.C, followed by setting VTOR appropriately.&amp;nbsp; In MQX I see where the pointer to the systick interrupt is installed in memory allocated by MQX (either sparse or not).&amp;nbsp; But I can't find where either VTOR is modified by MQX or the original vector in RAM is modified by MQX.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Nov 2015 00:46:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405255#M1632</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2015-11-12T00:46:13Z</dc:date>
    </item>
    <item>
      <title>Re: where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405256#M1633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michael,&lt;/P&gt;&lt;P&gt;I am not sure I understand your question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are you using MQX in KSDK_1.3?&lt;/P&gt;&lt;P&gt;Or using MQX_4.2?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For a new project built using KDS_3.0 + KSDK_1.3 + PE +MQX the init_bsp.c file has _bsp_pre_init() function that initializes the systick (MQX tick timer).&lt;/P&gt;&lt;P&gt;The vector table by default is in RAM when using PE.&amp;nbsp; The CPU component Inspector has a "Build options" tab that has Vector table copy in RAM enabled/checked.&lt;/P&gt;&lt;P&gt;The startup.c init_data_bss() function then handle setting VTOR accordingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MQX4.2 has a header file small_ram_config.h that has following #define:&amp;nbsp; #define MQX_ROM_VECTORS&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;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1 = VTOR points to Flash&lt;/P&gt;&lt;P&gt;0 = VTOR points to SRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To over ride the default just add the #define to user_config.h and set to 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The init_bsp.c _bsp_pre_init() function sets the VTOR accordingly with a call to _int_set_vetor_table().&lt;/P&gt;&lt;P&gt;Later in that same function the hwtimer (aka systick) is initialized with several function calls:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize , set and run system hwtimer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_init(&amp;amp;systimer, &amp;amp;BSP_SYSTIMER_DEV, BSP_SYSTIMER_ID, BSP_SYSTIMER_ISR_PRIOR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_set_freq(&amp;amp;systimer, BSP_SYSTIMER_SRC_CLK, BSP_ALARM_FREQUENCY);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwtimer_deinit(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_callback_reg(&amp;amp;systimer,(HWTIMER_CALLBACK_FPTR)_bsp_systimer_callback, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwtimer_deinit(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = hwtimer_start(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MQX_OK != result) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwtimer_deinit(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Nov 2015 18:31:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405256#M1633</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2015-11-12T18:31:52Z</dc:date>
    </item>
    <item>
      <title>Re: where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405257#M1634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using ksdk 1.3, MQX with no PE.&amp;nbsp; uP is MK22FX512A.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The init_data_bss function in startup.c, does indeed copy the vectors at ROM location 0 to RAM location 0x1FFF0000 and sets VTOR to 0x1FFF0000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The _bsp_pre_init() function has the code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//****************************************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = _psp_int_init(BSP_FIRST_INTERRUPT_VECTOR_USED, BSP_LAST_INTERRUPT_VECTOR_USED);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (result != MQX_OK) return result;&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;&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; Init MQX tick timer&lt;/P&gt;&lt;P&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize , set and run system hwtimer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = HWTIMER_SYS_Init(&amp;amp;systimer, &amp;amp;BSP_SYSTIMER_DEV, BSP_SYSTIMER_ID, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_OSA_Success != result) return MQX_INVALID_POINTER;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* Set isr for timer*/&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (NULL == OSA_InstallIntHandler(BSP_SYSTIMER_INTERRUPT_VECTOR, HWTIMER_SYS_SystickIsrAction))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;return kHwtimerRegisterHandlerError;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//***************************************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;_psp_int_init() calls _int_init() in psp_iinit.c which calls _int_init() in int.c.&amp;nbsp; _int_init() allocates a block of memory (at 0x1fff4f1c in my case) for an interrupt table, initializes the table with internal default ISR vectors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OSA_InstallIntHandler() calls _int_install_isr(), which puts the vector into the table allocated by _int_init().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, at the end of all this, VTOR still points to 0x1FFF0000, and none of the vectors in that table have been changed from the original copies from ROM location 0.&amp;nbsp; So when I get the first MQX systick interrupt, it goes to the original default ISR specified in the oriiginal ROM table and hangs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would think that MQX code would use and modify the RAM vector table already pointed to by VTOR.&amp;nbsp; It certainly can't set VTOR to 0x1fff4f1c because it isn't aligned properly.&amp;nbsp; What am I missing?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Nov 2015 20:30:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405257#M1634</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2015-11-13T20:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405258#M1635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michael,&lt;/P&gt;&lt;P&gt;You have documented the flow well and correctly.&lt;/P&gt;&lt;P&gt;There is a #define that is affecting the behavior of the system and its default setting is what you have characterized.&lt;/P&gt;&lt;P&gt;Search the code for MQXCFG_SPARSE_ISR_TABLE.&lt;/P&gt;&lt;P&gt;In the small_ram_config.h header it is set to 1.&amp;nbsp; &lt;/P&gt;&lt;P&gt;Good spot to read about this is:&amp;nbsp; C:\Freescale\KSDK_1.3.0\doc\rtos\mqx\MQX RTOS for Kinetis SDK User's Guide.pdf&lt;/P&gt;&lt;P&gt;Look on page 146 for following:&lt;/P&gt;&lt;P&gt;MQX_SPARSE_ISR_TABLE&lt;/P&gt;&lt;P&gt;Default is zero.&amp;nbsp; &amp;lt;--Ok..that is not correct at least for newly generated projects.&lt;/P&gt;&lt;P&gt;One: The MQX RTOS interrupt service routine table is allocated as an "array of linked&lt;/P&gt;&lt;P&gt;lists" instead of linear array. This option is independent on the MQX_ROM_VECTORS&lt;/P&gt;&lt;P&gt;as it deals with the "logical" table managed by the interrupt dispatcher in MQX RTOS.&lt;/P&gt;&lt;P&gt;With the sparse ISR table, only the ISRs installed by the _int_install_isr call consume&lt;/P&gt;&lt;P&gt;RAM memory. Interrupt latency increases as MQX RTOS needs to walk the list to find&lt;/P&gt;&lt;P&gt;user ISR to be invoked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm guessing the developers enabled this so it is easy to switch from flash to sram based vector table???&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In short, the MQX default ISR routine will look to see what isr's were registered and then call them from the table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can disable the sparse interrupt table by setting setting the #define to a "0".&amp;nbsp; The the installed isr's will be placed into the VTOR SRAM rather than the table.&lt;/P&gt;&lt;P&gt;I just did that with my example project and can use Memory Browser to see the tick handler (SysTick_Handler) is at 0x1fff003C&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Nov 2015 21:34:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405258#M1635</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2015-11-13T21:34:44Z</dc:date>
    </item>
    <item>
      <title>Re: where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405259#M1636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I already had MQX_SPARSE_ISR_TABLE set to 0.&amp;nbsp; Either way, the vectors in RAM pointed to by VTOR are not getting changed.&amp;nbsp; And I can't find anything in the MQX source code where MQX tries to alter the vectors in RAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By the way, MQX_ROM_VECTORS is no longer used in KSDK 1.3.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Nov 2015 01:22:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405259#M1636</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2015-11-14T01:22:33Z</dc:date>
    </item>
    <item>
      <title>Re: where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405260#M1637</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Maybe I should be using boot.s instead of startup.s?&amp;nbsp; Let me read up some more.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Nov 2015 02:57:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405260#M1637</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2015-11-16T02:57:50Z</dc:date>
    </item>
    <item>
      <title>Re: where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405261#M1638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The problem was when I migrated from CW to KSDK, I was still using a startup.S file, which precluded boot.S from being used.&amp;nbsp; I can see that this might be a problem later when I try to add a boot loader that may not use MQX, but at least I know now what I was doing wrong.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Nov 2015 20:01:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405261#M1638</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2015-11-16T20:01:35Z</dc:date>
    </item>
    <item>
      <title>Re: where is systick interrupt vector being set by MQX?</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405262#M1639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michael,&lt;/P&gt;&lt;P&gt;Thanks for letting us know the resolution.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Nov 2015 23:05:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/where-is-systick-interrupt-vector-being-set-by-MQX/m-p/405262#M1639</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2015-11-16T23:05:19Z</dc:date>
    </item>
  </channel>
</rss>

