RTV forum PL | NewsGroups PL

Jak zadeklarować zmienną w zewnętrznej pamięci na ATmega64 zamiast 8051?

XDATA i ATmega

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zadeklarować zmienną w zewnętrznej pamięci na ATmega64 zamiast 8051?

Look
Guest

Sat Dec 31, 2005 12:12 pm   



hey.

przerabiam właśnie program z 8051 na ATmege i mam problem z pewną
deklaracją.
u_int xdata Loc_var;
pytanie co zrobić z tym xdata??
wyczytałem ze tak się deklaruje zmienną w zewnętrznej pamięci dla 8051.
ja przerabiam to na ATmege64 i też mam do niej doczepioną zewnętrzną
pamięć i chciałbym zrobić przez analogie tak samo.
Czy w gcc jest jakiś sposób na taką deklaracje??

Pozdrawiam.

Look
Guest

Sat Dec 31, 2005 1:16 pm   



no więc kombinuje nadal i tak sobie wymyśliłem:
ta moja zewnętrzna pamięć to tak naprawde urządzenie do którego musze
dokonać wpisów.
więc zmienne które zadeklaruje muszą być w przestrzeni adresowej tego
urządzenia.

#define OFFSET 0x8000

unsigned int *p = (unsigned int*) (OFFSET+1)
*p = 0x11;

myśle że takie rozwiązanie powinno zadziałać.
OFFSET to rozmiar pamięci SRAM mojej ATmegi.
a zapis
*p = 0x11;
powinien być już wpisem do pamięci mojego urządzenia.
czy dobrze kombinuje??
proszę o jakieś inne sugestie jeśli to możliwe.

Pozdrawiam.

Piotr
Guest

Fri Jan 06, 2006 5:22 pm   



Użytkownik "Look" napisał w wiadomości

Quote:
no więc kombinuje nadal i tak sobie wymyśliłem:
ta moja zewnętrzna pamięć to tak naprawde urządzenie do którego musze
dokonać wpisów.
więc zmienne które zadeklaruje muszą być w przestrzeni adresowej tego
urządzenia.

#define OFFSET 0x8000

unsigned int *p = (unsigned int*) (OFFSET+1)
*p = 0x11;

myśle że takie rozwiązanie powinno zadziałać.
OFFSET to rozmiar pamięci SRAM mojej ATmegi.
a zapis
*p = 0x11;
powinien być już wpisem do pamięci mojego urządzenia.
czy dobrze kombinuje??

Dobrze kombinujesz - to nprawde dziala Smile, ja korzystalem z ATMEGA128 i
robilem podobnie
przykladowo dla tego uP dostep do kosci USB podpietej do magistrali -
robilem tak:

#define OFFSET 0x1100

void writeUsb(U8 Adres,U8 Dana)
{

U8 *portBase = (U8*)OFFSET;
*(portBase+Adres) = Dana;
}

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zadeklarować zmienną w zewnętrznej pamięci na ATmega64 zamiast 8051?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map