RTV forum PL | NewsGroups PL

Nieustające problemy z kwalifikatorami przy zapisie do Flash w AT45DB011

[avr-gcc] znow te wskazniki (wrr)

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Nieustające problemy z kwalifikatorami przy zapisie do Flash w AT45DB011

Pawel Kurzawa
Guest

Fri Nov 05, 2004 10:13 am   



Witam,
juz mnie szewska pasja dopadla :)

struktura z danymi o pierwszym wolnym adresie we flashu (at45db011)
struct Flash_Addr{
u16 Page_Addr;
u16 Byte_Addr;
};

prototyp:
void FlashMem_write_block (void *Buff, Address_t *Addr, size_t n);

funkcje ma zapisywac dowolna dana od bajtu do struktury. np.

struct Store{
u16 Store_Data;
u16 Store_Time;
u32 Store_Param;
};

wywolanie:
FlashMem_write_block (&Store, &Flash_Addr, sizeof(Store));

no i przy kompilacji wywala:
warning: passing arg 1 of `FlashMem_read_block' discards qualifiers from
pointer target type
warning: passing arg 2 of `FlashMem_read_block' discards qualifiers from
pointer target type

nadmienie tylko ze w funkcji sa modyfikowane zmienne Store oraz Flash_Addr.
Krew mnie zalewa Sad
--
--
Best regards
K@pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------

Pawel Kurzawa
Guest

Fri Nov 05, 2004 10:43 am   



Quote:
void FlashMem_write_block (void *Buff, Address_t *Addr, size_t n);
void FlashMem_write_block (volatile void *Buff, volatile Address_t *Addr,

size_t n);
to wiem ze pomoze, ale czy to jest prawidlowe wyjscie?

--
--
Best regards
K@pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------

J.F.
Guest

Fri Nov 05, 2004 11:37 am   



On Fri, 5 Nov 2004 11:13:20 +0100, Pawel Kurzawa wrote:
Quote:
struktura z danymi o pierwszym wolnym adresie we flashu (at45db011)
struct Flash_Addr{
u16 Page_Addr;
u16 Byte_Addr;
};

Zdefiniowales typ strukturalny, a nie zdefiniowales zmiennej !

Teraz albo:
a) zmieniasz na
struct {
u16 Page_Addr;
u16 Byte_Addr;
} Flash_Addr;

[nie bardzo polecam - zazwyczaj typ strukturalny sie przydaje]

b) zmieniasz na
struct Flash_Addr {
u16 Page_Addr;
u16 Byte_Addr;
} Flash_Buf;

- definiujesz typ "flash_addr" i zmienna "Flash_buf"

c) dodajesz

Flash_Addr Flash_Buf;

Czyli definiujemy zmienna typu Flash_addr - a wiec strukture.

Quote:
wywolanie:
FlashMem_write_block (&Store, &Flash_Addr, sizeof(Store));

no i przy kompilacji wywala:
warning: passing arg 1 of `FlashMem_read_block' discards qualifiers from
pointer target type

Bo mniej wiecej napisales cos typu
FlashMem_write_block (& float, & int , sizeof(float));

Przyznasz chyba ze dwa pierwsze argumenty sa glupota :-)

J.

Pawel Kurzawa
Guest

Fri Nov 05, 2004 1:45 pm   



w sumie chcialem to za bardzo uproscic zeby bylo czytelne i wyszla bzdura.
bo wyglada to tak:

typedef struct {
u16 Page_Addr;
u16 Byte_Addr;
}Address_t;

Address_t Flash_Addr;

prototyp:
void FlashMem_write_block (void *Buff, Address_t *Addr, size_t n);

Quote:
wywolanie:
FlashMem_write_block (&Store, &Flash_Addr, sizeof(Store));



--
--
Best regards
K@pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------

elektroda NewsGroups Forum Index - Elektronika Polska - Nieustające problemy z kwalifikatorami przy zapisie do Flash w AT45DB011

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map