eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaBiblioteka standardowa time.h i mikrokontrolery › Re: Biblioteka standardowa time.h i mikrokontrolery
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: "Grzegorz Niemirowski" <g...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Biblioteka standardowa time.h i mikrokontrolery
    Date: Wed, 12 Sep 2018 16:47:51 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 48
    Message-ID: <pnb8ue$br3$1@node2.news.atman.pl>
    References: <5b98d6f0$0$669$65785112@news.neostrada.pl>
    <pnaneq$r42$1@node2.news.atman.pl>
    <5b990c7c$0$672$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 89-74-238-96.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1536763662 12131 89.74.238.96 (12 Sep 2018 14:47:42 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 12 Sep 2018 14:47:42 +0000 (UTC)
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: OE PowerTool 4.5
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7451
    X-WWW: http://www.grzegorz.net/
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:736503
    [ ukryj nagłówki ]

    Atlantis <m...@w...pl> napisał(a):
    > To rozwiązanie charakterystyczne dla STM32, czy stanowi ogólnie przyjęty
    > standard i mogę się spodziewać, że tak samo będzie się to robiło także w
    > przypadku innych rodzin MCU, a PIC32 jest tutaj jakimś wyjątkiem?

    ARM, nie STM32, dla ścisłości. Kompilator (gcc-arm-none-eabi) nawet nie wie,
    że jest takie coś jak STM32.
    Nie wiem jak jest na innych architekturach, z 32-bitowych używam tylko
    STM32. Ale w każdym razie z kompilatorem (jako programem) dostarczana jest
    też biblioteka języka C. Popularną biblioteką C dla mikrokontrolerów ARM
    jest newlib. I ona wymaga własnie _gettimeofday(), inaczej będzie błąd
    linkowania. Widocznie w bibliotece rozprowadzanej z kompilatorem dla PIC32
    to jest uproszczone, nie ma dodatkowych warstw w postaci _gettimeofday_r() i
    _gettimeofday() i trzeba od razu napisać time().

    > W ogóle istnieje gdzieś jakiś zasób, który tłumaczyłby w jaki sposób
    > spiąć niskopoziomowo standardową bibliotekę C z własnym sprzętem?

    Ogólnie jest tak, że w przypadku standardowych funkcji C komunikujących się
    z tym, co jest na zewnątrz aplikacji (czas, pliki, standardowe we/wy,
    dynamiczna alokacja pamięci), funkcje te wywołują funkcje systemu
    operacyjnego (system calls - syscalls). Ponieważ na mikrokontrolerze nie ma
    systemu operacyjnego, trzeba właśnie te funkcje systemowe napisać samemu.
    Dlatego jeśli chodzi o ARM GCC, możesz napotkać na posty ludzi, którym
    linker wywala brak funkcji _write(), _read(), czy _sbrk(). Więc odpowiadając
    na Twoje pytanie, to nie znam takiego jednego zasobu, ale googlałbym po
    słowach kluczowych newlib syscalls arm. Można znaleźć np.
    https://balau82.wordpress.com/2010/12/16/using-newli
    b-in-arm-bare-metal-programs/
    Przykładowy plik syscalli z minimalnymi funkcjami:
    https://github.com/ROBOTIS-GIT/OpenCR/blob/master/ar
    duino/opencr_develop/opencr_bootloader/common/bsp/op
    encr/cfg/syscalls.c
    Dzięki temu, że piszesz własną implementację syscalli możesz np.
    przekierować printf() (bo on woła pod spodem _write()) na port szeregowy
    albo konsolę semihostingu:
    int _write(int file, char *ptr, int len)
    {
    if (CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk) {
    for (int DataIdx = 0; DataIdx < len; DataIdx++)
    {
    SH_SendChar(*ptr++);
    }
    }
    return len;
    }

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/

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: