-
Data: 2018-09-12 16:47:51
Temat: Re: Biblioteka standardowa time.h i mikrokontrolery
Od: "Grzegorz Niemirowski" <g...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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/
Następne wpisy z tego wątku
- 12.09.18 20:58 Atlantis
- 12.09.18 21:53 Marek
- 13.09.18 00:07 Grzegorz Niemirowski
- 13.09.18 07:46 Atlantis
- 13.09.18 08:37 Jacek Radzikowski
- 13.09.18 09:03 Atlantis
- 13.09.18 09:05 Atlantis
- 13.09.18 09:14 Jacek Radzikowski
- 13.09.18 11:18 Grzegorz Niemirowski
- 14.09.18 09:33 Atlantis
- 14.09.18 11:00 Grzegorz Niemirowski
- 14.09.18 11:09 Marek
Najnowsze wątki z tej grupy
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
- Co może być gorsze od pożaru elektryka?
- daltonizm
- Mały Linux
- Superkondensator. Czy to się uda?
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
- Jak działa domofon?
- Co oni mierzą miernikiem
Najnowsze wątki
- 2025-11-03 Gwarancja na używane AUTO. Czy dziś WARTO?
- 2025-11-03 Znowu jakiś goooownoprawnik uważający się za KONSTYTUCJONALISTĘ
- 2025-11-03 ABW już nie blokuje RT.com?
- 2025-11-03 Czy ROZDANIE KPO śród swoich i nie swoich spowodowało KORZYŚĆ POLITYCZNĄ?
- 2025-11-03 Warszawa => Starszy Konsultant SAP - obszar PP <=
- 2025-11-03 Warszawa => International Freight Forwarder <=
- 2025-11-03 Białystok => Programista React ze znajomością C++ <=
- 2025-11-03 Warszawa => Generative AI Engineer <=
- 2025-11-03 Warszawa => Gen AI Engineer <=
- 2025-11-03 Białystok => Programista Delphi <=
- 2025-11-03 Warszawa => Spedytor Międzynarodowy <=
- 2025-11-02 totalna kontrola podatników?
- 2025-11-02 Trzymacie pieniądze w bankach?
- 2025-11-02 Bo sędzia prokuratorowi nie odmawia "niezawiśle" [rzepa: wnioski o areszt]
- 2025-11-02 Michał Wawrykiewicz: "Prokuratura barszczyka bierze pod uwagę również INTENCJE uchwalaczy prawa




Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei