<?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>ColdFire/68K Microcontrollers and Processors中的主题 Jump from assembly to C problem with boot code on MCF52233</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136668#M1827</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am in the process of making a boot-code for field flash upgrade of the MCF52233. The MCF52235EVB is "compatible" with our product, and the software without boot-code is similar to &lt;/SPAN&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fforums.freescale.com%2Ffreescale%2Fboard%2Fmessage%3Fboard.id%3DCFCOMM%26thread.id%3D2553" rel="nofollow" target="_blank"&gt;this&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My problem occurs when jumping from assembly to C language in the application-code (boot-code runs initially and does this "switch" flawlessly).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The output from gdb and my debugger (BDI2000) at the problem location:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor rd&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D0 : 00000000 00000000 00000030 00000006&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D4 : 00000018 a661a87d c40f9216 56d33015&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A0 : 00000000 44035a4c 200000fc 401d0024&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A4 : 1d047492 667d0fa0 00000000 20007ff0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PC : 00027fac&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SR : 00002704&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor info&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : debug mode&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug entry cause : single step&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0x00027fac&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor ti&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : debug mode&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug entry cause : single step&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0x00000466&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor rd&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D0 : 00000000 00000000 00000030 00000006&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D4 : 00000018 a661a87d c40f9216 56d33015&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A0 : 00000000 44035a4c 200000fc 401d0024&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A4 : 1d047492 667d0fa0 00000000 20007fe8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PC : 00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SR : 00002704&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...and the disassembly before and after the jump:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 1001c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; moveq #0,%d0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 1001e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; moveq #0,%d1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10020:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %a0,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10022:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %d0,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10024:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %d1,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10026:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f0e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %fp,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10028:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4ef9 0002 7fac&amp;nbsp; jmp 27fac &amp;lt;__start1&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00027fac &amp;lt;__start1&amp;gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fac:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4e56 fffc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; linkw %fp,#-4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fb0:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %d2,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fb2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203c 0003 5550&amp;nbsp; movel #218448,%d0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fb8:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0c80 2000 0000&amp;nbsp; cmpil #536870912,%d0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fbe:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 672e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; beqs 27fee &amp;lt;__start1+0x42&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is some parts of relevant pieces in the linker script (... indicates removed stuff):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;OUTPUT_ARCH(m68k)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ENTRY(__start)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SEARCH_DIR(.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__DYNAMIC&amp;nbsp; =&amp;nbsp; 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;MEMORY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; rom (rx) : ORIGIN = 64K, LENGTH = 192K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ram (rwx) : ORIGIN = 512M, LENGTH = 32K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; bootloader (rx) : ORIGIN = 0K, LENGTH = 48K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; bootconst (rx) : ORIGIN = 48K, LENGTH = 16K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE (__stack = ORIGIN (ram) + LENGTH (ram));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SECTIONS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; .text :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE_OBJECT_SYMBOLS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.app_start .app_start.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text .text.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.gnu.linkonce.t.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(0x4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __INIT_SECTION__ = . ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG (0x4e560000) /* linkw %fp,#0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.init)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e5e) /* unlk %fp */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e75) /* rts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(0x4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __FINI_SECTION__ = . ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG (0x4e560000) /* linkw %fp,#0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.fini)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e5e) /* unlk %fp */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e75) /* rts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.lit)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _etext = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } &amp;gt;rom&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; .bootloader :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __interrupt_vector_boot = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cf-boot.o(.bootloader)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bootloader .bootloader.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } &amp;gt;bootloader&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; .bootconst :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bootconst .bootconst.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } &amp;gt;bootconst&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did I miss something regarding the linkw instruction in the linker script? Or is some assembly magic required before the jump?&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by P.Nordby on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2007-06-13&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;09:38 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 13 Jun 2007 14:35:44 GMT</pubDate>
    <dc:creator>pnordby</dc:creator>
    <dc:date>2007-06-13T14:35:44Z</dc:date>
    <item>
      <title>Jump from assembly to C problem with boot code on MCF52233</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136668#M1827</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am in the process of making a boot-code for field flash upgrade of the MCF52233. The MCF52235EVB is "compatible" with our product, and the software without boot-code is similar to &lt;/SPAN&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fforums.freescale.com%2Ffreescale%2Fboard%2Fmessage%3Fboard.id%3DCFCOMM%26thread.id%3D2553" rel="nofollow" target="_blank"&gt;this&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My problem occurs when jumping from assembly to C language in the application-code (boot-code runs initially and does this "switch" flawlessly).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The output from gdb and my debugger (BDI2000) at the problem location:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor rd&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D0 : 00000000 00000000 00000030 00000006&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D4 : 00000018 a661a87d c40f9216 56d33015&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A0 : 00000000 44035a4c 200000fc 401d0024&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A4 : 1d047492 667d0fa0 00000000 20007ff0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PC : 00027fac&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SR : 00002704&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor info&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : debug mode&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug entry cause : single step&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0x00027fac&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor ti&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : debug mode&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug entry cause : single step&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0x00000466&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) monitor rd&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D0 : 00000000 00000000 00000030 00000006&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;D4 : 00000018 a661a87d c40f9216 56d33015&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A0 : 00000000 44035a4c 200000fc 401d0024&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A4 : 1d047492 667d0fa0 00000000 20007fe8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PC : 00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SR : 00002704&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...and the disassembly before and after the jump:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 1001c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; moveq #0,%d0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 1001e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; moveq #0,%d1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10020:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %a0,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10022:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %d0,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10024:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %d1,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10026:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f0e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %fp,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 10028:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4ef9 0002 7fac&amp;nbsp; jmp 27fac &amp;lt;__start1&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00027fac &amp;lt;__start1&amp;gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fac:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4e56 fffc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; linkw %fp,#-4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fb0:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2f02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movel %d2,%sp@-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fb2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203c 0003 5550&amp;nbsp; movel #218448,%d0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fb8:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0c80 2000 0000&amp;nbsp; cmpil #536870912,%d0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 27fbe:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 672e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; beqs 27fee &amp;lt;__start1+0x42&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is some parts of relevant pieces in the linker script (... indicates removed stuff):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;OUTPUT_ARCH(m68k)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ENTRY(__start)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SEARCH_DIR(.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__DYNAMIC&amp;nbsp; =&amp;nbsp; 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;MEMORY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; rom (rx) : ORIGIN = 64K, LENGTH = 192K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ram (rwx) : ORIGIN = 512M, LENGTH = 32K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; bootloader (rx) : ORIGIN = 0K, LENGTH = 48K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; bootconst (rx) : ORIGIN = 48K, LENGTH = 16K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE (__stack = ORIGIN (ram) + LENGTH (ram));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SECTIONS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; .text :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE_OBJECT_SYMBOLS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.app_start .app_start.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text .text.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.gnu.linkonce.t.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(0x4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __INIT_SECTION__ = . ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG (0x4e560000) /* linkw %fp,#0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.init)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e5e) /* unlk %fp */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e75) /* rts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(0x4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __FINI_SECTION__ = . ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG (0x4e560000) /* linkw %fp,#0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.fini)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e5e) /* unlk %fp */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHORT (0x4e75) /* rts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.lit)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _etext = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } &amp;gt;rom&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; .bootloader :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __interrupt_vector_boot = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cf-boot.o(.bootloader)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bootloader .bootloader.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } &amp;gt;bootloader&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; .bootconst :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bootconst .bootconst.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } &amp;gt;bootconst&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----- 8&amp;lt; ----- 8&amp;lt; -----&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did I miss something regarding the linkw instruction in the linker script? Or is some assembly magic required before the jump?&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by P.Nordby on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2007-06-13&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;09:38 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jun 2007 14:35:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136668#M1827</guid>
      <dc:creator>pnordby</dc:creator>
      <dc:date>2007-06-13T14:35:44Z</dc:date>
    </item>
    <item>
      <title>Re: Jump from assembly to C problem with boot code on MCF52233</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136669#M1828</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Hi&lt;BR /&gt;&lt;BR /&gt;I'm intrigued! I don't know the answer, but the following observation might help you figure it out.&lt;BR /&gt;&lt;BR /&gt;Looking at the state of A6 and A7, they have the following values before the attempt to step through the instruction at 0x27fac:&lt;BR /&gt;&lt;BR /&gt;A6 = 00000000&lt;BR /&gt;A7 = 20007FF0&lt;BR /&gt;&lt;BR /&gt;After the step, they have the values:&lt;BR /&gt;&lt;BR /&gt;A6 = 00000000&lt;BR /&gt;A7 = 20007FE8&lt;BR /&gt;&lt;BR /&gt;The instruction you're trying to step through (assuming 'monitor ti' means 'step') is:&lt;BR /&gt;&lt;BR /&gt;linkw %fp,#-4&lt;BR /&gt;&lt;BR /&gt;...or in Freescale's standard mnemonics:&lt;BR /&gt;&lt;BR /&gt;link.w&amp;nbsp; a6,#-4&lt;BR /&gt;&lt;BR /&gt;The definition of this instruction states that it does the following:&lt;BR /&gt;&lt;BR /&gt;A7 = A7 - 4&lt;BR /&gt;(A7) = A6&lt;BR /&gt;A6 = A7&lt;BR /&gt;A7 = A7 + (-4)&lt;BR /&gt;&lt;BR /&gt;Looking at the before and after values, it appears that A7 is correctly decremented by 8, but A6 does not get the A7 value - it is still 0.&lt;BR /&gt;&lt;BR /&gt;This makes me wonder if the attempt to save the old A6 value caused some sort of bus/access error and the instruction aborted. I don't have any suggestions why this should be, however.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Hope this gives you some new ideas&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Simon&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jun 2007 22:23:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136669#M1828</guid>
      <dc:creator>SimonMarsden_de</dc:creator>
      <dc:date>2007-06-13T22:23:52Z</dc:date>
    </item>
    <item>
      <title>Re: Jump from assembly to C problem with boot code on MCF52233</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136670#M1829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;One other idea...&lt;BR /&gt;&lt;BR /&gt;Are you sure that the memory at address 0x27FAC still contains the LINK instruction?&lt;BR /&gt;&lt;BR /&gt;I have known some debuggers to show a disassembly based on what's in the object file, and not what's actually in memory. You could try actually dumping memory to check that the value is still 0x4E56_FFFC&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Cheers&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Simon&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jun 2007 22:26:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136670#M1829</guid>
      <dc:creator>SimonMarsden_de</dc:creator>
      <dc:date>2007-06-13T22:26:56Z</dc:date>
    </item>
    <item>
      <title>Re: Jump from assembly to C problem with boot code on MCF52233</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136671#M1830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Thanks for great feedback, Simon. "monitor ti" is, as you correctly assumed, single step an assembly instruction. Here is more relevant output:&lt;BR /&gt;&lt;BR /&gt;(gdb) monitor rd&lt;BR /&gt;D0 : 00000000 00000000 00000030 00000006&lt;BR /&gt;D4 : 00000018 a661a87d c40f9216 56d33015&lt;BR /&gt;A0 : 401d0002 44035a4c 200000fc 401d0024&lt;BR /&gt;A4 : 1d047492 667d0fa0 00000000 20007ff0&lt;BR /&gt;PC : 00010022&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SR : 00002704&lt;BR /&gt;(gdb) x /4w 0x20007ff0&lt;BR /&gt;0x20007ff0: 0x00000000&amp;nbsp; 0x00000000&amp;nbsp; 0x00000000&amp;nbsp; 0x401d0002&lt;BR /&gt;(gdb) monitor ti&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : debug mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug entry cause : single step&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0x00027fac&lt;BR /&gt;(gdb) monitor rd&lt;BR /&gt;D0 : 00000000 00000000 00000030 00000006&lt;BR /&gt;D4 : 00000018 a661a87d c40f9216 56d33015&lt;BR /&gt;A0 : 401d0002 44035a4c 200000fc 401d0024&lt;BR /&gt;A4 : 1d047492 667d0fa0 00000000 20007ff0&lt;BR /&gt;PC : 00027fac&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SR : 00002704&lt;BR /&gt;(gdb) monitor ti&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : debug mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug entry cause : single step&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0x00000466&lt;BR /&gt;(gdb) monitor rd&lt;BR /&gt;D0 : 00000000 00000000 00000030 00000006&lt;BR /&gt;D4 : 00000018 a661a87d c40f9216 56d33015&lt;BR /&gt;A0 : 401d0002 44035a4c 200000fc 401d0024&lt;BR /&gt;A4 : 1d047492 667d0fa0 00000000 20007fe8&lt;BR /&gt;PC : 00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SR : 00002704&lt;BR /&gt;(gdb) x /8w 0x20007fe0&lt;BR /&gt;0x20007fe0: 0x00000152&amp;nbsp; 0x00000000&amp;nbsp; 0x44082704&amp;nbsp; 0x00027fac&lt;BR /&gt;0x20007ff0: 0x00000000&amp;nbsp; 0x00000000&amp;nbsp; 0x00000000&amp;nbsp; 0x401d0002&lt;BR /&gt;(gdb) x /4w 0x27fa8&lt;BR /&gt;0x27fa8 &amp;lt;srand+16&amp;gt;: 0x4e750000&amp;nbsp; 0x4e56fffc&amp;nbsp; 0x2f02203c&amp;nbsp; 0x00035550&lt;BR /&gt;(gdb) x /16w 0&lt;BR /&gt;0x0 &amp;lt;vector00&amp;gt;: 0x20008000&amp;nbsp; 0x00000400&amp;nbsp; 0x00000466&amp;nbsp; 0x00000466&lt;BR /&gt;0x10 &amp;lt;vector04&amp;gt;: 0x00000466&amp;nbsp; 0x00000466&amp;nbsp; 0x00000466&amp;nbsp; 0x00000466&lt;BR /&gt;0x20 &amp;lt;vector08&amp;gt;: 0x00000466&amp;nbsp; 0x00000466&amp;nbsp; 0x00000466&amp;nbsp; 0x00000466&lt;BR /&gt;0x30 &amp;lt;vector0C&amp;gt;: 0x00000466&amp;nbsp; 0x00000466&amp;nbsp; 0x00000466&amp;nbsp; 0x00000466&lt;BR /&gt;(gdb) monitor md 0 8&lt;BR /&gt;00000000 : 0x20008000&amp;nbsp;&amp;nbsp;&amp;nbsp; 536903680&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;00000004 : 0x00000400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1024&amp;nbsp; ....&lt;BR /&gt;00000008 : 0x00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1126&amp;nbsp; ...f&lt;BR /&gt;0000000c : 0x00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1126&amp;nbsp; ...f&lt;BR /&gt;00000010 : 0x00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1126&amp;nbsp; ...f&lt;BR /&gt;00000014 : 0x00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1126&amp;nbsp; ...f&lt;BR /&gt;00000018 : 0x00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1126&amp;nbsp; ...f&lt;BR /&gt;0000001c : 0x00000466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1126&amp;nbsp; ...f&lt;BR /&gt;(gdb) monitor md 0x27fa8 8&lt;BR /&gt;00027fa8 : 0x4e750000&amp;nbsp;&amp;nbsp; 1316290560&amp;nbsp; Nu..&lt;BR /&gt;00027fac : 0x4e56fffc&amp;nbsp;&amp;nbsp; 1314324476&amp;nbsp; NV..&lt;BR /&gt;00027fb0 : 0x2f02203c&amp;nbsp;&amp;nbsp;&amp;nbsp; 788668476&amp;nbsp; /. &amp;lt;&lt;BR /&gt;00027fb4 : 0x00035550&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 218448&amp;nbsp; ..UP&lt;BR /&gt;00027fb8 : 0x0c802000&amp;nbsp;&amp;nbsp;&amp;nbsp; 209723392&amp;nbsp; .. .&lt;BR /&gt;00027fbc : 0x0000672e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 26414&amp;nbsp; ..g.&lt;BR /&gt;00027fc0 : 0x223c2000&amp;nbsp;&amp;nbsp;&amp;nbsp; 574365696&amp;nbsp; "&amp;lt; .&lt;BR /&gt;00027fc4 : 0x04fc203c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83632188&amp;nbsp; .. &amp;lt;&lt;BR /&gt;(gdb) monitor md 0x20007fe0 8&lt;BR /&gt;20007fe0 : 0x00000152&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 338&amp;nbsp; ...R&lt;BR /&gt;20007fe4 : 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; ....&lt;BR /&gt;20007fe8 : 0x44082704&amp;nbsp;&amp;nbsp; 1141384964&amp;nbsp; D.'.&lt;BR /&gt;20007fec : 0x00027fac&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 163756&amp;nbsp; ....&lt;BR /&gt;20007ff0 : 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; ....&lt;BR /&gt;20007ff4 : 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; ....&lt;BR /&gt;20007ff8 : 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; ....&lt;BR /&gt;20007ffc : 0x401d0002&amp;nbsp;&amp;nbsp; 1075642370&amp;nbsp; @...&lt;BR /&gt;(gdb)&lt;BR /&gt;&lt;BR /&gt;Exception decoding functions are not mapped to the vector table at this point (only a "default handler" containing a halt instruction). A minimalistic vector table in flash at adress 0 should be used. The C function I'm trying to run contains code to initialise a vector table in RAM and to set the VBR. I have no reason not to trust the "monitor md" output, as this was as expected when manually erasing flash blocks with the debugger (BDI2000). According to the stack, the exception should decode as follows:&lt;BR /&gt;&lt;UL&gt;&lt;LI&gt;format = 0100&lt;/LI&gt;&lt;LI&gt;fs = 0100 = error on instruction fetch&lt;/LI&gt;&lt;LI&gt;vector = 00000010 = access error&lt;/LI&gt;&lt;/UL&gt;I also tried to insert a &lt;I&gt;nop&lt;/I&gt; instruction before the &lt;I&gt;jmp&lt;/I&gt;, to check if the exception was not related to the &lt;I&gt;link&lt;/I&gt;, but the exception still occurred after single stepping the &lt;I&gt;link&lt;/I&gt;.&lt;BR /&gt;&lt;BR /&gt;...so I'm a bit lost again.&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jun 2007 14:22:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136671#M1830</guid>
      <dc:creator>pnordby</dc:creator>
      <dc:date>2007-06-14T14:22:46Z</dc:date>
    </item>
    <item>
      <title>Re: Jump from assembly to C problem with boot code on MCF52233</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136672#M1831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;I'm puzzled.&lt;BR /&gt;&lt;BR /&gt;Looks like the decrement of A7 was caused by pushing the 8-byte Exception Stack Frame, so ignore what I said about the LINK part-executing.&lt;BR /&gt;&lt;BR /&gt;From what I understand, you've tried putting some NOPs at address 0x27FAC before the LINK, and you can successfully step these but get the exception when the LINK is reached. That would seem to rule out a lot of possible explanations to do with inaccesible memory. If the processor can fetch a NOP, why can't it fetch a LINK?&lt;BR /&gt;&lt;BR /&gt;I can see no reason why the LINK instruction should cause an exception, since you have a valid stack pointer. I'm almost out of ideas, but here are a couple more:&lt;BR /&gt;&lt;BR /&gt;Could this be some effect to do with the Cache - e.g. you're executing garbage out of the cache instead of the real LINK instruction?&lt;BR /&gt;&lt;BR /&gt;Could this be some problem with the debugger? Have you tried running through the LINK instruction to try hitting a breakpoint beyond it?&lt;BR /&gt;&lt;BR /&gt;I'm very interested to hear what you discover - Good Luck !&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Cheers&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Simon&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jun 2007 16:13:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136672#M1831</guid>
      <dc:creator>SimonMarsden_de</dc:creator>
      <dc:date>2007-06-14T16:13:15Z</dc:date>
    </item>
    <item>
      <title>Re: Jump from assembly to C problem with boot code on MCF52233</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136673#M1832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I tried to put nop before the jump.&lt;BR /&gt;&lt;BR /&gt;When I moved the location of the C function, it suddenly worked! This made me examine the CFM, and now I added this assembly magic early in power-up:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.l #0x00000000,%d0&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* All flash memory can be used for data and instructions */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.l #0x401D0018,%a0&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* CFMDACC */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.l %d0,%a0@&lt;BR /&gt;&lt;BR /&gt;...and then it all worked! Thanks for the support.&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jun 2007 17:40:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136673#M1832</guid>
      <dc:creator>pnordby</dc:creator>
      <dc:date>2007-06-14T17:40:08Z</dc:date>
    </item>
    <item>
      <title>Re: Jump from assembly to C problem with boot code on MCF52233</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136674#M1833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Refer to &lt;A href="http://forums.freescale.com/freescale/board/message?board.id=CFCOMM&amp;amp;thread.id=2683" target="_blank"&gt;this thread&lt;/A&gt; for a more complete picture of this problem.&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 17:39:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Jump-from-assembly-to-C-problem-with-boot-code-on-MCF52233/m-p/136674#M1833</guid>
      <dc:creator>pnordby</dc:creator>
      <dc:date>2007-06-22T17:39:28Z</dc:date>
    </item>
  </channel>
</rss>

