-
Data: 2012-05-28 20:14:16
Temat: Re: Obsługa peryferiów poprzez API (wskazniki do struktury)
Od: slawek7 <s...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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?
Następne wpisy z tego wątku
- 28.05.12 20:14 slawek7
- 28.05.12 20:13 slawek7
- 28.05.12 21:52 J.F.
- 28.05.12 22:33 Michoo
- 29.05.12 08:13 Portal
- 29.05.12 08:20 Portal
- 29.05.12 20:02 slawek7
- 29.05.12 20:02 slawek7
- 29.05.12 20:09 slawek7
- 29.05.12 20:15 slawek7
- 29.05.12 20:47 RoMan Mandziejewicz
- 29.05.12 21:34 Portal
- 30.05.12 06:30 slawek7
- 30.05.12 08:28 Grejon
- 30.05.12 09:24 Artur M. Piwko
Najnowsze wątki z tej grupy
- Odbiornik ADS-B i wzmacniacze
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-27 Jest porozumienie w sprawie umowy handlowej UE-USA
- 2025-07-27 Dziwne... :)
- 2025-07-27 Czy to jeszcze dziala
- 2025-07-27 Fotele firmy RECARO Aircraft Seating ze Świebodzina dla nowych samolotów LOT
- 2025-07-27 Fotele firmy RECARO Aircraft Seating ze Świebodzina dla nowych samolotów LOT
- 2025-07-26 Elektrownia Siersza w kolejce do zaorania
- 2025-07-26 Odkryte w Polsce złoża ropy i gazu powodują nerwowość u Niemców
- 2025-07-26 Odbiornik ADS-B i wzmacniacze
- 2025-07-26 Next.Gazeta informuje, że od 2029 roku (lub 2030 roku) cyfrowe euro stanie się prawnym środkiem płatniczym w całej UE
- 2025-07-26 Warszawa => Head of Technology <=
- 2025-07-26 Warszawa => Strategic Account Manager <=
- 2025-07-26 Mołdawia. Demokratura zastępuje demokrację.
- 2025-07-26 Prawicowa influencerka Candace Owens zapowiada walkę do końca ,,dla całego świata" [z parą prezydencką Macron]
- 2025-07-26 Next.Gazeta informuje, że od 2029 roku (lub 2030 roku) cyfrowe euro stanie się prawnym środkiem płatniczym w całej UE
- 2025-07-26 Ukraińscy kibice [w trakcie meczu] wzywali do zabijania Serbów