<?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: Constants in banked ROM</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204343#M16979</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Daniel,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I meant not physical limitation of S08 with LAP/MMU, but Codewarrior limitation.&amp;nbsp;Code below compiles well but due to 16k page size limit doesn't link with L1102 error. There's plenty of free flash available, but data has to fit one of free PGED_ROM SEGMENT's .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#include &amp;lt;mmu_lda.h&amp;gt;&lt;/P&gt;&lt;P&gt;#pragma push&lt;BR /&gt;#pragma CONST_SEG __LINEAR_SEG PAGED_ROM&lt;BR /&gt;const char arr[17000] =&lt;BR /&gt;{1,2,3&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;#pragma pop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void main(void) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; __LOAD_LAP_ADDRESS(arr);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is similar on S12X. Project wizard default PRM file defines many paged flash segments. Without modifications in prm file It is not possible to allocate &amp;gt;16k array/object in paged flash and access it using global addressing until you combine few segments into single big segment. It is good CW for S12X treats address followed by 'G as global address, else I don't know&amp;nbsp;how it would&amp;nbsp;be possible do define long segments. After I combine few 16k segments into bigger one, I can allocate and access &amp;gt;16k objects. Does CW for S08 understand 'L - linear addresses in PRM files? If not, then I still think that linear flash is fragmented using Codewarrior, because no object in paged flash can cross (adr % 0x4000) == 0 boundary.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Gap in nonbanked flash is not a problem for small objects, but how would you allocate object that doesn't fit the biggest available segment?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 02 Jun 2010 00:44:29 GMT</pubDate>
    <dc:creator>kef</dc:creator>
    <dc:date>2010-06-02T00:44:29Z</dc:date>
    <item>
      <title>Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204340#M16976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using the MC9S08QE128 with CodeWarrior (latest version), banked memory model -- I'm probably going to need most of the 128K.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There are a number of threads on constants in banked ROM.&amp;nbsp; Most, if not all, say that constants need to be in the non-banked ROM.&amp;nbsp; Is this true?&amp;nbsp; I am writing a program with a lot of constants (&amp;gt;30K -- lots of proprietary data) so I can't fit it all in non-banked ROM.&amp;nbsp; I only have about 1/3 of the data compiled in and I'm already getting a linker error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;L1102: Out of allocation space in segment ROM at address 0x7FC6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;which I interpret as too much data since the code that I have in that space is minimal (the map file shows the code to be much less than a few K, but lots of constants).&amp;nbsp; Is that a correct assumption?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have added ROM1 to the non-banked memory in the prm file which seems to have cleared the linker error, but I'm afraid this is a temporary fix and it will fail when I get the rest of the constants into the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help would be greatly appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Brad&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jun 2010 08:00:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204340#M16976</guid>
      <dc:creator>JBM</dc:creator>
      <dc:date>2010-06-01T08:00:28Z</dc:date>
    </item>
    <item>
      <title>Re: Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204341#M16977</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did you try DEMOQE128_LAP_Dictionary CW example?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"Program Files\Freescale\CodeWarrior for Microcontrollers V6.3\(CodeWarrior_Examples)\HCS08\Evaluation Board Examples\DEMOQE128\DEMOQE128_LAP_Dictionary"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example shows how you could have many kilobytes of constant strings in paged memory. So it is possible to have constants not only in non-banked ROM. __LINEAR_SEG section modifier and __linear keyword help creating pointers to linear flash address space. But access to those constants is not simple. You can't access array elements directly or dereference pointer to linear data using C notation. Instead you use macros from mmu_lda.h.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Another limitation is data fragmentation. It seems single array can't be larger than page window size. In LAP dictionary example there's quite small array of pointers to strings and all strings are relatively short. But in case you need big array of something - you will need to break your big array into smaller pieces.&lt;/P&gt;&lt;P&gt;I guess L1102 error you got has similar nature. Since non-banked ROM is fragmented and&amp;nbsp;there are two chunks of non-paged flash with addresses &amp;lt;0x8000 and with addresses &amp;gt;=0xC000, you get error when your data needs to cross page window gap.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jun 2010 14:06:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204341#M16977</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-06-01T14:06:44Z</dc:date>
    </item>
    <item>
      <title>Re: Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204342#M16978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Another limitation is data fragmentation. It seems single array can't be larger than page window size. In LAP dictionary example there's quite small array of pointers to strings and all strings are relatively short. But in case you need big array of something - you will need to break your big array into smaller pieces.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I guess L1102 error you got has similar nature. Since non-banked ROM is fragmented and&amp;nbsp;there are two chunks of non-paged flash with addresses &amp;lt;0x8000 and with addresses &amp;gt;=0xC000, you get error when your data needs to cross page window gap.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I don't think the fragmentation limitation applies to the S08 banking done with the LAP header. (This limitation does exist for the data S12 banking done with C code, but the S08 case is different.) &amp;nbsp;For the S08 the increment and the access are done through dedicated HW registers which handle the whole flash as linear block, which increment the full address automatically, so in the end there is no special case when crossing a page boundary.&lt;/P&gt;&lt;P&gt;Could be that for using &amp;gt;16k objects, the prm file has to use flash addresses though (has been some time, don't remember the details).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also the gap in the non banked flash is not an issue for constants at all, there is a code generation optimization which takes advantage of short branch distances, but for constants the gap is not a problem.&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jun 2010 21:43:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204342#M16978</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2010-06-01T21:43:19Z</dc:date>
    </item>
    <item>
      <title>Re: Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204343#M16979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Daniel,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I meant not physical limitation of S08 with LAP/MMU, but Codewarrior limitation.&amp;nbsp;Code below compiles well but due to 16k page size limit doesn't link with L1102 error. There's plenty of free flash available, but data has to fit one of free PGED_ROM SEGMENT's .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#include &amp;lt;mmu_lda.h&amp;gt;&lt;/P&gt;&lt;P&gt;#pragma push&lt;BR /&gt;#pragma CONST_SEG __LINEAR_SEG PAGED_ROM&lt;BR /&gt;const char arr[17000] =&lt;BR /&gt;{1,2,3&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;#pragma pop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void main(void) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; __LOAD_LAP_ADDRESS(arr);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is similar on S12X. Project wizard default PRM file defines many paged flash segments. Without modifications in prm file It is not possible to allocate &amp;gt;16k array/object in paged flash and access it using global addressing until you combine few segments into single big segment. It is good CW for S12X treats address followed by 'G as global address, else I don't know&amp;nbsp;how it would&amp;nbsp;be possible do define long segments. After I combine few 16k segments into bigger one, I can allocate and access &amp;gt;16k objects. Does CW for S08 understand 'L - linear addresses in PRM files? If not, then I still think that linear flash is fragmented using Codewarrior, because no object in paged flash can cross (adr % 0x4000) == 0 boundary.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Gap in nonbanked flash is not a problem for small objects, but how would you allocate object that doesn't fit the biggest available segment?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jun 2010 00:44:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204343#M16979</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-06-02T00:44:29Z</dc:date>
    </item>
    <item>
      <title>Re: Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204344#M16980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Codewarrior supports to allocate objects &amp;gt; 16k (up to the flash size the S08 actually).&lt;/P&gt;&lt;P&gt;Use&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PPAGE_4 &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;0x10000'F TO 0x1FFFF'F;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;    PPAGE_4                  =  READ_ONLY    0x10000'F TO 0x1FFFF'F;&lt;/PRE&gt;&lt;P&gt;The 'L is used as address space suffix for logical for the S12 and as the semantic of the S12 logical is quite different to the linear address space of the S08, so 'F for Flash was defined.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With the 'F syntax the S08 supports bigger objects that the S12, for the S12 there is still the 64k boundary even when using global addressing. For the S08, no such boundary exists.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jun 2010 02:55:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204344#M16980</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2010-06-02T02:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204345#M16981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Daniel, thanks for 'F ! 'F of course removes 16k object size limitation. Any pointers for how to find such details about linker or PRM file? Search for PRM or for 'F&amp;nbsp;suggests a lot, but not what I'm looking for.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jun 2010 11:21:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204345#M16981</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-06-02T11:21:18Z</dc:date>
    </item>
    <item>
      <title>Re: Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204346#M16982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In MCU 10, it is used in the sample and mentioned in a note in here:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CodeWarrior for Microcontrollers V10.0 &amp;gt; HCS08/RS08 for Microcontrollers &amp;gt; HC(S)08 Build Tools Reference Manual &amp;gt; Banked Memory Support &amp;gt; Linear Memory Space&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jun 2010 21:32:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204346#M16982</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2010-06-02T21:32:00Z</dc:date>
    </item>
    <item>
      <title>Re: Constants in banked ROM</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204347#M16983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;I need to use a &lt;STRONG&gt;9S08QE128&lt;/STRONG&gt; in production and write software for this device. We have the parts in stock. My application uses arrays that surpass the boundaries of a page segment. But the complete program ( code + data)&amp;nbsp; takes less than 64K of FLASH. The upper half of the available 128 K FLASH is not needed.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;I have read the LAP dictionary application note, compiled the application and ran it. I understand the method used but it does no fit my needs and it is complicated in my case. I have read the previous post, but as I am new to this paged memory processor, the linker pragmas and commands still confuse me.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;In my case, I need to instruct the compiler and linker to see the memory map as just a plain 64K memory space and allow the tool to place code and data across this space, ignoring the paging mechanism. I don't know if this is really possible.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;My guess is: if the paged memory PPAGE2 is set at the Paging Window out of reset, the complete memory address range between CPU memory 0x2080 and 0xFFFF could be addressed naturally.&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;So I changed the .PRM file to look like this:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="courier new,courier"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080" face="courier new,courier"&gt;/* unbanked FLASH ROM */&lt;BR /&gt;&lt;BR /&gt;ROM&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; 0x2080 TO 0xFFAD; /* almost full 64K map */&lt;BR /&gt;//ROM&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; 0x2080 TO 0x7FFF;&lt;BR /&gt;//ROM1&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; 0xC000 TO 0xFFAD;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;The following declaration compiles and links with no errors:&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#003300"&gt;/* example of array declaration */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#003300"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#003300"&gt;static const char myarray[50500] = { 10,20,30,40,50,60,70,80,90,100 };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;I can see the array correctly allocated in FLASH as listed in the .MAP file&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#003300" face="courier new,courier"&gt;****************************************************************************&lt;BR /&gt;SECTION-ALLOCATION SECTION&lt;BR /&gt;Section Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; From&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Segment&lt;BR /&gt;----------------------------------------------------------------------------&lt;BR /&gt;.data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; R/W&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x103&amp;nbsp;&amp;nbsp; RAM&lt;BR /&gt;.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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 138&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2080&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2109&amp;nbsp;&amp;nbsp; ROM&lt;BR /&gt;.startData&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x210A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x211B&amp;nbsp;&amp;nbsp; ROM&lt;BR /&gt;.rodata&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x211C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE65F&amp;nbsp;&amp;nbsp; ROM&lt;BR /&gt;.text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 499&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE660&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE852&amp;nbsp;&amp;nbsp; ROM&lt;BR /&gt;.copy&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE853&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE85C&amp;nbsp;&amp;nbsp; ROM&lt;BR /&gt;.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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 896&amp;nbsp;&amp;nbsp; N/I&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1D00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x207F&amp;nbsp;&amp;nbsp; MY_STK&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#003300" face="courier new,courier"&gt;----------------------------------------------------------------------------&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="courier new,courier"&gt;Is this a good procedure ? Is there some other better way ?&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="courier new,courier"&gt;I will very much appreciate your valuable opinions.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="courier new,courier"&gt;Kind regards&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Feb 2011 04:29:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Constants-in-banked-ROM/m-p/204347#M16983</guid>
      <dc:creator>BooleanBob</dc:creator>
      <dc:date>2011-02-11T04:29:29Z</dc:date>
    </item>
  </channel>
</rss>

