Sida 1 av 2

C kompilator

Postat: 30 augusti 2009, 21:07:18
av MSV
Villken c-kompilator är bäst att börja med, när man är grön på pic-programering?
Villken använder ni??
Har läst många trådar nu i ämnet, men inte hittat några konkreta tips...


/Micke

Re: C kompilator

Postat: 30 augusti 2009, 21:19:40
av danielr112
MicroChip C använder jag.

Re: C kompilator

Postat: 30 augusti 2009, 21:24:41
av SvenW
Är det bara pic-programering som gäller?
AVR är anpassade till c-programmering.
För mig är det avr-gcc som gäller. Med emacs, gdb, avrdude och avr-libc.
Och Linux. Microsoftprogram har jag inte rört på över tio år, och det är jag glad för!
Några länkar gällande AVR:
http://electrons.psychogenic.com/module ... sec/1/AVR/
http://www.nongnu.org/avr-libc/user-man ... oject.html
http://www.bsdhome.com/avrdude/

Re: C kompilator

Postat: 30 augusti 2009, 21:32:57
av E85
MPLAB® C18 C Compiler till PIC18 och avr-gcc till AVR.

Re: C kompilator

Postat: 30 augusti 2009, 21:39:36
av bos
MSV skrev:Villken c-kompilator är bäst att börja med, när man är grön på pic-programering?
Ingen. Är du grön ska du börja med assembler.

Re: C kompilator

Postat: 30 augusti 2009, 21:54:23
av E85
Ånej, inte den diskussionen igen. Jag tycker fortfarande att man ska få börja med C om man vill det. Jag gjorde det och har inte haft några större bekymmer med de projekt jag gett mig på hittils. Köp en PIC18, läs andras kod och skriv eget. Det går garanterat snabbare att komma igång med C än assembler iaf.

Re: C kompilator

Postat: 30 augusti 2009, 22:02:01
av AndLi
Läs en grundkurs i assembler, förstå lite hur µC är uppbyggt med register och hur de arbetar osv. Men att skriva något mer än möjligen en blinka led applikation ser jag som onödigt. Satsa på nån allmänt spridd C-compiler och börja lek!

Re: C kompilator

Postat: 30 augusti 2009, 22:45:18
av jesse
SvenW skrev:För mig är det avr-gcc som gäller. Med emacs, gdb, avrdude och avr-libc.
Och Linux. Microsoftprogram har jag inte rört på över tio år, och det är jag glad för!
SvenW: Jag har hittills bara kört med AVRstudio4, i Windows då. Men blir nyfiken på det du skriver. emacs vet jag inte vad det är (ska försöka googla eller nåt när jag orkar) , gdb... eh. är det debugger/simulator? Fungerar den som ett GUI som fungerar som editor, och debugger och kör kompilatorn bara genom ett klick på "build", och sedan ett annat klick för att programmera själva AVR-kretsen? (det är så AVRstudio fungerar). Jag började med AVRstudio4 för det var enklast - jag hade köpt en AVRISP-programmerare som passade bra till AVRstudio4, så det är ju alltid ett visst jobb att behöva flytta, nu när jag kan AVRstudio4 utantill. Frågan är om jag tjänar på det i längden (förutom att jag kan slänga min gamla windows-XP dator)? Det är ju en massa motstånd jag måste igenom: lära mig gdb (jobbigt!?), få avrdude att prata med AVRISP (om det går?) osv....

Sen finns det ju mer avancerade lösningar än AVRISP... jag har bara inte brytt mig än (har så lite tid över), men t.ex. JTAG med in-circuit debug. Om man ska börja med större projekt kanske det är värdefullt? Vad har du för hårdvara för programmeringen? Kan du använda "in-circuit debugging"?

EDIT: jaha, så emacs är editorn. Ungefär som Kwrite (jag lever i en KDE-miljö).

Re: C kompilator

Postat: 30 augusti 2009, 22:52:59
av E85
jesse:
Man skriver en egen Makefile eller utgår från en template från nätet. Sen när man ska kompilera skriver man "make". Med min Makefile skriver man "make flash" för att kompilera och skicka koden till µC:n. Gdb har jag faktiskt aldrig provat men det är iallafall ett konsollprogram. Om det finns att få tag på GUI till det vet jag inte. Det är lite annorlunda att programmera i linux jämfört med windows helt klart.

