[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