-
1. Data: 2012-01-04 18:50:47
Temat: uC ARM i pliki startowe
Od: slawek7 <s...@w...pl>
Cześć.
Z góry przepraszam za glupie pytanie, ale zastanowilo mnie to i nie
moge doszukac sie odpowiedzi i moze pomozecie mi.
W uC ARM np STM32 lub LPC11xx kompilator dolacza i kompiluje plik
tzw. startowy. Ale dlaczego i po co?
Dlaczego robi sie taki wybieg? uC z serii AVR tego nie maja a tez na
poczatku nalezy ustawic jego uklady peryferyjne, ustawia sie stos i
inne.
Czy kompilator niebylby w stanie sobie z tym poradzic bez plikow
startowych?
-
2. Data: 2012-01-04 19:12:38
Temat: Re: uC ARM i pliki startowe
Od: Zbych <z...@o...pl>
On 04.01.2012 19:50, slawek7 wrote:
> Cześć.
> Z góry przepraszam za glupie pytanie, ale zastanowilo mnie to i nie
> moge doszukac sie odpowiedzi i moze pomozecie mi.
>
> W uC ARM np STM32 lub LPC11xx kompilator dolacza i kompiluje plik
> tzw. startowy. Ale dlaczego i po co?
Bo między startem procesora a wywołaniem funkcji main jest trochę roboty
do zrobienia (choćby inicjalizacja zmiennych globalnych, statycznych)
> Dlaczego robi sie taki wybieg? uC z serii AVR tego nie maja
Mają.
> Czy kompilator niebylby w stanie sobie z tym poradzic bez plikow
> startowych?
Kompilator sobie poradzi. Gorzej może być z twoim programem.
Można oczywiście kazać kompilatorowi olać pliki startowe, wtedy sam
będziesz musiał stworzyć tablicę wektorów przerwań, ustalić położenie
stosu, zainicjalizować zmienne. Jest to dosyć proste.
-
3. Data: 2012-01-04 19:13:48
Temat: Re: uC ARM i pliki startowe
Od: Michoo <m...@v...pl>
W dniu 04.01.2012 19:50, slawek7 pisze:
> W uC ARM np STM32 lub LPC11xx kompilator dolacza i kompiluje plik
> tzw. startowy. Ale dlaczego i po co?
Dlatego, że ustawia się tam "środowisko uruchomieniowe":
- mapę pamięci
- stos
- stertę
- inicjalizację sekcji leżących w RAM
- często też częstotliwość pracy i peryferia
> Dlaczego robi sie taki wybieg?
To jest normalne podejście dla każdego procesora.
> uC z serii AVR tego nie maja
Oczywiście, że mają, tylko ponieważ jest procesory różnią się między
sobą w niewielkim stopniu (a do tego programiści AVR niestety często do
najsprawniejszych nie należą) twórcy avr-gcc to ukryli i wystarczy podać
-mmcu, żeby kompilator/linker wykonał resztę roboty.
> a tez na
> poczatku nalezy ustawic jego uklady peryferyjne, ustawia sie stos i
> inne.
Ustawiasz stos inaczej niż definiując którąś ze stałych?
> Czy kompilator niebylby w stanie sobie z tym poradzic bez plikow
> startowych?
Kompilator sobie radzi.
--
Pozdrawiam
Michoo
-
4. Data: 2012-01-05 19:21:00
Temat: Re: uC ARM i pliki startowe
Od: slawek7 <s...@w...pl>
Macie racje. Doczyałem że taki wybieg jest dlatego ze ARMow jest duzo
i ciezko to upchnac w kompilatorze samym.