Thema geschlossen  Thema schreiben 
Seiten (3): « Erste [1] 2 3 Nächste > Letzte »
Verfasser Nachricht
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #1
xPSP  [TuT] Hello World in C

Vorwort
In diesem Tutorial zeige ich euch, wie ihr ein einfaches Hello World programmiert. Wer hilfe zu einzelnen Befehlen braucht, frägt mich hier im Thread, aber einige Grundbegriffe wurden hier erklärt.

_____________________________________________________

Konditionen:
Für das Tutorial wird benötigt:

_____________________________________________________

Los gehts!



Nun fanfen wir an, die Header-Files einzufügen. Ohne die Header-File Dateien können die Befehle wie Printf nicht erkannt werden.

PHP-Code:
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspcallbacks.h> 


Das #include bedeutet, dass eine Datei "inkludiert" bzw. eingebunden wird. Die zwichen dem größer/kleiner-Zeichen stehenden Dateien befinden sich in der SDK.

Nun definieren wir den Befehl "pspDebugScreenPrintf" zu "Printf":

PHP-Code:
#define printf pspDebugScreenPrintf 


pspDebugScreenPrintf ist die Funktion, die wir verwenden, um Text auszugeben.

Nun fügen wir die Module_Info hinzu, dort wo Hello World steht kann auch jeder beliebige Namen stehen, es ist also der Programm-Name.

PHP-Code:
PSP_MODULE_INFO("Hello World",0,1,1); 


Danach deklarieren wir main() mit int.

PHP-Code:
int main() 


Int bedeutet INTEGER und deutsch: "ganze Zahl".

Nun schreiben wir eine Anweisung die zwichen den Klammern steht

PHP-Code:
int main() {
Anweisung


also

PHP-Code:
pspDebugScreenInit();
    
pspDebugScreenClear();
    
SetupCallbacks(); 


Erklärung.

pspDebugScreenInit() ist die Funktion die es erlaubt auf dem Bildschirm etwas "auszugeben". pspDebugScreenClear() bereinigt den Bildschirm. Und SetupCallbacks() erlaubt es uns die Home-Taste zu verwenden (ein Callback).

Nun kommen wir zu der Tat, wir möchten Hello World auf dem Display ausgeben:

PHP-Code:
printf("Hello World\n");
sceKernelSleepThread(); 


printf() "druckt" der in den Klammern stehenden Text. Das \n ist ein Escape-Code und macht einen Zeilenumbruch nach "Hello World".

Nun schreiben wir return 0 um das Programm abzuschließen:

PHP-Code:
return 0


Jetzt haben wir schon alles gemacht, schreiben eine zu-geschweifte Klammer (}) und es fehlt nur noch eine Makefile:

PHP-Code:
TARGET helloworld
OBJS 
main.o
 
CFLAGS 
= -O2 -G0 -Wall
CXXFLAGS 
= $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS 
= $(CFLAGS)
 
EXTRA_TARGETS EBOOT.PBP
PSP_EBOOT_TITLE 
Hello World
 
PSPSDK
=$(shell psp-config --pspsdk-path)
include $(
PSPSDK)/lib/build.mak 


Ganzer Script:

Spoiler: (anzeigen)
Nun müsste das Hello World funktionieren, kann sein dass ich einpaar Fehler habe, kann sie nicht verbessern, ich habe keine PSP mehr Sad.

Umlaute in C

Auch in C gibt es Umlaute. Umlaute werden als Sonderzeichen gewertet und können über Hexadezimal geschrieben werden.

ä : \x84
ö : \x94
ü : \x81
Ä : \x8E
Ö : \x99
Ü : \x9A
ß : \xE1

Beispiel:

PHP-Code:
//Äußerung
 
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspcallbacks.h>
 
#define printf pspDebugScreenPrintf
 
PSP_MODULE_INFO("aeusserung",0,1,1);
 
int main() {
    
pspDebugScreenInit();
    
pspDebugScreenClear();
    
SetupCallbacks();
    
printf("Dies ist eine \x84u\xE1erung...\n");
    
sceKernelSleepThread();
    return 
0;


Ausgabe: Dies ist eine Äußerung...




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.

Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2010 22:20 von Unbekannt.

06.12.2010 20:18
Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
Cor7eZ (Feb-20-2011)
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #2
xPSP  RE: [TuT] Hello World in C

Also so müsste er aussehen:


PHP-Code:
#include <pspkernel.h>
#include <pspdebug.h>

#define printf pspDebugScreenPrintf

/* Define the module info section */
PSP_MODULE_INFO("Hallo Welt"011);

/* Define the main thread's attribute value (optional) */
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER THREAD_ATTR_VFPU);

int main(int argcchar *argv[])
{
    
pspDebugScreenInit();

    
pspDebugScreenPrintf("Hello World\n");

    return 
0;


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2010 20:42 von dark-awesome.

06.12.2010 20:40
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #3
xPSP  RE: [TuT] Hello World in C

stehn :
Also so müsste er aussehen:


PHP-Code:
/*
 * PSP Software Development Kit - http://www.pspdev.org
 * -----------------------------------------------------------------------
 * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
 *
 * main.c - Basic ELF template
 *
 * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
 * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
 * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
 *
 * $Id: main.c 1888 2006-05-01 08:47:04Z tyranid $
 * $HeadURL$
 */
#include <pspkernel.h>
#include <pspdebug.h>

#define printf pspDebugScreenPrintf

/* Define the module info section */
PSP_MODULE_INFO("Hallo Welt"011);

/* Define the main thread's attribute value (optional) */
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER THREAD_ATTR_VFPU);

