[elektro] Szegmentálási hiba
Acs Gabor
levlista at e8e.eu
Wed Feb 12 14:37:40 CET 2014
2014.02.12. 14:28 keltezéssel, Móczik Gábor írta:
> Hát ne XOR-t használj, az csak nagyon korlátozottan jó.
> Szerintem egy CRC16 minimum dukálna a rendszerbe, és nem annyira
> számításigényes.
A protokollon nem változtathatok.
> Azt biztos, hogy legyen egy blokknak eleje meg vége, és legyen rajta
> ellenőrzőösszeg. Ha nincs eleje vagy vége, nem jó a hossza, vagy rossz a
> checksum, tovább ne is foglalkozz vele.
Ez most így működik.
> Ha részlegesen fér a bufferbe, és ez menet közben derül ki, ürítsd ki a
> bufferből a részlegesen betett holmit mikor eldobod.
A bufferbe eleve csak akkor kerülhet be egy parancs-csomag, ha már
átesett egy ellenőrzésen (hossz, chcksm). Csomag-darabkák elvileg már
semmiképp nem juthatnak be.
> Ha normális jelenség, hogy egy parancs és a paraméterei olyan nagyok,
> hogy csak fragmentálva továbbíthatók, akkor számold a fragment-eket,
> legyen sorszámozva, ha valami hiányzik, eldobni az egészet.
Ilyen most még nincs, de később lesz, és így is van betervezve, ahogy írod.
> Ami nincs, azt ne próbáld kitalálni. Error és kész. Majd küldenek jót.
Ez is így néz ki most.
> Amit KJ írt, minden állapotból legyen kiút, akkor is ha a várt adat nem
> jön, vagy nem várt jön.
>
> Egyébként nem tudom milyen rendszer, de a versenyhelyzeteket nézd még
> meg, nem lehet-e, hogy bizonyos csillag-együttáláásnál több thread
> akarja ugyanazt piszkálni, pl. a buffert, és egymásnak bezavarnak.
>
> Pl. tipikus példa, ha a circular buffert az ISR írja, és a main olvassa.
> Ha a main lemarad, az ISR írná a következő adatot, de nincs hely, és nem
> a bejövő adatot dobja el, hanem a legrégebbit a bufferben, úgy hogy a
> read pointert továbblöki, akkor a main kicsit bezavarodhat, ha éppen azt
> olvasta.
Na ilyenem volt, a főprogram is és egy interrupt is kezelt egy puffert,
és előfordult, hogy egyszerre nyúltak hozzá, így rossz esetben hibásak
lettek a pointerek. De már rég volt, szerencsére....
Gábor
> Ha a state machine atombiztos, szerintem ilyeneket keress.
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list