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.
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.
#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)
> 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