eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaZelety architektury Von Neumannna w uC ARM?
Ilość wypowiedzi w tym wątku: 21

  • 11. Data: 2009-11-07 21:38:00
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: "T.M.F." <t...@n...mp.pl>

    W dniu 07.11.2009 20:09, slawek7 pisze:
    > To jakie są te chwalone zalety pisania programów na ARM w
    > architekturze v. Neumanna?
    > Przecież tak samo mogę to napisać w AVR. To kompilator dba gdzie
    > umieszcza zmienne a ja je tylko deklaruje. wiec o czym mowa w tych
    > zaletach?

    Tylko, ze w przypadku AVR dbaja o to wylacznie kompilatory komercyjne
    (chyba dbaja), gcc niestety nie i stale zadeklarowane jako const laduja
    w SRAM zamiast FLASH. Zreszta w przypadku AVR jest dodatkowy problem -
    inne instrukcje realizuja dostep do SRAM a inne do FLASH, w efekcie
    trzeba miec dwie wersje. No ale nie ma co narzekac, to sa kompromisy w
    8-bitowym mikrokontrolerze. Wprowadzenie ciaglej adresacji spowodowaloby
    koniecznosc uzycia wiekszych niz 16 bitowe wskaznikow, czyli overkill
    dla takiego malego procka.

    --
    Inteligentny dom - http://idom.wizzard.one.pl
    http://idom.sourceforge.net/
    Teraz takze forum dyskusyjne
    Zobacz, wyslij uwagi, dolacz do projektu.


  • 12. Data: 2009-11-07 22:34:41
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: Adam Dybkowski <a...@4...pl>

    slawek7 pisze:

    > Jakie są wady i zalety architektury Von Neumanna w uC ARM np
    > AT91SAM7256.
    > Ostatnio słyszałem o takim stwierdzeniu że ta architektura ma same
    > zalety w pracy uC a porównaniu do architektury Harwardzkiej stosowanej
    > w AVR'ach.
    > Nie było jednak wyjaśnienia tego.
    > Możecie mi wytłumaczyć o co tu chodzi. Ja rozumiem że Von Neumanna to
    > połączenie pamięcie danych i programu w jedną ciągłą ale co mi to daje
    > jako programiście.

    Możesz załadować plik (do pamięci danych) i wykonać go jako program.
    Taka z gruntu prosta operacja jest kompletnie niemożliwa np. w
    procesorach AVR z architekturą harwardzką.

    Druga sprawa to dostęp do danych - np. w funkcji printf podajesz jako
    pierwszy parametr adres ciągu znaków do wypisania. No i w ARMach adres
    to adres - może sobie być w obszarze programu (np. w pamięci Flash),
    może być w danych. A w AVRach to dopiero jest jazda - wymagane są
    oddzielne funkcje pobierające ten ciąg z pamięci danych (printf) oraz z
    pamięci programu (printf_P) i specjalne makra nakazujące umieszczenie
    ciągu znaków w pamięci programu.

    --
    Adam Dybkowski
    http://dybkowski.net/

    Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.


  • 13. Data: 2009-11-07 22:34:49
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: J.F. <j...@p...onet.pl>

    On Sat, 7 Nov 2009 11:09:49 -0800 (PST), slawek7 wrote:
    >To jakie są te chwalone zalety pisania programów na ARM w
    >architekturze v. Neumanna?
    >Przecież tak samo mogę to napisać w AVR. To kompilator dba gdzie
    >umieszcza zmienne a ja je tylko deklaruje. wiec o czym mowa w tych
    >zaletach?

    Nie rozumiesz. Zeby dobrac sie do danych, trzeba w AVR uzyc instrukcji
    LD dla RAM, albo LPM dla programu.

    Jesli w programie odwolujesz sie do zmiennych, to kompilator wie gdzie
    umieszczonych, i uzywa wlasciwych instrukcji.

    Ale jesli piszesz funkcje, ktorej parametrem jest wskaznik/adres
    danej, to ktorego rozkazu ma kompilator uzyc w srodku funkcji ?

    Musialby ambitnie program sledzic, zeby wiedziec z adresem do ktorej
    pamieci jest wywolywana ta funkcja. A przeciez moze byc wywolywana
    wielokrotnie, ze wskaznikami na oba rodzaje pamieci.

    J.



  • 14. Data: 2009-11-07 22:49:54
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: Adam Dybkowski <a...@4...pl>

    J.F. pisze:

    > Nie rozumiesz. Zeby dobrac sie do danych, trzeba w AVR uzyc instrukcji
    > LD dla RAM, albo LPM dla programu.
    >
    > Jesli w programie odwolujesz sie do zmiennych, to kompilator wie gdzie
    > umieszczonych, i uzywa wlasciwych instrukcji.
    >
    > Ale jesli piszesz funkcje, ktorej parametrem jest wskaznik/adres
    > danej, to ktorego rozkazu ma kompilator uzyc w srodku funkcji ?
    >
    > Musialby ambitnie program sledzic, zeby wiedziec z adresem do ktorej
    > pamieci jest wywolywana ta funkcja. A przeciez moze byc wywolywana
    > wielokrotnie, ze wskaznikami na oba rodzaje pamieci.

    W kompilatorze sdcc dla 8051 przyjęto bardziej uniwersalne rozwiązanie -
    we wskaźnikach na dane przekazywana jest oprócz samego adresu również
    informacja o typie pamięci. To niestety zabija sporo wydajności
    (pobranie jednego bajtu takim wskaźnikiem jest w praktyce wywołaniem
    funkcji obsługującej różne typy pamięci).

    --
    Adam Dybkowski
    http://dybkowski.net/

    Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.


  • 15. Data: 2009-11-07 23:01:33
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: J.F. <j...@p...onet.pl>

    On Sat, 07 Nov 2009 23:49:54 +0100, Adam Dybkowski wrote:
    >W kompilatorze sdcc dla 8051 przyjęto bardziej uniwersalne rozwiązanie -
    >we wskaźnikach na dane przekazywana jest oprócz samego adresu również
    >informacja o typie pamięci. To niestety zabija sporo wydajności

    Otoz to. Tez zle.

    J.



  • 16. Data: 2009-11-08 10:15:34
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: "T.M.F." <t...@n...mp.pl>

    > Druga sprawa to dostęp do danych - np. w funkcji printf podajesz jako
    > pierwszy parametr adres ciągu znaków do wypisania. No i w ARMach adres
    > to adres - może sobie być w obszarze programu (np. w pamięci Flash),
    > może być w danych. A w AVRach to dopiero jest jazda - wymagane są
    > oddzielne funkcje pobierające ten ciąg z pamięci danych (printf) oraz z
    > pamięci programu (printf_P) i specjalne makra nakazujące umieszczenie
    > ciągu znaków w pamięci programu.

    Wiele tych niedogownosci jest gcc-specyficznych, bo gcc nie obsluguje
    segmentow pamieci - ale ma sie to wkrotce zmienic. Ale ma to tez zalety
    - w AVR mozesz miec 64kB FLASH i 64kB SRAM i ciagle adresowac je za
    pomoca 16-bitowych wskaznikow, co daje istotne zyski, a przy madrze
    napisanym programie korzystanie z oddzielnych funkcji nie jest az tak
    uciazliwe. Inaczej musialbys miec wskazniki co najmniej 17 bitowe, czyli
    w praktyce 24 bitowe, niezly overkill dla procesora, ktory wlasciwie nie
    ma instrukcji operujacych nawet na 16 bitach.
    Funkcje tez mozna napisac uniwersalne - ja np. w jednym z programow
    zdefiniowalem sobie makra, ktore powoduja, ze najstarszy bit adresu
    interpretowany jest jako wskaznik rodzaju pamieci - jak jest 1 to FLASH,
    0 - SRAM, oczywiscie zaweza mi to ilosc obslugiwanej pamieci do 2x32kB,
    ale mi to wystarczylo. W C++ mozna to zrobic jeszcze bardziej elegancko
    i transparentnie dla programu.



    --
    Inteligentny dom - http://idom.wizzard.one.pl
    http://idom.sourceforge.net/
    Teraz takze forum dyskusyjne
    Zobacz, wyslij uwagi, dolacz do projektu.


  • 17. Data: 2009-11-08 10:22:48
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: J.F. <j...@p...onet.pl>

    On Sun, 08 Nov 2009 11:15:34 +0100, T.M.F. wrote:
    >> Druga sprawa to dostęp do danych - np. w funkcji printf podajesz jako
    >> pierwszy parametr adres ciągu znaków do wypisania. No i w ARMach adres
    >> to adres - może sobie być w obszarze programu (np. w pamięci Flash),
    >> może być w danych. A w AVRach to dopiero jest jazda - wymagane są
    >> oddzielne funkcje pobierające ten ciąg z pamięci danych (printf) oraz z
    >> pamięci programu (printf_P)

    >Wiele tych niedogownosci jest gcc-specyficznych, bo gcc nie obsluguje
    >segmentow pamieci - ale ma sie to wkrotce zmienic.

    Ale jak to sobie wyobrazasz ?

    >Inaczej musialbys miec wskazniki co najmniej 17 bitowe, czyli
    >w praktyce 24 bitowe, niezly overkill dla procesora, ktory wlasciwie nie
    >ma instrukcji operujacych nawet na 16 bitach.

    No wlasnie.

    J.


  • 18. Data: 2009-11-08 10:33:23
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: slawek7 <s...@w...pl>

    Dzięki za pomoc.

    Jeszcze mam jedną sprawę tak trochę tylko związaną z tematem.
    Mówi się ze dane z pamięci Flash są pobierane wolniej niż z RAM. czy
    jest to gdzieć napisane. Przykład. Spotkałem opis programu na ARM typu
    AT91SAM7S256 w którym w celu przyspieszenia pracy zrobiono "sztuczkę"
    polegającą na przerzuceniu programu z FLASHa do RAM.
    Dlaczego.Przecież to odczyt. Rozumiem zapis do pamięci, ale odczyt
    miałby być dłuższy?
    Skąd to się bierze?


  • 19. Data: 2009-11-08 10:49:52
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: J.F. <j...@p...onet.pl>

    On Sun, 8 Nov 2009 02:33:23 -0800 (PST), slawek7 wrote:
    >Mówi się ze dane z pamięci Flash są pobierane wolniej niż z RAM. czy
    >jest to gdzieć napisane. Przykład. Spotkałem opis programu na ARM typu
    >AT91SAM7S256 w którym w celu przyspieszenia pracy zrobiono "sztuczkę"
    >polegającą na przerzuceniu programu z FLASHa do RAM.
    >Dlaczego.Przecież to odczyt. Rozumiem zapis do pamięci, ale odczyt
    >miałby być dłuższy? Skąd to się bierze?

    Z osiaganych czasow dostepu w technologii SRAM i FLASH ?

    Bo tak jak siegam pamiecia to SRAM byly szybsze, choc to czasem trudno
    porownac.

    J.


  • 20. Data: 2009-11-08 11:35:11
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: Paweł <p...@n...pl>


    > Mówi się ze dane z pamięci Flash są pobierane wolniej niż z RAM. czy
    > jest to gdzieć napisane. Przykład. Spotkałem opis programu na ARM typu
    > AT91SAM7S256 w którym w celu przyspieszenia pracy zrobiono "sztuczkę"
    > polegającą na przerzuceniu programu z FLASHa do RAM.
    > Dlaczego.Przecież to odczyt. Rozumiem zapis do pamięci, ale odczyt
    > miałby być dłuższy?
    > Skąd to się bierze?

    Wszystko jest dokładnie opisane w dokumentacji do procesora.
    W zależności od częstotliwości zegara programuje się odpowiednie
    opóźnienia przy dostępie do pamięci Flash. Tak więc w praktyce
    wykonywanie programu w pamięci RAM zwykle jest znacznie szybsze.

    Paweł

strony : 1 . [ 2 ] . 3


Szukaj w grupach

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: