<?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のトピックRe: Problem with write/erase operation on AM29lv160DB external FLASH (coldfire 5235)</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130241#M732</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Try looking at the following Freescale &lt;A href="http://www.freescale.com/webapp/sps/utils/SingleFaq.jsp?FAQ-26240.xml" rel="nofollow" target="_blank"&gt;FAQ on Flash programming&lt;/A&gt;. It provides some general rules about programming Flash memory. More to the point, further down in the FAQ is a list of application notes on flash programming. The app notes were chosen to cover a wide range of Freescale processors, and in most cases, provide example code. There's even one that coveres using the Codewarrior debugger to bit-bang external memory to confirm that the processor is properly interfaced to the processor. HTH.&lt;BR /&gt;&lt;BR /&gt;---Tom&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 14 Sep 2006 22:36:34 GMT</pubDate>
    <dc:creator>J2MEJediMaster</dc:creator>
    <dc:date>2006-09-14T22:36:34Z</dc:date>
    <item>
      <title>Problem with write/erase operation on AM29lv160DB external FLASH (coldfire 5235)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130240#M731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;SPAN&gt;hello, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In my project (based on MCF5235), I must store datas in my flash(AM29LV160DB).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My problem is that I can't access at my Flash with a write command. Every time I begin my write sequence "*((uint16 *)(EXT_FLASH_ADDRESS + 0x0555)) = 0x00AA;" an exception occurs ("Attempted write to write-protected space")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I saw in this forum that the Coldfire doesn't support a write or erase in Flash operation when the code runs in it, so, as I saw on many topics, I "copy" my write code in my RAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there a problem with protected sector?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Does someone see what is wrong?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot for your implication,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AgC&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My link file:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;PRE&gt;MEMORY {ext_nvsram (RWX) : ORIGIN = 0x10000000, LENGTH = 0x00080000vector_ram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x500sram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x00010000user (RWX) : ORIGIN = 0x20000500, LENGTH = 0x0000FB00ext_sram (RWX) : ORIGIN = 0x30000000, LENGTH = 0x00080000ipsbar (RWX) : ORIGIN = 0x40000000, LENGTH = 0x01ext_flash (RWX) : ORIGIN = 0xFFE00000, LENGTH = 0x00200000}SECTIONS {.vector_ram : {} &amp;gt; vector_ram.ipsbar : {} &amp;gt; ipsbar.sram : {} &amp;gt; sram.ext_sram : {} &amp;gt; ext_sram.ext_nvsram : {} &amp;gt; ext_nvsram.ext_flash : {} &amp;gt; ext_flash.user : {} &amp;gt; user.boot_flash :{obj-CPU_A/vectors.o (.text)*(.text)*(.rodata)*(.rodata.str1.1)} &amp;gt; ext_flashMy code file:enum TFlashStatus Flash_write_word(ULWORD address, UWORD data){*((uint16 *)(EXT_FLASH_ADDRESS + 0x0555)) = 0x00AA;*((uint16 *)(EXT_FLASH_ADDRESS + 0x02AA)) = 0x0055;*((uint16 *)(EXT_FLASH_ADDRESS + 0x0555)) = 0x00A0;*((uint16 *)(EXT_FLASH_ADDRESS + address)) = data;return FLASH_SUCCESS; }void runEnd(void){} // leave this immediately after runInRamenum TFlashStatus Flash_Set_Word(ULWORD address, UWORD data){enum TFlashStatus status;char buf[200];enum TFlashStatus (*ramCopy)(ULWORD, UWORD) = (enum TFlashStatus(*)(ULWORD,UWORD))buf;/* Ecriture du mot de données */memcpy(buf, (void*)Flash_write_word, (char*)runEnd - (char*)Flash_write_word);status = ramCopy(address, data);return status;}&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 1;"&gt;(Alban formatted code)&lt;/SPAN&gt;&lt;P&gt;Message Edited by Alban on &lt;SPAN class="date_text"&gt;2006-09-14&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:55 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Sep 2006 15:11:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130240#M731</guid>
      <dc:creator>AgC</dc:creator>
      <dc:date>2006-09-14T15:11:06Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with write/erase operation on AM29lv160DB external FLASH (coldfire 5235)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130241#M732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Try looking at the following Freescale &lt;A href="http://www.freescale.com/webapp/sps/utils/SingleFaq.jsp?FAQ-26240.xml" rel="nofollow" target="_blank"&gt;FAQ on Flash programming&lt;/A&gt;. It provides some general rules about programming Flash memory. More to the point, further down in the FAQ is a list of application notes on flash programming. The app notes were chosen to cover a wide range of Freescale processors, and in most cases, provide example code. There's even one that coveres using the Codewarrior debugger to bit-bang external memory to confirm that the processor is properly interfaced to the processor. HTH.&lt;BR /&gt;&lt;BR /&gt;---Tom&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Sep 2006 22:36:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130241#M732</guid>
      <dc:creator>J2MEJediMaster</dc:creator>
      <dc:date>2006-09-14T22:36:34Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with write/erase operation on AM29lv160DB external FLASH (coldfire 5235)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130242#M733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi AgC&lt;BR /&gt;&lt;BR /&gt;did you check whether the Chip Select is maybe configured for Read Only accesses (WP bit in CSMRx register) ?&lt;BR /&gt;&lt;BR /&gt;HTH&lt;BR /&gt;Stamatis&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Sep 2006 23:13:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130242#M733</guid>
      <dc:creator>stzari</dc:creator>
      <dc:date>2006-09-15T23:13:11Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with write/erase operation on AM29lv160DB external FLASH (coldfire 5235)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130243#M734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I'm a bit in the same waters. &amp;nbsp; Right now I can read the Flash (Am29LV160D) correctly but it seems the external Flash (I want to write to it) is write protected by the ship itself, not by the debbuger memory file.&lt;BR /&gt;&lt;BR /&gt;Here my memory map:&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory Map:&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------&lt;BR /&gt;range&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000 0x0007FFFF 4 Read&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 512 Kbytes Internal Flash&lt;BR /&gt;reserved&amp;nbsp;&amp;nbsp; 0x00080000 0x1FFFFFFF&lt;BR /&gt;range&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20000000 0x2000FFFF 4 ReadWrite&amp;nbsp;&amp;nbsp;&amp;nbsp; // 64 Kbytes Internal SRAM&lt;BR /&gt;reserved&amp;nbsp;&amp;nbsp; 0x20010000 0x2FFFFFFF&lt;BR /&gt;reserved&amp;nbsp;&amp;nbsp; 0x30000000 0x3FFFFFFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // External SRAM (not fitted)&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $IPSBAR_BASE &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $IPSBAR_BASE + 0x1FFFFF // Memory Mapped Registers&lt;BR /&gt;reserved&amp;nbsp;&amp;nbsp; $IPSBAR_BASE + 0x200000 &amp;nbsp;&amp;nbsp;&amp;nbsp; 0xEFFFFFFF&lt;BR /&gt;range&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xF0000000 0xF0FFFFFF 4 ReadWrite&amp;nbsp;&amp;nbsp;&amp;nbsp; // 16 Mbyte SDRAM&lt;BR /&gt;reserved&amp;nbsp;&amp;nbsp; 0xF1000000 0xFFDFFFFF&lt;BR /&gt;range&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFFE00000 0xFFEFFFFF 4 read&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // debugger/monitor firmware&lt;BR /&gt;range&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0xFFF00000 0xFFFFFFFF 2 ReadWrite&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;I want to write at 0xFFF00000&amp;nbsp; to 0xFFFFFFFF.&amp;nbsp;&amp;nbsp;&amp;nbsp; The Flash memory organisation is 16 bits x 1M&lt;BR /&gt;&lt;BR /&gt;My ship select initialization routine :&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&amp;nbsp; &amp;nbsp; /*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* ChipSelect 0 - External Flash&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_CS0_CSAR = MCF_CS_CSAR_BA(0xffe00000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_CS0_CSCR = (0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_CS_CSCR_WS(6)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_CS_CSCR_AA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_CS_CSCR_PS_16);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_CS0_CSMR = MCF_CS_CSMR_BAM_2M | MCF_CS_CSMR_V;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;Any clues?&lt;BR /&gt;&lt;BR /&gt;Francois&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jul 2008 02:12:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Problem-with-write-erase-operation-on-AM29lv160DB-external-FLASH/m-p/130243#M734</guid>
      <dc:creator>francois_boucha</dc:creator>
      <dc:date>2008-07-23T02:12:54Z</dc:date>
    </item>
  </channel>
</rss>

