<?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>8-bit MicrocontrollersのトピックRe: AN3741 FLASH data writing</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459857#M21663</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, seems being correct. But AN3741 code won't work if you selected minimal startup code in project wizard.&amp;nbsp; You need ANSI startup routine to make prog_ram[] initialized properly at startup. Else you need to provide your own routine, which will fill prog_ram codes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope there are no differences in LA8 vs KA8 programming algorithms, perhaps no. If you want to roll out your own C routine to program flash, which of course needs to be placed in RAM, here's how to make RS08 RAM function with CW:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. In project wizard chose ANSI startup&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since faster to access RAM at 0x50 is precious thing, I'm going to put RAM function to "far" RAM at &amp;gt;=0x100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Add to compilers command line arguments string settings&amp;nbsp; -D__STARTUP_USE_FAR_POINTERS&lt;/P&gt;&lt;P&gt;This will make ANSI startup routine able to initialize RAM variables at &amp;gt;0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Add to linkers command line arguments string -NoSectCompat&lt;/P&gt;&lt;P&gt;This will make linker not complaining about code in RAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. Edit PRM file. Add to PLACEMENT block following line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CODE_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 RAM1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now in C code you need to round your RAM function with pragmas like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#pragma CODE_SEG __FAR_SEG CODE_RAM&lt;/P&gt;&lt;P&gt;void myfunctioninram(void) {&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#pragma CODE_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Mar 2016 10:03:21 GMT</pubDate>
    <dc:creator>kef2</dc:creator>
    <dc:date>2016-03-14T10:03:21Z</dc:date>
    <item>
      <title>AN3741 FLASH data writing</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459854#M21660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Dear All,&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anybody tried flash writing with RS08LA8?&lt;/P&gt;&lt;P&gt;Please see the attachment . I unable to find my mistake.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-337699"&gt;FlashRS08.rar&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Mar 2016 05:22:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459854#M21660</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-03-08T05:22:52Z</dc:date>
    </item>
    <item>
      <title>Re: AN3741 FLASH data writing</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459855#M21661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did you apply proper voltage on Vpp pin? IMO Vpp requirement is a showstopper for apps, which need In Application flash Programming. There are better MCU alternatives more suited for IAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Mar 2016 08:33:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459855#M21661</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2016-03-08T08:33:30Z</dc:date>
    </item>
    <item>
      <title>Re: AN3741 FLASH data writing</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459856#M21662</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for reply. I have verified HW OK. I could not understand properly to use this application notes.&lt;/P&gt;&lt;P&gt;I used following line for write data buffer at memory location 0x2000 in FASH. Is this correct?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt; data[0]=0x55;&lt;/P&gt;&lt;P&gt; data[1]=0x55;&lt;/P&gt;&lt;P&gt; data[2]=0x55;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prog_ram[20] = (unsigned char)&amp;amp;data; // ensure that _data in direct page&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // otherwise prog_ram[17] must&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // be updated either.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm JSR prog_ram;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 13 Mar 2016 12:13:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459856#M21662</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-03-13T12:13:37Z</dc:date>
    </item>
    <item>
      <title>Re: AN3741 FLASH data writing</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459857#M21663</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, seems being correct. But AN3741 code won't work if you selected minimal startup code in project wizard.&amp;nbsp; You need ANSI startup routine to make prog_ram[] initialized properly at startup. Else you need to provide your own routine, which will fill prog_ram codes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope there are no differences in LA8 vs KA8 programming algorithms, perhaps no. If you want to roll out your own C routine to program flash, which of course needs to be placed in RAM, here's how to make RS08 RAM function with CW:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. In project wizard chose ANSI startup&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since faster to access RAM at 0x50 is precious thing, I'm going to put RAM function to "far" RAM at &amp;gt;=0x100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Add to compilers command line arguments string settings&amp;nbsp; -D__STARTUP_USE_FAR_POINTERS&lt;/P&gt;&lt;P&gt;This will make ANSI startup routine able to initialize RAM variables at &amp;gt;0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Add to linkers command line arguments string -NoSectCompat&lt;/P&gt;&lt;P&gt;This will make linker not complaining about code in RAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. Edit PRM file. Add to PLACEMENT block following line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CODE_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 RAM1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now in C code you need to round your RAM function with pragmas like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#pragma CODE_SEG __FAR_SEG CODE_RAM&lt;/P&gt;&lt;P&gt;void myfunctioninram(void) {&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#pragma CODE_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Mar 2016 10:03:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/AN3741-FLASH-data-writing/m-p/459857#M21663</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2016-03-14T10:03:21Z</dc:date>
    </item>
  </channel>
</rss>

