<?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>MPC5xxxのトピックRe: CAN bootloader</title>
    <link>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987919#M14871</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;OK, after test you mentioned, I found that the Mode Transition, which is done on clock init, is pending due to previous active peripheral clock (PIT ch15). This channel is used by OSIF driver&amp;nbsp;that&amp;nbsp;uses a hardware timer to accurately measure time. OSIF is called when blocking function is used.&lt;/P&gt;&lt;P&gt;So you should disable PIT module before reinit is requested. use below code before your asm lines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PIT-&amp;gt;MCR |= PIT_MCR_MDIS_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;__asm__("e_lis %r12,0x00FA");&lt;BR /&gt;&amp;nbsp;__asm__("e_or2i %r12,0x0010");&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Petr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 27 Mar 2020 12:05:10 GMT</pubDate>
    <dc:creator>PetrS</dc:creator>
    <dc:date>2020-03-27T12:05:10Z</dc:date>
    <item>
      <title>CAN bootloader</title>
      <link>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987916#M14868</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I&amp;nbsp; designed a bootloader based on can. In app, it can jump to bootloader when received the fixed information through can . However,&amp;nbsp; the program will crashed in can initialization after jumping to bootloader .so I have a test as&amp;nbsp; atachment,In the program,I changed the address,so it can not jump to bootloader but jumped to the App again,the program also crashed when can Initializing.I find the problems through debug.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CAN_Type * base = g_flexcanBase[instance]; -------&amp;gt;it can not get the status of CAN&amp;nbsp; rgisters&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; so how to deal with it？&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Jun Gong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Mar 2020 01:51:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987916#M14868</guid>
      <dc:creator>gj3526</dc:creator>
      <dc:date>2020-03-19T01:51:47Z</dc:date>
    </item>
    <item>
      <title>Re: CAN bootloader</title>
      <link>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987917#M14869</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried given project on DEVKIT and it passes CAN init normally.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Petr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Mar 2020 11:40:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987917#M14869</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2020-03-25T11:40:35Z</dc:date>
    </item>
    <item>
      <title>Re: CAN bootloader</title>
      <link>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987918#M14870</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Petr,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sorry I did not make it clear,After the program runing ,use CAN tool send "ID:7F6 data:08 1e 12 15 6d 5f c9 ed",the program will jump to 0x01000000 (in my opinion,it is the same as reboot),but it will crashed in can initialization.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; as flow in can.c&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; for(cnt=590;cnt&amp;lt;599;cnt++)//CAN2_Error_IRQn&lt;BR /&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;{&lt;BR /&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;INT_SYS_DisableIRQ_MC_All(cnt);&lt;BR /&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;}&lt;BR /&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;INT_SYS_DisableIRQGlobal();&lt;BR /&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;INT_SYS_DisableIRQ_MC_All(PIT_Ch15_IRQn);&lt;BR /&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;__asm__("e_lis %r12,0x00FA");&lt;BR /&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;__asm__("e_or2i %r12,0x0010");&lt;BR /&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;__asm__("e_lwz %r0,0(%r12)");&lt;BR /&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;__asm__("se_mtlr %r0");&lt;BR /&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;__asm__("se_blrl");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Jun Gong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Mar 2020 02:30:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987918#M14870</guid>
      <dc:creator>gj3526</dc:creator>
      <dc:date>2020-03-26T02:30:16Z</dc:date>
    </item>
    <item>
      <title>Re: CAN bootloader</title>
      <link>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987919#M14871</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;OK, after test you mentioned, I found that the Mode Transition, which is done on clock init, is pending due to previous active peripheral clock (PIT ch15). This channel is used by OSIF driver&amp;nbsp;that&amp;nbsp;uses a hardware timer to accurately measure time. OSIF is called when blocking function is used.&lt;/P&gt;&lt;P&gt;So you should disable PIT module before reinit is requested. use below code before your asm lines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PIT-&amp;gt;MCR |= PIT_MCR_MDIS_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;__asm__("e_lis %r12,0x00FA");&lt;BR /&gt;&amp;nbsp;__asm__("e_or2i %r12,0x0010");&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Petr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2020 12:05:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/CAN-bootloader/m-p/987919#M14871</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2020-03-27T12:05:10Z</dc:date>
    </item>
  </channel>
</rss>

