<?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: Problem on manipulation data on EEPROM without BDM attached.</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183088#M6796</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;FONT size="3"&gt;It works!!! Thanks!!! I posted bellow my code, for anyone who wants to use eeprom on &lt;STRONG&gt;NORMAL MODE&lt;/STRONG&gt;.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*on prm file*/&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;EEPROM_FC = NO_INIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFC0800 TO 0xFC0BFF;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;EEPROM_DATA INTO EEPROM_FC;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*main.c*/&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="1"&gt;&amp;nbsp;#pragma DATA_SEG EEPROM_DATA&lt;BR /&gt;&lt;FONT color="#000000"&gt;&amp;nbsp; tEEPROM_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM_Storage;&lt;/FONT&gt;&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;tEEPROM_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM_Image;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;if(ECLKDIV_EDIVLD==0){ ECLKDIV_EDIV=0x14;}&lt;FONT color="#008000"&gt;/* If clock not defined, define now */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;EPAGE=0xFC;&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;&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; &lt;FONT color="#008000"&gt;/* Define EEPROM Page */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*eeprom.h*/&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="1"&gt;#define EEPROM_SECTOR_WORD_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;#define EEPROM_SECTOR_BYTE_SIZE&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; 4&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;BOOL&amp;nbsp; WRITE_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress, INT16 Size);&lt;BR /&gt;void&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress);&lt;BR /&gt;void&amp;nbsp;&amp;nbsp;&amp;nbsp; ERASE_SECTOR_EEPROM(UINT8* far pEEPROMAddress);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*eeprom.c*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;STRONG&gt;BOOL WRITE_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress, INT16 Size)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color="#000000"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;{&lt;BR /&gt;&amp;nbsp; UINT8* far pPointerDestination=pEEPROMAddress;&lt;BR /&gt;&amp;nbsp; UINT8*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointerOrigin=pRAMAddress;&lt;BR /&gt;&amp;nbsp; UINT16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndOffset=(((UINT8)pEEPROMAddress+Size) &amp;amp; 0x07FF)/EEPROM_SECTOR_WORD_SIZE;&lt;BR /&gt;&amp;nbsp; UINT16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset=((UINT8)pEEPROMAddress &amp;amp; 0x07FF)/EEPROM_SECTOR_WORD_SIZE;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; if((((UINT8)pEEPROMAddress+Size) &amp;amp; 0x07FF)%EEPROM_SECTOR_WORD_SIZE!=0){ return FALSE;}&lt;BR /&gt;&amp;nbsp; if(Size&amp;lt;=0){ return FALSE;}&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; DisableInterrupts;&lt;BR /&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Program EEPROM Block */&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp; while(Offset&amp;lt;EndOffset)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(memcmp(pPointerDestination, pPointerOrigin, EEPROM_SECTOR_BYTE_SIZE)!=0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Erase Sector Procedure */&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ERASE_SECTOR_EEPROM((UINT8*)pPointerDestination);&lt;BR /&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Program Data Procedure */&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM_SECTOR_EEPROM((UINT8*)pPointerDestination, (UINT8*)pPointerOrigin);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointerOrigin+=EEPROM_SECTOR_BYTE_SIZE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointerDestination+=EEPROM_SECTOR_BYTE_SIZE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset+=EEPROM_SECTOR_WORD_SIZE;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; EnableInterrupts;&lt;BR /&gt;&amp;nbsp; return TRUE;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;STRONG&gt;void PROGRAM_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress)&lt;/STRONG&gt;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; UINT8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&lt;BR /&gt;&amp;nbsp; UINT16* far pEEPROMPointer=(UINT16*)pEEPROMAddress;&lt;BR /&gt;&amp;nbsp; UINT16*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRAMPointer=(UINT16*)pRAMAddress;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Disable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; DisableInterrupts;&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;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; &lt;FONT color="#008000"&gt;/* Wait for buffer to be empty */&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; while(ESTAT_CBEIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Clear error flags */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; if(ESTAT_ACCERR==1||ESTAT_PVIOL==1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT=(ESTAT_ACCERR_MASK | ESTAT_PVIOL_MASK);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; for(i=0; i&amp;lt;EEPROM_SECTOR_WORD_SIZE; i++)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pEEPROMPointer=*pRAMPointer;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pEEPROMPointer++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRAMPointer++;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run Program Command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ECMD=0x20;&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;&amp;nbsp;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT=ESTAT_CBEIF_MASK;&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for buffer to be empty */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(ESTAT_CBEIF==0);&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;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Wait for command to completed */&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; while(ESTAT_CCIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Enable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; EnableInterrupts;&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;&lt;BR /&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;STRONG&gt;void ERASE_SECTOR_EEPROM(UINT8* far pEEPROMAddress)&lt;/STRONG&gt;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; UINT16* far pEEPROMPointer=(UINT16*)pEEPROMAddress;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Disable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; DisableInterrupts;&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Wait for buffer to be empty */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; while(ESTAT_CBEIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Clear error flags */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; if(ESTAT_ACCERR==1||ESTAT_PVIOL==1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT=(ESTAT_ACCERR_MASK | ESTAT_PVIOL_MASK);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; *pEEPROMPointer=0x0000;&lt;BR /&gt;&amp;nbsp; pEEPROMPointer++;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Run Sector Erase Command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; ECMD=0x40;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Run command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; ESTAT=ESTAT_CBEIF_MASK;&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;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Wait for command to completed */&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp; while(ESTAT_CCIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Enable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; EnableInterrupts;&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; &lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;BR /&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by Forsaken on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-05-21&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;12:14 PM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by Forsaken on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-05-21&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;12:14 PM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 21 May 2009 18:01:00 GMT</pubDate>
    <dc:creator>Forsaken</dc:creator>
    <dc:date>2009-05-21T18:01:00Z</dc:date>
    <item>
      <title>Problem on manipulation data on EEPROM without BDM attached.</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183084#M6792</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;&lt;/P&gt;&lt;P&gt;i'm developing a program that needs saving some data on EEPROM. With BDM attached i don't have any problems saving data on EEPROM (erasing sectors and writing sectors), but when i remove the BDM i can't save nothing on EEPROM. I have checked the register _EPROT.Byte using BDM and not using, this register has the same data on both cases.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a 4MHz Crystal and i'm setting PLL to reach 40MHz of Bus Clock. Maybe there is something wrong on my code? I put bellow my functions&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/* main.c */&lt;/P&gt;&lt;P&gt;init_clock();&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;&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; /* Set clock @ 40Mhz */&lt;/P&gt;&lt;P&gt;if(ECLKDIV_EDIVLD==0){ ECLKDIV_EDIV=0x14;}&amp;nbsp; /* If clock not defined, define now */&lt;BR /&gt;EPAGE=0xFC;&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;&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; /* Define EEPROM Page */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/* eeprom.c */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void PROGRAM_SECTOR_EEPROM(UINT16 Offset, UINT8* pEEPROMAddress)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; UINT8&amp;nbsp;&amp;nbsp; i=0;&lt;BR /&gt;&amp;nbsp; UINT8*&amp;nbsp; pPointer=pEEPROMAddress;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(ECLKDIV_EDIVLD==0){ ECLKDIV_EDIV=0x14;}&amp;nbsp; /* If clock not defined, define now */&lt;BR /&gt;&amp;nbsp; DisableInterrupts;&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; /* Disable all interrupts */&lt;BR /&gt;&amp;nbsp; while(ESTAT_CBEIF==0);&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; /* Wait for buffer to be empty */&lt;BR /&gt;&amp;nbsp; if(ESTAT_ACCERR==1||ESTAT_PVIOL==1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear error flags */&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT_ACCERR=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT_PVIOL=0;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; for(i=0; i&amp;lt;EEPROM_SECTOR_WORD_SIZE; i++)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDATAHI=*pPointer;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointer++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDATALO=*pPointer;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointer++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EADDRHI=(UINT8)(((Offset+i) &amp;amp; 0xFF00)&amp;gt;&amp;gt;8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EADDRLO=(UINT8)(((Offset+i) &amp;amp; 0x00FF)&amp;gt;&amp;gt;0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ECMD=0x20;&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;&amp;nbsp;&amp;nbsp; /* Run Program Command */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT_CBEIF=1;&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; /* Run command */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(ESTAT_CBEIF==0);&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; /* Wait for buffer to be empty */&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; while(ESTAT_CCIF==0);&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; /* Wait for command to completed */&amp;nbsp;&lt;BR /&gt;&amp;nbsp; EnableInterrupts;&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; /* Enable all interrupts */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void ERASE_SECTOR_EEPROM(UINT16 Offset)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(ECLKDIV_EDIVLD==0){ ECLKDIV_EDIV=0x14;}&amp;nbsp; /* If clock not defined, define now */&lt;BR /&gt;&amp;nbsp; DisableInterrupts;&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; /* Disable all interrupts */&lt;BR /&gt;&amp;nbsp; while(ESTAT_CBEIF==0);&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; /* Wait for buffer to be empty */&lt;BR /&gt;&amp;nbsp; if(ESTAT_ACCERR==1||ESTAT_PVIOL==1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear error flags */&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT_ACCERR=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT_PVIOL=0;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; EDATAHI=0x00;&lt;BR /&gt;&amp;nbsp; EDATALO=0x00;&lt;BR /&gt;&amp;nbsp; EADDRHI=(UINT8)((Offset &amp;amp; 0xFF00)&amp;gt;&amp;gt;8);&lt;BR /&gt;&amp;nbsp; EADDRLO=(UINT8)((Offset &amp;amp; 0x00FF)&amp;gt;&amp;gt;0);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; ECMD=0x40;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run Sector Erase Command */&lt;BR /&gt;&amp;nbsp; ESTAT_CBEIF=1;&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; /* Run command */&lt;BR /&gt;&amp;nbsp; while(ESTAT_CCIF==0);&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; /* Wait for command to completed */&amp;nbsp;&lt;BR /&gt;&amp;nbsp; EnableInterrupts;&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; /* Enable all interrupts */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone help me?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 May 2009 02:25:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183084#M6792</guid>
      <dc:creator>Forsaken</dc:creator>
      <dc:date>2009-05-21T02:25:52Z</dc:date>
    </item>
    <item>
      <title>Re: Problem on manipulation data on EEPROM without BDM attached.</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183085#M6793</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;1)&lt;/FONT&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&amp;nbsp; ESTAT_ACCERR=0;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;^^ this is wrong. You should not write access CW defined flags bitfields. Since ACCERR is cleared writing '1' to it, above line will&amp;nbsp;clear all set ESTAT&amp;nbsp;flags except ACCERR. ACCERR won't clear because write 0 doesn't do anything.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT_PVIOL=0;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color="#ff0000"&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;Same here. Correct code is this&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&amp;nbsp; ESTAT &amp;amp;= ESTAT_PVIOL_MASK;&amp;nbsp; // please note no ~ before ESTAT_PVIOL_MASK&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;or this&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&amp;nbsp; ESTAT = ESTAT_PVIOL_MASK;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;And same here&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&amp;nbsp; ESTAT_CBEIF=1;&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; /* Run command */&lt;BR /&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;FONT color="#000000"&gt;2) EADDR and EDATA registers are not writeable in normal chip modes (without BDM connected). These registers can be used to program EEPROM via BDM. But in normal mode, to&amp;nbsp;latch word to be programmed, you should write not EADDR and EDATA, but EEPROM directly, via some pointer.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 May 2009 03:40:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183085#M6793</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2009-05-21T03:40:36Z</dc:date>
    </item>
    <item>
      <title>Re: Problem on manipulation data on EEPROM without BDM attached.</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183086#M6794</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have change my write function, as you said i belive. Can you check? I have a doubt, how can i erase a sector on normal mode, if i can not use EADDR and EADATA??&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void PROGRAM_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; UINT8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&lt;BR /&gt;&amp;nbsp; UINT16* far pEEPROMPointer=(UINT16*)pEEPROMAddress;&lt;BR /&gt;&amp;nbsp; UINT16*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRAMPointer=(UINT16*)pRAMAddress;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; DisableInterrupts;&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; /* Disable all interrupts */&lt;BR /&gt;&amp;nbsp; while(ESTAT_CBEIF==0);&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; /* Wait for buffer to be empty */&lt;BR /&gt;&amp;nbsp; if(ESTAT_ACCERR==1||ESTAT_PVIOL==1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear error flags */&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT=(ESTAT_ACCERR_MASK | ESTAT_PVIOL_MASK);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; for(i=0; i&amp;lt;EEPROM_SECTOR_WORD_SIZE; i++)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pEEPROMPointer=*pRAMPointer;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pEEPROMPointer++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRAMPointer++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ECMD=0x20;&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;&amp;nbsp;&amp;nbsp; /* Run Program Command */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT_CBEIF=ESTAT_CBEIF_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run command */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(ESTAT_CBEIF==0);&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; /* Wait for buffer to be empty */&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; while(ESTAT_CCIF==0);&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; /* Wait for command to completed */&amp;nbsp;&lt;BR /&gt;&amp;nbsp; EnableInterrupts;&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; /* Enable all interrupts */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 May 2009 15:25:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183086#M6794</guid>
      <dc:creator>Forsaken</dc:creator>
      <dc:date>2009-05-21T15:25:12Z</dc:date>
    </item>
    <item>
      <title>Re: Problem on manipulation data on EEPROM without BDM attached.</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183087#M6795</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;*pEEPROMPointer=*pRAMPointer; should work. The same should work for your erase routine, the only difference is that you may write anything to *pEEPROMPointer, for example *pEEPROMPointer=0.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT&lt;FONT color="#ff0000"&gt;_CBEIF&lt;/FONT&gt;=ESTAT_CBEIF_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run command */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Red part should be removed&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 May 2009 15:39:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183087#M6795</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2009-05-21T15:39:14Z</dc:date>
    </item>
    <item>
      <title>Re: Problem on manipulation data on EEPROM without BDM attached.</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183088#M6796</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;FONT size="3"&gt;It works!!! Thanks!!! I posted bellow my code, for anyone who wants to use eeprom on &lt;STRONG&gt;NORMAL MODE&lt;/STRONG&gt;.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*on prm file*/&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;EEPROM_FC = NO_INIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFC0800 TO 0xFC0BFF;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;EEPROM_DATA INTO EEPROM_FC;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*main.c*/&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="1"&gt;&amp;nbsp;#pragma DATA_SEG EEPROM_DATA&lt;BR /&gt;&lt;FONT color="#000000"&gt;&amp;nbsp; tEEPROM_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM_Storage;&lt;/FONT&gt;&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;tEEPROM_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM_Image;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;if(ECLKDIV_EDIVLD==0){ ECLKDIV_EDIV=0x14;}&lt;FONT color="#008000"&gt;/* If clock not defined, define now */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;EPAGE=0xFC;&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;&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; &lt;FONT color="#008000"&gt;/* Define EEPROM Page */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*eeprom.h*/&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="1"&gt;#define EEPROM_SECTOR_WORD_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;#define EEPROM_SECTOR_BYTE_SIZE&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; 4&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;BOOL&amp;nbsp; WRITE_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress, INT16 Size);&lt;BR /&gt;void&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress);&lt;BR /&gt;void&amp;nbsp;&amp;nbsp;&amp;nbsp; ERASE_SECTOR_EEPROM(UINT8* far pEEPROMAddress);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*eeprom.c*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;STRONG&gt;BOOL WRITE_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress, INT16 Size)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color="#000000"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;{&lt;BR /&gt;&amp;nbsp; UINT8* far pPointerDestination=pEEPROMAddress;&lt;BR /&gt;&amp;nbsp; UINT8*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointerOrigin=pRAMAddress;&lt;BR /&gt;&amp;nbsp; UINT16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndOffset=(((UINT8)pEEPROMAddress+Size) &amp;amp; 0x07FF)/EEPROM_SECTOR_WORD_SIZE;&lt;BR /&gt;&amp;nbsp; UINT16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset=((UINT8)pEEPROMAddress &amp;amp; 0x07FF)/EEPROM_SECTOR_WORD_SIZE;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; if((((UINT8)pEEPROMAddress+Size) &amp;amp; 0x07FF)%EEPROM_SECTOR_WORD_SIZE!=0){ return FALSE;}&lt;BR /&gt;&amp;nbsp; if(Size&amp;lt;=0){ return FALSE;}&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; DisableInterrupts;&lt;BR /&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Program EEPROM Block */&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp; while(Offset&amp;lt;EndOffset)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(memcmp(pPointerDestination, pPointerOrigin, EEPROM_SECTOR_BYTE_SIZE)!=0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Erase Sector Procedure */&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ERASE_SECTOR_EEPROM((UINT8*)pPointerDestination);&lt;BR /&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Program Data Procedure */&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM_SECTOR_EEPROM((UINT8*)pPointerDestination, (UINT8*)pPointerOrigin);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointerOrigin+=EEPROM_SECTOR_BYTE_SIZE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPointerDestination+=EEPROM_SECTOR_BYTE_SIZE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset+=EEPROM_SECTOR_WORD_SIZE;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; EnableInterrupts;&lt;BR /&gt;&amp;nbsp; return TRUE;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;STRONG&gt;void PROGRAM_SECTOR_EEPROM(UINT8* far pEEPROMAddress, UINT8* pRAMAddress)&lt;/STRONG&gt;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; UINT8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&lt;BR /&gt;&amp;nbsp; UINT16* far pEEPROMPointer=(UINT16*)pEEPROMAddress;&lt;BR /&gt;&amp;nbsp; UINT16*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRAMPointer=(UINT16*)pRAMAddress;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Disable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; DisableInterrupts;&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;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; &lt;FONT color="#008000"&gt;/* Wait for buffer to be empty */&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; while(ESTAT_CBEIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Clear error flags */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; if(ESTAT_ACCERR==1||ESTAT_PVIOL==1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT=(ESTAT_ACCERR_MASK | ESTAT_PVIOL_MASK);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; for(i=0; i&amp;lt;EEPROM_SECTOR_WORD_SIZE; i++)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pEEPROMPointer=*pRAMPointer;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pEEPROMPointer++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRAMPointer++;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run Program Command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ECMD=0x20;&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;&amp;nbsp;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT=ESTAT_CBEIF_MASK;&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for buffer to be empty */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(ESTAT_CBEIF==0);&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;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Wait for command to completed */&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; while(ESTAT_CCIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Enable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; EnableInterrupts;&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;&lt;BR /&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;STRONG&gt;void ERASE_SECTOR_EEPROM(UINT8* far pEEPROMAddress)&lt;/STRONG&gt;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; UINT16* far pEEPROMPointer=(UINT16*)pEEPROMAddress;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Disable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; DisableInterrupts;&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Wait for buffer to be empty */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; while(ESTAT_CBEIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Clear error flags */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; if(ESTAT_ACCERR==1||ESTAT_PVIOL==1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTAT=(ESTAT_ACCERR_MASK | ESTAT_PVIOL_MASK);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; *pEEPROMPointer=0x0000;&lt;BR /&gt;&amp;nbsp; pEEPROMPointer++;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Run Sector Erase Command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; ECMD=0x40;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Run command */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; ESTAT=ESTAT_CBEIF_MASK;&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;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Wait for command to completed */&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color="#000000" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp; while(ESTAT_CCIF==0);&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;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&amp;nbsp; /* Enable all interrupts */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" size="1"&gt;&lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000000" size="1"&gt;&amp;nbsp; EnableInterrupts;&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; &lt;FONT color="#008000"&gt;&lt;/FONT&gt;&lt;BR /&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by Forsaken on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-05-21&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;12:14 PM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by Forsaken on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-05-21&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;12:14 PM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 May 2009 18:01:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183088#M6796</guid>
      <dc:creator>Forsaken</dc:creator>
      <dc:date>2009-05-21T18:01:00Z</dc:date>
    </item>
    <item>
      <title>Re: Problem on manipulation data on EEPROM without BDM attached.</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183089#M6797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello , I have the same problem as you&amp;nbsp; , I copy your code but this still the same when I power down and power up again my eeprom variables are lost. Have some different initializantion too.Can you send me your init code for eeprom. Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Mar 2010 01:07:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183089#M6797</guid>
      <dc:creator>albuquerque</dc:creator>
      <dc:date>2010-03-31T01:07:12Z</dc:date>
    </item>
    <item>
      <title>Re: Problem on manipulation data on EEPROM without BDM attached.</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183090#M6798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What derivative you are using? This thread doesn't apply to newer derivatives EEPROM like S12XE or S12XS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Initialization is simple, just write proper clock divider to ECLKDIV.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;By default using P&amp;amp;E target, debugger is caching contents of NV memory. You may need to adjust Debugging Memory Map to make debugger updating EEPROM locations.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Mar 2010 14:45:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-on-manipulation-data-on-EEPROM-without-BDM-attached/m-p/183090#M6798</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-03-31T14:45:39Z</dc:date>
    </item>
  </channel>
</rss>

