Moin, ich würde gerne den XC8 und einen PIC18 testen. Dazu würde ich mir die free XC8 Version downloaden und installieren. Reicht das aus? Die IDE will ich noch nicht installieren, wenn es nicht erforderlich ist. Kann man damit ein simples Hello World über den UART mit Notepad+++ erstellen und den compile und link process in der Windows console starten? Hätte jemand ein Beispiel dazu wie das c file aussehen müsste? Es würde auch ein PIN Blinky ausreichen mit einem delay dazwischen. Bei diesem Test geht es mir lediglich um das Probieren mit Notepad+++ ( Editor ) und über console wie beim gcc. gcc -c helloworld.c usw OS ist Win XP bzw 7 Grüsse
Hallo, was soll so ein Posting? - Das wirst Du doch wohl selbst hinbekommen, oder? Außerdem: Ich würde MPLABX jederzeit irgendwelchen Texteditoren auf Steroiden vorziehen. Ich arbeite mit dem Zeug und fummle nicht nur aus Spaß damit herum. Viele Grüße! Sven
Sven L. schrieb: > was soll so ein Posting? - Das wirst Du doch wohl selbst hinbekommen, > oder? Nein leider nicht. Daher auch das "unmögliche" Posting. > > Außerdem: Ich würde MPLABX jederzeit irgendwelchen Texteditoren auf > Steroiden vorziehen. Ich arbeite mit dem Zeug und fummle nicht nur aus > Spaß damit herum. Ich glaube dir das. Aber wegen eines einzigen Versuchs, ein simples Hello World auf console zu zaubern, muss man sich MPLAPX installieren? Pinguino wäre noch eine Alternative. Das compiliert, linkt und flasht sich aus der Console. Das hatte ich mir dann wohl leichter vorgestellt, mit include, einer Main, entweder Uart Ausgabe oder ein Pin switchen. Du weisst es also nicht wie das geht. Das ist sehr schade. Dann bleibt es bei der Fragestellung, denn ich kann das nicht. Wüsste nicht mal, wo ich anfangen sollte ( PIC ) > > Viele Grüße! Angekommen und Viele zurück.
newUser schrieb: > Kann man damit ein simples Hello World über den UART mit Notepad+++ > erstellen und den compile und link process in der Windows console > starten? Dann wäre SDCC etwas für Dich ...
newUser schrieb: > Dazu würde ich mir die free XC8 Version downloaden und installieren. > Reicht das aus? Habe ich selber so noch nie gemacht, aber das sollte möglich sein. Mit der Installation bekomm man natürlich auch einen User-Guide. Da steht dann drin, wie das geht.. Im Zweifelsfall bekommt man bestimmt auch den UG ohne Installation und kann das schon vorher abchecken. newUser schrieb: > Hätte jemand ein Beispiel dazu wie das c file aussehen müsste? Schau mal da http://pic-projekte.de/phpBB3/viewtopic.php?p=7215#p7215 Das sind Einstiegsbeispiele zu einem kleinen PIC Demo Board.
:
Bearbeitet durch User
Volker S. schrieb: > Im Zweifelsfall bekommt man bestimmt auch den UG ohne Installation und > kann das schon vorher abchecken. Aber sicher. Volker S. schrieb: > newUser schrieb: >> Dazu würde ich mir die free XC8 Version downloaden und installieren. >> Reicht das aus? > > Habe ich selber so noch nie gemacht, aber das sollte möglich sein Wenn man dann noch den Makefile, das Linkerscript und alle include- und link-Pfade richtig einstellt (dauert wahrscheinlich länger als die Installation von MPLABX), könnte man ein Crosscompilat auf dem PC haben. Und dann? Wie das auf den µC bekommen? MfG Klaus
Klaus schrieb: > Wenn man dann noch..., könnte man ein Crosscompilat auf dem PC haben Wenn das zum Testen ausreicht? Schneller als einfach die IDE zu installieren ist man damit natürlich nicht, aber es gibt Leute die das irgendwie brauchen.
Lothar schrieb: > Dann wäre SDCC etwas für Dich ... Gut, darauf komme ich nochmal zurück. In dem Anliegen geht es mir um den XC8. Danke. Volker S. schrieb: > Habe ich selber so noch nie gemacht, aber das sollte möglich sein. Mit > der Installation bekomm man natürlich auch einen User-Guide. Da steht > dann drin, wie das geht.. > Im Zweifelsfall bekommt man bestimmt auch den UG ohne Installation und > kann das schon vorher abchecken. Ok. Du machst mir Hoffnung. Ich habe bisher noch nicht recherchiert, erstmal hier die Frage gestellt. Mir war irgendwie klar, dass es unfug ist, eine passende IDE nicht nutzen zu wollen. Es geht aber hier wirklich nur um einen Test, lediglich den Compiler zu installieren und mit einem x beliebigen Editor für den SRC Code ein Hello World oder Pin Switch zu basteln. Das ganze solle dann von der Console aus über den compile und linker Befehl zu einem Hex führen. > Schau mal da http://pic-projekte.de/phpBB3/viewtopic.php?p=7215#p7215 > Das sind Einstiegsbeispiele zu einem kleinen PIC Demo Board. Ok. Dankeschön. Klaus schrieb: > Wenn man dann noch den Makefile, das Linkerscript und alle include- und > link-Pfade richtig einstellt (dauert wahrscheinlich länger als die > Installation von MPLABX), könnte man ein Crosscompilat auf dem PC haben. > Und dann? Wie das auf den µC bekommen? Da gibt es doch das PicKit Set? Oder ein Pic Bootloader ( Pinguino ) soweit ich das bisher gelesen habe. PicKit so steht es irgendwo, braucht man, um den Bootloader einmal auf den µC zu bekommen. Wenn das ein Hindernis ist, ein Flashen ohne MPLAPX nicht funktioniert, dann macht der Versuch keinen Sinn. Muss man MPLAPX für das flashen installieren? Volker S. schrieb: > Klaus schrieb: >> Wenn man dann noch..., könnte man ein Crosscompilat auf dem PC haben > > Wenn das zum Testen ausreicht? > Schneller als einfach die IDE zu installieren ist man damit natürlich > nicht, aber es gibt Leute die das irgendwie brauchen. Zu der Gruppe von Leuten gehöre ich - ich brauch das so. Werde über den GU jetzt mal versuchen, was alles dazu geschrieben ist, um zu verstehen. Dankeschön für die Tips und einen schönen Sonntag.
> Es geht aber hier wirklich nur um einen Test
Statt zu testen kommen nur duemmliche Fragen:
Hat schon mal einer...
Wer einen Test will, testet eben.
Sich ein MPLAB auf den Rechner zu ziehen, um die Aufrufparameter
abzuklaeren, ist wohl nicht verkehrt.
... schrieb: >> Es geht aber hier wirklich nur um einen Test > > Statt zu testen kommen nur duemmliche Fragen: > Hat schon mal einer... Statt zum Beitrag beizutragen kommen nur " hä wie blöd bist du denn? " Und wie unschwer du hier an den Antworten sehen kannst, hat es bisher noch keiner... > > Wer einen Test will, testet eben. Die Frage ist dazu : Was wie testen? > > Sich ein MPLAB auf den Rechner zu ziehen, um die Aufrufparameter > abzuklaeren, ist wohl nicht verkehrt. Das ist deine Vorgehensweise. Meine ist es, erstmal "duemmlich" zu fragen, ob es funktioniert, bevor ich mir - Java ( notwendig für MPLAP X ) installiere - MPLAP X installiere usw Deinen Beitrag kannst du dir um die Ohren ziehen. Der bringt mich nicht weiter.
Zeitslkave schrieb: > http://www.microchip.com/forums/m660428.aspx > > zweiter Treffer bei google... Danke sehr vielmals! Für ein Beispiel Code habe ich auch noch das gefunden, das werde ich versuchen anzupassen und über die console compilieren und linken. https://electrosome.com/led-pic-microcontroller-mplab-xc8/
1 | #define _XTAL_FREQ 8000000 |
2 | |
3 | #include <xc.h> |
4 | |
5 | // BEGIN CONFIG |
6 | #pragma config FOSC = HS // Oscillator Selection bits (HS oscillator) |
7 | #pragma config WDTE = ON // Watchdog Timer Enable bit (WDT enabled) |
8 | #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) |
9 | #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) |
10 | #pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) |
11 | #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) |
12 | #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control) |
13 | #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) |
14 | //END CONFIG |
15 | |
16 | int main() |
17 | { |
18 | TRISB0 = 0; //RB0 as Output PIN |
19 | while(1) |
20 | { |
21 | RB0 = 1; // LED ON |
22 | __delay_ms(1000); // 1 Second Delay |
23 | RB0 = 0; // LED OFF |
24 | __delay_ms(1000); // 1 Second Delay |
25 | } |
26 | return 0; |
27 | } |
> MPLAP X installiere von MPLAB X hab ich nix geschrieben. MPLAB braucht kein Java. > " hä wie blöd bist du denn? " Das der Buildprozess im Buildlog steht, inklusive der uebergebenen Parameter weiss jeder der mal eine IDE benutzt hat. Das man der IDE das noetigenfalls mitzuteilen hat auch. Das man den Build dann ganz primitiv auch in einen Batch packen kann, oder intelligenter in ein Makefile, weiss man dann auch. Welche Option mit welchem Parameter korrespondiert ist dann Fleissarbeit beim Studium des XC8-Manuals. Ich werd jetzt nicht meinen XC8 anwerfen um Dir die Arbeit abzunehmen.
newUser schrieb: > PicKit so steht es irgendwo, braucht man, um den > Bootloader einmal auf den µC zu bekommen Das ist richtig. Aber mal anders gefragt, warum überhaupt PIC? In der Industrie wird PIC eingesetzt weil in großen Stückzahlen unschlagbar günstig. Aber wenn das privat ist: die meisten 8051 und ARM kommen werksseitig mit Bootloader und können einfach per Konsole über TX/RX/GND mit USB-seriell-Kabel für 5 EUR geflasht werden. Zudem sind Eval Boards mit Debugger und LCD für 25 EUR zu haben. Und die C Compiler sind besser.
... schrieb: >> MPLAP X installiere > von MPLAB X hab ich nix geschrieben. MPLAB braucht kein Java. > >> " hä wie blöd bist du denn? " > Das der Buildprozess im Buildlog steht, inklusive der uebergebenen > Parameter weiss jeder der mal eine IDE benutzt hat. > Das man der IDE das noetigenfalls mitzuteilen hat auch. > Das man den Build dann ganz primitiv auch in einen Batch packen kann, > oder intelligenter in ein Makefile, weiss man dann auch. > > Welche Option mit welchem Parameter korrespondiert ist dann > Fleissarbeit beim Studium des XC8-Manuals. > > Ich werd jetzt nicht meinen XC8 anwerfen um Dir die Arbeit abzunehmen. Schnelltest mit der MPLAP und dem c18 Compiler: Projekt Wizzard gestartet. Device selektiert einfaches c File nach dieser Anweisung erstellt: http://www.pic18f.com/18f4550-c-tutorial/2009/11/16/tutorial-4-hello-world-program-in-c/
1 | #include <p18f4550.h> |
2 | |
3 | void main() |
4 | { |
5 | |
6 | } |
Include File findet er - er meckert nicht. Er meckert aber hier: "(902) no chip name specified; use "PICC18 --CHIPINFO" to see available chip names (908) exit status = 1 " Warum sollte man ein Device selektieren, wenn es dann später doch nicht in der Makefile oder Config eingetragen wird? Es scheitert hier anscheinend schon in der IDE, compiler und linker settings aus dem Wizzard der IDE zu verwenden`? Genau auf diese Tour habe ich keine Lust "alles zu testen" was "möglich wäre" und erstmal erkunden, was man in der IDE alles einzustellen hat, dass diese läuft; denn bei der nächsten kann es schon wieder nicht mehr laufen: http://www.edaboard.com/thread250307.html Keine Antwort? Das nimmt mir die Hoffnung. Darum wollte ich: -einfaches c File -einfachen Editor -Config File selber erstellen, wenn nötig, oder hier erhaltenes abändern. -Makefile selber erstellen, wenn nötig, oder hier erhaltenes abändern So oder so änlich - habe noch nicht den Compiler Help für Argumente aufgerufen: "PIC18Compiler".exe -c MeinErstes.c -out MeinObjectFile.o "PIC18Linker"exe -out MeinHex.hex MeinObjectFile.o Dann steht hier das Hex file. Anscheinend nicht mal mit der einfachen IDE von Scratch auf möglich. Und jetzt soll ich mir die Mplab X, die Java benötigt , antun? Nur um ein simples C File den Hex zu entlocken? Nein - du musst die IDE wegen mir nicht extra ansch(m)eissen - ich weiss nicht an was es liegt. Nutzen wir den Sonntag lieber für sinnvolleres. Gehen wir baden :)
Lothar schrieb: > Das ist richtig. Aber mal anders gefragt, warum überhaupt PIC? Genau so ist es, diese Frage stelle ich mir gerade. Ich bin glücklich mit 8051, AVR, und andere - warum den PIC. MC bietet ein HowTo für den Fall nicht an. Es gibt User, die haben ihre eigene -einfaches bekanntes- IDE die ohne Java auskommt, die ohne .NET auskommt usw. Es geht lediglich um den Versuch, den XC8 - downloaden - installieren - in der path einzutragen - ein simples c file zu erstellen( uart hello world oder pin switch ) - Aufruf Compiler von der Console - Aufrufe Linker von der Console - ( oder ein make / Makefile ) und das hex steht da. Mir kommt dabei in den Sinn: Es kann keiner mehr einen einfachen Brief auf Blatt Papier schreiben - Ohne WIN10 - Ohne OFFICE 2020 - Ohne HIGH TECH LED SUPER Transfer Scanner für Vorlagen aus einem Buch - Ohne Twitter usw ich nehme ein Blatt Papier, einen Stift und einen Briefumschlag. Da kommen Briefmarken drauf - das nennt man auch Wertmarken - und es geht zu einem Posteinwurkasten. Und das Schriebsel kommt ohne PGP, ohne Mail, ohne Internet zum Empfänger. Der "darf" dann lesen, "muss" sich das also nicht per Audit anhören - der freut sich aber. Anscheinend stirbt gerade die Generation aus. Gehen wir baden.
... schrieb: >> MPLAP X installiere > von MPLAB X hab ich nix geschrieben. MPLAB braucht kein Java. MPLAB - 8.89 Ich bin deinem Ratschlag gefolgt - was nun? > Das der Buildprozess im Buildlog steht, inklusive der uebergebenen > Parameter weiss jeder der mal eine IDE benutzt hat. Build Nachtrag Executing: "C:\Program Files (x86)\Microchip\xc8\v1.38\bin\mcc18.exe" -p=18F4550 "main.c" -fo="main.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- Make: The target "C:\Users\XC8Test\Documents\MPLAPproj\nochmal\nochmals.cof" is out of date. Executing: "C:\Program Files (x86)\Microchip\xc8\v1.38\bin\mplink.exe" /l"C:\Program Files (x86)\Microchip\mplabc18\v3.46\lib" "main.o" /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"nochmals.cof" /M"nochmals.map" /W (902) no chip name specified; use "PICC18 --CHIPINFO" to see available chip names (908) exit status = 1 Link step failed. > Das man der IDE das noetigenfalls mitzuteilen hat auch. > Das man den Build dann ganz primitiv auch in einen Batch packen kann, > oder intelligenter in ein Makefile, weiss man dann auch. Nur dass der Build fehlerhaft ist. Das in ein Batch zu packen ist also erstmal hinfällig. > > Welche Option mit welchem Parameter korrespondiert ist dann > Fleissarbeit beim Studium des XC8-Manuals. Da scheitert es aber schon an der CHIPINFO. Die steht eben nicht geschrieben in dem Manual da es nicht vorgesehen ist, das Build über eine Console laufen zu lassen. Die MPLAP IDE bringt es auch nicht fertig, sich um den Eintrag zu kümmern. Die Frage stellt sich: Wo was eintragen? > > Ich werd jetzt nicht meinen XC8 anwerfen um Dir die Arbeit abzunehmen. Nein - musst du auch nicht. Ich lege den XC8 und PIC Gedanken dahin wo er hingehört. Es war ein Versuch wert - der eben gescheitert ist. Tiefer tauche ich in die Materie höchsten in dunklen, kalten Wintertagen ein, Wut wenn es nicht funktioniert, heizt den Körper dann ein, und ich muss den Ofen nicht anmachen. Mir ist die ´Zeit' auch zu schade, nach Fehlern zu suchen, die nicht da sein sollten. Mit meiner Frage erhoffte ich ein einfaches "Nein vergiss es" oder "Hier, ein Beipiel, ändern musst du selber" Aber wie üblich kam erst mal: "Du bist dumm", "Warum PIC und nicht AVR" usw. Aber danke für Eure Ratschläge. Vieleicht greife ich den Thread im Winter nochmal hervor. Aber vorest reichen der vergeudete Sonntag vormittag und halbe Nachmittag.
Nachtrag: ---------------------------------------------------------------------- Debug build of project `C:\Users\XC8Test\Documents\MPLAPproj\nochmal\nochmals.mcp' started. Language tool versions: mpasmwin.exe v5.50 Preprocessor symbol `__DEBUG' is defined. Sun Aug 28 15:51:42 2016 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Done. Executing: "C:\Program Files (x86)\Microchip\xc8\v1.38\bin\mcc18.exe" -p=18F4550 "main.c" -fo="main.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- Executing: "C:\Program Files (x86)\Microchip\xc8\v1.38\bin\mplink.exe" /l"C:\Program Files (x86)\Microchip\mplabc18\v3.46\lib" "main.o" /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 -p18f4550 /o"nochmals.cof" /M"nochmals.map" /W using updated 32-bit floating-point libraries; improved accuracy might increase code size Memory Summary: Program space used 8h ( 8) of 8000h bytes ( 0.0%) Data space used 0h ( 0) of 800h bytes ( 0.0%) Configuration bits used 0h ( 0) of 7h words ( 0.0%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) ID Location space used 0h ( 0) of 8h bytes ( 0.0%) Data stack space used 0h ( 0) of 7A0h bytes ( 0.0%) You have compiled in FREE mode. Using Omnicient Code Generation that is available in PRO mode, you could have produced up to 60% smaller and 400% faster code. See http://www.microchip.com/MPLABXCcompilers for more information. Loaded C:\Users\XC8Test\Documents\MPLAPproj\nochmal\nochmals.cof. ---------------------------------------------------------------------- Debug build of project `C:\Users\XC8Test\Documents\MPLAPproj\nochmal\nochmals.mcp' succeeded. Language tool versions: mpasmwin.exe v5.50 Preprocessor symbol `__DEBUG' is defined. Sun Aug 28 15:51:44 2016 ---------------------------------------------------------------------- BUILD SUCCEEDED Wer nicht lange suchen will und sich das Abschauen über ein Install der MPLAP IDE sparen möchte: Nachdem Install von XC8 Compiler müsst ihr im Linker Aufruf noch -p18f4550 von Hand eintragen, also nicht wie im compiler -p=18F4550 Getestest wurden alle möglichen Einstellungen über Project -> Build Option -> Project MPLInker ( siehe Bild ) dieser Eigen Versuch führte dann zum Erfolg: -p18f4550 Es steht in keinem Lehrbuch -zumindest nicht gefunden - bisher nicht mal hier im Forum. Jetzt schon. Das tut nämlich die MPLAP IDE nicht, obwohl selektiert im Projekt Wizzard. Das Build ( Batch ) kann man jetzt für die Console verwenden. Das wollte ich erfragen, so geht es erstmal. Den Batch werde ich jetzt auf den einfachen Notepad+++ anpassen und so von der Console compilieren und linken. Meine Frage wurde beantwortet. Danke allen Beteiligten. Sven L. schrieb: > was soll so ein Posting? - Das wirst Du doch wohl selbst hinbekommen, > oder? Ja - soeben. > > Außerdem: Ich würde MPLABX jederzeit irgendwelchen Texteditoren auf > Steroiden vorziehen. Ich arbeite mit dem Zeug und fummle nicht nur aus > Spaß damit herum. Wenn du damit arbeitest, warum wusstest du das dann nicht - dass der Linker Aufruf nicht den gleichen Parameter hat wie der Compiler für das Device? Sei froh dass solche duemmlichen Fragen gestellt werden, nur wer fragt bekommt Antworten - manchmal auch vom Dummen selber.
... schrieb: > Und, war das jetzt so schwer? Gegenfrage: Hattest du das gewusst? Wenn ja - warum schreibst du es nicht in einem einzeiligen Hinweis? Wenn nein - dann hast du dazulernen können. Nein - um das geht es nicht mal - ob schwer oder leicht - man fragt sich halt, warum man ein Forum hat, wo man Fragen sachbezogen stellen kann, die 'aber' keiner beantworten will (kann), weil es eh nicht schwer (im Fachwissen) ist. Dann sag mir DU halt, wie du den "--CODEOFFSET=400h" unter XC8 realisierst, wenn ein Bootloader auf dem PIC wartet? Wenn Du eine Lösung für das Problem in der 8.89 oder besser für die Console hast, freue ich mich auf deine nette nützliche Zuarbeit ansonsten mir ehrlich gesagt deine Postings nicht viel weiter bringen. Wenn du meinst im Compiler lediglich den Aufrufe um den Parameter --CODEOFFSET=400h zu ergänzen, den link habe ich selber gefunden, http://electronics.stackexchange.com/questions/50957/how-to-offset-program-location-in-memory-with-mplabx-xc8 Das funktioniert aber nicht, wie alle schreiben. Dieser Eintrag verändert das Hex eben nicht nur durch hinzufügen im Compiler Aufruf. Bis zum Winter hast du also genügend Zeit. Dann werde ich auch wieder selber tätig. ~..~
Vorab: PICs nehm ich nur fuer Kleinkram, also 12F und 16F. Der "normale" Weg den XC8 zu benutzen, ist ueber MPLAB oder MPLAB-X. Dort wird er ja als Plugin installiert. Gelegentlich benutze ich (Linker-)Optionen, um Dinge dahin zu legen wo ich will. Den im MPLAB enthaltenen Simulator verwende ich gerne und haeufig. Ein Verzicht auf MPLAB wuerde auch das Fehlen des Simulators bedeuten. ISRs und zeitkritische Dinge schreibe ich oft in Assembler. Den XC8-Assembler wuerde ich da nicht benutzen wollen. Gebaut wird das ganze dann per MPLAB. Ein Beduerfnis das per Batch zu starten, habe ich einfach nicht. Und wenn: Buildlog ansehen, Batch daraus bauen, fertig. > "--CODEOFFSET=400h" Fuer meine PICschen "Kleinkunstwerke" benutze ich keine Bootloader. Also such mal schoen selber. Als Tips vllt: Codebereiche im Likerscript, Startup.s, Interruptvektor/Watchdoglocation. Gutes Gelingen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.