www.elektronik.si
RPI in C

www.elektronik.si -> Raspberry Pi sekcija

Avtor: vilkoKraj: Dragomer PrispevekObjavljeno: Sob Jan 06, 2018 11:32 am    Naslov sporočila:  RPI in C
----------------------------------------------------------------------------
Živijo v Novem Letu !

Raspberrypi je linux.
Naravni jezik v linuxu je C
Postavil sem si Raspberry pi, Python najdem, C-a pa ne. Je potrebno kaj posebnega instalirat, da se bom lahko igral v C-u?

Bodi tudi to leto plodno!

Avtor: mosqito PrispevekObjavljeno: Sob Jan 06, 2018 11:41 am    Naslov sporočila:  
----------------------------------------------------------------------------
Jaz sem naredil po teh navodilih:
http://www.raspberry-projects.com/pi/category/programming-in-c

Delaš na PC/Windows v netbeans, pravajaš in poganjaš pa na daljavo, vključno z debugiranjem (lahko v kodi zz debugerjem nastaviš break pointe, gledaš vrednosti spremenljivk itd...).

Tu je en projekt, kjer sem to v praksi uporabil:
http://e.pavlin.si/2017/04/19/smart-nesting-box/

Avtor: bostjanoksidianKraj: Laško PrispevekObjavljeno: Sob Jan 06, 2018 7:48 pm    Naslov sporočila:  
----------------------------------------------------------------------------
C jezik (gcc) in seveda vse povezano z njim je v kateri koli izdaji linuxa (unix-a). Gre za izvedbo c-ja letnica 1978!!!!!. Vsi danes znani in bolj pomembni programi so prevajani v tem prevajalniku. Razni c++ so izvedeni in sami prevajalniki prevajani z osnovnim bcc prevajalnikom. V slovenski izdaji, ki jo jaz uporabljam in skrbim zanjo imam zato podprte samo vaje iz tega gcc-ja. Na tem forumu je več pod temo...
https://www.elektronik.si/phpBB2/viewtopic.php?t=46702

Slovensko šolsko-razvojno izdajo imam na naslovu(IP-ju)
http://89.212.21.12/

Pod Gcc je cca 40 vaj, ki se končajo z urejanjem, to so vsebine ki zaključujejo srednjo in višjo šolo.... Vse je v izvorni kodi, in se vidi kako se prevaja, kodo je možno tudi popravljati in če jo "popravimo" preveč povrniti v začetno delujoče stanje.

Avtor: mosqito PrispevekObjavljeno: Sob Jan 06, 2018 9:50 pm    Naslov sporočila:  
----------------------------------------------------------------------------
To kar si navedel, je sicer res, samo nima nobene veze z vprašanjem, kako (v praksi) programirati v C-ju za R.pi.

Avtor: RGorazdKraj: Ig PrispevekObjavljeno: Sob Jan 06, 2018 11:24 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Odpreš terminal in vtipkaš:

nano mojCprogram.c

vneseš
Koda:
#include <stdio.h>

int main(void) {
   printf("Hello world!");
   return(0);
}

in shraniš (ctrl-x) enter enter

vtipkaš ukaz gcc mojCprogram.c

počakaš

poženeš a.out

./a.out

in imaš...

Avtor: vilkoKraj: Dragomer PrispevekObjavljeno: Ned Jan 07, 2018 9:55 am    Naslov sporočila:  
----------------------------------------------------------------------------
Hvala vsem!

Sedaj se bom moral poglobiti v navodila. In seveda začeti z vajami. Nekoč sem nekaj malega že delal v C-u ampak na beagleboard-u, nekemu dragemu predhodniku RPI-a.
Tam je bil C že pri instalacijii sistema vgrajen in ga je bilo trega samo poklicati.

Zakaj rinem v C namesto da bi uporaabil Python?
Na beaglebourdu se uporabljal zelo prijazno orodje, ki se mu je tam reklo Shared Memory in je orodje za komunikacijo med različnimi, sicer samostojnimi taski. Enostavno definiraš spremenljivke v recimo dveh različnim programih kjer imata oba programa potem dostop do vsebin teh spremenljivk, lahko pišeta vanje, ali samo bereta,

Tega menda v Pythonu ni. Da bi pa to reševal preko datoteke na disku mi pa nekako ne gre. Saj imajo ti SD diski omejeno življensko dobo in često pisanje in popravljanje vsebine bi ta čas bistveno skrajšalo.

Bom javljal, kako mi gre in bil odprt za sugestije.

Boštjan, vesel sem, da si napisal šolo programiranja v slovenščini, ki je sicer pri računalničarjih zalo zapostavljena. Tisti povsod ne začetku "Hello, World" je tudi mene bodel v jezik. Jaz sem prevedel to kot "Hej, ljudje!" v vseh mojih programih, kjer začnem kaj delati.

Pozdrave vsem!

Avtor: vpeterKraj: Maribor okolica PrispevekObjavljeno: Ned Jan 07, 2018 10:08 am    Naslov sporočila:  
----------------------------------------------------------------------------
Python podpira deljen pomnilnik (shared memory). En hiter primer: https://blog.schmichael.com/2011/05/15/sharing-python-data-between-processes-using-mmap/

Avtor: vilkoKraj: Dragomer PrispevekObjavljeno: Ned Jan 07, 2018 10:15 am    Naslov sporočila:  
----------------------------------------------------------------------------
Hvala! To je prvi pozitiven odgovor na temp Shared memory v Pythonu.

Bom takoj odprl in si ogledal.

Hvala!

Avtor: vilkoKraj: Dragomer PrispevekObjavljeno: Ned Jan 07, 2018 11:32 am    Naslov sporočila:  
----------------------------------------------------------------------------
Hvala tudi tebi Gorazd!

Probal in res, C je vgrajen tudi v RPI in ni potrebna posebna instalacija.

Potrudil si se, da si mi vtipkal, kako preveriti in res hvala!

VS

Avtor: bostjanoksidianKraj: Laško PrispevekObjavljeno: Ned Jan 07, 2018 1:23 pm    Naslov sporočila:  
----------------------------------------------------------------------------
mosqito je napisal/a:
To kar si navedel, je sicer res, samo nima nobene veze z vprašanjem, kako (v praksi) programirati v C-ju za R.pi.

Hm za enkrat imaš nekaj splošnih vaj.
Dodatno so dodane vaje za
GPIO
Mysql
urejanje (kar so malo bolj komplicirane splošne vaje)

Tako kot za vsak jezik velja, da se programi v osnovi ločijo na neskončno delujoče in dogodkovno usmerjene programe(se relativno hitro konča).

Ali napišeš npr python test.py ali npr test je vseeno, razen pri hitrosti odpiranja in izvajanja programa. Dejstvo je, da so izvorne kode npr hostapd, apache, Mysql itd napisane v tem jeziku, oz je bil jezik razvit za pisanje operacijskega sistema in ostalih aplikacij. Načeloma se danes uporablja python in gcc. Eden kot tolmač drugi kot prevajalnik. Kako pa prenašaš parametre v in iz programa in med npr php, python ali bcc to pa je pokazano v vajah. Če mene vprašaš so še naj obetavnejši programi ki kaj počnejo z GPIO. Tudi moraš razlikovat ali delaš za trg ali za poučevanje. Tu ima python prednost, ker ima napisanih veliko knjižnic, bcc je dober kadar se moraš pri projektu ubadati s hitrostjo in skrivanjem kode.... recimo Smile

Če boš napisal kako zanimivo vajo, jo zagotovo dodam na izdajo in v njej boš večno označen kot avtor.

Tu nekje med temi primeri se moraš poiskat Smile


Nazadnje urejal/a bostjanoksidian Ned Jan 07, 2018 2:59 pm; skupaj popravljeno 2 krat

Avtor: mosqito PrispevekObjavljeno: Ned Jan 07, 2018 1:50 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Vilko, preko diska lahko tudi delaš hitro in učinkovito, če uporabiš RAM-disk.

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group