Re: C kompilator

Postat: 30 augusti 2009, 23:17:05
av jesse
Fast nu brukar man ju inte vilja genast göra "make flash" eftersom man kanske först vill köra i simulator.. .Sen är det ju 75% chans eller mer att man får ett eller flera fel vid kompilering. Om man bara kör textbaserat är det ju ett hästjobb att behöva läsa felmeddelandena och försöka leta upp felen manuellt i texteditorn istället som i t.ex. AVRstudio bara klicka på felmeddelandet så kommer man till rätt rad direkt. Har hittat några försök att göra "frontends" till gdb: "Insight is GDB plus a GUI written in Tcl/Tk. Both GDB and Insight are configured for the AVR and the main executables are prefixed with the target name: avr-gdb, and avr-insight. There is also a "text mode" GUI for GDB: avr-gdbtui. DDD (Data Display Debugger) is another popular GUI front end to GDB, available on Unix and Linux systems." Det verkar ju som om Insight är vad jag vill ha!

Re: C kompilator

Postat: 30 augusti 2009, 23:18:42
av E85
Som sagt, bara kompilera -> "make", kompilera och skicka -> "make flash".

Re: C kompilator

Postat: 31 augusti 2009, 09:51:13
av SvenW
>> Vad har du för hårdvara för programmeringen? Kan du använda "in-circuit debugging"?

Den 'hårdvara' jag använder är en kabel från parallellporten samt några motstånd. Resten gör avrdude. Det har fungerat bra.
"in-circuit debugging" har jag inte försökt. Det går nog inte utan mer avanserad hårdvara. Känner inte till om det fungerar med avrdude. Troligen inte.

Simulering med simulavr går däremot bra, och är både roligt och nyttigt.

Emacs är mer än en editor. Jag har prövat grafiska gränssnitt men tycker att emacs är bättre. Emacs ersätter grafiska gränssnitt men är mer flexibel. Däremot krävs en hel del rutin för att få den att fungera på ett bra sätt. Man kan inte bara ladda ner och köra. Emacs måste konfigureras , eller 'programmeras upp' och det är inte helt lätt i början.
Jag kör t.ex make och gdb (simulatorn) inifrån emacs. Och en mängd skripter och andra program. Allt kan kopplas till snabbtangenter eller 'emacschords'. Att köra emacs är lite som att spela piano.
Rätt konfigurerad är alltså emacs en perfekt frontend till gdb.

Att berätta exakt hur man gör skulle bli för omfattande, men jag kan försäkra att det går bra. Det finns 'tutorials' och 'emacs-wiki' att hitta på nätet.

Re: C kompilator

Postat: 31 augusti 2009, 09:55:22
av bos
SvenW skrev:Man kan inte bara ladda ner och köra. Emacs måste konfigureras , eller 'programmeras upp' och det är inte helt lätt i början.
Jag vet inte riktigt vad det är du syftar på, men jag antar du menar att lägga in konfigureringssaker i .emacs? Isåfall är det lögn och förtal om att "Emacs måste konfigureras". Går alldeles utmärkt att köra en per default-installation, även om jag kan hålla med om att dagens standardinställningar är trasiga, fula och skadade.
Att berätta exakt hur man gör skulle bli för omfattande, men jag kan försäkra att det går bra. Det finns 'tutorials' och 'emacs-wiki' att hitta på nätet.
Emacs har annars en mycket bra inbyggd tutorial. Den får man fram genom att trycka C-h t. Alltså, tryck ctrl+h, släpp, tryck "t".

Re: C kompilator

Postat: 31 augusti 2009, 10:22:13
av SvenW
Jo, emacs går att köra som editor utan speciell konfigurering.
Jag syftar på emacs i exempelvis rollen som frontend till gdb och simulavr.
Då får man göra en del, eventuellt ladda ner och/eller aktivera någon emacs-mode, köra ett 'gdbinit-skript' och fixa till några fönster och snabbtangenter.
Jag brukar använda ett unikt 'start.el'-uppstartskript för varje projekt.

Re: C kompilator

Postat: 31 augusti 2009, 10:30:18
av bos
Ok, du menar så. Själv brukar jag använda egna hooks i .emacs istället för separata filer, även om det senare nog är att föredra för många ändringar.