<?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: Overwritable SECTION in RAM</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126730#M1198</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Well i figured out the problem. In the .asm file I was using the same SECTION: &lt;BR /&gt;&lt;BR /&gt;MY_TEMP1: SECTION SHORT&lt;BR /&gt;prot_cnt DS.B 1&lt;BR /&gt;...&lt;BR /&gt;&lt;BR /&gt;MY_TEMP1: SECTION SHORT&lt;BR /&gt;time_temp1 DS.B 1 &lt;BR /&gt;...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Once I changed the second SECTION to MY_TEMP2 it all resolved!&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Aug 2006 21:59:00 GMT</pubDate>
    <dc:creator>Santa</dc:creator>
    <dc:date>2006-08-15T21:59:00Z</dc:date>
    <item>
      <title>Overwritable SECTION in RAM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126727#M1195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am traying to get a space of RAM to contain all my temp varaibles. This SECTION can be something like 16 bytes long, but the idea is for it to hold more than 16 varaibles. This means that some variables will share the same RAM location, and thy can because they are temporal!!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I read on the CW help that using the PAGED directive in the .prm file can do the trick.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EEPROM = READ_ONLY 0xEE00 TO 0xEE40;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ROM = READ_ONLY 0xEE41 TO 0xFDFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;FLASH_RAM = READ_WRITE 0x008C TO 0x0093;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Z_RAM = READ_WRITE 0x0094 TO 0x00DF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TEMP_RAM1 = PAGED 0x00E0 TO 0x00EF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TEMP_RAM2 = PAGED 0x00E0 TO 0x00EF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ROM1 = READ_ONLY 0xFFB0 TO 0xFFBD;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ROM2 = READ_ONLY 0xFFC2 TO 0xFFCF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;END&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PLACEMENT /* Here all predefined and user segments are placed into the SEGMENTS defined above. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DEFAULT_ROM, ROM_VAR, STRINGS INTO ROM; /* ROM1,ROM2 In case you want to use ROM1,ROM2 as well, be sure the option -OnB=b is passed to the compiler. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MyCode INTO ROM;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MyEeprom INTO EEPROM;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DEFAULT_RAM,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;_DATA_ZEROPAGE, MY_ZEROPAGE INTO Z_RAM;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Secciones de los módulos */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EE_RAM INTO FLASH_RAM;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DTMF_RAM INTO Z_RAM;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SPI_RAM INTO Z_RAM;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MY_TEMP1 INTO TEMP_RAM1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MY_TEMP2 INTO TEMP_RAM2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;END&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(do a search for "OVERLAYS" in the CW help).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I used it but when MY_TEMP1 + MY_TEMP2 size exceeds 16 bytes the linker gyves me a "can't fit the section size" error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anyone point me any other methods to get this working?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thx&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Horacio&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 04:01:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126727#M1195</guid>
      <dc:creator>Santa</dc:creator>
      <dc:date>2006-08-15T04:01:46Z</dc:date>
    </item>
    <item>
      <title>Re: Overwritable SECTION in RAM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126728#M1196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;FONT size="2"&gt;Hello Horacio,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;This may not be applicable to your case, but I would normally use the stack for&amp;nbsp;any temporary variables (when programming in assembly code).&amp;nbsp; The stack pointer can then be adjusted when the variables are no longer required (when the sub-routine exits).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;If you are programmin in C, this will occur automatically for local variables within a function.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;Regards,&lt;BR /&gt;Mac&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 12:25:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126728#M1196</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-08-15T12:25:02Z</dc:date>
    </item>
    <item>
      <title>Re: Overwritable SECTION in RAM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126729#M1197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Mac, &lt;BR /&gt;&lt;BR /&gt;I know the Stack can be used for this purpose. But I trust more the C to asm translator build into Cw than my self. My use of stack knowledge is limited and I really don't use it much... I am thinking in starting to fo some tests and get the fill of it.&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;BR /&gt;&lt;BR /&gt;Santa&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 21:26:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126729#M1197</guid>
      <dc:creator>Santa</dc:creator>
      <dc:date>2006-08-15T21:26:22Z</dc:date>
    </item>
    <item>
      <title>Re: Overwritable SECTION in RAM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126730#M1198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Well i figured out the problem. In the .asm file I was using the same SECTION: &lt;BR /&gt;&lt;BR /&gt;MY_TEMP1: SECTION SHORT&lt;BR /&gt;prot_cnt DS.B 1&lt;BR /&gt;...&lt;BR /&gt;&lt;BR /&gt;MY_TEMP1: SECTION SHORT&lt;BR /&gt;time_temp1 DS.B 1 &lt;BR /&gt;...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Once I changed the second SECTION to MY_TEMP2 it all resolved!&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 21:59:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126730#M1198</guid>
      <dc:creator>Santa</dc:creator>
      <dc:date>2006-08-15T21:59:00Z</dc:date>
    </item>
    <item>
      <title>Re: Overwritable SECTION in RAM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126731#M1199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;FONT size="2"&gt;Hello,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;An alternative approach that could also be&amp;nbsp;adapted for absolute assembly - simply use equates to define a new label for the different uses of each temporary variable, as required.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;So the temporary variable block would&amp;nbsp;be allocated only once.&lt;BR /&gt;&lt;FONT face="Courier New"&gt;MY_TEMP: SECTION SHORT&lt;BR /&gt;TEMP:&amp;nbsp;&amp;nbsp;&amp;nbsp; DS.B&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XDEF&amp;nbsp;&amp;nbsp;&amp;nbsp; TEMP&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;Then to use the variables in different modules of the program -&lt;BR /&gt;Case 1:&lt;BR /&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XREF&amp;nbsp; TEMP&lt;BR /&gt;prot_cnt&amp;nbsp; EQU&amp;nbsp;&amp;nbsp;&amp;nbsp;TEMP+2&lt;BR /&gt;etc.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;Case 2:&lt;BR /&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XREF&amp;nbsp; TEMP&lt;BR /&gt;time_temp EQU&amp;nbsp;&amp;nbsp;&amp;nbsp;TEMP+2&lt;BR /&gt;etc.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;Regards,&lt;BR /&gt;Mac&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Aug 2006 10:14:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Overwritable-SECTION-in-RAM/m-p/126731#M1199</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-08-17T10:14:04Z</dc:date>
    </item>
  </channel>
</rss>

