assembler III
Masz problem? Zapytaj na forum elektroda.pl
From: "Bound" <Info_at_nospam_nsc.pl>
Subject: assembler III
Date: Fri, 30 Nov 2001 16:57:25 +0100
Witam...
Otrzymalem odpowiedz ... ale nadal nie wiem jak to zrobic ........., wiec
pytanie do pana Andrzeja
w moim ukladzie pamiec flash jest bezposrednio podlaczona do 89c52 (a0-a15)
natomiast a16 a17 a18 (dla 29c040)
pobierane sa z p1 , dzieki za przeslanie fragmentu kodu w C ale nie bardzo
go rozumiem .. moze powiem Ci co wiem o
pamiciach flash ...
dla 29c010 jesli chodzi o programowanie pamiec podzielona jest na 1024
sektory po 128 bajtow
adresy sektorow podaje sie do a7-a15 a adresy bajtow w sektorach do a0-a6
wiec wydaje mi sie ze jesli bede chcial zaprogramowac np. 1 sektor pamieci
wychodze ze wzoru
0x80*sektor (1sektor=0x80, drugi 0x100...nastepny 0x180 itd)
petla programujaca juz poszczegolne bajty byla by taka:
sektor =1 (od 1 do 1024)
sektor = sektor*0x80
teraz petla
for adres= 0 to 127
inp sektor+adres , wartoscdozapisu (inp to pakie poke :)) )
next (zwieksz
wartosc adres o 1)
nie rozumiem dzialania tych lini:
#define FLASH ((char *)(0x010000)) ( co oznacz to 0x010000 (0x10) ???
tego tez nie rozumiem :
do
{ i=FLASH[adres]&0x40; czy &=and ? dlaczego z 0x40 ?
j=FLASH[adres]&0x40;
} while(i^j);
i co robi ten warunek ?