Wątek przeniesiony 2018-11-07 16:00 z Nietuzinkowe tematy przez Marooned.

Zdalny upgrade programu na procesorze STM

0

Chciałbym się dowiedzieć czy ma ktoś doświadczenie z pisaniem programu na stm32, który umożliwiałby zdalne przeładowanie wykonywanego w procesorze kodu ??

Chodzi mi o sytuację gdy odpalam program na procesorze, program zaczytuje do ramu zawartość pliku ze skompilowanymi instrukcjami, ustawia wskaźnik wykonania na początku zaczytanego kodu i wykonuje ten kod. Następnie gdy otrzyma sygnał (z sieci lub przez port) to zaczyta nowy plik (np. z sieci) i przeładuje instrukcje w ramie po czym znów je wykona.
Czy dobrze rozumuje, ma ktoś jakieś doświadczenia w czymś takim, jakieś źródła ?

Zaznaczam, że nigdy (poza laborkami) nie zajmowałem się na niskim poziomie procesorami innymi niż rodziną x86 dlatego proszę o wyrozumiałość.

0

Szukaj pod hasłem bootloader.

0

Uwazasz ze nie ma sensu napisanie takiego rozwiazania na nieco wyzszym poziomie ?

0

To inaczej: a chcesz ładować do tego ramu kod maszynowy czy jakiś pośredni, którego interpreter będzie siedzieć na procesorze?

0
  1. STM32 wykonuje program z pamięci Flash i RAM.
  2. Z przestrzeni RAM program wykonywany jest wolniej.
  3. STM32 to mikrokontroler więc tzw "duże systemy" raczej nie mają racji bytu (specjalizowane RTOS owszem).
  4. Jeśli chcesz wykonać firmware upgrade, to szukaj jak kolega powiedział pod pojęciem bootloader, jeśli chcesz wykonać kod z RAM to nie ma żadnych przeszkód (oprócz patrz pkt 2).

A odpowiadając na pytanie bezpośrednio co do RAM, wystarczy taki moduł zlinkować z adresami absolutnymi w RAM lub zlinkować jako PIC (Position Independent Code). Co do przygotowania pod bootloader, w zależności jakiego i jaką drogą będziesz chciał wczytać... (odsyłam do bogatej dokumentacji bootloadera STM32) :-)

0

Chce ładować kod maszynowy po czym "recznie" przestawiac wskaznik wskazujacy na kod do wykonania na ten kod. Drugie rozwiazanie jest za trudne bo tu juz sie wchodzi w jakas maszyne wirtualna prawie...

0

@Mokrowski, dzieki ;)

0

Podsumowując jeżeli wymaganiem jest by procesor nie był RT, a co najwyzej w ciagu minuty raportowal jakies tam zdarzenie to dzialanie z RAMU jest do zaakceptowania ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1