<?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: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170134#M5642</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sounds like you are using simulator. Full chip simulator doesn't support all the peripherals.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 17 Dec 2010 15:14:25 GMT</pubDate>
    <dc:creator>kef</dc:creator>
    <dc:date>2010-12-17T15:14:25Z</dc:date>
    <item>
      <title>MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170130#M5638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone, I'm zhi.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm rather new to MCU programming, and I'm trying to copy a function over to RAM to execute so I can copy data to flash to run. I'm hoping to use it as a basis for a EEPROM emulator in RAM.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I followed TN228 ,and referenced the thread here : &lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fcommunity.freescale.com%2Fthread%2F50329" rel="nofollow" target="_blank"&gt;https://community.freescale.com/thread/50329&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My code is as follows :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;extern char __SEG_START_FLASH_ROUTINES[];&lt;BR /&gt;extern char __SEG_SIZE_FLASH_ROUTINES[];&lt;BR /&gt;&lt;BR /&gt;/*****************************************************************************/&lt;BR /&gt;#pragma CODE_SEG __NEAR_SEG FLASH_ROUTINES&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;void func(void){&lt;BR /&gt;&amp;nbsp; LCD_write(0x55);&lt;BR /&gt;&amp;nbsp; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;#pragma CODE_SEG DEFAULT&lt;BR /&gt;/**********************************************************************/&lt;BR /&gt;/* Copies Flash_Cmd() function into RAM, using steps documented in Tech&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Note 228&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Start_data refers to the begining of the flash block to be copied.&lt;BR /&gt;*/&lt;BR /&gt;#define Start_data&amp;nbsp;&amp;nbsp; __SEG_START_FLASH_ROUTINES&lt;BR /&gt;#define Size_data&amp;nbsp;&amp;nbsp;&amp;nbsp; __SEG_SIZE_FLASH_ROUTINES&lt;BR /&gt;&lt;BR /&gt;void CopyInRAM(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; char *srcPtr, *dstPtr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; int count;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; srcPtr = (char *)Start_data;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; dstPtr = (char *)(void *__near)&amp;amp;func;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; for (count = 0; count &amp;lt; (int)Size_data; count++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *dstPtr = *srcPtr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dstPtr++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srcPtr++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;I have adjusted the PRM to include room to accomodate the functions in ram, as below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SEGMENTS&amp;nbsp; /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x3000 TO&amp;nbsp;&amp;nbsp; 0x3EFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_FUNCS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFE00 TO&amp;nbsp;&amp;nbsp; 0xFEFF&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; RELOCATE_TO&amp;nbsp;&amp;nbsp; 0x3F00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH_EEPROM&amp;nbsp; = NO_INIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x4000 TO&amp;nbsp;&amp;nbsp; 0x47FF&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALIGN 2&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILL 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_C000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xC000 TO&amp;nbsp;&amp;nbsp; 0xFDFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x388000 TO 0x38BFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_39&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x398000 TO 0x39BFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_3A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x3A8000 TO 0x3ABFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_3B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x3B8000 TO 0x3BBFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_3C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x3C8000 TO 0x3CBFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_3D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x3D8000 TO 0x3D83FF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_3D_B000&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x3DB000 TO 0x3DBFFF;&lt;BR /&gt;END&lt;BR /&gt;&lt;BR /&gt;PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PRESTART,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; STARTUP,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_VAR,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRINGS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NON_BANKED,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_ROM,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; COPY&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; INTO&amp;nbsp;&amp;nbsp; ROM_C000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH_EEPROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp; FLASH_EEPROM;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH_ROUTINES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp; RAM_FUNCS;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp; RAM;&lt;BR /&gt;END&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's more or less similar to the code posted in the thread above. The code compiles, and indeed is able to copy the function to RAM, but after calling the function and executing it, an RTS command jumps to a BGND at a reserved register.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What could be the problem?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using a Banked Model for memory and am using Processor Expert.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help is deeply appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Dec 2010 10:33:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170130#M5638</guid>
      <dc:creator>zscho2</dc:creator>
      <dc:date>2010-12-16T10:33:06Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170131#M5639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Zhi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Copying function to RAM using CW for S12 is simpler than you are trying to do. Check this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A __default_attr="69468" class="jive_macro jive_macro_thread default_title" href="https://community.freescale.com/thread/69468" jivemacro="thread" title="https://community.freescale.com/thread/69468"&gt;https://community.freescale.com/thread/69468&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Dec 2010 14:06:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170131#M5639</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-12-16T14:06:29Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170132#M5640</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks kef, I'll give it a shot in a bit.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Dec 2010 14:45:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170132#M5640</guid>
      <dc:creator>zscho2</dc:creator>
      <dc:date>2010-12-16T14:45:37Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170133#M5641</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi kef, the code to load into ram works wonderfully, but after executing the function, I still get an illegal BP at a reserved register.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Dec 2010 10:06:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170133#M5641</guid>
      <dc:creator>zscho2</dc:creator>
      <dc:date>2010-12-17T10:06:03Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170134#M5642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sounds like you are using simulator. Full chip simulator doesn't support all the peripherals.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Dec 2010 15:14:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170134#M5642</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-12-17T15:14:25Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170135#M5643</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi....&lt;/P&gt;&lt;P&gt;I have just finished doing something similar to what you are trying to do.&lt;/P&gt;&lt;P&gt;All your stuff seems OK, except that I haven't seen if the (flash) code has&lt;/P&gt;&lt;P&gt;been&amp;nbsp;declared as PIC_CODE (position independent).&lt;/P&gt;&lt;P&gt;The compiler prefers to use PC-relative addressing, and - after you have&lt;/P&gt;&lt;P&gt;placed the code in RAM - the addresses will be all wrong.... Declaring it&lt;/P&gt;&lt;P&gt;as position independent forces it to use absolute addresses.&lt;/P&gt;&lt;P&gt;I was using a mc9s12c32 chip, but it applies even to S12X series chips.&lt;/P&gt;&lt;P&gt;Hope that it is useful,&lt;/P&gt;&lt;P&gt;Seb&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Jan 2011 04:14:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170135#M5643</guid>
      <dc:creator>sebbyBaby</dc:creator>
      <dc:date>2011-01-14T04:14:16Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170136#M5644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure what stuff you are talking about. If about allocating code directly to RAM, then why do you think it should be made position independent? Linker is told I want my function to be in RAM, say at 0x1000. And linker does all relocations&amp;nbsp;for 0x1000. But codes don't end in S-records at 0x1000. Instead, they are treated as initializer for RAM object at 0x1000 and end in S-records at some existing flash addresses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;See attached demo that proves position independent compilation is not required. There's big function in RAM, which makes compiler using JMP with absulute addressing.&amp;nbsp;No problems.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Jan 2011 05:03:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170136#M5644</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2011-01-14T05:03:23Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12C128 : Executing function from RAM causes Illegal_BP in Sim and HW</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170137#M5645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you get an Illegal breakpoint at the end of the function then you have one of the following Problems&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 1- The stack pointer is pointing to invalid memory&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2- The content of the stack has been modified&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 3- The return PC is not pointing to a valid location.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would suggest you to set a BP at the end of your RAM function and examine the content of&amp;nbsp;the stack.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CrasyCat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Jan 2011 15:50:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12C128-Executing-function-from-RAM-causes-Illegal-BP-in-Sim/m-p/170137#M5645</guid>
      <dc:creator>CrasyCat</dc:creator>
      <dc:date>2011-01-14T15:50:11Z</dc:date>
    </item>
  </channel>
</rss>

