Re: String array in ROM gives error in spite of following example code.

Royce Pereira <[email protected]>
Newsgroups gmane.comp.hardware.avr.gcc
Message-ID <CACzHkngg=JMoKtb6iiC+0JTjVyjbpvcTUebdWgkYK3hBP9tdTA@mail.gmail.com>
Sorry, the 'word' type means 'unsigned integer'.

I have a header that defines 'word'. :-)

On Thu, Jun 12, 2014 at 4:08 PM, Royce Pereira <[email protected]> wrote:
> I found that this does not throw an error:
>
> const word pgtmp_msg[]    PROGMEM =
>    { ptmpUP_msg, ptmpDN_msg,  ptmpCLG_msg,} ;
>
> but it does give a warning:
>
> warning: initialization makes integer from pointer without a cast
> [enabled by default]
>   { ptmpUP_msg, ptmpDN_msg,  ptmpCLG_msg,};
>     ^
> Is there a proper way of doing this, now that the libc example too is
> inaccurate ?
>
> On Thu, Jun 12, 2014 at 4:04 PM, Royce Pereira <[email protected]> wrote:
>> Francois,
>>
>> No, that does not work.
>>
>> In fact, it was *exactly* what i was using before (which was not as
>> per the libc examples).
>>
>> But it gave a similar error, so i tried following the libc example exactly.
>>
>> But still no luck.
>>
>>
>> On Thu, Jun 12, 2014 at 3:59 PM, Francois Lorrain
>> <[email protected]> wrote:
>>> Hello,
>>>
>>> Newer version of gcc have changed the progmem behaviour, it cannot be
>>> applied to typedef anymore if I remember well.
>>>
>>> const char * pgtmp_msg[] should solve your issue
>>>
>>> Regards
>>>
>>> Francois
>>>
>>>
>>> On Thu, Jun 12, 2014 at 12:23 PM, Royce Pereira <[email protected]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I recently updated WinAVR to a newer version of the AVR-GCC toolchain,
>>>> downloaded from the Atmel site.
>>>>
>>>> My version is this:
>>>>
>>>> avr-gcc (AVR_8_bit_GNU_Toolchain_3.4.3_1072) 4.8.1
>>>>
>>>> My code was compiling without errors before, but with this version, it
>>>> is giving errors in spite of following the instructions in the faq
>>>> section of the avr-libc document.
>>>> //---------------------------------------------
>>>> #include <avr/io.h>
>>>> #include <avr/pgmspace.h>
>>>>
>>>> const char ptmpUP_msg[]      PROGMEM = "Upper Temp" ;
>>>> const char ptmpDN_msg[]      PROGMEM = "Lower Temp" ;
>>>> const char ptmpCLG_msg[]     PROGMEM = "Chiller Temp" ;
>>>>
>>>> PGM_P  pgtmp_msg[]    PROGMEM =
>>>>    { ptmpUP_msg, ptmpDN_msg,  ptmpCLG_msg,} ;
>>>>
>>>> //------------------------------------------------------
>>>> The above code gives the following error:
>>>>
>>>> error: variable 'pgtmp_msg' must be const in order to be put into
>>>> read-only section by means of  '__attribute__((progmem))'
>>>> //-----------------------------------------------------
>>>>
>>>> But I have followed the avr-libc example exactly.
>>>> So why is this error thrown and whats the correct way to do this ?
>>>>
>>>> Thank You.
>>>> --
>>>> Best Regards,
>>>>
>>>> -- Royce Pereira
>>>>
>>>> _______________________________________________
>>>> AVR-GCC-list mailing list
>>>> [email protected]
>>>> https://lists.nongnu.org/mailman/listinfo/avr-gcc-list
>>>
>>>
>>
>>
>>
>> --
>> Best Regards,
>>
>> -- Royce Pereira
>
>
>
> --
> Best Regards,
>
> -- Royce Pereira



-- 
Best Regards,

-- Royce Pereira
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.