Ahojte, mam otazocku. Amatersky si programujem v jazykoch Basic, Python a Javascript, ale pri programovani mojho ARM modulu na ktorom bezi Linux som narazil na problem, ze Python, Shell script nie je dostatocny na plne vyuzitie. Snazim sa ovladat vystupy, co samozrejme Python aj Shell umoznuje, ale nie dostatocne rychlo. Taktiez nie je mozne vyuzit prerusenia atd. Docital som sa, ze potrebujem naprogramovat modul, ktory nahram do kernelu. No a samozrejme kedze ide o jazyk C, tak tu som skoncil. Vedeli by ste mi strucne napisat kde zacat ? Popripade doporucit na to vhodnu literaturu resp. clanky ? Ak si kupim knihu Programovanie v C, tak zastresi to aj programovanie modulov ? Taktiez ci myslim, ze literatura ako napr. Programovanie v C nebude vysvetlovat ovladanie vystupov, I2C, SPI atd. Znamenalo by to, ze by som musel siahnut po literature C pre mikroprocesory a C pod nejakym OS ?
Programovanie Linux Embedded
Pre pridávanie komentárov sa musíte prihlásiť.
Robíš niečo na spôsob osciloskopu? Páč inak by to Python mal stíhať.
Nie, nie. Snazim sa komunikovat so senzorom DHT22 a ten pre komunikaciu vyzaduje zmenu log. stavu v priebehu 4 - 20ms a taktiez by som potreboval externe prerusenie napr. pre snimanie impulzu z elektromerov.
Hm, bud davam blbe otazky alebo tazke.
V prvom rade potrebuješ spojazdniť realtime, napr. cez RTAI. Existuje aj balíček python-rtai ktorý môžeš vyskúšať, či by to predsa nestíhal.
Ja napríklad používam LinxCNC na riadenie krokových je tam použité RTAI a tu je kód.
Takže žiadny kernel modul nemusíš písať o presné načasovanie sa postará RTAI. (Aspoň myslím že stačí použiť RTAI knižnice)
Keby si predsa len chcel písať kernel modul, tak tu máš vzor od KERNEL ULTRAS :)
Inak štandardný plánovač má nastavené rozlíšenie na 10ms, čo by ti nevyhovovalo. Vlákno k tejto téme.
Nejaká omáčka z Wikipédie.
RTAI pre začiatočníkov.
Porovnanie realtime systémov.
RTAI aj moduly ucim v ramci predmetu Unix/Linux systemy realneho casu (od buduceho roku Operacne systemy realneho casu). preto viem, ze LXRT (Linux user space realtime) cast RTAI nam nestacilo na nic, co sa vykonavalo v nasom ramci period t.j. 1 ms a menej.
Na inom predmete ucim adresnych priestoroch deviceID, classID, vendorID a ich vyuzitie..
Takze otazka je, co chce pan robit.
A ten guide je stary nie ako Brno, ale ako Rim. Ten sposob kompilacie nefunguje uz ani na jadrach serie 2.6.x, tam sa uz vyuziva kernel build system, cize premenne v Makefile a make -c /lib/modules/$(uname -r)/build alebo nieco podobne...
samozrejme som zabudole, ze toto je na programe 9.-11. z 12 ks prednasok na predmete (12. su uvod do mautotools, tvorby deb a rpm balickov a tvorby repozitarov) Preto.,ebo musime zopakovat C-cko (aj ked je to treti predmet o C-cku) ucit ich Makefile, gcc , ldd, strace,... tvorbu *so, *.a,*la a ich pouzitie, uvod do gettextu a prostredie GNU/Linux, cvs, svn, bugzilla, redmine a potom procesy, vlakna, sockety, IPC primitiva a casovace.....
To vyzerá pekne. Ale mám jednu súkromnú otázočku. Neboli by nejaké verejné fotky z labákov robotiky?
z Nradoneho cnetra robotiky su na webe ustavu
http://www.urk.fei.stuba.sk/sk/content/stredoskolaci-navstivili-narodne-centrum-robotiky
http://www.urk.fei.stuba.sk/sk/content/pan-prezident-andrej-kiska-v-narodnom-centre-robotiky
pripadne o volitelnom predmete, ktory na mana nadvazuje
http://www.urk.fei.stuba.sk/sk/content/cvicenia-z-predmetu-vnorene-riadiace-systemy-0
Pekné a chalanovi by si nevedel odporučiť nejaké materiály na samo štúdium, prípadne či nezverejňujete vlastné práce niekde na nete?
nove prednasky nie su na webe
ale z rokov 2010 a 2011 su
http://posterus.sk/srt2011/Unix_Linux-systemy_realneho_casu_2011/stranka_predmetu_URPI_FEI_STU/Entries/2011/12/4_Jedenasta_prednaska.html
http://posterus.sk/srt2011/Unix_Linux-systemy_realneho_casu_2011/stranka_predmetu_URPI_FEI_STU/Entries/2011/11/26_Desiata_prednaska.html
Ako start to moze stacit
Ok. Dakujem. Prezentacia nie je sice az tak dobra pre samoukov, ale nieco sa da z toho pouzit. Uz som nejake materialy nasiel, ale dosiel som na to, ze najskor musim poriadne pochopit ako linux funguje a somozrejme C. Bude to beh na dlhu trat, ale bavi ma to, tak to skusim nastudovat.
Hlavne tam máš zbalené jednoduché príklady zrojákov.
Neviem či som Ťa pochopil, ale komunikáciu cez GPIO by mal mať ten senzor pekne popísanú aj pre python. Nejako sa mi nezdá že by si potreboval mať vlastnú komunikačnú vrstvu pre realtime keďže ten senzor sa bežne pripája na RPI a klony typu cubie.
WlaSaty, mas pravdu. nasiel som aj nejake priklady v pythone, ale ten python pouziva kniznicu napisanu v C. Ono to mozno nemusi byt rovno kernel modul, ale iba ovladac. Aj ked nie som si isty, ci ovladac nie je rovno kernel modul.
S tym RTAI to vyskusam.
Ovládač a kernel modul je na linuxe obvykle to isté. Ten Ti v tomto prípade vytvorí znakové rozhranie z ktorého budeš potom môcť napriamo čítať teplotu, vlhkosť a stav čidla, takže asi ani python framework nebudeš potrebovať ak ti ide len o meranie grafu.
ako sa meria graf?
Pravítkom. A ak nie je pravouhlý, tak krivítkom.