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.
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.
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ý povelemmemcp -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
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
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 | |
---|---|
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.rfr
a mw10.rfr
jsou
obsaženy ve firmware sw602.