Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Izmeniti drajver za serijski port od prosle nedelje, tako da se prilikom prijema karaktera, aplikacija koja treba
- da cita iz prijemnog bafera asinhrono obavestava o pristiglim karakterima. U tu svrhu potrebno je imati i
- jednostavnu aplikaciju koja "cita" iz prijemnog bafera nakon sto je obavestena od strane drajvera.
- Dodatno, u drajveru za serijski port treba implementirati funkciju slanja broja u opsegu 0-255.
- Parametri za komunikaciju su i dalje 9600b/s, 8 bita podataka, 1 stop bit i bez koriscenja parity bita.
- Predajni bafer je velicine 16 vrednosti tipa unsigned char.
- Karakteri koji se salju prosledjuju se drajveru u formatu decimalnog broja, cifra po cifra, razdvojeni zarezom.
- Na primer:
- '1''4''6'','2''3''8'
- ce u bafer da smesti dva broja: 146 i 238.
- Osim ovoga, neposredno pre zareza (ili na kraju sekvence koja se upisuje) u kontrolnoj sekvenci se mogu naci i kontrolni karakteri:
- R - iza broja koji se smesta a nakon njega broj koji govori koliko puta se taj broj smesta u bafer (pogledaj primer dole)
- I - iza kojeg idu dva jednocifrena broja koji govore koliko inkremenata prethodno unetog broja se smesta u bafer (pogledaj primer dole)
- Na primer, nakon sekvence primljenih karaktera
- 123,100R4 preko serijskog porta ce biti poslati 123, 100, 100, 100, 100, 100
- 10, 13, 23I23 preko serijskog porta ce biti poslati 10, 13, 23, 25, 27, 29 (tri puta 23 inkrementiran za dva)
- 10, 13, 23I23 preko serijskog porta ce biti poslati 10, 13, 23, 25, 27, 29 (prethodni += 2 pa tako tri puta)
- 100, 1, 3I14 preko serijskog porta ce biti poslati 100, 1, 3, 4, 5, 6, 7 (prethodni += 1 pa tako cetiri puta)
- Predaja treba da omoguci blokiranje prilikom slanja kada je predajni bafer pun, tako da preostali
- podaci nece biti odbaceni vec poslati kada se oslobodi mesto u baferu. Takodje, potrebno je bafer
- zastititi koriscenjem spinlock-a obzirom da mu konkurentno mogu pristupati drugi procesi, kao i prekidna rutina.
- Ocenjivanje:
- asinhrono obavestavanje 2p
- slanje iz prekidne rutine i inicijalno slanje 2p
- Parsiranje i prepoznavanje komandi 2p
- R funkcija 2p
- I funkcija 2p
- Blokiranje 1p
- Spinlok 1p
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement