Download pomocí Setru a itl

Verze pro tisk

4. Download pomocí Setru a itl

Nahrávání firmware (download) přes rádiový kanál je poměrně složité a přináší různá nebezpečí pro rádiovou síť. Proto je vhodné, aby jej prováděl pouze zkušený pracovník.

Dále je popsán přenos modulů firmware mezi komunikačními jednotkami CU prostřednictvím sítě MORSE. Používá službu itl programu SETR, která dovoluje použít dvě metody zápisu:

  • přes paměť D-RAM pro MR400, viz odstavec 1. a 2.

  • přímo do paměti Flash pro MR25, viz odstavec 3. a 4.

4.1. Download hlavního modulu E pomocí modulu kernel do MR400

Podmínky úspěšného přenosu:

  • dobré spojení mezi zdrojovou a cílovou CU některým z kanálů systému MORSE (rádio, ethernet, SCC), v případě rádiového spojení se doporučuje přímé spojení bez retranslace

  • cílová CU obsahuje D-RAM, tedy MR400, MR160, MR900, MC100 (nikoli však MR25)

  • zdrojová CU obsahuje modul (E nebo D nebo …), který má být přenesen do cílové CU

V programu Setr.exe je menu memload zařazeno mezi testy. Otevřeme jej povelem itl a vyplníme tyto položky:

(N):1

volba nódu pro komunikaci s cílovou CU

(d):690F0002

adresa cílové CU

(x):4

počet 128 bytových sektorů přenášených v jednom paketu, při špatných podmínkách spojení zvolíme menší číslo, např. x=2, při velmi dobrých podmínkách použijeme x=8

(m):m

režim moduly

(y):k

typ modulu kernel, volba je indikována kombinací adres 01000001, 03000001 na následujícím řádku

Memload: 
(N):1   (d):690F0002h
(E)xternal flash:OFF
ma(x) sectors:4   (m)odule:MODULE   preset t(y)pe
User module: fi(r)st:01000001   (l)ast:03000001  
(t)imeout:12000
(s)tart r(e)port sto(p)
go MORSE (A)/(W)
(i)nit
(f)ire (k)ill (c)ontinue
check through (S)UM32
go MORSE (B)
(C)..modprobe with chksum
(M)odprobe
(q)uit
>>

Pokračujeme následujícími povely:

(s) Enter

start testu

(i) Enter

inicializace v cílové CU

(e) Enter

report – zkontrolujeme zprávy testu před spuštěním:

This is Memload v1.03 response
max. MF sectors per packet :4
loading module:  -
target        : 690F0002h
status :ready; Check result: none
begin  :FF040000h
end    :FF0FA580h
current:FF040000h
talking to MORSE E
timeout 12000
Time elapsed: 0msec
Transfer rate: -1.#IND00kbps
>>

Přenos spustíme povelem (f)ire a sledujeme povelem r(e)port:

(f) Enter

start přenosu, LED indikují intenzivní provoz na RF kanálu

(e) Enter

zpráva o průběhu downloadu:

...
status :waiting for memfill response; Check result: none
begin  :FF040000h
end    :FF0FA580h
current:FF053600h
...

Adresa current se mění od adresy begin k adrese end. V případě potřeby můžeme proces přerušit povelem (k)ill a pokračovat (c)ontinue. Přenos hlavního modulu trvá podle podmínek v síti 10 až 15 minut.

Konec přenosu nemá zvláštní hlášení. Poznáme jej podle ukončení aktivity LED pro RF vysílání a příjem. Jednoznačná informace je obsažena v odpovědi na dotaz r(e)port, kde adresa current dosáhla nebo překročila adresu end:

status :all sectors are transfered.; Check result: none
begin  :FF040000h
end    :FF0FA580h
current:FF0FA580h
(C) Enter

přenesený kernel v cílové CU je zkontrolován a zkopírován z paměti D-RAM do trvalé paměti S-RAM. Trvá to okolo 6 sekund.

(e) Enter

report:

status :pal O.K.; Check result: none
(p) Enter

zastavíme test ve zdrojové CU

Přenos modulu firmware je hotov.

Přehled použitých povelů Setru pro MR400, hlavní modul:

itl
  N1 d690F0002 x4
  mm      ... režim moduly
  yk      ... modul kernel
  s i e   ... start testu
  f e     ... přenos
  C e     ... kopírování do S-RAM
  p       ... stop testu

Modul B-saver může být přenesen podobně, jako kernel:

itl
  N1 d690F0002 x4
  mm      ... režim moduly
  ys      ... modul saver ... odlišná volba od kernelu
  s i e   ... start testu
  f e     ... přenos
  C e     ... kopírování do S-RAM
  p       ... stop testu

