Re: PICs en draadloze verbindingen
  Home FAQ Contact Sign in
be.science.electronics only
 
Advanced search
POPULAR GROUPS

more...

 Up
Re: PICs en draadloze verbindingen         

Group: be.science.electronics · Group Profile
Author: Martijn van Buul
Date: Sep 11, 2008 03:27

Nico Coesel (nico@puntnl.niks) schreef:
> Martijn van Buul dohd.org> wrote:
>
>>Nico Coesel (nico@puntnl.niks) schreef:
>>
>>[ grote knip ]
>>
>>Tot hier was ik het roerend met je eens, maar:
>>
>>> Als je begint met een platform waarop je goed in C kunt programmeren (dus
>>> niet de PIC, 8051 of AVR),
>>
>>Een AVR valt fantastisch in C te programmeren. Een 8051 in zekere zin
>>ook, maar die wil je om andere redenen niet meer.
>
> Maak eens een programma waarin je met strcpy en strcat een constante
> en niet constante character array naar een niet constant character
> array wilt kopieren. Dat gaat niet op een harvard architectuur zonder
> bijzondere (trage) pointer acrobatiek omdat de processor aan de
> pointer zelf niet kan zien in welke geheugen de data moet worden
> opgehaald/weggeschreven.

So? Het is wat minder handig, inderdaad, maar
*juist omdat je in C programmeert* heb je er helemaal geen last van, omdat
de compiler dit soort details voor je oplost.

Je ondergraaft je eigen stelling. Je wil juist een taal als C gebruiken
om allerlei details over je processor te verbergen. Of wou je beweren dat
MIPS lekker fijn in assembly programmeert?
>>[knip]
>>
>>> En tegenwoordig zijn er voor veel platforms (ARM, MIPS, MSP430, H8)
>>> uitstekende GCC compilers beschikbaar voor niets.
>>
>>Gcc? Uitstekend? Laat me niet lachen. Gcc is een vrij slechte compiler. Het
>>*werkt* voor veel targets, maar daar is het dan ook mee gezegd. Performance is
>>(op alle targets!) vrij bedroevend. De beschikbaarheid van gcc voor een bepaald
>>platform (waaronder AVR, overigens) is geen reden om andere beschikbare
>>C-compilers die vele malen beter presteren (Keil cq Tasking voor de 8051,
>>CodeVision AVR voor de AVR) te negeren.
>
> Met de 8051 en de AVR noem je 2 specifieke 8 bit platforms waarbij de
> 8051 nog eens zo krom is als een hoepel (been there, done that).

Ik pak de 2 platformen die jij eerder al aan de kant had geschoven omdat je
ze niet in C zou kunnen programmeren. Wat baarlijke onzin is.

En geloof me, ik ken de 8051. Heb jarenlang op de 8-bit microcontroller
sales support van een bepaalde voormalige gloeilampenfabrikant in het
zuiden des lands gewerkt. Je mag drie keer raden welke CPU.
> Maar voor 32 bit platforms presteert de GCC compiler zeer goed.

*proest*.
>>Gcc is *zo* brak, dat een alle-remmen-los release build van gcc, met maximale
>>optimalisaties, vaak *langzamer* is dan een debug build van msvc. Om maar
>>eens een zijstraat te noemen. En dat is dan op een mainstream platform als
>>32-bits x86.
>
> Dat lijkt me erg sterk. Dit soort stellingen komen meestal van mensen
> die van de ene compiler wel goed weten hoe die werkt en van de andere
> compiler totaal niet.

En toch zie ik het keer op keer. Inmiddels weet ik hoe ik mijn C zo moet
schrijven dat zelfs het stomste kindje uit de klas (Wist je overigens dat
GCC een afkorting is? Staat voor GCC Can't Compile) het een beetje snapt.
En zelfs dan. GCC is stom. En het ergste is nog dat het er van uitgaat
dat ik *OOK* stom ben.
> 1 ding weet ik zeker: er zit veel meer tijd en energie in GCC dan in iedere
> andere compiler.

Veel meer tijd ja - waaronder heel veel verprutste tijd. Tijd verprutst aan
het toevoegen van zinloze warnings omdat er zoetwaterprogrammeurs zijn die
te stom zijn om te weten dat && boven || gaat.
> Als GCC veel slechter presteert dan een commerciele compiler dan doe je of
> iets heel erg fout of je hebt heel erg veel geld betaald voor de commerciele
> compiler.

Of de commerciele compiler is voor een specifieke architectuur geschreven, ipv
voor zoveel mogelijk achitecturen tegelijkertijd.

Intel's icc bestaat niet voor niets, bijvoorbeeld.

Als je dat fundamentele verschil weigert te accepteren, vraag ik me af wie
er nou degene is die oogkleppen op heeft.

Maar weet je wat de belangrijkste reden is waarom OP misschien beter af is met
een simpele AVR? Heeft helemaal niets met architecturen, C-compilers of wat
dan ook te maken, maar met een hele simpele reden:

Een Atmel AVR komt in een fijne DIL behuizing, en is gemakkelijk op een stuk
gaatjesbord te solderen. Kom daar maar eens mee, met je 48 pins LQFP "low pin
count" ARM. Of MIPS. Of H8. Zeker zo vriendelijk voor een hobbyist.

--
Martijn van Buul - pino@dohd.org
no comments
diggit! del.icio.us! reddit!