eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaarm-gcc i malloc() - uzywajac yagarto i ADUc7026arm-gcc i malloc() - uzywajac yagarto i ADUc7026
  • Data: 2011-01-16 12:42:40
    Temat: arm-gcc i malloc() - uzywajac yagarto i ADUc7026
    Od: Marcin <m...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Witam,

    Tym razem ja szukam pomocy. Od paru dni walcze z ADuC7026, pierwotnie
    z wersja ewaluacyjna Keila a teraz yagarto ( zglasza sie jako werja
    arm-none-eabi-gcc (GCC) 4.5.1)

    Mam w Keilu napisany programik do obslugo 1-wire i wszystko ladnie
    dziala, tj. przerwania, timery i dynamiczna alokacja pamieci. Chcialem
    caly program przeniesc na gcc i zaczynaja sie schody.
    Poradzilem juz sobie z plikami linkera, przerwaniami - wszystko
    dziala. Ale zachcialo mi sie uzywac malloc() i problem mnie na razie
    przerosl.

    Wiem, ze stdio.h potrzebuje paru funkcji ( stubs). Posilkowalem sie
    przykladami z:
    http://www.yagarto.de/download/yagarto/syscalls.c
    Oznaczenia poczatku i konca sterty zmienione na __heap_start i
    __heap_end, tak zeby sie zgadzalo z tym co jest w pliku linkera.
    No i najgorsze, ze nic nie dziala. W testowym programie moge sobie
    wyrzucic cos dla testo na UART'a wiec widze ze program dziala ale po
    wywolaniu prt = malloc(sizeof(int)); calosc "zawiesza sie" i nie
    powraca z malloc.

    Czy ma ktos moze przyklady dzialajacego malloc ? przygladnal bym sie
    plikom startup.S, jak rozwiazana jest funkcja _sbrk_r (struct _reent
    *r, int incr) oraz jak wyglad plik linkera. Najchetniej na ADuC, ale
    moze byc tez cos ze procesorow Atmela. Przyklady na LPC od nxp maja
    zupelnie inaczej rozwiazywane inicjalizacje wektorow przerwan w
    startup.s.


    Po dissasemblacji mojego pliku .elf widze, ze moje wywolanie malloc()
    wywoluje glebiej _malloc_r a ten z koleji _sbrk_r. I powinno
    dzialac, bo ta funkcje mam w syscalls.c i jes dolinkowana.

    Przegladalem tez strone http://www.freddiechopin.info/ i tamtejsze
    forum, ale nie udalo mi sie nic dzialajacego na moim procku
    skompilowac z malloc();


    Pomocy, siedzenie do 3 nad ranem przy komputerze juz nic nie pomaga ;)


    Pozdrawiam,
    Marcin

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: