<?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>topic Re: CW4.6: 9S12XDP512: Assembly SECTION/SEGMENT problems in CodeWarrior for MCU</title>
    <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184420#M6380</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;The original code used "constants".&lt;BR /&gt;&lt;BR /&gt;So we had tables defined as: (file includes removed, ~ listing)&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;    ORG    $8000Table1:    bla bla (length $10)Table2:    bla bla (length $10)...TableN:    bla bla (length $10)&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Then we used it like so:&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;    LDAA    TableNumUsed    LDAB    $10              ;table length    MUL    ADDD    $8000            ;table base address (assuming PPAGE set)    TFR     D,X    LDAB    TableIndexUsed    LDAA    B,X              ;get actual table entry&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;So, the coder new where the tables were and how to use them, but the compiler/linker couldn't make that association.&lt;BR /&gt;&lt;BR /&gt;Paul&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Oct 2020 09:35:21 GMT</pubDate>
    <dc:creator>paulcsf</dc:creator>
    <dc:date>2020-10-29T09:35:21Z</dc:date>
    <item>
      <title>CW4.6: 9S12XDP512: Assembly SECTION/SEGMENT problems</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184416#M6376</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;SPAN&gt;We are in the process of converting our existing assembly to C. The first step we are trying is to get the existing files to build in Codewarrior. We have several tables of constant data that is placed in flash.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Using Codewarrior, it appears to just ignore the data. The data is in separate files, included into the assembly. Adding SEGMENTS to the linker command file, and trying to use them as SECTIONS in the code isn't working. The tables are present in the listing file, are present in the *.dbg file, but are missing from the *.s19.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Interestingly and irritatingly, the linker doesn't give an error or warning when code/data is assigned to a missing section. However, it typically just puts the code/data into DEFAULT_ROM, which it isn't in this case. I have checked the syntax, the names, everything I can think of with no luck. I have tried changing the names, even shortened them in case there was some length restriction.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is an excerpt of the linker command file:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;SEGMENTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7E8000 TO 0x7EBFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7EC000 TO 0x7EFFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_FC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7F0000 TO 0x7F3FFF; /*&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_FD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0xFD8000 TO 0xFDBFFF; intentionally not defined: =ROM_4000 */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7F8000 TO 0x7F86FF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7F8700 TO 0x7F8DFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7F8E00 TO 0x7F94FF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7F9500 TO 0x7F9BFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7F9C00 TO 0x7FA2FF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7FA300 TO 0x7FA9FF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_F&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0x7FAA00 TO 0x7FBFFF; /*&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_FF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0xFF8000 TO 0xFFBFFF; intentionally not defined: =ROM_C000 */ENDPLACEMENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPAGE_FE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPAGE_FEA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_A;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPAGE_FEB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_B;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPAGE_FEC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_C;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPAGE_FED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_D;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPAGE_FEE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_E;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPAGE_FEF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PG_FE_F;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_ROM&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_FC, PAGE_FB, PAGE_FA, PAGE_F9,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_F7, PAGE_F6, PAGE_F5, PAGE_F4, PAGE_F3, PAGE_F2, PAGE_F1, PAGE_F0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE_EF, PAGE_EE, PAGE_ED, PAGE_EC, PAGE_EB, PAGE_EA, PAGE_E9, PAGE_E8, END&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;And here is an excerpt of the assembly code:&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;FPAGE_FE: SECTION&amp;nbsp; INCLUDE "Table1.ASM"FPAGE_FEA: SECTION&amp;nbsp; INCLUDE "Table2.ASM"FPAGE_FEB: SECTION&amp;nbsp; INCLUDE "Table3.ASM"...&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;And finally an excerpt of the table1.asm:&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;DC.B&amp;nbsp; $B0,$BA,$98,$A8,$B4,$A7,$B5,$89DC.B&amp;nbsp; $B1,$BA,$98,$A8,$B4,$A7,$B5,$89DC.B&amp;nbsp; $B2,$BA,$98,$A8,$B4,$A7,$B5,$89....&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;This all shows up in the listing file, and in the *.dbg file. No errors or warnings are thrown, but the data doesn't get included in the *.s19 file.&lt;BR /&gt;&lt;BR /&gt;Thanks for any help. Paul.&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by paulcsf on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2008-09-09&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;04:44 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:35:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184416#M6376</guid>
      <dc:creator>paulcsf</dc:creator>
      <dc:date>2020-10-29T09:35:18Z</dc:date>
    </item>
    <item>
      <title>Re: CW4.6: 9S12XDP512: Assembly SECTION/SEGMENT problems</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184417#M6377</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Paul,&lt;BR /&gt;&lt;BR /&gt;the linker is only allocating referenced objects, so if nothing is using your tables, they do not get linked.&lt;BR /&gt;So usually there is something which uses the tables, if not (version strings, ...) it can be explicitly&lt;BR /&gt;referenced in a prm ENTRIES block.&lt;BR /&gt;There is also a syntax to link everything in an object file (not sure by heart, something like ENTRIES objectFile.obj:* END, check the manual), but normally I would just list labels (exported with XDEF) in an ENTRIES block.&lt;BR /&gt;&lt;BR /&gt;Check also the map file, I think it lists non used objects, which don't get linked. Adding a label at the start of the section&lt;BR /&gt;just after the SECTION directive may help giving more descriptive names.&lt;BR /&gt;&lt;BR /&gt;Daniel&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Sep 2008 11:19:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184417#M6377</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2008-09-09T11:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: CW4.6: 9S12XDP512: Assembly SECTION/SEGMENT problems</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184418#M6378</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Thank you Daniel.&lt;BR /&gt;&lt;BR /&gt;We use the data by pointers, so it's just a table. I tried adding labels to the tables, but that doesn't work unless it's referenced outside that section.&lt;BR /&gt;&lt;BR /&gt;I ended up using the ENTRIES field, it worked great.&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;ENTRIES   file.asm.o:* END&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;Thanks again, Paul.&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:35:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184418#M6378</guid>
      <dc:creator>paulcsf</dc:creator>
      <dc:date>2020-10-29T09:35:19Z</dc:date>
    </item>
    <item>
      <title>Re: CW4.6: 9S12XDP512: Assembly SECTION/SEGMENT problems</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184419#M6379</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Good that you have it working :smileyhappy:&lt;BR /&gt;&lt;BR /&gt;How do you initialize those pointers?&lt;BR /&gt;I would expect that initial pointer assignment to be the reference which causes the tables to be linked.&lt;BR /&gt;&lt;BR /&gt;Daniel&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Sep 2008 02:02:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184419#M6379</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2008-09-10T02:02:09Z</dc:date>
    </item>
    <item>
      <title>Re: CW4.6: 9S12XDP512: Assembly SECTION/SEGMENT problems</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184420#M6380</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;The original code used "constants".&lt;BR /&gt;&lt;BR /&gt;So we had tables defined as: (file includes removed, ~ listing)&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;    ORG    $8000Table1:    bla bla (length $10)Table2:    bla bla (length $10)...TableN:    bla bla (length $10)&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Then we used it like so:&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;    LDAA    TableNumUsed    LDAB    $10              ;table length    MUL    ADDD    $8000            ;table base address (assuming PPAGE set)    TFR     D,X    LDAB    TableIndexUsed    LDAA    B,X              ;get actual table entry&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;So, the coder new where the tables were and how to use them, but the compiler/linker couldn't make that association.&lt;BR /&gt;&lt;BR /&gt;Paul&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:35:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/CW4-6-9S12XDP512-Assembly-SECTION-SEGMENT-problems/m-p/184420#M6380</guid>
      <dc:creator>paulcsf</dc:creator>
      <dc:date>2020-10-29T09:35:21Z</dc:date>
    </item>
  </channel>
</rss>

