Programovanie Linux Embedded

Sekcia: Programovanie 05.05.2015 | 16:25
Bobo   Návštevník

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 ?

    • RE: Programovanie Linux Embedded 05.05.2015 | 19:00
      Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

      Robíš niečo na spôsob osciloskopu? Páč inak by to Python mal stíhať.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Programovanie Linux Embedded 05.05.2015 | 20:15
        Avatar Bobo   Návštevník

        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.

        • RE: Programovanie Linux Embedded 12.05.2015 | 08:46
          Avatar Bobo   Návštevník

          Hm, bud davam blbe otazky alebo tazke.

          • RE: Programovanie Linux Embedded 12.05.2015 | 11:33
            Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

            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.

            Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
            • RE: Programovanie Linux Embedded 13.05.2015 | 15:54
              Avatar Peter Fodrek   Návštevník

              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...

              • RE: Programovanie Linux Embedded 13.05.2015 | 16:01
                Avatar Peter Fodrek   Návštevník

                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.....

                • RE: Programovanie Linux Embedded 13.05.2015 | 19:47
                  Avatar WlaSaTy   Návštevník

                  To vyzerá pekne. Ale mám jednu súkromnú otázočku. Neboli by nejaké verejné fotky z labákov robotiky?

                  • RE: Programovanie Linux Embedded 14.05.2015 | 09:22
                    Avatar Peter Fodrek   Návštevník

                    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

                • RE: Programovanie Linux Embedded 14.05.2015 | 07:13
                  Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

                  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?

                  Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
                  • RE: Programovanie Linux Embedded 14.05.2015 | 09:24
                    Avatar Peter Fodrek   Návštevník

                    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

                    • RE: Programovanie Linux Embedded 14.05.2015 | 13:15
                      Avatar Bobo   Návštevník

                      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.

                      • RE: Programovanie Linux Embedded 14.05.2015 | 13:46
                        Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

                        Hlavne tam máš zbalené jednoduché príklady zrojákov.

                        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: Programovanie Linux Embedded 12.05.2015 | 11:38
            Avatar WlaSaTy   Návštevník

            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.

            • RE: Programovanie Linux Embedded 12.05.2015 | 12:29
              Avatar Bobo   Návštevník

              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.

              • RE: Programovanie Linux Embedded 12.05.2015 | 12:48
                Avatar Bobo   Návštevník

                S tym RTAI to vyskusam.

              • RE: Programovanie Linux Embedded 12.05.2015 | 14:46
                Avatar WlaSaTy   Návštevník

                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.

                • RE: Programovanie Linux Embedded 12.05.2015 | 15:58
                  Avatar nevedko   Návštevník

                  ako sa meria graf?

                  • RE: Programovanie Linux Embedded 13.05.2015 | 11:19
                    Avatar WlaSaTy   Návštevník

                    Pravítkom. A ak nie je pravouhlý, tak krivítkom.