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