<?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>Classic/Legacy CodeWarrior中的主题 Re: Uninitialized variable initialized to zero at power up?</title>
    <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187086#M4565</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;shrikant.oak,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've resolved this issue via Service Request. I'm posting the answer for others that might be facing same or similar issue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually there are several things that may modify the RAM section:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="1"&gt;&lt;STRONG&gt;&amp;nbsp;INIT_Derivative() function initializes SRAM ( SRAM ECC check sum init)&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;By decreasing the counter from 320 to 319 it causes the 32x4 = 128 Bytes of SRAM (from top of the ram) are not initialized. In this case ECC check exception might occurs if in case ECC check does not match.&lt;/P&gt;&lt;P&gt;Other solution could be to initialize entire SRAM only in case you suspect SRAM content might be corrupted (e.g. RGM.DES != 0)&amp;nbsp;&lt;/P&gt;&lt;P&gt;e.g.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__asm void INIT_Derivative(void)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;…&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if (RGM.DES.R) init SRAM;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lis r8,0xc3fe&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lhz r0,16386(r8)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; se_cmpi r0,0&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; se_beq dont_init&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC5602P SRAM initialization code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lis r11,L2SRAM_LOCATION@h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Base of SRAM, 64-bit word aligned */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ori r11,r11,L2SRAM_LOCATION@l&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; li r12,256&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Loops to cover 32K SRAM; 32k/4 bytes/32 GPRs = 384 */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtctr r12&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; init_l2sram_loop:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stmw r0,0(r11)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write 32 GPRs to SRAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addi r11,r11,128&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Inc the ram ptr; 32 GPRs * 4 bytes = 128B */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bdnz init_l2sram_loop /* Loop for 32k of SRAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;dont_init:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; blr&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also it would be good to service an ECC generated exception properly.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="2"&gt;&lt;STRONG&gt;__init_bss_section() init. bss (uninitialized) sections to 0.&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;To avoid zeroing of the memory section you need to customize the startup routine __init_data(). &amp;nbsp;Since __init_data() routine is part of the standard library you can copy&amp;amp;paste its source form __start.c from "c:\Freescale\CW MCU v10.2\MCU\PA_Support\ewl\EWL_Runtime\Runtime_PA\Source\__start.c" to your project source directory and adapt it. The __init_Data() is defined as a weak symbol so your customized version should be used by the linker instead of the library version.&lt;/P&gt;&lt;P&gt;Let's consider a linker section e.g.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;MEMORY&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resetvector:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x00000000,&amp;nbsp;&amp;nbsp; len = 0x00000008&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_uninit_ram :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x40004F00,&amp;nbsp;&amp;nbsp; len = 0x00000100&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;SECTIONS&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;...&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;.do_not_init&amp;nbsp; (BSS) : {} &amp;gt; my_uninit_ram&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And use the custom uninited section in the code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#pragma section RW ".dummy" ".do_not_init"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__declspec (section ".dummy") uint32_t RespModeFlag;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then adapt the startup routine, __start.c e.g.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT color="#FF0000"&gt;extern char _f_do_not_init[];&amp;nbsp; //import the linker sybol - start address of .do_not_init&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;…&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;extern void __init_data(void)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__rom_copy_info *dci;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__bss_init_info *bii;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Copy from ROM to RAM: */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;dci = _rom_copy_info;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;while (1) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;if (dci-&amp;gt;rom == 0 &amp;amp;&amp;amp; dci-&amp;gt;addr == 0 &amp;amp;&amp;amp; dci-&amp;gt;size == 0) break;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&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;__copy_rom_section(dci-&amp;gt;addr, dci-&amp;gt;rom, dci-&amp;gt;size);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&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;dci++;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Initialize with zeros: */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;bii = _bss_init_info;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;while (1) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; if (bii-&amp;gt;addr == 0 &amp;amp;&amp;amp; bii-&amp;gt;size == 0) break;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp; // do not init the ".do_not_init" section, zero all remaining bss sections&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp; if (bii-&amp;gt;addr != _f_do_not_init) __init_bss_section(bii-&amp;gt;addr, bii-&amp;gt;size);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; bii++;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="3"&gt;&lt;STRONG&gt;Debugger Script (e.g. MPC650xP_VLE.tcl) inits. Entire SRAM - you can simply disable this by commenting the line:&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;init_ram 0x40000000 0x5000&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;See below snippet of tcl. file:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#################################&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;# Initialization for MPC5602P&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#################################&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;proc mpc5602P_init {} {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reset hard&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Explicitly stop the core&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Disable SWT Watchdog Timer&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mem v:0xfff38010 = 0x0000c520&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mem v:0xfff38010 = 0x0000d928&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mem v:0xfff38000 = 0xff00000A&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # core init&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; init_e200z0h&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # initialize MPC5602P ECC SRAM 20K:&amp;nbsp; 0x40000000 - 0x40005000&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # comment this line to avoid ram init by the debugger init_ram 0x40000000 0x5000&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="4"&gt;&lt;STRONG&gt;P&amp;amp;E Flash programming support routines/buffers that are transferred into MCU's SRAM&lt;/STRONG&gt;&amp;nbsp;-&amp;nbsp;&amp;nbsp;may also overwrite the SRAM content. In order to disable flash programming routines to be transferred simply uncheck the Debugger Download configuration option - "Perform standard download". Without this option you are unable to program the MCU internal flash.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Stanish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 Aug 2012 21:38:16 GMT</pubDate>
    <dc:creator>stanish</dc:creator>
    <dc:date>2012-08-14T21:38:16Z</dc:date>
    <item>
      <title>Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187082#M4561</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using CW &amp;nbsp;Version: 10.2 (Build Id:120126) for MPC5604P. I am in a need to place a variable in an uninitialized separate memory segment(mode_flag). For this i made following changes in my linker file&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resetvector:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x00000000,&amp;nbsp;&amp;nbsp; len = 0x00000008&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; init:&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x00000020,&amp;nbsp;&amp;nbsp; len = 0x00000FE0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exception_handlers:&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x00001000,&amp;nbsp;&amp;nbsp; len = 0x00001000&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal_flash:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x00002000,&amp;nbsp;&amp;nbsp; len = 0x0007E000&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal_ram:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x40000000,&amp;nbsp;&amp;nbsp; len = 0x00008000&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; heap&amp;nbsp; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x40008000,&amp;nbsp;&amp;nbsp; len = 0x00001000&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x40009000,&amp;nbsp;&amp;nbsp; len = 0x00000FFC&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mode_flag :&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;org = 0x40009FFC,&amp;nbsp;&amp;nbsp; len = 0x00000004&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GROUP : {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .mode_flag ALIGN (0x4) : {}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} &amp;gt; mode_flag&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;amp; in&amp;nbsp; c file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma section RW "mode_flag" ".mode_flag"&lt;BR /&gt;__declspec (section "mode_flag") uint32_t RespModeFlag;&lt;/P&gt;&lt;P&gt;With this modifications i am able to place the variable within the uninitialized segment created.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;in .MAP file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;.mode_flag section layout&lt;BR /&gt;&amp;nbsp; Starting&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Virtual&amp;nbsp; File&lt;BR /&gt;&amp;nbsp; address&amp;nbsp; Size&amp;nbsp;&amp;nbsp; address&amp;nbsp; offset&lt;BR /&gt;&amp;nbsp; ---------------------------------&lt;BR /&gt;&amp;nbsp; 00000000 000004 40009ffc 000038a8&amp;nbsp; 1 .mode_flag &amp;nbsp;&amp;nbsp; &amp;nbsp;Diag.obj&lt;BR /&gt;&amp;nbsp; 00000000 000004 40009ffc 000038a8&amp;nbsp; 4 RespModeFlag &amp;nbsp;&amp;nbsp; &amp;nbsp;Diag.obj&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As mentioned earlier this is an uninitialized segment, but after power on this segment is initialized to zero in &lt;SPAN style="font-family: 'Arial, Helvetica, sans-serif'; font-size: 2;"&gt;"__asm void INIT_Derivative()" function. When checked with this function, &lt;SPAN style="font-family: 'Arial, Helvetica, sans-serif'; font-size: 2;"&gt;instruction "li r12,320" which loads a fixed count for a loop to initialize the RAM. When count changed from 320 to 319 it works (As uninitialized segment is placed at the top of RAM/ last 4 bytes of RAM), but then it gets initialized in one of the library function "__init_bss_section".&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; font-size: 2; font-family: 'Arial, Helvetica, sans-serif';"&gt;&lt;SPAN style="font-family: 'Arial, Helvetica, sans-serif'; font-size: 2;"&gt;It will be a great help if anyone suggest how to proceed in order to not to initialize the RAM segment after Power up.&lt;BR /&gt;&lt;BR /&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;Shrikant&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Aug 2012 12:56:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187082#M4561</guid>
      <dc:creator>shrikant_oak</dc:creator>
      <dc:date>2012-08-08T12:56:11Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187083#M4562</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It appears that your flag variable is a global, correct? Per the ELF and C specification, those wind up in the .bss section and get initialzed to zero. The dead giveway is that &lt;FONT face="Arial, Helvetica, sans-serif" size="2"&gt;&lt;FONT face="Arial, Helvetica, sans-serif" size="2"&gt;__init_bss_section&lt;/FONT&gt;&lt;/FONT&gt; gets involved. You might want to force the flag variable into the .data section. See this thread at Stackoverflow for more info:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="http://stackoverflow.com/questions/3532334/how-about-bss-section-not-zero-initialized" rel="nofollow" target="_blank"&gt;http://stackoverflow.com/questions/3532334/how-about-bss-section-not-zero-initialized&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;---Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Aug 2012 20:35:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187083#M4562</guid>
      <dc:creator>J2MEJediMaster</dc:creator>
      <dc:date>2012-08-08T20:35:27Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187084#M4563</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First of all thanks for the reply!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually i am looking for a variable which should be placed in an uninitialized memory as well as this variable also uninitialized. The intention is after power up this RAM variable is not initialized to zero instead it should retain it's previous value before SW RESET.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Shrikant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2012 10:44:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187084#M4563</guid>
      <dc:creator>shrikant_oak</dc:creator>
      <dc:date>2012-08-09T10:44:43Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187085#M4564</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; The ANSI C standard expects all uninitialized variables to be set to 0 when function main is reached.&lt;/P&gt;&lt;P&gt;&amp;nbsp; So the startup code we are providing is performing this initialization.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; If you do not want this to happen the startup code needs to be modified.&lt;/P&gt;&lt;P&gt;&amp;nbsp; First question is do you want this to happen to all uninitialized variables or only some of them?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Also if you decide to go this way you need to make sure your application does not assume some of the&lt;/P&gt;&lt;P&gt;&amp;nbsp; uninitialized variables are initialized with 0.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CrasyCat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Aug 2012 14:41:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187085#M4564</guid>
      <dc:creator>CrasyCat</dc:creator>
      <dc:date>2012-08-14T14:41:49Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187086#M4565</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;shrikant.oak,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've resolved this issue via Service Request. I'm posting the answer for others that might be facing same or similar issue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually there are several things that may modify the RAM section:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="1"&gt;&lt;STRONG&gt;&amp;nbsp;INIT_Derivative() function initializes SRAM ( SRAM ECC check sum init)&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;By decreasing the counter from 320 to 319 it causes the 32x4 = 128 Bytes of SRAM (from top of the ram) are not initialized. In this case ECC check exception might occurs if in case ECC check does not match.&lt;/P&gt;&lt;P&gt;Other solution could be to initialize entire SRAM only in case you suspect SRAM content might be corrupted (e.g. RGM.DES != 0)&amp;nbsp;&lt;/P&gt;&lt;P&gt;e.g.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__asm void INIT_Derivative(void)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;…&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if (RGM.DES.R) init SRAM;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lis r8,0xc3fe&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lhz r0,16386(r8)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; se_cmpi r0,0&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; se_beq dont_init&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC5602P SRAM initialization code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lis r11,L2SRAM_LOCATION@h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Base of SRAM, 64-bit word aligned */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ori r11,r11,L2SRAM_LOCATION@l&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; li r12,256&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Loops to cover 32K SRAM; 32k/4 bytes/32 GPRs = 384 */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtctr r12&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; init_l2sram_loop:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stmw r0,0(r11)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write 32 GPRs to SRAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addi r11,r11,128&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Inc the ram ptr; 32 GPRs * 4 bytes = 128B */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bdnz init_l2sram_loop /* Loop for 32k of SRAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;dont_init:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; blr&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also it would be good to service an ECC generated exception properly.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="2"&gt;&lt;STRONG&gt;__init_bss_section() init. bss (uninitialized) sections to 0.&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;To avoid zeroing of the memory section you need to customize the startup routine __init_data(). &amp;nbsp;Since __init_data() routine is part of the standard library you can copy&amp;amp;paste its source form __start.c from "c:\Freescale\CW MCU v10.2\MCU\PA_Support\ewl\EWL_Runtime\Runtime_PA\Source\__start.c" to your project source directory and adapt it. The __init_Data() is defined as a weak symbol so your customized version should be used by the linker instead of the library version.&lt;/P&gt;&lt;P&gt;Let's consider a linker section e.g.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;MEMORY&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resetvector:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x00000000,&amp;nbsp;&amp;nbsp; len = 0x00000008&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_uninit_ram :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org = 0x40004F00,&amp;nbsp;&amp;nbsp; len = 0x00000100&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;SECTIONS&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;...&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;.do_not_init&amp;nbsp; (BSS) : {} &amp;gt; my_uninit_ram&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And use the custom uninited section in the code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#pragma section RW ".dummy" ".do_not_init"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__declspec (section ".dummy") uint32_t RespModeFlag;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then adapt the startup routine, __start.c e.g.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT color="#FF0000"&gt;extern char _f_do_not_init[];&amp;nbsp; //import the linker sybol - start address of .do_not_init&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;…&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;extern void __init_data(void)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__rom_copy_info *dci;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;__bss_init_info *bii;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Copy from ROM to RAM: */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;dci = _rom_copy_info;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;while (1) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;if (dci-&amp;gt;rom == 0 &amp;amp;&amp;amp; dci-&amp;gt;addr == 0 &amp;amp;&amp;amp; dci-&amp;gt;size == 0) break;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&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;__copy_rom_section(dci-&amp;gt;addr, dci-&amp;gt;rom, dci-&amp;gt;size);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&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;dci++;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Initialize with zeros: */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;bii = _bss_init_info;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;while (1) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; if (bii-&amp;gt;addr == 0 &amp;amp;&amp;amp; bii-&amp;gt;size == 0) break;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp; // do not init the ".do_not_init" section, zero all remaining bss sections&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp; if (bii-&amp;gt;addr != _f_do_not_init) __init_bss_section(bii-&amp;gt;addr, bii-&amp;gt;size);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; bii++;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="3"&gt;&lt;STRONG&gt;Debugger Script (e.g. MPC650xP_VLE.tcl) inits. Entire SRAM - you can simply disable this by commenting the line:&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;init_ram 0x40000000 0x5000&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;See below snippet of tcl. file:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#################################&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;# Initialization for MPC5602P&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#################################&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;proc mpc5602P_init {} {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reset hard&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Explicitly stop the core&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Disable SWT Watchdog Timer&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mem v:0xfff38010 = 0x0000c520&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mem v:0xfff38010 = 0x0000d928&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mem v:0xfff38000 = 0xff00000A&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # core init&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; init_e200z0h&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # initialize MPC5602P ECC SRAM 20K:&amp;nbsp; 0x40000000 - 0x40005000&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000" face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # comment this line to avoid ram init by the debugger init_ram 0x40000000 0x5000&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL type="1"&gt;&lt;LI value="4"&gt;&lt;STRONG&gt;P&amp;amp;E Flash programming support routines/buffers that are transferred into MCU's SRAM&lt;/STRONG&gt;&amp;nbsp;-&amp;nbsp;&amp;nbsp;may also overwrite the SRAM content. In order to disable flash programming routines to be transferred simply uncheck the Debugger Download configuration option - "Perform standard download". Without this option you are unable to program the MCU internal flash.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Stanish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Aug 2012 21:38:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187086#M4565</guid>
      <dc:creator>stanish</dc:creator>
      <dc:date>2012-08-14T21:38:16Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187087#M4566</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Stanish,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is exactly what i was looking for, &amp;amp; it's working fine at my end. &lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" id="smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for in deatail suggestion!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Shrikant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2012 10:55:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187087#M4566</guid>
      <dc:creator>shrikant_oak</dc:creator>
      <dc:date>2012-08-16T10:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187088#M4567</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Stanislav Sliva,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am observing a strange behavior with the change in the&amp;nbsp; &lt;SPAN style="font-family: courier new,courier;"&gt;INIT_Derivative &lt;/SPAN&gt;function. The changes has been made exactly same as suggested in prior conversation.&lt;/P&gt;&lt;P&gt;Behavior is as below:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Works fine when Debugger is physically connected.&lt;/LI&gt;&lt;LI&gt;When debugger is physically removed &amp;amp; POR is performed, after that MPC5604P starts resetting after every 10mSec.&lt;/LI&gt;&lt;LI&gt;When the value at instruction "&lt;SPAN style="font-size: 11pt; font-family: 'Calibri','sans-serif';"&gt;li r12,256 (which is used to cover the 32K RAM out of 40K)&lt;/SPAN&gt;" is changed to 320 (considering 40K RAM) it works fine after removing the debugger (Not generating the RESET behavior as that of previous point) but then uninitialized RAM gets initialized.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there anything else we need to take care of? Please suggest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Shrikant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Nov 2012 07:25:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187088#M4567</guid>
      <dc:creator>shrikant_oak</dc:creator>
      <dc:date>2012-11-01T07:25:34Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variable initialized to zero at power up?</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187089#M4568</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much for sharing the code!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Jul 2015 08:19:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Uninitialized-variable-initialized-to-zero-at-power-up/m-p/187089#M4568</guid>
      <dc:creator>steffenrose</dc:creator>
      <dc:date>2015-07-10T08:19:22Z</dc:date>
    </item>
  </channel>
</rss>

