eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Bootloader dla SAM7 z flashowaniem z karty SD
Ilość wypowiedzi w tym wątku: 18

  • 11. Data: 2010-03-20 20:56:20
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: Sebastian Biały <h...@p...onet.pl>

    cepu69 wrote:
    > A ja standartowo polecam eCos'a :http://ecos.sourceware.org/

    No własnie po zabawie z FreeRTOSem czas na nastepnego ;) Zastanawiam się
    nad ecos-em jako bazą do mojej apliakcji. Jęlsi faktycznie da się go
    okroić do samych driverow to może to być bardzo intertesujące.


  • 12. Data: 2010-03-21 01:12:04
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: Adam Dybkowski <a...@4...pl>

    W dniu 2010-03-19 09:15, Sebastian Biały pisze:

    >> BTW: Tyle że w AT91SAM7 nie ma takiego wsparcia dla własnych
    >> bootloaderów, jakie jest np. w AVRach. "Bootloader" w tym przypadku to
    >> zwykły kawałek softu, który leży sobie na początku Flasha. A cały
    >> normalny program musisz linkować odpowiednio dalej (np. od 32KB).
    >
    > To nie ma znaczenia gdzie będzie fizycznie flash ładowany, byle by można
    > potem zmienić wektory przerwań.

    Z tym nie ma problemu. W kodzie bootloadera wstawiasz standardowy skok
    przez wektor ładowany z rejestru kontrolera przerwań:
    0x18: ldr pc, [pc, #-3872] ; fffff100
    0x1c: ldr pc, [pc, #-3872] ; fffff104
    A potem konfigurujesz konkretny adres przerwania IRQ i FIQ w kontrolerze
    przerwań. Po starcie właściwego systemu możesz zmienić adres i już.

    Można też dla uproszczenia nie korzystać w bootloaderze w ogóle z
    przerwań (nie jest to problemem przy prostym dostępie do UARTu i karty
    SD) a na początku bootloadera wstawić na stałe rozkazy skoków o 32KB do
    przodu - jeżeli przyjmiesz tyle miejsca na swój bootloader. Potem w
    kodzie docelowej aplikacji zajmiesz się przerwaniami jak chcesz.

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

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


  • 13. Data: 2010-03-22 14:20:00
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: cepu69 <c...@t...pl>

    Sebastian Biały wrote:

    > cepu69 wrote:
    >> A ja standartowo polecam eCos'a :http://ecos.sourceware.org/
    >
    > No własnie po zabawie z FreeRTOSem czas na nastepnego ;) Zastanawiam się
    > nad ecos-em jako bazą do mojej apliakcji. Jęlsi faktycznie da się go
    > okroić do samych driverow to może to być bardzo intertesujące.
    Tak ale np. wsparcie dla FAT-a wymaga : dynamicznej alokacji pamieci itd.

    Zalaczam plik konfiguracyjny (opis uzytych komponetow) bez kernela, z
    dolaczonymi m.in. pakietami LIBC, FAT, MMC.


  • 14. Data: 2010-04-07 22:37:00
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: voland <v...@g...com>

    On 21 Mar, 03:12, Adam Dybkowski <a...@4...pl> wrote:
    > W dniu 2010-03-19 09:15, Sebastian Biały pisze:
    >
    > >> BTW: Tyle że w AT91SAM7 nie ma takiego wsparcia dla własnych
    > >> bootloaderów, jakie jest np. w AVRach. "Bootloader" w tym przypadku to
    > >> zwykły kawałek softu, który leży sobie na początku Flasha. A cały
    > >> normalny program musisz linkować odpowiednio dalej (np. od 32KB).
    >
    > > To nie ma znaczenia gdzie będzie fizycznie flash ładowany, byle by można
    > > potem zmienić wektory przerwań.
    >
    > Z tym nie ma problemu. W kodzie bootloadera wstawiasz standardowy skok
    > przez wektor ładowany z rejestru kontrolera przerwań:
    > 0x18:   ldr     pc, [pc, #-3872]  ; fffff100
    > 0x1c:   ldr     pc, [pc, #-3872]  ; fffff104
    > A potem konfigurujesz konkretny adres przerwania IRQ i FIQ w kontrolerze
    > przerwań. Po starcie właściwego systemu możesz zmienić adres i już.
    >
    > Można też dla uproszczenia nie korzystać w bootloaderze w ogóle z
    > przerwań (nie jest to problemem przy prostym dostępie do UARTu i karty
    > SD) a na początku bootloadera wstawić na stałe rozkazy skoków o 32KB do
    > przodu - jeżeli przyjmiesz tyle miejsca na swój bootloader. Potem w
    > kodzie docelowej aplikacji zajmiesz się przerwaniami jak chcesz.
    >
    > --
    > Adam Dybkowski
    >                http://dybkowski.net/
    >
    > Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

    Przypadkiem sie natknąłem na ten wątek bo mam podobne problemy też z
    at91sam7s128. Generalnie juz napisalem se taki bootloader i wyglada na
    to ze dziala. flashuje se binarke do pamieci pod adres 0x109000, i
    sciągam potem pamieć na twardy dysk i zawartość się zgadza, ale mam
    inny problem mianowicie nie wiem jak skonfigurowac linker dla programu
    który ma być wgrany pod ten adres, niby skonfigurowalem coś w pliku
    flash.lds czyli zmieniłem adres pamieci flash i jej wielkość, wygląda
    to mniej więcej tak:

    MEMORY
    {
    sram (W!RX) : ORIGIN = 0x200000, LENGTH = 0x8000
    flash (RX) : ORIGIN = 0x109000, LENGTH = 0x17000
    }

    No i jak kompiluje ten program z parametrem optymalizacji -s0 to niby
    działa ale kiedy próbuje skompilować to zoptymalizowane to już się
    wysypuje.


  • 15. Data: 2010-04-07 23:34:26
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: Adam Dybkowski <a...@4...pl>

    W dniu 2010-04-08 00:37, voland pisze:

    > at91sam7s128. Generalnie juz napisalem se taki bootloader i wyglada na
    > to ze dziala. flashuje se binarke do pamieci pod adres 0x109000, i
    > sciągam potem pamieć na twardy dysk i zawartość się zgadza, ale mam
    > inny problem mianowicie nie wiem jak skonfigurowac linker dla programu
    > który ma być wgrany pod ten adres, niby skonfigurowalem coś w pliku
    > flash.lds czyli zmieniłem adres pamieci flash i jej wielkość, wygląda
    > to mniej więcej tak:
    >
    > MEMORY
    > {
    > sram (W!RX) : ORIGIN = 0x200000, LENGTH = 0x8000
    > flash (RX) : ORIGIN = 0x109000, LENGTH = 0x17000
    > }
    >
    > No i jak kompiluje ten program z parametrem optymalizacji -s0 to niby
    > działa ale kiedy próbuje skompilować to zoptymalizowane to już się
    > wysypuje.

    Jeszcze raz napisz, tyle że jaśniej. Ustawienia linkera (w szczególności
    mapa obszarów pamięci) nie wpływają na proces kompilacji przecież, są
    używane dopiero podczas konsolidacji. Więc nie może się po prostu
    wysypywać (napisz jaki błąd dokładnie wystąpił?) kompilacja z powodu
    przestawienia adresu obszaru Flasha.

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

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


  • 16. Data: 2010-04-08 07:26:37
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: voland <v...@g...com>

    On 8 Kwi, 01:34, Adam Dybkowski <a...@4...pl> wrote:
    > W dniu 2010-04-08 00:37, voland pisze:
    >
    >
    >
    > > at91sam7s128. Generalnie juz napisalem se taki bootloader i wyglada na
    > > to ze dziala. flashuje se binarke do pamieci pod adres 0x109000, i
    > > sciągam potem pamieć na twardy dysk i zawartość się zgadza, ale mam
    > > inny problem mianowicie nie wiem jak skonfigurowac linker dla programu
    > > który ma być wgrany pod ten adres, niby skonfigurowalem coś w pliku
    > > flash.lds czyli zmieniłem adres pamieci flash i jej wielkość, wygląda
    > > to mniej więcej tak:
    >
    > > MEMORY
    > > {
    > >      sram (W!RX) : ORIGIN = 0x200000, LENGTH = 0x8000
    > >      flash (RX) : ORIGIN = 0x109000, LENGTH = 0x17000
    > > }
    >
    > > No i jak kompiluje ten program z parametrem optymalizacji -s0 to niby
    > > działa ale kiedy próbuje skompilować to zoptymalizowane to już się
    > > wysypuje.
    >
    > Jeszcze raz napisz, tyle że jaśniej. Ustawienia linkera (w szczególności
    > mapa obszarów pamięci) nie wpływają na proces kompilacji przecież, są
    > używane dopiero podczas konsolidacji. Więc nie może się po prostu
    > wysypywać (napisz jaki błąd dokładnie wystąpił?) kompilacja z powodu
    > przestawienia adresu obszaru Flasha.
    >
    > --
    > Adam Dybkowski
    >                http://dybkowski.net/
    >
    > Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

    No więc racja byłem zmęczony już wczoraj w nocy więc mogłem
    nagmatwać.
    chodzi o to że boot loader napisałem a teraz program ktory ma być
    zaladowany przez bootloader chcę tak ustawić aby dzialal po
    zaladowaniu go do pamięci pod wcześniej wspomniany adres. P zmianie
    wcześniej wspomnianego pliku (flash.lds) program kompiluje się dobrze,
    niezależnie od tego czy skompiluje sie go z parametrem -0s czy -O0 i
    bootloader ładuje go do pamięci po czym wykonuje skok bezwarunkowy pod
    adres tego programu i teraz jest dla mnie dziwne to ze program
    niezoptymalizowany działa a zoptymalizowany nie.


  • 17. Data: 2010-04-08 07:27:14
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: voland <v...@g...com>

    On 8 Kwi, 01:34, Adam Dybkowski <a...@4...pl> wrote:
    > W dniu 2010-04-08 00:37, voland pisze:
    >
    >
    >
    > > at91sam7s128. Generalnie juz napisalem se taki bootloader i wyglada na
    > > to ze dziala. flashuje se binarke do pamieci pod adres 0x109000, i
    > > sciągam potem pamieć na twardy dysk i zawartość się zgadza, ale mam
    > > inny problem mianowicie nie wiem jak skonfigurowac linker dla programu
    > > który ma być wgrany pod ten adres, niby skonfigurowalem coś w pliku
    > > flash.lds czyli zmieniłem adres pamieci flash i jej wielkość, wygląda
    > > to mniej więcej tak:
    >
    > > MEMORY
    > > {
    > >      sram (W!RX) : ORIGIN = 0x200000, LENGTH = 0x8000
    > >      flash (RX) : ORIGIN = 0x109000, LENGTH = 0x17000
    > > }
    >
    > > No i jak kompiluje ten program z parametrem optymalizacji -s0 to niby
    > > działa ale kiedy próbuje skompilować to zoptymalizowane to już się
    > > wysypuje.
    >
    > Jeszcze raz napisz, tyle że jaśniej. Ustawienia linkera (w szczególności
    > mapa obszarów pamięci) nie wpływają na proces kompilacji przecież, są
    > używane dopiero podczas konsolidacji. Więc nie może się po prostu
    > wysypywać (napisz jaki błąd dokładnie wystąpił?) kompilacja z powodu
    > przestawienia adresu obszaru Flasha.
    >
    > --
    > Adam Dybkowski
    >                http://dybkowski.net/
    >
    > Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

    No więc racja byłem zmęczony już wczoraj w nocy więc mogłem
    nagmatwać.
    chodzi o to że boot loader napisałem a teraz program ktory ma być
    zaladowany przez bootloader chcę tak ustawić aby dzialal po
    zaladowaniu go do pamięci pod wcześniej wspomniany adres. P zmianie
    wcześniej wspomnianego pliku (flash.lds) program kompiluje się dobrze,
    niezależnie od tego czy skompiluje sie go z parametrem -0s czy -O0 i
    bootloader ładuje go do pamięci po czym wykonuje skok bezwarunkowy pod
    adres tego programu i teraz jest dla mnie dziwne to ze program
    niezoptymalizowany działa a zoptymalizowany nie.


  • 18. Data: 2010-04-08 08:49:36
    Temat: Re: Bootloader dla SAM7 z flashowaniem z karty SD
    Od: voland <v...@g...com>

    On 8 Kwi, 09:27, voland <v...@g...com> wrote:
    > On 8 Kwi, 01:34, Adam Dybkowski <a...@4...pl> wrote:
    >
    >
    >
    > > W dniu 2010-04-08 00:37, voland pisze:
    >
    > > > at91sam7s128. Generalnie juz napisalem se taki bootloader i wyglada na
    > > > to ze dziala. flashuje se binarke do pamieci pod adres 0x109000, i
    > > > sciągam potem pamieć na twardy dysk i zawartość się zgadza, ale mam
    > > > inny problem mianowicie nie wiem jak skonfigurowac linker dla programu
    > > > który ma być wgrany pod ten adres, niby skonfigurowalem coś w pliku
    > > > flash.lds czyli zmieniłem adres pamieci flash i jej wielkość, wygląda
    > > > to mniej więcej tak:
    >
    > > > MEMORY
    > > > {
    > > >      sram (W!RX) : ORIGIN = 0x200000, LENGTH = 0x8000
    > > >      flash (RX) : ORIGIN = 0x109000, LENGTH = 0x17000
    > > > }
    >
    > > > No i jak kompiluje ten program z parametrem optymalizacji -s0 to niby
    > > > działa ale kiedy próbuje skompilować to zoptymalizowane to już się
    > > > wysypuje.
    >
    > > Jeszcze raz napisz, tyle że jaśniej. Ustawienia linkera (w szczególności
    > > mapa obszarów pamięci) nie wpływają na proces kompilacji przecież, są
    > > używane dopiero podczas konsolidacji. Więc nie może się po prostu
    > > wysypywać (napisz jaki błąd dokładnie wystąpił?) kompilacja z powodu
    > > przestawienia adresu obszaru Flasha.
    >
    > > --
    > > Adam Dybkowski
    > >                http://dybkowski.net/
    >
    > > Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
    >
    > No więc racja byłem zmęczony już wczoraj w nocy więc mogłem
    > nagmatwać.
    > chodzi o to że boot loader napisałem a teraz program ktory ma być
    > zaladowany przez bootloader  chcę tak ustawić aby dzialal po
    > zaladowaniu go do pamięci pod wcześniej wspomniany adres. P zmianie
    > wcześniej wspomnianego pliku (flash.lds) program kompiluje się dobrze,
    > niezależnie od tego czy skompiluje sie go z parametrem -0s czy -O0 i
    > bootloader ładuje go do pamięci po czym wykonuje skok bezwarunkowy pod
    > adres tego programu i teraz jest dla mnie dziwne to ze program
    > niezoptymalizowany działa a zoptymalizowany nie.

    Dobra no to działa. generalnie zarówno program bootloader jak i
    program loadowany starały się remapować adres zerowy na pamięć sdram
    ( zaraz po wystartowaniu). i teraz ten który robił to jako drugi
    zawieszał sie, poprostu w programie ładowanym usunołem linijke
    BOARD_RemapRam(); i działa. Dlaczego to moze powodować wieszanie sie
    procka to nie wiem, w dodatku dzieje się tak tylko w przypadku
    zoptymalizowanego kodu. Poczytam dokumentacje aby dowiedzieć się
    więcej na ten temat. Pozdrawiam.

strony : 1 . [ 2 ]


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: