eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Różnice między mikrokontrolerami
Ilość wypowiedzi w tym wątku: 47

  • 11. Data: 2016-02-06 13:26:39
    Temat: Re: Różnice między mikrokontrolerami
    Od: Atlantis <m...@w...pl>

    A jak wygląda kwestia układów ARM od różnych producentów? Istnieje jakiś
    standaryzowany sposób obsługi peryferiów, czy każdy producent narzuca
    swoje własne rozwiązania, w związku z czym nazwy i zawartość
    rejestrów/struktur są różne?
    Obsługa GPIO (z punktu widzenia kodu C) będzie podobna w takim LPC2000 i
    AT92SAM7, czy też będzie się całkowicie różnić?


  • 12. Data: 2016-02-06 13:55:42
    Temat: Re: Różnice między mikrokontrolerami
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2016-02-06 13:26, Atlantis wrote:
    > A jak wygląda kwestia układów ARM od różnych producentów?

    Mają zbliżoną architekturę CPU i zupełnie różne peryferia.

    > Istnieje jakiś
    > standaryzowany sposób obsługi peryferiów

    Nie. W miarę standardowy masz w jakiejś rodzinie. Bywa że wersja binarna
    kodu nie wymaga zmian po przeniesieniu na sąsiada. To głównie zasługa
    faktu że przestrzeń adresowa jest na tyle spora że nie trzeba co nową
    wersję pakować po nowemu IO.


  • 13. Data: 2016-02-06 15:29:54
    Temat: Re: Różnice między mikrokontrolerami
    Od: Atlantis <m...@w...pl>

    A jak wygląda kwestia programatorów?
    STM32, STR91x, LPC2000, LPC1000, AT91SAM7, ATM91SAM9 i inne MCU na
    rdzeniach ARM/Cortex można programować i debugować jakimś jednym,
    standardowym JTAG-iem, czy też każdy producent/rodzina ma swoje własne,
    unikalne narzędzie?


  • 14. Data: 2016-02-06 15:30:27
    Temat: Re: Różnice między mikrokontrolerami
    Od: Mario <M...@...pl>

    W dniu 2016-02-06 o 13:26, Atlantis pisze:
    > A jak wygląda kwestia układów ARM od różnych producentów? Istnieje jakiś
    > standaryzowany sposób obsługi peryferiów, czy każdy producent narzuca
    > swoje własne rozwiązania, w związku z czym nazwy i zawartość
    > rejestrów/struktur są różne?
    > Obsługa GPIO (z punktu widzenia kodu C) będzie podobna w takim LPC2000 i
    > AT92SAM7, czy też będzie się całkowicie różnić?
    >

    Cortexy mają taką próbę standaryzacji - Cortex(R) Microcontroller
    Software Interface Standard (CMSIS).

    --
    pozdrawiam
    MD


  • 15. Data: 2016-02-06 15:44:15
    Temat: Re: Różnice między mikrokontrolerami
    Od: Mario <M...@...pl>

    W dniu 2016-02-06 o 15:29, Atlantis pisze:
    > A jak wygląda kwestia programatorów?
    > STM32, STR91x, LPC2000, LPC1000, AT91SAM7, ATM91SAM9 i inne MCU na
    > rdzeniach ARM/Cortex można programować i debugować jakimś jednym,
    > standardowym JTAG-iem, czy też każdy producent/rodzina ma swoje własne,
    > unikalne narzędzie?
    >

    Różnie. Każdy producent ma jakąś swoją firmę softwarową, która robi
    środowisko deweloperskie, zestawy uruchomieniowe i programatory dla
    danego producenta ARMów. Oprócz tego jest kilka firm robiących robiących
    takie rzeczy dla różnych producentów, ale podejrzewam ze nie mają
    jednego uniwersalnego programatora. Oprócz tego masz OpenOCD który
    współpracuje z różnymi programatorami, z których znaczna część to klony
    JtagKey Amonteca.
    Polecam OpenOCD. Ja dzięki niemu używam Jtag-Lock_Pick (Freddiego) do
    programowania Armów NXP i FPGA Xilinxa.

    --
    pozdrawiam
    MD


  • 16. Data: 2016-02-06 20:19:27
    Temat: Re: Różnice między mikrokontrolerami
    Od: Marek <f...@f...com>

    On Sat, 6 Feb 2016 11:18:29 +0100, Sebastian
    Biały<h...@p...onet.pl> wrote:
    > A co zrobisz z pgm_read_float, pgm_read_byte i okolicą?

    Po co to, nie można tam wskaźnikiem lub tablicą?

    --
    Marek


  • 17. Data: 2016-02-06 20:48:17
    Temat: Re: Różnice między mikrokontrolerami
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2016-02-06 20:19, Marek wrote:
    >> A co zrobisz z pgm_read_float, pgm_read_byte i okolicą?
    > Po co to, nie można tam wskaźnikiem lub tablicą?

    Obsluga pamięci ROM i RAM wymaga dwóch różnych instrukcji maszynowych.
    Dlatego istnieją makra i funkcje, ktore wymuszają traktowanie pointera
    do ROM a nie RAM. W harvardach ktore mają jeden typ wskaźnika (wiele
    ARMów) to zadanie wykonywane jest przez hardware dekodera adresów. W AVR
    nie ma takiego dekodera i kod sam decyduje czy wskaźnik jest do ROM czy
    RAM. To powoduje że sprawy nie da się łatwo załatwić makrem przy
    deklaracji pointera. Trzeba również w miejscu użycia wskazać do czego
    ten pointer jest.



  • 18. Data: 2016-02-07 02:20:45
    Temat: Re: Różnice między mikrokontrolerami
    Od: Marek <f...@f...com>

    On Sat, 6 Feb 2016 20:48:17 +0100, Sebastian
    Biały<h...@p...onet.pl> wrote:
    > Obsluga pamięci ROM i RAM wymaga dwóch różnych instrukcji
    maszynowych.

    Ale to ja wiem, odpowiedz nie na temat.
    Pytam po co te pgm_costam?
    Jak user chce tabklice we flash to ustawia, jej specjalny atrybut
    przy definicji/deklaracji i to wszystko. A dalejj czyta ją przez
    tab[ndex] lub przez wskaźnik.
    Wewnetrznie kompilator wie z jakim rodzajem pamięci ma do czynienia
    i stosuje odpowiednie instrukcje.
    A jak chce się skompilować czymś co nie odróżnia atrybutów flash/ram
    robi się #define atrybut , który go "znika".
    Tak jest w picach. W ten sposób można swobodnie kompilować kod na
    architekturę, która nie odróżnia fkash/ram (np. z pic18 na pic32}.

    --
    Marek


  • 19. Data: 2016-02-07 08:28:58
    Temat: Re: Różnice między mikrokontrolerami
    Od: slawek <f...@f...com>

    On Sat, 6 Feb 2016 00:08:06 +0100, Grzegorz Kurczyk
    <g...@c...usun.slupsk.pl> wrote:
    > AVR ma oddzielną pamięć programu i danych co powoduje, że np do

    Intel x86 też ma oddzielnie segmenty kodu i danych. I co? I jakoś z
    tym żyjemy.

    > odczytania bajtu z pamięci programu (która ma szynę 16-bitową)
    służy
    > inny rozkaz procesora niż do czytania bajtu z pamięci danych z szyną

    Intel x86 też ma oddzielne instrukcje mov i in.


  • 20. Data: 2016-02-07 10:20:45
    Temat: Re: Różnice między mikrokontrolerami
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2016-02-07 08:28, slawek wrote:
    >> AVR ma oddzielną pamięć programu i danych co powoduje, że np do
    > Intel x86 też ma oddzielnie segmenty kodu i danych. I co? I jakoś z tym
    > żyjemy.

    Nie. Mówisz o tym że x86 ma idiotyczny sposób uzywania wskaźników. Ale
    mimo tego idiotyzmu wskaźnik 0x1234:5678 jednoznacznie wskazuje na
    konkretna dana w konkretnej pamięci.

    W przypadku AVR posiadanie wskaźnika 0x1234 uniemozliwia zgadnięcie czy
    to jest wskaźnik do ROM (adresowane od 0) czy do RAM (adresowane od 0).
    Dopiero fizyczna instrukcja ładowania danej określa jak go traktować.

    >> odczytania bajtu z pamięci programu (która ma szynę 16-bitową)
    > służy
    >> inny rozkaz procesora niż do czytania bajtu z pamięci danych z szyną
    > Intel x86 też ma oddzielne instrukcje mov i in.

    Ale dotyczą one mało użytecznego mechanizmu I/O odziedziczonego jeszcze
    po 8080 gdzie niezwykle rzadko mówi się o "wskaźniku na rejestr IO".
    Raczej o ideksie. Pomińmy milczeniem wygłupy firmy Intel z okolic 8080
    które miały zaoszczędzić na mmu po stronie implementacji. To głupie
    było. Inne procki z tamtych lat (np 6502) nie miały oddzielnej "pamięci
    IO" i świat się kręcił.

    PS. Podpieranie się że x86 to von Neumann to troche zabawne jest, bo to
    procesor który nie da się chyba sklasyfikować z powodu swoich
    idiotyzmów. Weź 680x0 jako bardziej wzorcowy ;)

strony : 1 . [ 2 ] . 3 ... 5


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: