eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika[ARM] Obsługa peryferiów poprzez API (wskazniki do struktury) › Re: Obsługa peryferiów poprzez API (wskazniki do struktury)
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin2!goblin.stu.neva.ru!feeder3.cambriumusenet.nl!feed.tweaknews.nl
    !postnews.google.com!v24g2000vbx.googlegroups.com!not-for-mail
    From: slawek7 <s...@w...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Obsługa peryferiów poprzez API (wskazniki do struktury)
    Date: Mon, 28 May 2012 11:13:59 -0700 (PDT)
    Organization: http://groups.google.com
    Lines: 53
    Message-ID: <9...@v...googlegroups.com>
    References: <f...@f...googlegroups.com>
    <y80629n75j0s$.1q2xhw0muf74c.dlg@40tude.net>
    <a...@q...googlegroups.com>
    <jpqv9u$l13$1@node2.news.atman.pl> <jpr05h$put$1@inews.gazeta.pl>
    <jpr0dm$lnd$2@node2.news.atman.pl>
    <a...@s...googlegroups.com>
    <jpto68$no7$1@inews.gazeta.pl>
    NNTP-Posting-Host: 78.88.87.60
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1338229273 10181 127.0.0.1 (28 May 2012 18:21:13 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Mon, 28 May 2012 18:21:13 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: v24g2000vbx.googlegroups.com; posting-host=78.88.87.60;
    posting-account=j5enngoAAABw4LcjYURuGASXEkSv9zns
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.28)
    Gecko/20120306 Firefox/3.6.28,gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:632081
    [ ukryj nagłówki ]

    On 27 Maj, 19:27, Portal <m...@t...poczta.onet.pl> wrote:
    > On 05/27/2012 04:37 PM, slawek7 wrote:
    >
    > > Zgadza się to co piszecie i zrozumiałem o co chodzi.
    > > Przecież to jest coś takiego
    > > (*(uint32_t*)0x40010C10)=0x0000000f;
    > > Powoduje to bezpośredni dostęp do rejestru i operację na porcie PB.
    >
    > > Natomiast nie rozumiem zapisów które pojawiają się dokumentacji.
    > > Adres jest 32 bitowy więc stąd zapewne pierwsze rzutowanie ale pojawia
    > > się też informacja że do rejestru można się dostać
    > > albo jako word, albo jako half-word, albo jako byte? O co tu chodzi?
    > > Jaki adres i jakie rzutowanie wtedy się robi i co jak poda się liczbę
    > > word 32 bitową zamiast wymaganą half-word 16 bitową?
    >
    > Chyba mylisz trochę postać adresu z typem danych siedzących pod tym adresem.
    > Operacja:
    > (*(uint32_t*)0x40010C10)=0x0000000f;
    > oznacza tyle co zapisz wartość 0x0000000f pod adres 0x40010C10 traktując
    > ją (wartość, nie adres) jako liczbę 32-bitową bez znaku.
    >
    > Jeżeli zrobisz podobną operację, ale w postaci:
    > (*(uint8_t*)0x40010C10)=0x0f;
    > to pod ten sam adres zapiszesz tylko pojedynczy bajt, pozostawiając
    > pozostałe trzy bajty 32-bitowego słowa zapisanego pod adresem 0x40010C10
    > bez zmian.

    Chyba rozumiem. Bo czy to znaczy że jeśli jakiś rejestr 32 bitowy ma
    możliwość zapisania go wartością 16 bitowa bo tak podaje dokumentacja
    to chcąc dokonać takiego zapisu liczbą 16 bitową używam rzutowania 16
    bitowego w postaci (*(uint16_t*)0x40010C10)=0x1234;
    Natomiast jeśli rejestr musi byc zapisany tylko wartością 32 bitowa bo
    tak każe dokumentacja to u zywam (*(uint32_t*)0x40010C10)=0x12345678;

    Ale mam wątpliwość, czy czasem to rzutowanie nie oznacza tylko
    arytmetyki wskaźników? Tzn za następny wskazywany obszar bęzie większy
    albo o 2 bajty albo o 4, jak w przypadku zwykłej arytmetyki wskaźników
    np
    uint16_t *ptr; // wskaźnik na liczbę 16 bitową
    teraz zwiększamy adres o jeden ptr++; czyli tak naprawdę wskaźnik
    skacze o dwa a nie o jeden adres?

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: