C vs C++ na mikrokontrolerju

Vse o programiranju na in za PC

Moderatorji: Kroko, tilz0R

C vs C++ na mikrokontrolerju

OdgovorNapisal/-a Kroko » 19 Okt 2017, 12:07

Na MCU-jih iz navade še vedno uporabljam C.
Ali pozna kdo kakšno primerjavo med C in C++ na mikrokontrolerjih?
Kako bi naredil nekakšen benchmark test?
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4805
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 684 krat
Prejel zahvalo: 1665 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a marko » 19 Okt 2017, 13:34

Kmečka logika (in izkušnje) mi pravijo, da performančno ni razlik, oz. vsaj ne bi smelo biti. Tu je pomoje bolj vprašanje kaj je bolj praktično za pisat. Tudi sam še vedno uporabljam C, čeprav so projekti nekateri že tako kompleksni, da bi prav prišel C++, ampak enostavno ni toliko volje, da bi šel vse to portat.
Windows software recimo, mi pa ne pride namisel, da ga ne bi objektno delal.
Če ti v življenju ne gre in si nesrečen, se spomni na lastnike Renaultov.
marko
 
Prispevkov: 1231
Pridružen: 18 Jan 2015, 02:00
Zahvalil se je: 144 krat
Prejel zahvalo: 169 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 89

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a tilz0R » 19 Okt 2017, 13:42

Tukaj se strinjam z markom.

V MCU tudi sam pišem striktno le C kodo, vendar z mislijo, da bom enkrat šel na C++, torej with extern C (blabla) definicijami.

Dokler v MCU-ju ne uporabljaš ukazov new in delete je prevajalnik pametnejši od človeka in bo C++ kodo naredil enako kot C kodo.
Treba se je izogibati kode, ki zadaj uporablja dinamični pomnilnik. Recimo spodnja bi ga lahko uporabljala:

Koda: Izberi vse
std::string s = "tilz0R";
s += "test";


Kar pomeni, da moramo prekleto dobro poznati C++, če hočemo pisati MCU kodo v njem.

V Windowsu pa tudi samo C++.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1826
Pridružen: 18 Jan 2015, 00:12
Kraj: Črnomelj
Zahvalil se je: 230 krat
Prejel zahvalo: 517 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a Kroko » 19 Okt 2017, 14:28

Točno tako sem razmišljal sem.

Me pa moti tale warning (Keil)
*** Warning: Using Microlib and C++ file(s) might cause the linker to fail !

Kakšen je to trapast "might" warning? Ali linker dela ali pa ne dela. Ali pa mogoče dela samo ob četrtkih :-)
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4805
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 684 krat
Prejel zahvalo: 1665 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a tilz0R » 19 Okt 2017, 14:46

Kroko je napisal/-a:Kakšen je to trapast "might" warning? Ali linker dela ali pa ne dela. Ali pa mogoče dela samo ob četrtkih :-)

Hhaha, prevajalnik v.6 tudi vrže warning?
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1826
Pridružen: 18 Jan 2015, 00:12
Kraj: Črnomelj
Zahvalil se je: 230 krat
Prejel zahvalo: 517 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a Kroko » 19 Okt 2017, 15:30

Tudi prevajalnik v6.7 vrže warning skupaj z 700 drugimi napakami.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4805
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 684 krat
Prejel zahvalo: 1665 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a Kroko » 19 Okt 2017, 17:10

Je kdo delal primerjavo med Microlib in standard lib? Pri standard lib tega problema ni.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4805
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 684 krat
Prejel zahvalo: 1665 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a tilz0R » 19 Okt 2017, 21:04

Kroko je napisal/-a:Je kdo delal primerjavo med Microlib in standard lib? Pri standard lib tega problema ni.


Nikoli. Imaš pa spodaj benchmark.

http://www.keil.com/arm/microlib.asp
http://www.keil.com/support/man/docs/ar ... 938431.htm
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1826
Pridružen: 18 Jan 2015, 00:12
Kraj: Črnomelj
Zahvalil se je: 230 krat
Prejel zahvalo: 517 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C vs C++ na mikrokontrolerju

OdgovorNapisal/-a Kroko » 19 Okt 2017, 23:26

Prevedel sem en moj projekt na oba načina in je bilo razlike v velikosti 4 byte. Sklepam, da je tudi hitrost izvajanja potem enaka?
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4805
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 684 krat
Prejel zahvalo: 1665 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255


Vrni se na Programski jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost