Re: C kérdés

Bali Zoltan eltexto at freemail.hu
Sun Feb 20 13:47:07 CET 2005


Több proba után egy cseresznye:

A compiler extra options-nál a --string_literals_in_flash
opcio használatával jól müködik, casting-olni sem kell, sot
az init stringeket nem is fogadja el csak a
 __farflash const char __farflash *MainMenu[]= {
vagy
const char __farflash *MainMenu[]= {
definiciókkal.

Viszont ezt még továbra is a ramba helyzi:
const  char msg1[] = {"POWER On"};

A printf,sprintf.. stb csak a _P lib-el muködik pl.
sprintf_P(buffer, "Hello Zoli %d, %d", a, b);

Hátha másnak is segit valamit.

Üdv  Zoli

----- Original Message -----
From: "Bali Zoltan" <eltexto at freemail.hu>
To: <avr-hun at x-dsl.hu>
Sent: Wednesday, February 16, 2005 20:35
Subject: Re: C kérdés


RollBack  gratula.

A forditó igy már valóban elfogadja, de nem jó.
Ha debug alatt megnézem a  MainMenu-t akkor
a kovetkezö a kép:
( a póbánál a pointereket a ramba hagytam, nem
akartam további bonyit bevinni a dologba.)

Expression                         Value               Location                   Type
-------------------------------------------------------------------------------
- MainMenu                    <array>           DATA:0x3F0        char __farflash
  + [0]                             0x3B0             DATA:0x3F0        char __farflash
      -                                  0x06             CODE: 0x3B0       char

Az elso string(és atöbbi is) viszont a ramban van továbra is, a 0x3B0-as cimen.
A tipuskonverziót elvégezte úgy hogy az aggregátumokat a ramba
helyezte el, és a cimét felhasználva a pointer tipusát   megváltoztatta
a kódra mutató tipusra.

Valami további ötlet ?






More information about the Elektro mailing list