<?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: How to initialize the RAM of  MC9S08SG8?</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206813#M17441</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I think the reason it does not work for your case #1 is that the startup code will only zero-out RAM if it is allocated and used by the application.&amp;nbsp; If you declared global or static variables with no intial value, for instance, then you would probably see that the RAM locations containing those variables would be set to 0x00 after the call to Init(), if __ONLY_INIT_SP is not defined.&amp;nbsp; Your case #2 seems to work fine for initializing unused RAM to 0x00.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 28 Mar 2008 10:04:16 GMT</pubDate>
    <dc:creator>Klined</dc:creator>
    <dc:date>2008-03-28T10:04:16Z</dc:date>
    <item>
      <title>How to initialize the RAM of  MC9S08SG8?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206812#M17440</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to initialize the unused RAM with zero. I got two ideas, need you guys give me more information.&lt;/P&gt;&lt;P&gt;1. The RAM will be initialized in startup code which auto-created when create a new project follow the start dialog. No more hand-writtened code should be added. But i have try it. It seems doesn't work.&lt;/P&gt;&lt;P&gt;2.Modify the *.PRM file as follows&lt;BR /&gt;&amp;nbsp;&amp;nbsp; RAM&amp;nbsp; =&amp;nbsp; READ_WRITE&amp;nbsp;&amp;nbsp; 0x0100 TO 0x027F&amp;nbsp; FILL 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; It seems has effect. But i want to ensure it is feasible and appropriate. Is there any latent unexpected side effect.&lt;/P&gt;&lt;P&gt;Need&amp;nbsp;more experience from all of you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Mar 2008 14:51:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206812#M17440</guid>
      <dc:creator>tao_s</dc:creator>
      <dc:date>2008-03-27T14:51:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to initialize the RAM of  MC9S08SG8?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206813#M17441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I think the reason it does not work for your case #1 is that the startup code will only zero-out RAM if it is allocated and used by the application.&amp;nbsp; If you declared global or static variables with no intial value, for instance, then you would probably see that the RAM locations containing those variables would be set to 0x00 after the call to Init(), if __ONLY_INIT_SP is not defined.&amp;nbsp; Your case #2 seems to work fine for initializing unused RAM to 0x00.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Mar 2008 10:04:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206813#M17441</guid>
      <dc:creator>Klined</dc:creator>
      <dc:date>2008-03-28T10:04:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to initialize the RAM of  MC9S08SG8?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206814#M17442</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;It is possible that it will fill the ram only when "burning" the project, but not in the "C" start up code.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Mar 2008 10:28:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206814#M17442</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2008-03-28T10:28:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to initialize the RAM of  MC9S08SG8?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206815#M17443</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I have tried case #2 again. But I find it is only&amp;nbsp;effective after downloading the programme to the target board. And it doesn't work when I repower the board. What's up? And how can&amp;nbsp;I initialize the unused RAM to 0x00 permanent. Is there any&amp;nbsp;other method?&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Mar 2008 15:46:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206815#M17443</guid>
      <dc:creator>tao_s</dc:creator>
      <dc:date>2008-03-28T15:46:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to initialize the RAM of  MC9S08SG8?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206816#M17444</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Strange.&amp;nbsp; I don't see that the zero-out is associated at all with the burn.&amp;nbsp; In fact, if you uncheck "Run after successful load" from the file load screen, you should see no zero-outs until after you execute Init() by stepping through.&amp;nbsp; Try this by filling a few memory locations with 0xFF from the debug screen before executing Init().&amp;nbsp; This I just verified a moment ago.&amp;nbsp; Code is generated to take care of the zero-out.&amp;nbsp; Look in the map file, and you can see a section regarding where the zero-out should happen:&lt;BR /&gt;&lt;BR /&gt;Entry point: 0xE07B (_Startup)&lt;BR /&gt;_startupData is allocated at 0xE084 and uses 6 Bytes&lt;BR /&gt;extern struct _tagStartup {&lt;BR /&gt;&amp;nbsp; unsigned nofZeroOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;BR /&gt;&amp;nbsp; _Range&amp;nbsp;&amp;nbsp; pZeroOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x155&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 299&lt;BR /&gt;&amp;nbsp; _Copy&amp;nbsp;&amp;nbsp;&amp;nbsp; *toCopyDownBeg 0xE15C&lt;BR /&gt;} _startupData;&lt;BR /&gt;&lt;BR /&gt;In my PRM I have the following statements:&lt;BR /&gt;&lt;BR /&gt;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_WRITE&amp;nbsp;&amp;nbsp; 0x0100 TO 0x027F FILL 0x00;&lt;BR /&gt;&lt;BR /&gt;STACKSIZE 0x50&lt;BR /&gt;&lt;BR /&gt;and my app has 5 bytes of global variables stored starting @ 0x100.&lt;BR /&gt;&lt;BR /&gt;My SP after the call to Init() is 0x154, so the zero-out doesn't start until 0x155, as indicated above.&amp;nbsp; Also, I have seen this zero-out continue to happen across resets and power cycles, as it should.&lt;BR /&gt;&lt;BR /&gt;What is your SP value after the call to Init()?&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Mar 2008 19:22:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206816#M17444</guid>
      <dc:creator>Klined</dc:creator>
      <dc:date>2008-03-28T19:22:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to initialize the RAM of  MC9S08SG8?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206817#M17445</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;My&amp;nbsp;SP value after the call to Init() is 0x0151. My app has 2 bytes of global variables stored starting @ 0x100.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;---------------------------------------------------------------------------------------------&lt;/DIV&gt;&lt;DIV&gt;STARTUP SECTION&lt;BR /&gt;---------------------------------------------------------------------------------------------&lt;BR /&gt;Entry point: 0xE07B (_Startup)&lt;BR /&gt;_startupData is allocated at 0xE084 and uses 6 Bytes&lt;BR /&gt;extern struct _tagStartup {&lt;BR /&gt;&amp;nbsp; unsigned nofZeroOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;BR /&gt;&amp;nbsp; _Range&amp;nbsp;&amp;nbsp; pZeroOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 128&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x152&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 302&lt;BR /&gt;&amp;nbsp; _Copy&amp;nbsp;&amp;nbsp;&amp;nbsp; *toCopyDownBeg 0xE10A&lt;BR /&gt;} _startupData;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;My prm file&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_WRITE&amp;nbsp;&amp;nbsp; 0x0080 TO 0x00FF FILL 0x00;&lt;BR /&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; 0x0100 TO 0x027F FILL 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE000 TO 0xFFAD FILL 0x83;&lt;BR /&gt;&amp;nbsp;/* INTVECTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFFC0 TO 0xFFFF; Interrupt Vectors */&lt;BR /&gt;END&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;STACKSIZE 0x50&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;My app used below for loop to output the RAM value via SCI.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; for(p=(uint8 *)0x0100; p&amp;lt;= (uint8 *)0x027f;p++)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI_Transmit(*p);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __RESET_WATCHDOG();&lt;BR /&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I debug&amp;nbsp;my program on a demo board from freescale.&amp;nbsp;And do the following operation.&lt;/DIV&gt;&lt;DIV&gt;1)Download the program and init() haven't executed&lt;/DIV&gt;&lt;DIV&gt;2)At this point, RAM from 0x0152 to 0x27F is 0x00&lt;/DIV&gt;&lt;DIV&gt;3)Click start button&amp;nbsp;to run the program&lt;/DIV&gt;&lt;DIV&gt;4)PC RS232 tools received the RAM value as it should&lt;/DIV&gt;&lt;DIV&gt;Till now, everything is OK.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;But.......&lt;/DIV&gt;&lt;DIV&gt;1)Pull out the power cable&lt;/DIV&gt;&lt;DIV&gt;2)Plug in again&lt;/DIV&gt;&lt;DIV&gt;3)The&amp;nbsp;program run after&amp;nbsp;power on reset&lt;/DIV&gt;&lt;DIV&gt;4)PC RS232 tools received the strange RAM value.&amp;nbsp;According to&amp;nbsp;the received data, RAM from 0x0152 to 0x27F is 0x80(not 0x00 which&amp;nbsp;I filled) and the RAM from 0x0100 to 0x0151 is not the same result as what&lt;/DIV&gt;&lt;DIV&gt;I received above.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;What's up? Is it feasible use my app to read the RAM value? What's your test environment?&lt;BR /&gt;And would you mind giving me your email and making the communication morr convienent?&lt;/DIV&gt;&lt;DIV&gt;Thank you for your aspiring response.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Mar 2008 09:25:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-initialize-the-RAM-of-MC9S08SG8/m-p/206817#M17445</guid>
      <dc:creator>tao_s</dc:creator>
      <dc:date>2008-03-31T09:25:34Z</dc:date>
    </item>
  </channel>
</rss>