Při přenosu B-saveru dostaneme odlišná hlášení v označení modulů 01000004, 03000004:

Memload: 
(N):1   (d):690F0002h
(E)xternal flash:OFF
ma(x) sectors:4   (m)odule:MODULE   preset t(y)pe
User module: fi(r)st:01000004   (l)ast:03000004

Rozsah přenášených adres je menší:

begin  :FF030000h
end    :FF037400h
current:FF030000h

Přenos je proveden během cca 30 sec.

4.2. Download modulu E pomocí modulů loader a kernel do MR25ET

Podmínky úspěšného přenosu:

  • dobré spojení mezi zdrojovou a cílovou CU

  • cílová CU obsahuje D-RAM, tedy MR25ET, MCM302 (nikoli však MR25)

  • zdrojová CU obsahuje modul (E nebo D nebo …), který má být přenesen do cílové CU

  • zdrojová CU obsahuje modul loader mc10.fkl, nejlépe čerstvě nahraný povelem memcp -af./fkl/mc10.fkl -as8 -pb115200

Postup je podobný, jako v předchozím případě. Rozdíl je v tom, že nejdříve přeneseme malý modul loader, volba (y):l a pak celý postup zopakujeme pro hlavní modul (y):k. Modul loader je označován písmenem C, například v odpovědi na povel sv je C757. Přehled použitých povelů Setru:

itl
  N1 d690F0002 x4
  mm      ... přenášený modul

  yl      ... modul loader
  s i e   ... start testu
  f e     ... přenos
  C e     ... kopírování do S-RAM
  p       ... stop testu

  yk      ... modul kernel
  s i e   ... start testu
  f e     ... přenos
  C e     ... kopírování do S-RAM
  p       ... stop testu

případně ještě přenos modulu B-saver:

  ys      ... modul saver
  s i e   ... start testu 
  f e     ... přenos
  C e     ... kopírování do S-RAM
  p       ... stop testu

4.3. Download modulu A nebo W nebo B pomocí modulu E do MR25

Podmínky úspěšného přenosu:

  • dobré spojení mezi zdrojovou a cílovou CU

  • cílová CU je MR25

  • cílová CU je MR25ET nebo MCM302 – alternativní metoda k výše uvedené

  • zdrojová CU obsahuje modul (A nebo W), který má být přenesen do cílové CU

Postup je podobný jako v předchozích případech, rozdíly jsou zdůrazněny dále:

itl

start testu memload v Setru

(d):690F8100

adresa cílové CU

(x):4

počet 128 bytových sektorů přenášených v jednom paketu

(m):A

přenášený modul, A zde představuje oba moduly, buď A nebo W

(s) Enter

start testu

(i) Enter

inicializace v cílové CU

(e) Enter

zkontrolujeme zprávy testu před spuštěním:

This is Memload v1.03 response
max. MF sectors per packet :4
loading module: MORSE A
target        : 690F8100h
status :ready Check result: none
begin  :  374000h
end    :  37D800h
current:  374000h
talking to MORSE E
timeout 12000
Time elapsed: 0msec
Transfer rate: nankbps

kde je:

   loading module: MORSE A - bude přenášen modul A(= A nebo W)
   talking to MORSE E      - bude pracovat modul E (= E,D nebo jiný hlavní modul)
(f) Enter

spustíme přenos

(e) Enter

zprávy o přenosu

Po ukončení přenosu vypadá zpráva takto:

status :all sectors are transfered. Check result: none
begin  :  374000h
end    :  37D800h
current:  37D800h
(S) Enter

kontrolní součet přeneseného modulu

(e) Enter

zpráva nyní obsahuje řádek:

status :all sectors are transfered. Check result: O.K.

V případě, že není Check result: O.K., provedeme sto(p) testu a spustíme test znovu od povelu (s)tart podle předchozího odstavce.

(p) Enter

zastavíme test ve zdrojové CU

Download vybraného modulu je hotov.

Přehled použitých povelů Setru:

itl
  N1 d690F8100 x4
  mA      ... přenášený modul
  s i e   ... start testu
  f e     ... přenos
  S e     ... kontrolní součet
  p       ... stop testu

4.4. Download modulu E nebo B pomocí modulů A nebo W do MR25

Podmínky úspěšného přenosu:

  • dobré spojení mezi zdrojovou a cílovou CU

  • cílová CU je MR25

  • cílová CU je MR25ET nebo MCM302 – alternativní metoda k výše uvedené

  • zdrojová CU obsahuje modul (E nebo D nebo …), který má být přenesen do cílové CU

  • cílová CU obsahuje modul A, pokud chceme přenést hlavní modul rádiem, nebo modul W, pokud chceme přenést hlavní modul drátovou linkou

