12.02.2022, 22:47 STM32 C - gotowe pliki projektu:: 4programmers.net 4programmers.net » Forum » C/C++ » STM32 C - gotowe pliki projektu STM32 C - gotowe pliki projektu Zielona Pietruszka 2017-07-23 19:55 Dzień dobry, mam pytanie, w nowo stworzonym projekcie są dwa pliki - system_stm32f4xx.c oraz syscalls.c. Mają one oczywiście opis ale nie za bardzo go rozumiem, Orientuje się ktoś może co one tak na "chłopski rozum" robią? Bez wnikania w szczegóły, po prostu chciałbym się dowiedzieć po co one są : ) Z góry dzieki za pomoc! stm32 0 C Obserwuj Udostępnij Komentuj Nieposkromiony Pomidor 2017-07-23 20:51 Bez wnikania w szczegóły to pierwszy zawiera konfigurację zegara(clock), a drugi podstawowe operacje unixowe operacji kernela, jak czytanie pliku, zapis, wątki itp. wszystko w języku angielskim(syscall czytaj jak systemowe operacje, albo wywołania), może nawet jest napisany czystym kodem, przez co łatwo dość do konkluzji, jakim jest jego przeznaczenie. 0 Obserwuj Udostępnij Komentuj Zielona Pietruszka 2017-07-28 20:42 Dziękuję: ) mam jeszcze pytanie w sprawie syscalls, czy są to funkcje które normalnie są w systemie, a których nie ma na mikrokontrolerze ( z oczywistych przyczyn np. nie ma plików ), i trzeba je nadpisać aby program w C je widział i się skompilował ?, przecież na STM nie ma systemu, więc coś mi się tutaj nie zgadza : d. Obserwuj Udostępnij 0 Komentuj Horns 2017-08-01 11:14 Zielona Pietruszka napisał(a): Dziękuję: ) mam jeszcze pytanie w sprawie syscalls, czy są to funkcje które normalnie są w systemie, a których nie ma na mikrokontrolerze ( z oczywistych przyczyn - np. nie ma plików ), i trzeba je nadpisać aby program w C je widział i się skompilował ?, przecież na STM nie ma systemu, więc coś mi się tutaj nie zgadza : d. 0 Nie masz zielonego pojęcia o programowaniu mikroprocesorów i liczysz, że ktoś na forum będzie Ci wszystko tłumaczył zaczynając od opisu zawartości plików? Znajdź sobie jakiś poradnik dla początkujących zamiast marnować czas. Obserwuj Udostępnij Komentuj alagner 2017-08-01 11:33 Nie ma systemu, ale funkcje typu printf wykorzystują pod spodem wywołania systemowe. Odpowiednio nadpisując funkcje write czy read jesteś w stanie np. przekierować strumienie na port szeregowy. 0 https://4programmers.net/Forum/C_i_C++/293119-stm32_c_gotowe_pliki_projektu?p=1384715 1/2 12.02.2022, 22:47 Obserwuj STM32 C - gotowe pliki projektu:: 4programmers.net Udostępnij Komentuj Andy Gubed 2017-08-01 13:17 Zielona Pietruszka napisał(a): Dziękuję: ) mam jeszcze pytanie w sprawie syscalls, czy są to funkcje które normalnie są w systemie, a których nie ma na mikrokontrolerze ( z oczywistych przyczyn - np. nie ma plików ), i trzeba je nadpisać aby program w C je widział i się skompilował ?, przecież na STM nie ma systemu, więc coś mi się tutaj nie zgadza : d. 0 Zielona Pietruszka napisał(a): Dziękuję: ) mam jeszcze pytanie w sprawie syscalls, czy są to funkcje które normalnie są w systemie, a których nie ma na mikrokontrolerze ( z oczywistych przyczyn - np. nie ma plików ), i trzeba je nadpisać aby program w C je widział i się skompilował ?, przecież na STM nie ma systemu, więc coś mi się tutaj nie zgadza : d. Syscalle w normalnym komputerze dla 32-bitowej architektury, są to wywołania systemowe, które umożliwiają pracę systemu. Dla linux'a masz tablicę ze wskaźnikami na te funkcje, która jest ładowana w czasie startu systemu. Potem wywołaniem "int 0x80" (instrukcja asemblera), skaczesz pod program obsługi tego wektora (taki zarządca), który to wybiera odpowiednią funkcję (z wektora) w zależności od tego co jest na stosie lub w rejestrach i ją wywołuje. W dosie masz int21h. Biosowe przerwania to int10h dla klawiatury oraz int16h dla grafiki. Bios najpierw ładuje swoje przerwania, a następnie system może je nadpisać lub zrobić z nimi co mu się podoba. W stmie sytuacja wygląda trochę inaczej. Masz pełną kontrolę nad tym co robisz. Jeśli załadujesz do swojego ulubionego cortexa system, to sytuacja będzie bardzo podobna do opisanej powyżej. Takie rozwiązanie prawdopodbnie skorzysta z instrukcji asemblera "SVC numer_przerwania". Lecz masz pełną kontrolę nad tym co robisz. Wywołania "dostępne dla wszystkich", możesz zbudować sobie sam. Dla przykładu umieszczasz gdzieś zarządce przerwaniami oraz tablicę ze swoimi funkcjami i w każdym wywołaniu robisz zwykłego calla(chyba instrukcja "B adres"). Następnie musisz skompilować tak program, aby przy wywołaniu odpowiedniej funkcji - program, wiedział co ma robić. Biblioteki, z których korzystasz mają coś takiego w sobie, że zbudowany program korzystający z syscalli, na starcie uC ładuje ten vector i ustawia wszystko jak być powinno. Zaletą takiego rozwiązania jest ustandaryzowanie wywołań, mniejsza ilość kodu, ogólny porządek. Jeśli chodzi o same przerwania to masz to opisane w manulu do swojego scalaka. Jest miejsce w pamięci, które przechowuje wszystkie przerwania (a raczej adresy na funkcje tych przerwań). Aby uruchomić syscalla wstawiasz adres zarządcy pod jakies przerwanie(w czasie startu scalaka) i w czasie wywołania funkcji(gdzieś w kodzie) kierujesz go pod nie (a on robi co do niego należy). Obserwuj Udostępnij Komentuj Liczba odpowiedzi na stronę C/C++ 10 1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0 4programmers.net » Forum » C/C++ » STM32 C - gotowe pliki projektu PRACA DLA PROGRAMISTÓW FORUM DYSKUSYJNE SPRAWY ADMINISTRACYJNE Praca JavaScript Python Zgłoś błąd w Praca Java Java Praca C# C/C++ Praca PHP C# i .NET Praca Python Kariera Praca C++ Edukacja O NAS Kontakt oprogramowaniu API 4programmers.net Blog Regulamin SKONTAKTUJ SIĘ Z NAMI Napisz do nas Polityka prywatności Reklama 4programmers.net Pomoc Prawa autorskie Patronat Odwiedź nas na Facebooku Nasze logo Coyote Copyright © 2000-2022 https://4programmers.net/Forum/C_i_C++/293119-stm32_c_gotowe_pliki_projektu?p=1384715 Coyote 2.5: 109 ms 2/2