• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Adresowanie rejestrów allwinner a20

Object Storage Arubacloud
+3 głosów
155 wizyt
pytanie zadane 20 czerwca 2016 w C i C++ przez Semtex Początkujący (310 p.)
edycja 20 czerwca 2016 przez Semtex

Witam serdecznie! Mam na imię Przemek właśnie dołączyłem do grona, więc standardowo proszę o wyrozumiałość. ;D
W datasheet procesora a20 podany jest adres bazowy i offset do konkretnego rejestru:

baza  0x01C20800 (rozmiar 1K)
offset  0x0000010C

Niby prosta sprawa a jednak aby się tam dostać trzeba podzielić offset i adres przez 4 (znalazłem to w kodzie przykładowym linie z tym dzieleniem mają komentarz). Kod działa w przeciwieństwie do mojego w którym nie podzieliłem przez te nieszczęsne 4. Czy orientuje się ktoś dlaczego? Czy ma to związek z rozmiarem strony (4K) i rozmiarem bazy (1K)?

#define PAGESIZE 4096
#define BASE 0x01C20800
#define OFFSET (0x0000010C / 4) // dlaczego -> /4

volatile uint32_t *memory;

int main(int argc, char **argv) {

int fd;
fd = open("/dev/mem", O_RDWR);

uint32_t mask = (~(PAGESIZE - 1));
uint32_t adres = BASE & mask;

uint32_t *map = mmap(0, PAGESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, adres);

memory = (volatile uint32_t *)map + ((BASE & ~mask) / 4); // dlaczego -> /4

*(memory + OFFSET) = /*jakies bity*/ ;

Wielkie dzięki z góry za wszelką pomoc i proszę nie odsyłajcie mnie do literatury bo przeczytałem już tego tony i naprawdę czas na trochę praktyki po takiej porcji teorii. Ogólnie zagadnienie w miarę rozumiem, tylko tego nie potrafię wyszukać.

komentarz 20 czerwca 2016 przez niezalogowany
po pierwsze to bardzo ładnie zacząłeś więc gratuluję :) Nie każdy początkujący robi tak jak Ty :)

1 odpowiedź

0 głosów
odpowiedź 20 czerwca 2016 przez Semtex Początkujący (310 p.)
edycja 20 czerwca 2016 przez Semtex
Dziękuję :) szkoda, że takie słabe zainteresowanie, mogę się nie doczekać odpowiedzi...

Podobne pytania

0 głosów
1 odpowiedź 286 wizyt
+1 głos
1 odpowiedź 1,106 wizyt
pytanie zadane 22 kwietnia 2015 w Offtop przez marcin_kub Obywatel (1,420 p.)
0 głosów
1 odpowiedź 252 wizyt
pytanie zadane 5 listopada 2019 w Sieci komputerowe, internet przez ShockOfficial Początkujący (390 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...