Postup:

itl

start testu memload v Setru

(d):690F8100

adresa cílové CU

(x):4

počet 128 bytových sektorů přenášených v jednom paketu

(m):E

přenášený modul, E představuje aktuální hlavní modul ve zdrojové CU (= E, D, G, H, I), B je základní modul nazývaný také B-saver

(s) Enter

start testu

(i) Enter

inicializace v cílové CU

(A) Enter

přepnutí cílové CU do modulu A při přenosu rádiem

nebo

(W) Enter

přepnutí cílové CU do modulu W při přenosu po drátech

(i) Enter

init cílové CU

(e) Enter

kontrolní zpráva před spuštěním

Někdy se stane, že se objeví podobná zpráva:

status :ready Check result: none
begin  :  308000h
end    :  36A400h
current:  308000h
                   E via E???
talking to MORSE E

V tomto případě neproběhlo v cílové CU přepnutí z modulu E do A a musíme zopakovat povely:

(A) Enter

přepnutí cílové CU do modulu A

(i) Enter

init v cílové CU

(e) Enter

kontrolní zpráva

Správná odpověď vypadá takto:

status :ready Check result: none
begin  :  308000h
end    :  36A400h
current:  308000h
talking to MORSE A(W)

kde znamená:

  talking to MORSE A(W)   - přenos bude proveden pomocí modulu A nebo W
(f) Enter

spustíme přenos

(e) Enter

zprávy o přenosu

Po ukončení přenosu vypadá zpráva takto:

status :all sectors are transfered. Check result: none
(S) Enter

kontrolní součet přeneseného modulu

(e) Enter

zpráva nyní obsahuje řádek:

status :all sectors are transfered. Check result: O.K.

Cílová CU běží v modulu A nebo W. V tomto stavu (během downloadu a po jeho skončení) je CU schopna provádět retranslaci a pouze některé povely. Na dotaz sv následuje zkrácená odpověď A602 a po dotazu:

(N)ode (e)dit Enter

se objeví zpráva:

690F8100h> @  A/W: Service not available!

Proto je po skončení přenosu nutno cílovou CU přepnout zpět do hlavního modulu:

(B) Enter

přepnutí cílové CU do modulu B

(i) Enter

restart cílové CU, následuje její návrat do hlavního modulu

(e) Enter

kontrola přepnutí:

This is Memload v1.03 response
max. MF sectors per packet :4
loading module: MORSE E
target        : 690F8100h
status :ready; Check result: none
begin  :  308000h
end    :  36A400h
current:  308000h
                         E via E???
talking to MORSE E
timeout 12000
Time elapsed: 901158msec
Transfer rate: 0.000000kbps

Tato zpráva potvrzuje, že cílová CU je v pořádku a můžeme zastavit test:

(p) Enter

stop testu memload ve zdrojové CU

Download hlavního modulu je dokončen.

Přehled použitých povelů Setru:

itl
  N1 d690F8100 x4
  mE      ... přenášený modul
  s i     ... start testu
  A i e   ... přepnutí do modulu A
  f e     ... přenos
  S e     ... kontrolní součet
  B i e   ... přepnutí přes B do E
  p       ... stop testu

Pokud takto přenášíme základní modul B, pak je důležité nepřerušit chod cílové CU, dokud není přenos správně ukončen. To znamená neprovést restart, vypnutí napájení nebo povel go MORSE (B). Po restartu CU se provádí jako první start modulu B a je-li tento modul neúplně přenesen, pak program nepracuje. Je nutno dokončit nebo znovu provést přenos B, dokud je CU přepnuta v pomocném modulu A nebo W.

[Poznámka]Poznámka

Všechny operace mohou být provedeny dálkovým přístupem. Tímto způsobem je možno postupně přehrát moduly firmware v celé síti.

Pokud je nahráván hlavní modul pomocí modulu A, pak cílová CU může provádět ostatní povely jen omezeně, dokud není přepnuta zpět do hlavního modulu. CU v modulu A provádí retranslační funkce v síti i během downloadu, přesto je vhodné v silně vytížené síti během downloadu provoz omezit.

Povel (i)nit v itl je možno bez obav použít i častěji, máme-li pochybnost o řádném průběhu procesu, například při přepínání do modulu A.

Moduly A a W starší než 602 nepracují s novým (602 a novějším) sw v druhé CU. Doporučuje se nahradit je verzí A602 nebo W602.

Moduly ma10.rfrmw10.rfr jsou obsaženy ve firmware sw602.