eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › avr-gcc adresy funkcji
Ilość wypowiedzi w tym wątku: 26

  • 1. Data: 2015-03-23 18:43:06
    Temat: avr-gcc adresy funkcji
    Od: "pawel" <p...@p...onet.pl>

    Wtiam.

    Mam taki problem.

    Czy jest taka możliwość żeby adresy funkcji w momencie kompilacji/linkowania
    projektu zrzucić do jakiegoś pliku?
    Chodzi o to że mam tablicę adresów funkcji np:

    typedef int( * HANDLER)(void);
    HANDLER handler[] = {h1, h2, h3};

    I teraz wyłuskać to np: z plików .o.

    Udaje mi się to ze zmiennymi które zawierają np: napisy (stałe) w ten sposób
    że umieszczam je w oddzielnej sekcji w pliku nazwy.c

    char nazwy[] __attribute__((section(".dataflashsection"))) = {"nazwa1",
    "nazwa2"};

    i przy wykonywaniu make wyłuskuję to za pomocą

    avr-objcopy -j .dataflashsection -O binary nazwy.o nazwy.bin

    i wartości zmiennych mam w pliku nazwy.bin

    Niestety kiedy robię tak z adresami funkcji to w pliku wynikowym są tylko
    zera. Umieszczam zmienną handler w pliku handler.c i dalej

    HANDLER handler[] __attribute__((section(".dataflashsection"))) = {h1, h2,
    h3};

    avr-objcopy -j .dataflashsection -O binary handler.o handler.bin

    Czy jest na to jakiś sposób?

    Pozdrawiam
    Paweł


  • 2. Data: 2015-03-23 19:50:49
    Temat: Re: avr-gcc adresy funkcji
    Od: "pawel" <p...@p...onet.pl>

    Widzę że siedzi to w pliku map, ale jak to automatem wyłuskać?


  • 3. Data: 2015-03-23 20:12:15
    Temat: Re: avr-gcc adresy funkcji
    Od: Mario <m...@...pl>

    W dniu 2015-03-23 o 19:50, pawel pisze:
    > Widzę że siedzi to w pliku map, ale jak to automatem wyłuskać?
    >

    Może awk?

    --
    pozdrawiam
    MD


  • 4. Data: 2015-03-23 20:35:41
    Temat: Re: avr-gcc adresy funkcji
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    pawel <p...@p...onet.pl> napisał(a):
    > Widzę że siedzi to w pliku map, ale jak to automatem wyłuskać?

    A jaki system? Jak Windows to można w PowerShellu:

    $fileContent = [io.file]::ReadAllText("plik.map")
    $fileContent | Select-String
    '\.text\.([a-zA-Z0-9_-]+)\s+([0-9a-fx]+)\s+' -AllMatches |
    Foreach {$_.Matches} | Foreach {$_.Groups[1].Value + " " +
    $_.Groups[2].Value}

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 2 days, 6 hours, 12 minutes and 16 seconds


  • 5. Data: 2015-03-23 21:11:52
    Temat: Re: avr-gcc adresy funkcji
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    pawel <p...@p...onet.pl> napisał(a):
    > Widzę że siedzi to w pliku map, ale jak to automatem wyłuskać?

    A jaki system? Jak Windows, to można w PowerShellu:

    $fileContent = [io.file]::ReadAllText("plik.map")
    $fileContent | Select-String
    '\.text\.([a-zA-Z0-9_-]+)\s+([0-9a-fx]+)\s+' -AllMatches |
    Foreach {$_.Matches} | Foreach {$_.Groups[1].Value + " " +
    $_.Groups[2].Value}

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 2 days, 6 hours, 50 minutes and 24 seconds


  • 6. Data: 2015-03-23 21:31:22
    Temat: Re: avr-gcc adresy funkcji
    Od: "pawel" <p...@p...onet.pl>

    > A jaki system? Jak Windows to można w PowerShellu:

    Windows.
    A może jest jakaś opcja żeby linker wyrzucił to w trakcie konsolidacji? Nie
    jestem z tym zbyt dobrze obyty.




  • 7. Data: 2015-03-24 10:31:31
    Temat: Re: avr-gcc adresy funkcji
    Od: k...@g...com

    W dniu poniedziałek, 23 marca 2015 21:31:15 UTC+1 użytkownik bravo napisał:
    > > A jaki system? Jak Windows to można w PowerShellu:
    >
    > Windows.
    > A może jest jakaś opcja żeby linker wyrzucił to w trakcie konsolidacji? Nie
    > jestem z tym zbyt dobrze obyty.
    A moze ten tool sie przyda

    https://sourceware.org/binutils/docs/binutils/nm.htm
    l

    avr-nm w avr-gcc.

    Pzdr Krystian


  • 8. Data: 2015-03-24 11:40:14
    Temat: Re: avr-gcc adresy funkcji
    Od: Marek <f...@f...com>

    On Mon, 23 Mar 2015 18:43:06 +0100, "pawel" <p...@p...onet.pl>
    wrote:
    > Czy jest taka możliwość żeby adresy funkcji w momencie
    kompilacji/linkowania
    > projektu zrzucić do jakiegoś pliku?

    A nie możesz użyć avr-objdump? Tylko już na pliku zawierającym
    zlinkowaną całość bo inaczej będą adresy lokalne obiektu.
    Warto też skomplikować całość z opcją -g wtedy objdump wygeneruje mix
    źródła z asm + adresy.

    --
    Marek


  • 9. Data: 2015-03-25 17:29:52
    Temat: Re: avr-gcc adresy funkcji
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2015-03-23 18:43, pawel wrote:
    > Czy jest taka możliwość żeby adresy funkcji w momencie
    > kompilacji/linkowania projektu zrzucić do jakiegoś pliku?
    > Chodzi o to że mam tablicę adresów funkcji np:
    >
    > typedef int( * HANDLER)(void);
    > HANDLER handler[] = {h1, h2, h3};
    >
    > I teraz wyłuskać to np: z plików .o.

    Pliki .o nie zawieraja *jeszcze* adresów.

    Napisz dokładnie do czego to potrzebujesz. Prawdopodobnie szukasz czegoś
    innego niż myślisz.


  • 10. Data: 2015-03-25 20:24:42
    Temat: Re: avr-gcc adresy funkcji
    Od: "pawel" <p...@p...onet.pl>

    > A nie możesz użyć avr-objdump? Tylko już na pliku zawierającym zlinkowaną
    > całość bo inaczej będą adresy lokalne obiektu.
    A jak go wygenerować?
    Bo linker generuje mi tylko program wynikowy .bin.

    Pozdrawiam
    Paweł


strony : [ 1 ] . 2 . 3


Szukaj w grupach

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: