 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sre Sep 09, 2009 7:43 pm Naslov sporočila: |
|
|
Nas poznas? Kako ves v cem in kako programiramo?
Replika na 1:
Kazalci so bistvo Cja, C brez kazalcev ne obstaja in če kazalcev v Cju ne poznaš, boš napisal bolj malo. Pravzaprav ravno toliko kot v asemblerju, če ne poznaš vseh načinov naslavljanja. V Cju se ne ukvarjaš s tem, kateri način naslavljanja boš vzel in na roke preračunaval offsete itd.
In low-level v asemblerju niti ni več potreben. Bootup, semaforji, sleep... ni da ni. Razvoj prevajalnikov je šel močno naprej, seveda tudi arhitektura mikrotov. Razvoj mikrokrmilnika in prevajalnika pravzaprav poteka hkrati in se dopolnjujeta. _________________ Answers: $1, Short: $5, Correct: $25, dumb looks are still free. |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sre Sep 09, 2009 7:53 pm Naslov sporočila: |
|
|
Lagrange je napisal/a: |
Kdor zeli razumeti kako mlincek v resnici deluje mora razumeti asm. |
S tem se nikakor ne morem strinjat. Pred leti, ko sem iskal mikro sem preštudiral PICe brez da bi pogledal asembler. Popolnoma mi je bilo jasno kako deluje. In ker mi je arhitektura smrdela, je bilo že tu konec. No, če ne bi bilo, bi bilo pa ob pogledu na asembler.
V resnici je ravno obratno. Za dobro asemblersko programiranje moraš najprej dobro poznati mlinčka. Kaj ti pomaga rutina za digitalni filter ali fft v asemblerju, če ne veš, da pri določenih arhitekturah rezultat aritmetične operacije ni na voljo še nekaj ciklov. Asembler nima nič s tem. _________________ Answers: $1, Short: $5, Correct: $25, dumb looks are still free. |
|
Nazaj na vrh |
|
 |
GJ Član


Pridružen-a: Čet 02 Nov 2006 15:51 Prispevkov: 946 Aktiv.: 4.17 Kraj: Ljubljana
|
Objavljeno: Sre Sep 09, 2009 8:31 pm Naslov sporočila: |
|
|
Glitch je napisal/a: |
Kazalci so bistvo Cja, C brez kazalcev ne obstaja in če kazalcev v Cju ne poznaš, boš napisal bolj malo. Pravzaprav ravno toliko kot v asemblerju, če ne poznaš vseh načinov naslavljanja. V Cju se ne ukvarjaš s tem, kateri način naslavljanja boš vzel in na roke preračunaval offsete itd.
In low-level v asemblerju niti ni več potreben. Bootup, semaforji, sleep... ni da ni. Razvoj prevajalnikov je šel močno naprej, seveda tudi arhitektura mikrotov. Razvoj mikrokrmilnika in prevajalnika pravzaprav poteka hkrati in se dopolnjujeta. |
Se podpišem pod tole..
In tudi to imaš prav kar se tiče PIC-ov, vsaj tistih 8 bitnih, njihova arhitektura ni namenjena C-ju. PIC ima hardwarski stack, ki ga strukturirani jeziki ne morejo koristiti. V bistvu PIC-i nimajo pravega stacka. Podporo pravemu C-ju so PIC-i dobili kasneje z družino PIC18Fxxx in upeljavo dodatnih ukazov kot so 'Table Read/Write', ki lahko opravljajo funkcijo stacka. Ampak to so 'low-cost' mikrokontrolerji in so povsem nekaj drugega kot močnejši 32 bitniki.
LP GJ |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Sre Sep 09, 2009 11:15 pm Naslov sporočila: |
|
|
GJ je napisal/a: |
Sokrat je napisal/a: |
Casa gre vsekakor precej vec, a nekaterih reci se ne da narediti drugace, kot da vrzes precej casa ob problem. |
Ker drugače ne znaš! |
Nisem preprican, da si razumel, kar sem napisal ... ali pa morda jaz ne razumem tebe. Napisal sem, da se dolocenih stvari enostavno ne da narediti drugace, kot z vecjo investicijo v razvojno delo. To je dejstvo. Tolikointoliko lahko dosezes z zmoghljivejsim HW, potem pa enkrat prides do meje tega HW (npr. zaradi porabe ali kateregakoli dejavnika pac) in od takrat naprej lahko pospeske dobis samo se z boljsim programiranjem.
Citiram: |
Tema ni nastala zaradi malih mikrokontrolerjev. |
Jaz sem se vanjo vkljucil zato, ker je bila debata o malih mikrokontrolerjih (konkretno malih PICih). Tudi zdaj, ko sem ponovno pogledal kje je bila odrezana, vidim na zacetku isto - torej debato o malih mikrokontrolerjih.
Citiram: |
Ja za male mikrokontrolerje je programiranje v mnemonicu primernejše. |
Mislim, da si zgresil smisel mojih sporocil v tej temi. Moje stalisce je, da je za vsako stvar najbolj primerno svoje orodje (tako kot vijakov ne odvijam s kladivom, ceprav bi morda kdaj slo, tako ne bom rinil v assembler za program, ki dela povsem enako dobro in ga lahko napisem 10x hitreje v Cju). Je pa tako, da ko potrebujes se nekaj dodatnega prihranka, ne more noben prevajalnik nadomestiti cloveka, ki ve kaj pocne in ki ima na voljo dovolj casa. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
GJ Član


Pridružen-a: Čet 02 Nov 2006 15:51 Prispevkov: 946 Aktiv.: 4.17 Kraj: Ljubljana
|
Objavljeno: Čet Sep 10, 2009 11:26 am Naslov sporočila: |
|
|
Sokrat je napisal/a: |
GJ je napisal/a: |
Sokrat je napisal/a: |
Casa gre vsekakor precej vec, a nekaterih reci se ne da narediti drugace, kot da vrzes precej casa ob problem. |
Ker drugače ne znaš! |
Nisem preprican, da si razumel, kar sem napisal ... ali pa morda jaz ne razumem tebe. Napisal sem, da se dolocenih stvari enostavno ne da narediti drugace, kot z vecjo investicijo v razvojno delo. To je dejstvo. Tolikointoliko lahko dosezes z zmoghljivejsim HW, potem pa enkrat prides do meje tega HW (npr. zaradi porabe ali kateregakoli dejavnika pac) in od takrat naprej lahko pospeske dobis samo se z boljsim programiranjem. |
Še vedno trdim isto...
Vsi C prevajalniki podpirajo tudi mnemonic oziroma vsaj 'extern' klice.
Torej recimo pri Borland C++ napišeš med C sintakso asm in..
Koda: |
void main()
{
//C sintaksa
int i=3,j=4,k;
asm{
//mnemonic sintaksa
mov ax,i;
add ax,j;
mov k,ax;
}
//C sintaksa
cout<<k;
}
|
Torej res ne vem o čem govoriš in kompliciraš. Če v C-ju potrebuješ mnemonic ga vključiš. Obladanje C-ja pomeni urejenost/nivo programerja, ki se zrcali v njegovih programih.
In dober C programer bo koristil le minimalno asm blokov, preprosto zato ker je dober.
LP GJ |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Čet Sep 10, 2009 11:59 am Naslov sporočila: |
|
|
GJ je napisal/a: |
Torej res ne vem o čem govoriš in kompliciraš. |
O tem:
GJ je napisal/a: |
Lagrange je napisal/a: |
Še vedno velja, da je treba začeti z asm, nato preklopiti na c. Šele potem bi predlagal c++. |
Zakaj že??? |
In tem:
GJ je napisal/a: |
Zbirnik je nizko nivojski programski jezik in nima veliko skupnega s c-jem.
Dober c prevajalnik bo ponavadi bolje optimiziral kodo kot, če bi jo ti napisal v zbirniku. |
Pa tem:
GJ je napisal/a: |
Sokrat je napisal/a: |
Ni ga torej programa, ki ga clovek ne bi mogel napisati bolje "pes" (v assemblerju), kakor v visokonivojskem jeziku, ce je le cas na voljo. V idelanem primeru bo optimizator v visokonivojskem jeziku naredil tako ucinkovito kodo, kot jo lahko nekdo napise pes, v vecini primerov bo pa slabsa. |
Ja to velja za 80386 in pa 80486, za novejše modele procesorjev tam nekje od P4 naprej, torej tiste, ki uporabljajo več nivojske predpomnilnike (ne le enega ampak vsaj 3) pa je to preteklost! |
In se tem:
GJ je napisal/a: |
Tema ni nastala zaradi malih mikrokontrolerjev. |
Tema je nastala zaradi malih mikrokontrolerjev.
V vsako aplikacijo ne mores vtakniti najvecjega in najzmogljivejsega procesorja, ki je trenutno na voljo, pa tudi ce bi ga lahko, za dolocene namene lahko aplikacija vendarle ne bi bila dovolj zmogljiva brez rocnih popravkov.
Dober prevajalnik je dober samo toliko, kot ljudje, ki so ga napisali, nikoli pa ne more biti boljsi (Gödel in njegovo umovanje).
In ravno zato, ker je tema nastala zaradi malih mikrokontrolerjev, kjer si omejen se z drugimi dejavniki kot samo porabo, je potrebno cimbolje poznati arhitekturo.
To sem napisal v prejsnjih sporocilih ("kompliciranje"), vsakic seveda nekoliko bolj obsirno. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
GJ Član


Pridružen-a: Čet 02 Nov 2006 15:51 Prispevkov: 946 Aktiv.: 4.17 Kraj: Ljubljana
|
Objavljeno: Čet Sep 10, 2009 12:39 pm Naslov sporočila: |
|
|
Sokrat je napisal/a: |
GJ je napisal/a: |
Torej res ne vem o čem govoriš in kompliciraš. |
O tem:
GJ je napisal/a: |
Lagrange je napisal/a: |
Še vedno velja, da je treba začeti z asm, nato preklopiti na c. Šele potem bi predlagal c++. |
Zakaj že??? |
|
Govoril sem o pristopu...
No in za začetek je povsem dovolj da dobro poznaš C, saj lahko takoj preklopiš na poljuben mikrokontroler. Če pa nisi zadovoljen s hitrostjo oziroma optimizacijo določenih delov programa, pa lahko našudiraš še mnemonic in ga dodaš zgolj tam kjer je to smotrno.
Torej najprej C potem pa po potrebi še mnemonic!
Sokrat je napisal/a: |
In ravno zato, ker je tema nastala zaradi malih mikrokontrolerjev, kjer si omejen se z drugimi dejavniki kot samo porabo, je potrebno cimbolje poznati arhitekturo. |
Seveda moraš najprej razčleniti vse probleme, kar pa zahteva med drugim tudi poznavanje arhitekture procesorja in njegove periferije.
LP GJ |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|