Jak uruchomić załadowany program do RAM w at91SAMSXXX (bez JTaga)

Witam

Zrobiłem sobie bootloader (uruchamia się po resecie z Flash) ładujący program przez RS do procesora pod adres początku jego SRAM 0x200000 . Moje pytanie jest w jaki sposób powinienem uruchomić ten program w RAM po zakończeniu procedury transferu do RAMu (tak aby poprawnie się zaczął wykonywać program skompilowany pod WinArm z włączonym RUN_MODE=RAM_RUN w makefile - jeden z przykładowych programów typu migające diody) ?

Może ktoś już coś takiego ćwiczył (próba z : 'asm volatile ("mov PC,#0x200000");' niestety nie działa).

Pozdrowienia

Reply to
invalid unparseable
Loading thread data ...

Piotr Kędzierski napisał(a):

void (*ptr)(void) = (void*)0x200000; ptr();

Pozdr AK

Reply to
AK

Niestety nie działa. Musi to być bardziej skomplikowane - główny problem to chyba remap. Muszę jednak sobie zmajstrować JTaga.

Dzięki

Użytkownik "AK" snipped-for-privacy@gazeta.pl napisał w wiadomości news:du7flp$i48$ snipped-for-privacy@inews.gazeta.pl...

Reply to
invalid unparseable

Piotr Kędzierski napisał(a):

A mozesz podeslac kod ? U mnie dziala takie cos bez problemu.

Pozdr AK

Reply to
AK

Piotr Kędzierski napisał(a):

Zdecydowanie warto. Wtedy jest dopiero zabawa z gdb/Insight. :)

A tak poza tym olać remap. Jeżeli w skrypcie linkera ustawisz Flash od

0x100000 a RAM od 0x200000 to remap nie jest potrzebny do niczego. Oczywiście można też przyjąć, że Flash leży od adresu 0 (domyślnie).
Reply to
Adam Dybkowski

Ale co z przerwaniami ?

Reply to
invalid unparseable

Piotr Kędzierski napisał(a):

Wektory przerwań leżą na początku pamięci więc tam trzeba umieścić skoki do właściwych funkcji, może to się dziać oczywiście w pamięci Flash. W czym problem? Musisz tylko utworzyć plik asemblerowy z tymi skokami i najlepiej tworzący oddzielną sekcję (np. ".vectors"), a w skrypcie linkera kazać umieścić tą sekcję na początku Flasha, przed sekcjami .text i resztą.

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.