Kod źródłowy “.o *.h
p ro prooooorj
przetworzony Kod źródłowy
kumpllnlui fi
| plik obiektowy z kodem relokowalnym | "-o *-obJ ".a
*.elf *.hex“.bln
plik z gotowym kodom maszynowym
pamięć programu mikrokontrolera
07. Do czego służy interfejs JTAG ?
Do wgrywania i debugowania
08. Co trzeba zrobić aby móc skorzystać z funkcji printf w oprogramowaniu na mikrokontroler ? Trzeba funkcji write wywoływanej przez funkcję printf wskazać gdzie ma wysłać string.
09. Co to jest kod startowy ? Czym się zajmuje ?
Nasz program w C jest obudowany tzw. kodem startowym. Kod ten jest generowany automatycznie albo musimy go sami napisać (w systemach embedded raczej to drugie)
Kod startowy:
-przygotowuje sprzęt do wykonania programu
- inicjalizuje odpowiednie bloki pamięci
- często zawiera tablicę wektorów przerwań
- decyduje co zrobić po powrocie z main()
- jest najczęściej pisany w assemblerze (dla STM32 można go napisać w C)
W STM32 ułatwiono tworzenie kodu startowego w języku C dzięki wprowadzeniu predefiniowanej lokacji w pamięci, gdzie znajduje się początkowa wartość wskaźnika stosu - są to pierwsze 4 bajty pamięci kodu. Podczas resetu rdzeń automatycznie ładuje zapisany tam adres jako MSP (Main Stack Pointer). Dzięki temu wygenerowany podczas kompilacji języka C kod może od razu korzystać ze stosu (i najczęściej domyślnie korzysta zrzucając tam np. zawartość rejestrów, które są modyfikowane podczas wywołania funkcji).
10. Jak najczęściej wygląda mapa pamięci mikrokontrolera ?