eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Dynamicznie ladowany kod do ram w ARM7
Ilość wypowiedzi w tym wątku: 9

  • 1. Data: 2009-08-25 16:48:46
    Temat: Dynamicznie ladowany kod do ram w ARM7
    Od: Sebastian Biały <h...@p...onet.pl>

    Witam.

    Poszukuje czegoś co pozwoli mi uzyskac prymitywną formę ładowania do
    pamięci kodu dynamicznego. Zakładam, że "plik" z kodem jest dostepny w
    postaci ciagu bajtów, posiadam rownież wystarczającą ilośc RAM
    (powiedzmy 3x wielkośc kodu). W zasadzie poszukuje jakiegoś relokatora
    który potrafi kod przenieśc poprawnie w dowolne miejsce RAM. Próbuje
    googlać ale jakoś nie widzę tego na ARM7. Czy taki projekcik powstał? W
    drugiej kolejności szukam jakiejś koncepcji wołania z tego kodu mojego
    API zaszytego we flash. W zasadzie nie jest mi to bardzo potrzebne i
    traktuje to jako ciekawostkę z ktorej moze się coś urodzi. Ma ktoś jakiś
    namiar na cos ciekawego w tym temacie? bardzo korci mnie aby logika
    sterowania byla na karcie SD a "system operacyjny" we flash.


  • 2. Data: 2009-08-25 18:30:35
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: Paweł <p...@n...pl>

    >W zasadzie poszukuje jakiegoś relokatora
    > który potrafi kod przenieśc poprawnie w dowolne miejsce RAM.

    Wystarczy wygenerować kod, który będzie relokowalny. Można go potem
    uruchomić w dowolnym kawałku pamięci.

    Paweł


  • 3. Data: 2009-08-25 18:45:32
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: Sebastian Biały <h...@p...onet.pl>

    Paweł wrote:
    > Wystarczy wygenerować kod, który będzie relokowalny. Można go potem
    > uruchomić w dowolnym kawałku pamięci.

    W zasadzie to połowa sukcesu, interesują mnie jeszcze "resources". Nie
    wiem jak ze wskaźnikami na takie dane, są rownież względne? Powiedzmy,
    że mam const char* foo="\33\56\0"; Wymagają relokacji czy nie?


  • 4. Data: 2009-08-25 19:20:42
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: Paweł <p...@n...pl>

    >> Wystarczy wygenerować kod, który będzie relokowalny. Można go potem
    >> uruchomić w dowolnym kawałku pamięci.
    >
    > W zasadzie to połowa sukcesu, interesują mnie jeszcze "resources". Nie
    > wiem jak ze wskaźnikami na takie dane, są rownież względne? Powiedzmy,
    > że mam const char* foo="\33\56\0"; Wymagają relokacji czy nie?

    Czy problem polega na tym, że nie wiesz jak napisać relokowalny kod ?


    Paweł


  • 5. Data: 2009-08-25 20:22:13
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: Sebastian Biały <h...@p...onet.pl>

    Paweł wrote:
    > Czy problem polega na tym, że nie wiesz jak napisać relokowalny kod ?

    Problem w tym, że nie wiem jak to poprawnie zrobić. Czy wymaga to
    wsparcia "systemu operacyjnego", czy też kod bedzie na dzień dobry
    calkowicie relokowalny: zarówno kod maszynowy jak i "wskaźniki na dane"
    symulowane choćby const char*. Nie mam dużych doswiadczeń w ARM i nie
    wiem czy np. nie pojawią się problemy przekraczania odległości względych
    adresów, brak możliwości skokow poza jakiś zakres, itd. Wole zapytać niż
    błądzić po omacku.


  • 6. Data: 2009-08-25 22:30:38
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: Adam Dybkowski <a...@4...pl>

    Sebastian Biały pisze:

    >> Czy problem polega na tym, że nie wiesz jak napisać relokowalny kod ?
    >
    > Problem w tym, że nie wiem jak to poprawnie zrobić. Czy wymaga to
    > wsparcia "systemu operacyjnego", czy też kod bedzie na dzień dobry
    > calkowicie relokowalny: zarówno kod maszynowy jak i "wskaźniki na dane"
    > symulowane choćby const char*. Nie mam dużych doswiadczeń w ARM i nie
    > wiem czy np. nie pojawią się problemy przekraczania odległości względych
    > adresów, brak możliwości skokow poza jakiś zakres, itd. Wole zapytać niż
    > błądzić po omacku.

    W zagadnieniu tworzenia kodu relokowalnego są dwie podstawy:
    - po pierwsze cały kod wykonywalny stosuje tylko względne skoki i
    pobrania (względem pc)
    - po drugie wszystkie dostępy do danych wymagają adresu bazowego, który
    wcześniej (przed uruchomieniem kodu) trzeba wpisać do któregośtam
    rejestru; po szczegóły zapraszam do lektury dokumentacji gcc, szukaj w
    okolicy flagi -fpic.

    --
    Adam Dybkowski
    http://dybkowski.net/

    Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.


  • 7. Data: 2009-09-02 14:19:16
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: cepu69 <c...@t...pl>

    Sebastian Biały wrote:

    > Witam.
    >
    > Poszukuje czegoś co pozwoli mi uzyskac prymitywną formę ładowania do
    > pamięci kodu dynamicznego. Zakładam, że "plik" z kodem jest dostepny w
    > postaci ciagu bajtów, posiadam rownież wystarczającą ilośc RAM
    > (powiedzmy 3x wielkośc kodu). W zasadzie poszukuje jakiegoś relokatora
    > który potrafi kod przenieśc poprawnie w dowolne miejsce RAM. Próbuje
    > googlać ale jakoś nie widzę tego na ARM7. Czy taki projekcik powstał? W
    > drugiej kolejności szukam jakiejś koncepcji wołania z tego kodu mojego
    > API zaszytego we flash. W zasadzie nie jest mi to bardzo potrzebne i
    > traktuje to jako ciekawostkę z ktorej moze się coś urodzi. Ma ktoś jakiś
    > namiar na cos ciekawego w tym temacie? bardzo korci mnie aby logika
    > sterowania byla na karcie SD a "system operacyjny" we flash.
    Ze swojej strony proponuje zobaczyc/zajzec jak to zostalo zrobine eCosie.
    Paczka nazywa sie objloader (ecos/packages/services/objloader) i umozliwia
    zaladowanie object file z romu.
    (eCos mozna siaciagnac z CVS - info http://ecos.sourceware.org/anoncvs.html)
    oraz :
    http://en.wikipedia.org/wiki/Loader_(computing)#Relo
    cating_loaders


  • 8. Data: 2009-09-02 20:01:09
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: Adam Dybkowski <a...@4...pl>

    cepu69 pisze:

    >> Poszukuje czegoś co pozwoli mi uzyskac prymitywną formę ładowania do
    >> pamięci kodu dynamicznego. Zakładam, że "plik" z kodem jest dostepny w
    >> postaci ciagu bajtów, posiadam rownież wystarczającą ilośc RAM
    >> (powiedzmy 3x wielkośc kodu). W zasadzie poszukuje jakiegoś relokatora
    >> który potrafi kod przenieśc poprawnie w dowolne miejsce RAM. Próbuje
    >> googlać ale jakoś nie widzę tego na ARM7. Czy taki projekcik powstał? W
    >> drugiej kolejności szukam jakiejś koncepcji wołania z tego kodu mojego
    >> API zaszytego we flash. W zasadzie nie jest mi to bardzo potrzebne i
    >> traktuje to jako ciekawostkę z ktorej moze się coś urodzi. Ma ktoś jakiś
    >> namiar na cos ciekawego w tym temacie? bardzo korci mnie aby logika
    >> sterowania byla na karcie SD a "system operacyjny" we flash.

    > Ze swojej strony proponuje zobaczyc/zajzec jak to zostalo zrobine eCosie.
    > Paczka nazywa sie objloader (ecos/packages/services/objloader) i umozliwia
    > zaladowanie object file z romu.
    > (eCos mozna siaciagnac z CVS - info http://ecos.sourceware.org/anoncvs.html)

    A może w ogóle nie kombinować aż tak tylko napisać normalny
    loader/relokator? Struktura pliku ELF jest bardzo prosta a w praktyce
    kod ARM7 kompilowany przez gcc używa 3-4 typów relokacji (i dodatkowo
    kolejnych 2 trybu Thumb). Wtedy można pozwolić sobie na pełny luz i
    ładować bezpośrednio pliki ELF. Dla oszczędności miejsca/transferu mogą
    być np. spakowane ZIPem (gotowa biblioteka zlib).

    --
    Adam Dybkowski
    http://dybkowski.net/

    Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.


  • 9. Data: 2009-09-03 10:34:53
    Temat: Re: Dynamicznie ladowany kod do ram w ARM7
    Od: cepu69 <c...@t...pl>

    Adam Dybkowski wrote:

    > cepu69 pisze:
    >> Ze swojej strony proponuje zobaczyc/zajzec jak to zostalo zrobine eCosie.
    >> Paczka nazywa sie objloader (ecos/packages/services/objloader) i
    >> umozliwia zaladowanie object file z romu.
    >> (eCos mozna siaciagnac z CVS - info
    >> http://ecos.sourceware.org/anoncvs.html)
    >
    > A może w ogóle nie kombinować aż tak tylko napisać normalny
    > loader/relokator?
    Zwyklem byl zawsze zagladac jak to robia inni, zeby nie popelnic nadmiernych
    herezji;)
    Powyzsza implementacja jest dla systemu embbeded tak wiec jest mala i
    przenosna (i386/ppc/arm) tak wiec uwazam, ze jest warta uwagi.

    > Struktura pliku ELF jest bardzo prosta a w praktyce
    > kod ARM7 kompilowany przez gcc używa 3-4 typów relokacji (i dodatkowo
    > kolejnych 2 trybu Thumb). Wtedy można pozwolić sobie na pełny luz i
    > ładować bezpośrednio pliki ELF.
    Raczej powinno to byc oczywiste - ladujemy foo.o (object file w formacie
    elf). Zabawy z binarka (kod/dane bez wszelkich informacji dostarczane przez
    elfa) odrazu bym sobie darowal.



strony : [ 1 ]


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: