eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProgramowanie PIC-ówRe: Programowanie PIC-ów
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!usenet.blueworldhosting.com!feeder01.bluewo
    rldhosting.com!peer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.
    highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostra
    da.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrad
    a.pl.POSTED!not-for-mail
    From: Marek <f...@f...com>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Programowanie PIC-ów
    Date: Thu, 19 Jun 2014 01:43:02 +0200
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    In-Reply-To: <lnsf4n$hke$1@portraits.wsisiz.edu.pl>
    References: <lnsf4n$hke$1@portraits.wsisiz.edu.pl>
    <lnsf4n$hke$1@portraits.wsisiz.edu.pl>
    Message-ID: <a...@n...neostrada.pl>
    User-Agent: Groundhog Newsreader for Android
    Lines: 67
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.7.252.221
    X-Trace: 1403134983 unt-rea-a-02.news.neostrada.pl 2148 83.7.252.221:49820
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 3853
    X-Received-Body-CRC: 1307790505
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:666640
    [ ukryj nagłówki ]

    On Wed, 18 Jun 2014 18:35:31 +0200, Atlantis <m...@w...pl>
    wrote:
    > 1) Jak to jest z tymi toolchainami? Jest kilka różnych kompilatorów,
    > które mogą współpracować z MPLAB. Są między nimi jakieś istotne
    różnice,
    > np. w składni języka C? A jeśli tak, to które rozwiązanie jest
    > najbardziej "standardowe"?

    Masz do wyboru 3:
    C18 - "starszy" kompilator Microchipa dla środowiska MPLAB. Jest
    dedykowanym kompilatorem do rodziny mcu oznaczonych symbolami pic18f*
    (architektura PIC16).
    XC8 - najnowszy kompilator Microchipa, następca C18.
    SDCC - kompilator GNU mający wsparcie dla pic18f*, ale wygenerowany
    kod nie jest tak optymalny jak C18 i XC8
    Jest jeszcze HiTec , który został przejęty przez Microchip i na nim
    powstał XC8.

    > 2) Jest jakiś odpowiednik biblioteki pgmspace z AVR-ów,
    pozwalającej na
    > umieszczanie danych w pamięci programu? Jakie polecenia odpowiadają
    np.
    > PROGMEM albo PSTR("tekst")?

    C18 wymaga odpowiedniego prefixu przed deklaracją stałych (np.
    tablic), nie można mieszać wskaźników do rom z wskaźnikami do ram.
    Ten problem wyeliminowano dopiero w XC8. Sdcc podobnie jak XC8 nie
    "odróżnia" wskaźników rom/ram więc jest wygodniejszy, ale generuje
    większy kod niż XC8/C18

    > 3) Ograniczenia dotyczące stopnia optymalizacji kodu w darmowych
    > wersjach kompilatorów mają jakieś znaczenie w praktyce, czy nie
    trzeba
    > się tym przejmować?

    Z darmowych to pozostaje Ci tylko SDCC, ale generuje spuchnięty kod w
    porównaniu z XC8/C18. Może być nawet 2x większy. Używałem dużo sdcc,
    nie miałem problemów z stabilnością kodu natomiast przesiadłem się na
    C18 ze względu na lepszą optumalizację pod względem wielkości kodu.

    Podsumowując:
    C18 stabilny kod, dobra optymalizacja pod względem wielkosci kodu
    wynikowego, w miarę szybka kompilacja, działa pod wine, ma pewne
    odstępstwa od standardów np: wskazniki ram/rom, domyślny brak
    zerowania zmiennych przy inicjalizacji, domyślne ograniczenia
    wielkosci zmiennych w ram do rozmiaru jednego banku tj. 255 bajtów
    (można to ominąć łącząc banki w skrypcie linkera). Wspiera chyba
    wszystkie 18f*

    XC8 dobra optymalizacja pod wzgledem wielkości kodu, koszmarnie wolna
    kompilacja w porównaniu do super szybkiego sdcc.

    SDCC prosty kompilator, bardzo szybki w kompilacji, w miarę
    trzymajacy się standardów, najnowsze mcu z seri 18f mogą nie być
    wspierane (brak plików nagłówkowych definiujacych rejestry, ale można
    zapożyczać je z C18 bo zachowano pewną kompatybilność w przestrzeni
    nazw rejestrów z C18.

    Do prostych projektów nada się SDCC, ale trzeba zwrócić uwagę na
    wielkość kodu, bo jeśli w trakcie rozwoju softu może się okazać że
    kod nie zmieści się w flash.

    Jeśli chcesz korzystać z eth, to raczej polecam C18/XC8 bo pod nie
    masz gotowe źródła stosu tcpip Microchipa.

    --
    Marek

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: