<?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: how to allocate and declare const string messages in CodeWarrior for MCU</title>
    <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205298#M7891</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;#pragma CONST_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You should restore placement of defaultt near strings to ROM_C000 or to ROM_4000.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRINGS INTO ROM_C000;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000ff"&gt;MYCONSTANTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO PAGE_FE;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;static const char __far mess_1_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "HELLO WORLD";&lt;BR /&gt;static const char __far mess_2_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "I NEED HELP";&lt;BR /&gt;static const char __far mess_3_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "FOR MY PROGRAMM";&lt;BR /&gt;static const char __far mess_4_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "THANK YOU";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;const char __far * const __far texte_menu_FRANCAIS[] = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_1_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_2_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_3_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_4_FRANCAIS&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To optimize access times you can move quite small texte_menu_FRANCAIS to nonbanked ROM, kepping tons of strings in MYCONSTANTS segment:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;static const char __far mess_1_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "HELLO WORLD";&lt;BR /&gt;static const char __far mess_2_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "I NEED HELP";&lt;BR /&gt;static const char __far mess_3_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "FOR MY PROGRAMM";&lt;BR /&gt;static const char __far mess_4_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "THANK YOU";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;const char&amp;nbsp;* const __far texte_menu_FRANCAIS[] = {&amp;nbsp; // strings in MYCONSTSEG,&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // but texte_menu_FRANCAIS in near seg&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_1_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_2_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_3_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_4_FRANCAIS&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Or even better allocate MYCONSTSEG in ROM_4000 and use fast and small nonbanked data accesses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 12 May 2011 21:06:31 GMT</pubDate>
    <dc:creator>kef</dc:creator>
    <dc:date>2011-05-12T21:06:31Z</dc:date>
    <item>
      <title>how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205293#M7886</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i need help,&lt;/P&gt;&lt;P&gt;i'm working on a project using microcontroler freescale MC9S12DT512&amp;nbsp; S12X familly&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i need to put into the PAGE FE a big table of messages.&lt;/P&gt;&lt;P&gt;so inside my project i declare my table like it :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#pragma CONST_SEG&amp;nbsp; &amp;nbsp;MYCONSTANTS&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define mess_1_FRANCAIS&amp;nbsp;&amp;nbsp; "HELLO WORLD"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define mess_1_FRANCAIS&amp;nbsp;&amp;nbsp; "I NEED HELP"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define mess_1_FRANCAIS&amp;nbsp;&amp;nbsp; "FOR MY PROGRAMM"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define mess_1_FRANCAIS&amp;nbsp;&amp;nbsp; "THANK YOU"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;char* __far const texte_menu_FRANCAIS[] = {&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_1_FRANCAIS,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_2_FRANCAIS,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_3_FRANCAIS,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_4_FRANCAIS&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#pragma CONST_SEG DEFAULT&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So my constant table of messages was created and i put it inside a segment named &lt;STRONG&gt;MYCONSTANTS&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;then i allocate this segment into the &lt;STRONG&gt;PAGE FE&lt;/STRONG&gt;,&lt;/P&gt;&lt;P&gt;to do it i modify the PRM file of my project lije it :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PRESTART,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; STARTUP,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_VAR,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NON_BANKED,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;INTO&amp;nbsp;&amp;nbsp; &amp;nbsp;ROM_C000;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_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; INTO&amp;nbsp;&amp;nbsp; &amp;nbsp;PAGE_E0, PAGE_E1, PAGE_E2, PAGE_E3, PAGE_E4, PAGE_E5, PAGE_E6, PAGE_E7,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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_E8, PAGE_E9, PAGE_EA, PAGE_EB, PAGE_EC, PAGE_ED, PAGE_EE, PAGE_EF,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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_F0, PAGE_F1, PAGE_F2, PAGE_F3, PAGE_F4, PAGE_F5, PAGE_F6, PAGE_F7,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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_F8, PAGE_F9, PAGE_FA, PAGE_FB, PAGE_FC ;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_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; INTO&amp;nbsp;&amp;nbsp; RAM;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_EEPROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp;&amp;nbsp; EEPROM1, EEPROM2;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;MYCONSTANTS, STRINGS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO PAGE_FE;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;END&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;now, after compilation i obtain this in the MAP FILE :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- VARIABLES:&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRING..20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FE89E1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; .rodata1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRING.NG120.FRANCAIS.21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;FE89E2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; .rodata1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRING.V2.19.22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; FE89F1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; .rodata1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRING.NIVEAU.23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FE89F7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; .rodata1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;texte_menu_FRANCAIS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FE8010&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 88E&amp;nbsp;&amp;nbsp;&amp;nbsp; 2190&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; MYCONSTANTS&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so we can see the const messages was inside the PAGE FE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;now i run my project with a debugger and i scope the &lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;texte_menu_FRANCAIS&amp;nbsp;&amp;nbsp;:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;but when i expand my table texte_menu_français i can see the adress of each message&lt;/P&gt;&lt;P&gt;message 1 located at&amp;nbsp; 0x&lt;STRONG style=": ; color: #0000ff;"&gt;7F&lt;/STRONG&gt;89E1&lt;/P&gt;&lt;P&gt;message&amp;nbsp;2 located at&amp;nbsp; 0x7F89E2&lt;/P&gt;&lt;P&gt;message&amp;nbsp;3 located at&amp;nbsp; 0x7F89F1&lt;/P&gt;&lt;P&gt;message&amp;nbsp;4 located at&amp;nbsp; 0x7F89F7&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SO LOOK the begining of the address is not correct i obtain 0x7F for all messages instead of 0xFE&lt;/P&gt;&lt;P&gt;normally i must have oxFE because my map file indicate that messages are in the page FE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SO i don't understand ????&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;to finish i have a function to access to messages with a classical pointer like it :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;uint8 Find_String(uint8 lign, uint16 mes)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; uint8 txt,curseur;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;&amp;nbsp;const char* __far ptr;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = texte_menu_FRANCAIS[mes];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txt = 1;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; while(txt)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txt = *ptr++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so with my pointer i try to access to each letter of my messages but it doesn't work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;please could someone, an expert can help me i don't know what can i do now, i'm working on this proble since 3 days ..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;fabrice&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2011 14:38:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205293#M7886</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2011-05-12T14:38:22Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205294#M7887</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;The problem lies with definition of the table texte_menu_FRANCAIS. You need to inform the compiler that the table is allocated in a banked memory area.&lt;/P&gt;&lt;P&gt;You need to change your pragma as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG&amp;nbsp; FAR MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;address for texte_menu_FRANCAIS[0] shown 0x&lt;STRONG&gt;&lt;FONT color="#0000ff"&gt;7F&lt;/FONT&gt;&lt;/STRONG&gt;89E1, which is the global address encoding for logical address 0xFE89E1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So your addresses are all correct.&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>Thu, 12 May 2011 16:49:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205294#M7887</guid>
      <dc:creator>CrasyCat</dc:creator>
      <dc:date>2011-05-12T16:49:19Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205295#M7888</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;it's WONDERFULL&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MR CRAZYCAT you can't imagine the power of the help you just give me&lt;/P&gt;&lt;P&gt;i don't know how to tell you how i'm happy of your very necessary help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;without you i probably don't find the solution&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;crazycat, receive my best thank's from a french programmer who lost a lot of hair with this problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;crazy cat you are a god, guru of code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;fabrice&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2011 17:12:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205295#M7888</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2011-05-12T17:12:57Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205296#M7889</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;fab48,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MC9S12DT512&amp;nbsp; is not from S12X family, though&amp;nbsp;your PRM looks like you are working with&amp;nbsp;MC9S12&lt;FONT color="#ff0000"&gt;&lt;STRONG&gt;X&lt;/STRONG&gt;&lt;/FONT&gt;DT512, not&amp;nbsp;with MC9S12DT512.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You should not place default STRINGS into banked segment (PAGE_FE), unless you are using large memory model. Else other non far strings won't be accessible properly.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;char* __far const texte_menu_FRANCAIS[]&amp;nbsp; is an array of const far pointers to non-far strings. Array of pointers is usually small and could be non-far for better size and speed performance. I guess you need either far or non-far array of pointers to far strings:&lt;/P&gt;&lt;P&gt;const char __far * __far const texte_menu_FRANCAIS[];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But the problem is how to initialize this array with far strings. I don't know how to tell compiler to allocate "HELLO WORLD" initializer in non default STRINGS segment. You could replace defines with&amp;nbsp;far strings&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG __FAR_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;const __far char mess_1_FRANCAIS[]&amp;nbsp;&amp;nbsp; "HELLO WORLD"; // now string&amp;nbsp;should be allocated in MECONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you have up to 16k of strings, then why don't you allocate them in nonbanked segment 4000-7fff ? It would be much faster to access such strings.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2011 17:17:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205296#M7889</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2011-05-12T17:17:30Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205297#M7890</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;it's a mistake my processor is a X? LIKE S12X&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;currently i try to migrate my project from&lt;/P&gt;&lt;P&gt;MC9S12XDG128&lt;/P&gt;&lt;P&gt;TO&lt;/P&gt;&lt;P&gt;MC9S12XDT512&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;now i have more memory i can put all languages in the same software.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;JUST A QUESTION :&lt;/P&gt;&lt;P&gt;when i add the modifier FAR to my segment (see my first post) like crazycat said me :&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG &lt;FONT color="#0000ff"&gt;FAR&lt;/FONT&gt; MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the software work but the compiler cry me a warning :&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT color="#0000ff"&gt;&lt;STRONG&gt;Warning : C3803: Illegal segment attribute FAR supported for CODE segments only. Use DPAGE/EPAGE/GPAGE/RPAGE/PPAGE for DATA/CONST/STRING&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000ff"&gt;&lt;STRONG&gt;segments&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080"&gt;&lt;STRONG&gt;t&lt;/STRONG&gt;&lt;/FONT&gt;he memory model of my project is banked;&lt;/P&gt;&lt;P&gt;what i must do ?&lt;/P&gt;&lt;P&gt;I HAVE READ THE DOCUMENT ABOUT IT on freescale knowledge base but it's not very clear for me&lt;/P&gt;&lt;P&gt;if someone can tell me what to do witha&amp;nbsp; little explanation&lt;/P&gt;&lt;P&gt;thank&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;fabrice&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2011 20:16:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205297#M7890</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2011-05-12T20:16:57Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205298#M7891</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;#pragma CONST_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You should restore placement of defaultt near strings to ROM_C000 or to ROM_4000.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRINGS INTO ROM_C000;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000ff"&gt;MYCONSTANTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO PAGE_FE;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;static const char __far mess_1_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "HELLO WORLD";&lt;BR /&gt;static const char __far mess_2_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "I NEED HELP";&lt;BR /&gt;static const char __far mess_3_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "FOR MY PROGRAMM";&lt;BR /&gt;static const char __far mess_4_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "THANK YOU";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;const char __far * const __far texte_menu_FRANCAIS[] = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_1_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_2_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_3_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_4_FRANCAIS&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To optimize access times you can move quite small texte_menu_FRANCAIS to nonbanked ROM, kepping tons of strings in MYCONSTANTS segment:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;static const char __far mess_1_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "HELLO WORLD";&lt;BR /&gt;static const char __far mess_2_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "I NEED HELP";&lt;BR /&gt;static const char __far mess_3_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "FOR MY PROGRAMM";&lt;BR /&gt;static const char __far mess_4_FRANCAIS[]=&amp;nbsp;&amp;nbsp; "THANK YOU";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;const char&amp;nbsp;* const __far texte_menu_FRANCAIS[] = {&amp;nbsp; // strings in MYCONSTSEG,&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // but texte_menu_FRANCAIS in near seg&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_1_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_2_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_3_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_4_FRANCAIS&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Or even better allocate MYCONSTSEG in ROM_4000 and use fast and small nonbanked data accesses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2011 21:06:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205298#M7891</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2011-05-12T21:06:31Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205299#M7892</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please disregard suggestion to give each far string the name. I forgot about STRING_SEG.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;#pragma STRING_SEG __GPAGE_SEG MYCONSTANTS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define&amp;nbsp;mess_1_FRANCAIS&amp;nbsp;&amp;nbsp; "HELLO WORLD"&lt;BR /&gt;#define&amp;nbsp;mess_2_FRANCAIS&amp;nbsp;&amp;nbsp; "I NEED HELP"&lt;BR /&gt;#define mess_3_FRANCAIS&amp;nbsp;&amp;nbsp; "FOR MY PROGRAMM"&lt;BR /&gt;#define&amp;nbsp;mess_4_FRANCAIS&amp;nbsp;&amp;nbsp; "THANK YOU"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;const char __far * const __far texte_menu_FRANCAIS[] = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_1_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_2_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_3_FRANCAIS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mess_4_FRANCAIS&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#pragma STRING_SEG DEFAULT&lt;/P&gt;&lt;P&gt;#pragma CONST_SEG DEFAULT&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 May 2011 12:47:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205299#M7892</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2011-05-13T12:47:32Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205300#M7893</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;U&gt;&lt;EM&gt;Kef,&amp;nbsp;&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;thank you for your help and the time you spend to help me.&lt;/P&gt;&lt;P&gt;can i ask you an other thing :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you seems to know very well all this near far gpage an relocatable problems,&lt;/P&gt;&lt;P&gt;i came from MICROCHIP world my society decide to work with frescale micro, as i said it's von-neuman architecture to compare with harvard of microchip, it's the reason why i'm so embarassed.&lt;/P&gt;&lt;P&gt;did you know where i can find a very good description with all keyword of this, like an application note for example or a tuturial or some other document well explained because the datasheet i have are difficult to understand.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;perhaps you have a link for example ?&lt;/P&gt;&lt;P&gt;for me asking help for you is a good solution because what you said is right and works on my proket but i can't ask you each time i would like to know by mysefls if i can so if you know whre i can have information about all this banked unbanked, memrory model, far near etccc.&lt;/P&gt;&lt;P&gt;it will be better and necessary for me to study this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;once more KEF i don't know who you are and where you come from (probaly AMERICA) but receive my best thnk's for the help and the time you give me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;fabrice (from FRANCE)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 May 2011 12:51:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205300#M7893</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2011-05-14T12:51:48Z</dc:date>
    </item>
    <item>
      <title>Re: how to allocate and declare const string messages</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205301#M7894</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know book to recommend.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CPU12X reference manual is important reading.&amp;nbsp;You&amp;nbsp;should read at least everything about&amp;nbsp;available addressing modes (Chapter 3). Further, Appendix A Instruction Reference or Chapter 5 Instruction Glossary may tell you which addressing takes less code space and which takes less CPU cycless (see Access Deails - more letters means more CPU cycles).&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/ref_manual/S12XCPUV2.pdf" rel="nofollow" target="_blank"&gt;http://cache.freescale.com/files/microcontrollers/doc/ref_manual/S12XCPUV2.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You need of course to understand memory map of particular MCU.&lt;/P&gt;&lt;P&gt;The rest can be found in CW online help or in &amp;lt;CW install folder&amp;gt;\Help\PDF (which are more recent then CW help) and in &amp;lt;CW install folder&amp;gt;\Release Notes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 May 2011 19:47:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/how-to-allocate-and-declare-const-string-messages/m-p/205301#M7894</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2011-05-14T19:47:32Z</dc:date>
    </item>
  </channel>
</rss>

