<?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>S12 / MagniV Microcontrollers中的主题 Re: MC9S12NE Problem to programming part of flash with</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162147#M5142</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;There is an app note with source code describing how to do it on the Freescale HCS12 site (I think it is AN2302 but I could be wrong).&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Nov 2007 15:32:23 GMT</pubDate>
    <dc:creator>Lundin</dc:creator>
    <dc:date>2007-11-12T15:32:23Z</dc:date>
    <item>
      <title>MC9S12NE Problem to programming part of flash with</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162143#M5138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I read AN2720 and AN2400 to change the content of memory flash. I made the following&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;code, i placed flags to know if the program work. The flags noted that the program it's ok.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and that the sector of memory flash it's erased, but when i read the address of memory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the content is the same before that i erased it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you know when there a error?.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The sector is 0x4E00.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The xtal of DEMO9S12NE64 is 25Mhz.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The Software is TCP OPEN and CW is 3.1.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/******call to Function to initiate of memory flash to erase it******/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;Flash_Init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/****************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*********Function to initiate memory flash to erase it*********/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void Flash_Init(void)&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; FCLKDIV = 0x4F;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPROT = 0xFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT = FSTAT | 0x30;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/*************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/**********call to Function to erase memory flash ***********/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;erase_sector(0x4E00);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/*************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/***************Function to erase memory flash **************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;erase_sector(unsigned int direccion)&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; unsigned int* localidad;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; localidad = (unsigned int*)direccion;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((unsigned int)localidad &amp;amp; 0x0001)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; //flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(((unsigned int)localidad % 0x200) != 0x00)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; //flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT = FSTAT | 0x30; &amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(FSTAT_CBEIF==0x01)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (*localidad)=0xFFFF; &amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCMD=0x40;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((FSTAT_ACCERR==0x01)||(FSTAT_PVIOL==0x01))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; //flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(FSTAT_CCIF != 0x01)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; //flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Nov 2007 09:04:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162143#M5138</guid>
      <dc:creator>JACOBO</dc:creator>
      <dc:date>2007-11-09T09:04:52Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12NE Problem to programming part of flash with</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162144#M5139</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Is the code running from flash? In that case it won't work, since the flash code can't be executed from the same bank which is to be programmed, and NE64 has only got one bank.&lt;BR /&gt;&lt;BR /&gt;You will need to execute the code from RAM or to upgrade to a mcu with more than one bank, ie one with more than 64k flash.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Nov 2007 15:33:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162144#M5139</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2007-11-09T15:33:22Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12NE Problem to programming part of flash with</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162145#M5140</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;What Lundin said +&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;erase didn't work because JACOBO didn't clear CBEIF flag, he only wrote erase command to FCMD. Some more thoughts:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;1) FPROT=0xFF doesn't make sense in normal modes. You can protect flash, but can't unprotect it.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT = FSTAT | 0x30;&amp;nbsp;&amp;nbsp;&amp;lt;-- this is wrong. It clears not only ACCERR and PVIOL, but also all flags that are set! FSTAT flags are clearable by writing '1' to them. Use either&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; FSTAT = 0x30;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;or&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; FSTAT &amp;amp;= 0x30; // note the difference between FSTAT &amp;amp;=0x30 and clearing&lt;/DIV&gt;&lt;DIV&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bits in regular RAM variable,&amp;nbsp; x &amp;amp;= ~0x30;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;To clear CBEIF either use&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;FSTAT = 0x80&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;or&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;FSTAT &amp;amp;= 0x80;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Nov 2007 15:57:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162145#M5140</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2007-11-09T15:57:55Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12NE Problem to programming part of flash with</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162146#M5141</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hello Lundin&lt;BR /&gt;&lt;BR /&gt;I tried the advice of Kef and so the result is the same.&lt;BR /&gt;&lt;BR /&gt;I think try your advice but i don't know how placed my code in RAM.&lt;BR /&gt;&lt;BR /&gt;Do you know how do it?&lt;BR /&gt;&lt;BR /&gt;Thank You.&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Nov 2007 05:06:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162146#M5141</guid>
      <dc:creator>JACOBO</dc:creator>
      <dc:date>2007-11-12T05:06:38Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12NE Problem to programming part of flash with</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162147#M5142</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;There is an app note with source code describing how to do it on the Freescale HCS12 site (I think it is AN2302 but I could be wrong).&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Nov 2007 15:32:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162147#M5142</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2007-11-12T15:32:23Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S12NE Problem to programming part of flash with</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162148#M5143</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;The app note 1828 (AN1828.pdf) describes how to program the HCS12's Flash memory via the CAN.&lt;BR /&gt;&lt;BR /&gt;The app note 2548 (AN2548.pdf) describes a serial boot monitor that can be used to program Flash on the HCS12.&lt;BR /&gt;&lt;BR /&gt;The Technical Note 228 (TN228.pdf) describes a technique for copying code to memory and executing it.&lt;BR /&gt;&lt;BR /&gt;HTH.&lt;BR /&gt;&lt;BR /&gt;---Tom&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2007 02:34:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MC9S12NE-Problem-to-programming-part-of-flash-with/m-p/162148#M5143</guid>
      <dc:creator>J2MEJediMaster</dc:creator>
      <dc:date>2007-11-14T02:34:15Z</dc:date>
    </item>
  </channel>
</rss>

