<?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>S32 Design StudioのトピックJump to Array pointer</title>
    <link>https://community.nxp.com/t5/S32-Design-Studio/Jump-to-Array-pointer/m-p/722451#M2105</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi NXP team,&lt;/P&gt;&lt;P&gt;We are using S32K1XX controller in our project.&lt;/P&gt;&lt;P&gt;I have placed the application hex values in array and located the array at the XYZ&amp;nbsp;segment area.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have checked&amp;nbsp;in map file and memory window, array is located at the XYZ segment .&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;__attribute__&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;((section (&lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small;"&gt;".XYZ_codearea"&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;))) &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;T_U8&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; EraseArr[12] =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0x80,0xB4,0x00,0xAF,0x22,0x4B,0x4F,0xF0,0x80,0x42,0xC3,0xF8&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;typedef&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt; (*&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;BL_pfvJumpAddress_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)(&lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jump function :&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;STRONG&gt;BL_BLC_JumpToApp&lt;/STRONG&gt;( &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;T_U32&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; *pu32JumpAddress )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;BL_pfvJumpAddress_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; pfvJumpAddress;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Assign address to pseudo function. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; pfvJumpAddress = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;BL_pfvJumpAddress_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)(pu32JumpAddress);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;(pfvJumpAddress)();&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;calling the function :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;EraseRoutineFlashPtr = EraseArr;&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;//0x20000541;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; BL_BLC_JumpToApp ((&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;T_U32&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)EraseRoutineFlashPtr);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;but it is going default ISR.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;please let me know what is the problem ?&lt;/SPAN&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;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;Ambarish&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 21 Mar 2018 15:25:08 GMT</pubDate>
    <dc:creator>ambarishhundeka</dc:creator>
    <dc:date>2018-03-21T15:25:08Z</dc:date>
    <item>
      <title>Jump to Array pointer</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Jump-to-Array-pointer/m-p/722451#M2105</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi NXP team,&lt;/P&gt;&lt;P&gt;We are using S32K1XX controller in our project.&lt;/P&gt;&lt;P&gt;I have placed the application hex values in array and located the array at the XYZ&amp;nbsp;segment area.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have checked&amp;nbsp;in map file and memory window, array is located at the XYZ segment .&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;__attribute__&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;((section (&lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small;"&gt;".XYZ_codearea"&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;))) &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;T_U8&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; EraseArr[12] =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0x80,0xB4,0x00,0xAF,0x22,0x4B,0x4F,0xF0,0x80,0x42,0xC3,0xF8&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;typedef&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt; (*&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;BL_pfvJumpAddress_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)(&lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jump function :&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;STRONG&gt;BL_BLC_JumpToApp&lt;/STRONG&gt;( &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;T_U32&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; *pu32JumpAddress )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;BL_pfvJumpAddress_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; pfvJumpAddress;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Assign address to pseudo function. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; pfvJumpAddress = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;BL_pfvJumpAddress_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)(pu32JumpAddress);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;(pfvJumpAddress)();&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;calling the function :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;EraseRoutineFlashPtr = EraseArr;&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;//0x20000541;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; BL_BLC_JumpToApp ((&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;T_U32&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)EraseRoutineFlashPtr);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;but it is going default ISR.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;please let me know what is the problem ?&lt;/SPAN&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;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;Ambarish&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Mar 2018 15:25:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Jump-to-Array-pointer/m-p/722451#M2105</guid>
      <dc:creator>ambarishhundeka</dc:creator>
      <dc:date>2018-03-21T15:25:08Z</dc:date>
    </item>
    <item>
      <title>Re: Jump to Array pointer</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Jump-to-Array-pointer/m-p/722452#M2106</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;Actually the jump address should have&amp;nbsp; LSB bit&amp;nbsp; (bit 0) set to 1. This indicates that a thumb instruction will be executed after branch. You can e.g. try this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;pfvJumpAddress &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BL_pfvJumpAddress_t&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;pu32JumpAddress &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;‍&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// Set LSB bit = Thumb instruction&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also assume that routine "EraseArr" represented here as an array of opcodes &lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;&lt;SPAN&gt;needs some arguments/registers to be passed. E.g. address of flash to be erased or a counter...&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;&lt;SPAN&gt;Therefore before branching to EraseArr please make sure the appropriate GPR core registers/function parameters are initialized&amp;nbsp;correctly.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;Otherwise it may end up with exception e.g. trying to write into non-existing&amp;nbsp;memory...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;&lt;SPAN&gt;Hope it helps.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;&lt;SPAN&gt;Stan&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Mar 2018 16:46:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Jump-to-Array-pointer/m-p/722452#M2106</guid>
      <dc:creator>stanish</dc:creator>
      <dc:date>2018-03-22T16:46:39Z</dc:date>
    </item>
  </channel>
</rss>