int main(int argcchar *argv[])
{
    
pspDebugScreenInit();

    
pspDebugScreenPrintf("Hello World\n");

    return 
0;

Den hast du aus dem DevKit kopiert. Meiner sieht etwas anderster aus.

Back to Topic:

Habe den ganzen Code hinzugefügt.




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.

Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2010 20:43 von Unbekannt.

06.12.2010 20:42
Alle Beiträge dieses Benutzers finden
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #4
RE: [TuT] Hello World in C

Na weil du dir nicht sicher warst ob der richtig ist Smile


West Zeit / Westside

06.12.2010 20:43
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #5
RE: [TuT] Hello World in C

Hast du es getestet? Müsste theoretisch klappen.




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
06.12.2010 20:47
Alle Beiträge dieses Benutzers finden
PSP_Joker
King
*


Beiträge: 2.537
Gruppe: User
Registriert seit: Apr 2009

Status: Offline
Danke erhalten: 2814
Beitrag: #6
RE: [TuT] Hello World in C

Also da ich nicht für PSP coden kann, weiß ich nicht in wie fern der Code stimmt, aber die Erklärungen dazu sind mal wieder nicht ganz das wahre.

Überprüf mal was du zu den Klammern und zu return geschrieben hast. Das andere hab ich schon nicht mehr genauer gelesen.



Also das Schönste, was wir tun können, ist tanzen.
06.12.2010 20:48
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
Unbekannt (Dec-6-2010)
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #7
RE: [TuT] Hello World in C

Also meiner muss gehen aber deinen Unbekannt werde ich jetzt mal testen.


West Zeit / Westside

06.12.2010 20:51
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #8
xPSP  RE: [TuT] Hello World in C

PSP_Joker :
Also da ich nicht für PSP coden kann, weiß ich nicht in wie fern der Code stimmt, aber die Erklärungen dazu sind mal wieder nicht ganz das wahre.

Überprüf mal was du zu den Klammern und zu return geschrieben hast. Das andere hab ich schon nicht mehr genauer gelesen.


Also habs nochmal überprüft. Habe es umständlich erklärt.

int main() {
Anweisung
}

Das mit Callbacks habe ich glaube falsch. Muss nochmal nach schauen.




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
06.12.2010 20:54
Alle Beiträge dieses Benutzers finden
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #9
RE: [TuT] Hello World in C

Also er lässt sich nicht zu EBOOT machen Scriptfehler also Unbekannt nochmal nachschauen Smile


West Zeit / Westside

06.12.2010 21:25
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #10
RE: [TuT] Hello World in C

Probiermal anstatt printf, pspDebugScreenPrintf. Am besten schreibst du hier den Fehler rein.




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
06.12.2010 21:28
Alle Beiträge dieses Benutzers finden
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #11
RE: [TuT] Hello World in C

es liegt an SetupCallbacks(); irgendwas scheint da zu fehlen.


West Zeit / Westside

06.12.2010 21:46
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #12
RE: [TuT] Hello World in C

Meinst du diesen Fehler?:



Das liegt daran, dass er die pspcallbacks.h nicht findet, man muss es so einstellen dass die Header-Daten mitcompiliert werden.




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
06.12.2010 21:58
Alle Beiträge dieses Benutzers finden
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #13
xPSP  RE: [TuT] Hello World in C

So sollte er aussehen aber er findet die callback Header datei nicht.

PHP-Code:
//Hello World

/* Dies sind die einzellnen includes ohne die würde garn nichts gehen */
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspcallbacks.h>

PSP_MODULE_INFO("Hello World",0,1,1);
 
#define printf pspDebugScreenPrintf

/* Exit callback */
int exit_callback(int arg1int arg2void *common) {
sceKernelExitGame();
return 
0;
}

/* Callback thread */
int CallbackThread(SceSize argsvoid *argp) {
int cbid;

cbid sceKernelCreateCallback("Exit Callback"exit_callbackNULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 
0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid 0;

thid sceKernelCreateThread("update_thread"CallbackThread0x110xFA000);
if(
thid >= 0) {
sceKernelStartThread(thid00);
}

return 
thid;
}

/* int main() { sagt den Compiler da hier das Haupt Programm beginnt */
int main() {
    
pspDebugScreenInit();
    
pspDebugScreenClear();
    
SetupCallbacks();
  
    
/* Dies ist der Text der Ausgegeben wird und ( \n ) steht
    dabei für New Line also neu Zeile */
    
pspDebugScreenPrintf("Hello World\n");
    
sceKernelSleepThread();
    
    
/* return 0; und } stehen hier für das Ende des Hauptprogrammes */
    
return 0;


West Zeit / Westside

06.12.2010 22:05
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #14
RE: [TuT] Hello World in C

Du brauchst die pspcallbacks.h, ich habe sie vergessen oben hinzuzufügen als Download.




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
06.12.2010 22:15
Alle Beiträge dieses Benutzers finden
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #15
RE: [TuT] Hello World in C

"Unerlaubtes Pushen" *Tschuldigung*

Hat es jemand ausprobiert, funktioniert es endlich?




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
06.12.2010 23:52
Alle Beiträge dieses Benutzers finden
Seiten (3): « Erste [1] 2 3 Nächste > Letzte »
Thema geschlossen  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP [TUT] PSP Hello World in C dark-awesome 11 6.872 16.08.2011 17:25
Letzter Beitrag: _Kai_
xPSP [TUT] PSPSDK unter Ubuntu installieren + Hello World kompilieren -blue7 82 36.308 02.08.2011 20:18
Letzter Beitrag: Neutrosider
xPSP [TuT] Hello World in D ! 3m!n 9 4.575 09.04.2011 08:15
Letzter Beitrag: HyBriDo
xPSP [TuT, Update] Hello World in C Unbekannt 5 3.549 15.12.2010 18:40
Letzter Beitrag: pspbricker

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang