[avr-gcc] znow te wskazniki (wrr)
Masz problem? Zapytaj na forum elektroda.pl
From: "Pawel Kurzawa" <groups_at_nospam_kpw.qs.pl>
Subject: [avr-gcc] znow te wskazniki (wrr)
Date: Fri, 5 Nov 2004 11:13:20 +0100
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 :(
--
--
Best regards
K_at_nospam_pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
From: "Pawel Kurzawa" <groups_at_nospam_kpw.qs.pl>
Subject: Re: [avr-gcc] znow te wskazniki (wrr)
Date: Fri, 5 Nov 2004 11:43:45 +0100
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_at_nospam_pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: [avr-gcc] znow te wskazniki (wrr)
Date: Fri, 05 Nov 2004 12:37:11 +0100
On Fri, 5 Nov 2004 11:13:20 +0100, Pawel Kurzawa wrote:
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.
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.
From: "Pawel Kurzawa" <groups_at_nospam_kpw.qs.pl>
Subject: Re: [avr-gcc] znow te wskazniki (wrr)
Date: Fri, 5 Nov 2004 14:45:27 +0100
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);
wywolanie:
FlashMem_write_block (&Store, &Flash_Addr, sizeof(Store));
--
--
Best regards
K_at_nospam_pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------