eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaprogramowanie i kasowanie dwu kostek flash na jednej magistraliRe: programowanie i kasowanie dwu kostek flash na jednej magistrali
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september
    .org!.POSTED!not-for-mail
    From: Pszemol <P...@P...com>
    Newsgroups: pl.misc.elektronika
    Subject: Re: programowanie i kasowanie dwu kostek flash na jednej magistrali
    Date: Fri, 10 Feb 2017 08:55:13 -0600
    Organization: A noiseless patient Spider
    Lines: 41
    Message-ID: <o7kk56$uoi$1@dont-email.me>
    References: <o7ddno$b28$1@dont-email.me> <o7f8jr$e99$1@dont-email.me>
    <o7fpd8$1ujp$1@gioia.aioe.org> <o7frjq$qa8$1@dont-email.me>
    <589c92d3$0$15206$65785112@news.neostrada.pl>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: 8bit
    Injection-Info: mx02.eternal-september.org;
    posting-host="9159b1ba893f0e3d2b5b477c68c4967e";
    logging-data="31506";
    mail-complaints-to="a...@e...org";
    posting-account="U2FsdGVkX19a3fr+OXjao/bgebkFobL5"
    User-Agent: NewsTap/5.2.2 (iPhone/iPod Touch)
    Cancel-Lock: sha1:vFJtKw2W02x5/HZot1JvOR2/Nag= sha1:DMC1dShk0dZeoqTzT9dB3kDSjFg=
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:712960
    [ ukryj nagłówki ]

    Piotr Dmochowski <i...@p...onet.pl> wrote:
    > W dniu 2017-02-08 o 20:31, Pszemol pisze:
    >>
    >> Zerknij proszę jeszcze raz na deklarację wskaźnika pStatus oraz zmiennych
    >> Status1 i Status2.
    >> To są obiekty 32-bitowe a więc obie kostki pamięci odpowiedzialne są za ich
    >> zapis.
    >>
    >
    > while(Status1 = *pStatus, Status2 = *pStatus, (Status1 ^ Status2) & (1
    > << 2))
    > Przepraszam że zawracam głowę, ale jaki jest sens robienia XOR na
    > zmiennych pobierających wartość z tego samego adresu?
    > Tam (praktycznie) zawsze będzie false, chyba że procesor akurat trafi na
    > zmianę statusu drugiej kostki między jednym a drugim odczytem *pStatus,
    > ale z takim szczęściem to lepiej kupony wypełniać niż babrać się w kodzie ;)
    >

    Piotrze, świetne pytanie.
    Bo to jest ciekawy fragment procesu kasowania pamieci flash i zapisu do
    niej.

    Taka pamięć ma wewnątrz sterownik ktory kontroluje te procesy niejako z
    wewnątrz kostki. Obsługujesz go przez wspólną magistralę danych i adresów -
    scalak pracuje w dwu trybach: odczyt danych (wtedy działa jak klasyczny
    ROM) oraz kasowanie/zapis: wtedy uzyskujesz dostep do wewnetrznego
    sterownika umówioną sekwencję bajtôw w roli "sezamie otwórz się!" I wtedy
    możesz wydawać sterownikowi polecenia kasowania/zapisu konkretnych
    lokalizacji pamięci... A sterownik informuje Cie o postepie operacji
    kasowania i o błedach ustawiajac stan bitow szyny danych. Miedzy innymi
    zmienia on stan bitu D6 gdy operacja jest wciaz w toku. Stad w kodzie dwa
    kolejne odczyty i stad użycie sugestii "volatile" do kompilatora aby tych
    dwu odczytów nie "zoptymalizowal" myslac ze są bez sensu, tak jak Ty
    pomyślałes :-))

    Nawiasem mówiąc zmiana testu bitu D2 na bit D6 w czasie kasowania pomogla -
    nie mam juz błędów o ktorych pisałem wcześniej.
    Muszę jeszcze raz się przyjrzeć tym flołczartom z dataszyta :-) i
    przypomnieć sobie dlaczego pisząc ten kod uznałem że testowanie D6 będzie
    dobre w czasie zapisu flash a powinienem testować D2 w czasie kasowania...

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: