WD
Jan Waclawek
wek@evona.sk
Pondělí Únor 6 10:45:01 CET 2006
Martin Zaruba wrote:
> No ale podle ceho se tedy pozna, ze se jednocip seknul? Pokud to
> dokazete nejak jednoznacne rozeznat, pak by WD mohl ovladat pnp
> tranzistor, pres ktery se jednocip napaji. Pokud tedy stav nastane, na
> chvilku vypne napajeni a vse se vzpamatuje.
> Neni ale divne, z na jedne noze k WD stale jsou pulzy z procesoru a na
> ostatnich stabilni nahodna kombinace? Neni to nejaka hloupost na plosnem
> spoji? Nedovedu si predstavit, ze bu se zrovna takto procesor choval.
A preco nie. Ked sa jednocip "sekne", moze robit uplne cokolvek; ale nie
je nepravdepodobne, ze sa mu bud nastavi nejaky nevhodny bit v SFR,
takze sa napr. zastavi timer alebo sa zakaze nejake prerusenie.
Riesenie je viacmenej v software - tam niekde sa s tou WD nohou jazdi,
takze to "seknutie" je take, ze to zostane jazdit s tou nohou. Treba
zvysit paranoiu, t.j. skumat, kde vsade sa WD nohou jazdi a ako a treba
si premysliet, ako by sa to dalo spravit "komplikovanejsie". Napriklad,
ak spravna funkcia vyzaduje aby nastavalo prerusenie od timera aj bezal
"hlavny program", tak v preruseni by sa mala WD noha nastavit a v
"hlavnom programe" nulovat. Da sa to viazat aj na viac udalosti cez
nejaku sustavu flagov.
Este jedna lacna paranoidna zalezitost (i ked pochybnej hodnoty, el
kedze to je fakt lacne, oplati sa to spravit): vyplnit nepouzite miesto
vo flash skokom na rutinu ktora spolahlivo WD spusti (napr. urobi
powerdown, alebo zakaze prerusenia a zacykli sa). Treba si premysliet
adresu kam to dat, aby pri skoku do "prostriedku" instrukcie skoku sa
vykonali nejake "neskodne" instrukcie.
wek
Další informace o konferenci Hw-list