PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Программирование для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=101)
-   -   Инструменты, SDK, либы (https://www.pspx.ru/forum/showthread.php?t=57477)

l3VGV 06.11.2007 17:28

Инструменты, SDK, либы
 
Товарищ БонифацЕ описал некую спец иде на сдк тут ещё неосвещенных.

Цитата:

Сообщение от BonifacE (Сообщение 684249)
Вот написал статейку по использованию CSP
http://pspfaqs.ru/category/coding/begining.html


Хочу всё собрать в одной теме и кратенько описать.

Редакторы .

1) PSPxIDE от wSlavы, в представлении не нуждается. умеет подсвечивать синтаксис, сворачивать блоки, по кнопке собирать проект и копировать в нужное место, умеет работать через псплинк.
из недостатков можно отметить тока отстутсвие активного присутсвия автора :) но автор одназначно жжёт.
http://pspx.ru/forum/showthread.php?t=28898

2) Eclipse. мощная среда для разработки на практически любом языке, в нашем случае с/с++. сдк цепляется, после колдунств можно заставить осуществлять сборку роекта. гипотетически возможно использовать гдб для полноценной отладки, но нужно много колдовать.
http://www.eclipse.org/downloads
http://www.eclipse.org/cdt/downloads.php
http://www.java.com/

для работы требует жаву и спец модули для работы именно с С/С++. в скором времени сделаю фак по настройке/установке, пока читать тут по английски:


3) notepad++. то чем пользуюсь сейчас. из всех возможностей есть только подсветка синтаксиса, сборка только в консоли, отладки и копирования нету вообще. однако мне нравится :)
http://notepad-plus.sourceforge.net/ru/site.htm


СДК
1) wSlava рекомендует вместе со своей иде использовать данную сборку. внтури всё необходимое для работы уже есть. однако версия там от лета прошлого года...маленько старовато...
http://www.xorloser.com/PSPDevWin32.zip

2) я выкачал уже собранный сдк от лета этого года, ставится копированием поверх приведенного выше. работает. однако версия всёравно шибко несвежая...
http://files.filefront.com/pspdevrar.../fileinfo.html

3) Скачано и собрано 2007,11,07. С днём великой октябрьской революции :)
Распаковать например на диск ц, внутри есть бат файлик для установки переменных окружения.
http://files.filefront.com/pspdevrar.../fileinfo.html
документация http://files.filefront.com/htmlrar/;.../fileinfo.html


Либы.
1) товарищ wSlava собрал большой набор библиотек, классов и утилиток, раздаёт почемуто на страничке Мортема :)
http://elmortem.mirgames.ru/?path=psp

2) рядом с пспсдк на сайте пс2дев лежит очень много либ которые тоже можно скачать через свн и скомпилить. собранные версии с сырцами лежат туто(около 80мб):

http://www.fileden.com/files/2007/8/...9269/trunk.rar
http://www.fileden.com/files/2007/8/...269/trunk2.rar







СДК А если пойти как джедай?
Нам понадобится:
Хороший компьютер, не разогнаный с небитой памятью(это крайне важно. толькочто на моём домашнем компьютере пспсдк отказывалась собираться по десятку причин. но тем не менее на ноутбуке собралась из тогоже набора файлов).
Проц на пару гигагерц.
Быстрый анлимит интернет.
На винте пара гигов места.
Непорусски названный юзер в винде, это желательно для цигвина.

Итак. для начала качаем с офсайта цигвин сетуп.

http://www.cygwin.com/setup.exe

Клацаем на него. программа будет спрашивать 3 вещи
что хоти делать
как подключены к инету.
куда ставить и где сохранить файлы для повтороной установки.

в первый раз говорим самый первый пункт. качать с инета, ставить и сохранить скаченное.
на вопрос где хранить и в каком формате ничего не трогаем.

потом оно скачает список зеркал, и предложит выбрать одно из них. там есть и русские и буржуинские, выберайте тот который "ближе".
вот потом покажеться окошко с тривью на нём. там будут перечислены категории чего качать. можно сдёрнуть просто тупо всё :) а можно сделать проще, счёлкаем мышкой по категории Devel, справа от неё надпись с дефолт поменяется на инсталл. потом идём внизЮ туда где веб, там выбираем wget, тоже его инсталл. можно выбрать и ещё меньше, а именно только пакеты:
  • autoconf 2.59 (or greater)
  • automake 1.7 (or greater)
  • bash
  • coreutils
  • diffutils
  • doxygen
  • gcc
  • gcc-core
  • gcc-g++
  • grep
  • gzip
  • make
  • patch
  • patchutils
  • libUSB-win
  • sed
  • subversion
  • tar
  • wget
После того как всё встанет у пусть оно сделает ярлык на раб стол.

счёлкаем этот ярлык. не мудрствуя лукаво пишем в консоль(или копипастим...)

Цитата:

svn co svn://svn.ps2dev.org/psp/trunk/psptoolchain
щас оно должно скачать самые последние тулчейны.

теперь, в корне цигвина есть батник, открываем его и заменяем содержимое на
Цитата:

@echo off

C:
chdir C:\cygwin\bin

set path=%path%;C:/cygwin/usr/local/pspdev/bin
set PSPSDK=C:/cygwin/usr/local/pspdev

bash --login -i
последний шаг, он долгий самый...под вин хр на кор 2 дуо е6600 и 2гб озу заняло 45минут(без учёта скачивания), на одноядерном ноуте 2.5 часа, на старых процессорах от 3 до 5ти часов.
на новом q6600 и дебиан линуксе занимает 10минут. О_О причём 2 из 4х ядер оно не использует почемуто.
Цитата:

cd ./psptoolchain
./toolchain.sh
в конце он упадёт с ошибкой в псплинке и его юсб приблудами. Ошибка там в файле ремутджоя, тк нам ремутджой ненужен, но нужен псплинк то смотрим на какой файл поругался компилятор и просто коментим там лишнее :) после этого можно будет пересобрать псплинк. для этого сделать
Цитата:

cd buld
cd psplinkusb
make clean
make release
оно скомпилит всё как надо и положит в папочку release(+_oe).




Живём в эклпсе.

Посвящается вСлаве, псповнеру и мортему.

нагло спёрто из различных источников, переосмыслено и обезображено мной.

Как поставить Еклипс и включить на нём отладку?

Для начала как было описано выше ставим пспсдк, либо качаем готовые сборки, без разницы. главное убедитесь что дав команду мейк в консоли винды ваш проект собирается без косяков.

также нам понадобитцо последняя сборка псплинка(щас это 3.0), её можно поставить через свн вместе с сдк, а можно по отдельности. а могу и я выложить если возникнут проблемы/вопросы.


значит будем сщитать что просто собрать в консоли или с помощью иде вСлавы у вас получаетца. это значит что с небольшими обходными манёврами можно заставить еклипс(написаный на джаве) отлаживать код прямо на псп(сони с) находясь под виндой. ыыы...

делай раз. качаем еклипс
http://www.eclipse.org/downloads/
нас нужно то что звать Eclipse IDE for C/C++ Developers - Windows (60 MB) если вы под линухами то умный сайт сам подсунет другую версию.

если у вас на машине нету джавы то нужно скачать её и вперёд всего поставить. http://www.java.com/en/download/manual.jsp берите самую толстую пачку чтоп 2 раза не ходить.

качаем еклипс, распаковываем. запускаем О_О устанавливать ненадо. оно потормозит чутка и стартует. во время первого старта будет спрошено где хранить воркспейсы. это мегокривое в работе убожество. проекты с которыми можно работать хранятся внутри воркспейса. открыть проект просто откудато нельзя, надо делать импорт и тп. мощщ джавы на лицо...
собсно ладно. я положил папку воркспейс тупо в корень С. внутре еклипса делаем новый с++ проект, типа мейкфайл(файл - нью - проект - с++ - некст - мейкфайл), теперь сюда импортируем(файл - импорт - файл систем ляляля) какойнить простой семпл из состава сдк.
вот ещё одно проявление необычайной мощи джавы, после изменения майк файла нужно очищать все временные файлы (прожект - клир алл). а нам нужно добавить в опции языка отладочный ключик -g и отключить оптимизацию -O0 чтобы стало примерно так
CFLAGS = -g -G0 -Wall -O0

Клир, билд.
да кстати. в настройках самого еклипса поставьте галку автосохранения всего перед компиляцией. на всякий случай...

теперь внимание колдунство!
1) в паку с вашим проектом в воркспейсе добавтье кмд/бат файлик следущего содержания (вашапапкасдк)\bin\usbhostfs_pc.exe
2)(вашапапкасдк)\bin\pspsh.exe
3) на псп копируем псплинк, мой ини файл:

Цитата:

# Example psplink configuration file.

# pid=num Set the product ID for hostfs allows you to use multiple PSPs at one time
# Must specify the PID using the -p option of usbhostfs_pc
# pid=0x1C9

# Example psplink configuration file.

# usbmass=[0 1] Enable USB mass storage. Set to 1 to enable automatically
usbmass=1

# usbhost=[0 1] Enable USB host file system. Set to 1 to enable automatically
usbhost=1

# pluser=[0 1] Enable the PSPLink user module
pluser=1

# resetonexit=[0 1] Specify wheher to reset psplink when sceKernelExitGame
# is called
resetonexit=1

# sioshell=[0 1] Specify whether to start up the sio shell
sioshell=0

# kprintf=[0 1] Specify that SIO should be used for kprintf only, setting sioshell
# to 1 overrides this setting.
kprintf=1

# wifi=[0..N] Specify wifi should be enabled, the number is the
# configuration to use if > 0
wifi=0

# wifishell=[0 1] Specify whether to start up the wifi shell
wifishell=0

# usbshell=[0 1] Specify whether to start up the usb shell
usbshell=1

# usbgdb=[0 1] Specify whether to use USB gdb or wifi gdb
usbgdb=1

# conshell=[0 1] Specify whether to start up the console shell
conshell=0

# consinterfere[0 1] Specifiy whether the consoleshell may interfere with
# programs in execution
consinterfere=0
запускаем псплинк, подключаем юсб, ставим дровину, обычно лежит рядом с псплинком. не промажите...

4) запускаем сначала бат №1 потом №2. первый должен увидеть соединения. во второй консольке напишите reset если все хорошо то псплинк перезапустится. чтобы закрыть его можно набрать exit.
напишите ls в консоли должен выскочить список файлов вашего проекта.
пишем далее debug мойпроект.prx
ваш модуль будет загружен и псплинк напишет куда и его ид.

5) в еклипсе нажимаим ран - опен дебуг диалог.
внутре ставим мышу на с++ локал апликатион и делаем новый листик.
на первой вкладке выбираем наш проект, во втором едите пишем чёто типа
проектпапка\мойпроект.elf
идём на вкладку дебуггер
в дебугере выбираем гдб сервер дебугер .
гдб дебугер
лялялял\pspdev\bin\psp-gdb.exe

на вкладке конекшинс делаем тип пцт, машина локалхост, порт 10001.
апли, клоз. можно жать дебуг! оно не найдёт сорс файл но думаю вы разберётесь как это побороть ;)
основная засада в том, что перед откладкой надо во второй консольке какждый раз писать
дебуг мой.прх
после окончания её проверять перезапустился ли псплинк и если нет то ресетить его вручную....
НО ВЕДЬ НАС ТАКОЙ МЕЛОЧЬЮ НЕ ПРОБЪЕШ!?!
вперёд, товарищи, к победе!

pspowner 06.11.2007 23:30

))) Помню помню, по джедайски ещё тут описывал - http://pspx.ru/forum/showthread.php?t=14755

l3VGV 07.11.2007 13:23

Ога. только мой метод сам скачает последний тулчейн. плюс команда "тар" не отрабатывается у меня вообще, и билд тулчейна тоже падает если распаковать раром...неразбирался почему. наверно в цигвине чтото устарело.

l3VGV 08.11.2007 16:09

Линка на свежайший пспсдк.
http://files.filefront.com/pspdevrar.../fileinfo.html

Доки http://files.filefront.com/htmlrar/;.../fileinfo.html

Внутри похоже кроме новых функций ещё и новый newlibc, такчто возможно некоторые мистическию глюки исчезнут сами...

l3VGV 25.11.2007 18:36

Вроде как переехал под линух полностью. Есть у публики интерес к этой теме? могу описать свои шаги по установке, настройке и использованию дебиана.

l3VGV 13.04.2008 18:22

Посвящается вСлаве, псповнеру и мортему.

нагло спёрто из различных источников, переосмыслено и обезображено мной.

Как поставить Еклипс и включить на нём отладку?

Для начала как было описано выше ставим пспсдк, либо качаем готовые сборки, без разницы. главное убедитесь что дав команду мейк в консоли винды ваш проект собирается без косяков.

также нам понадобитцо последняя сборка псплинка(щас это 3.0), её можно поставить через свн вместе с сдк, а можно по отдельности. а могу и я выложить если возникнут проблемы/вопросы.


значит будем сщитать что просто собрать в консоли или с помощью иде вСлавы у вас получаетца. это значит что с небольшими обходными манёврами можно заставить еклипс(написаный на джаве) отлаживать код прямо на псп(сони с) находясь под виндой. ыыы...

делай раз. качаем еклипс
http://www.eclipse.org/downloads/
нас нужно то что звать Eclipse IDE for C/C++ Developers - Windows (60 MB) если вы под линухами то умный сайт сам подсунет другую версию.

если у вас на машине нету джавы то нужно скачать её и вперёд всего поставить. http://www.java.com/en/download/manual.jsp берите самую толстую пачку чтоп 2 раза не ходить.

качаем еклипс, распаковываем. запускаем О_О устанавливать ненадо. оно потормозит чутка и стартует. во время первого старта будет спрошено где хранить воркспейсы. это мегокривое в работе убожество. проекты с которыми можно работать хранятся внутри воркспейса. открыть проект просто откудато нельзя, надо делать импорт и тп. мощщ джавы на лицо...
собсно ладно. я положил папку воркспейс тупо в корень С. внутре еклипса делаем новый с++ проект, типа мейкфайл(файл - нью - проект - с++ - некст - мейкфайл), теперь сюда импортируем(файл - импорт - файл систем ляляля) какойнить простой семпл из состава сдк.
вот ещё одно проявление необычайной мощи джавы, после изменения майк файла нужно очищать все временные файлы (прожект - клир алл). а нам нужно добавить в опции языка отладочный ключик -g и отключить оптимизацию -O0 чтобы стало примерно так
CFLAGS = -g -G0 -Wall -O0

Клир, билд.
да кстати. в настройках самого еклипса поставьте галку автосохранения всего перед компиляцией. на всякий случай...

теперь внимание колдунство!
1) в паку с вашим проектом в воркспейсе добавтье кмд/бат файлик следущего содержания (вашапапкасдк)\bin\usbhostfs_pc.exe
2)(вашапапкасдк)\bin\pspsh.exe
3) на псп копируем псплинк, мой ини файл:

Цитата:

# Example psplink configuration file.

# pid=num Set the product ID for hostfs allows you to use multiple PSPs at one time
# Must specify the PID using the -p option of usbhostfs_pc
# pid=0x1C9

# Example psplink configuration file.

# usbmass=[0 1] Enable USB mass storage. Set to 1 to enable automatically
usbmass=1

# usbhost=[0 1] Enable USB host file system. Set to 1 to enable automatically
usbhost=1

# pluser=[0 1] Enable the PSPLink user module
pluser=1

# resetonexit=[0 1] Specify wheher to reset psplink when sceKernelExitGame
# is called
resetonexit=1

# sioshell=[0 1] Specify whether to start up the sio shell
sioshell=0

# kprintf=[0 1] Specify that SIO should be used for kprintf only, setting sioshell
# to 1 overrides this setting.
kprintf=1

# wifi=[0..N] Specify wifi should be enabled, the number is the
# configuration to use if > 0
wifi=0

# wifishell=[0 1] Specify whether to start up the wifi shell
wifishell=0

# usbshell=[0 1] Specify whether to start up the usb shell
usbshell=1

# usbgdb=[0 1] Specify whether to use USB gdb or wifi gdb
usbgdb=1

# conshell=[0 1] Specify whether to start up the console shell
conshell=0

# consinterfere[0 1] Specifiy whether the consoleshell may interfere with
# programs in execution
consinterfere=0
запускаем псплинк, подключаем юсб, ставим дровину, обычно лежит рядом с псплинком. не промажите...

4) запускаем сначала бат №1 потом №2. первый должен увидеть соединения. во второй консольке напишите reset если все хорошо то псплинк перезапустится. чтобы закрыть его можно набрать exit.
напишите ls в консоли должен выскочить список файлов вашего проекта.
пишем далее debug мойпроект.prx
ваш модуль будет загружен и псплинк напишет куда и его ид.

5) в еклипсе нажимаим ран - опен дебуг диалог.
внутре ставим мышу на с++ локал апликатион и делаем новый листик.
на первой вкладке выбираем наш проект, во втором едите пишем чёто типа
проектпапка\мойпроект.elf
идём на вкладку дебуггер
в дебугере выбираем гдб сервер дебугер .
гдб дебугер
лялялял\pspdev\bin\psp-gdb.exe

на вкладке конекшинс делаем тип пцт, машина локалхост, порт 10001.
апли, клоз. можно жать дебуг! оно не найдёт сорс файл но думаю вы разберётесь как это побороть ;)
основная засада в том, что перед откладкой надо во второй консольке какждый раз писать
дебуг мой.прх
после окончания её проверять перезапустился ли псплинк и если нет то ресетить его вручную....
НО ВЕДЬ НАС ТАКОЙ МЕЛОЧЬЮ НЕ ПРОБЪЕШ!?!
вперёд, товарищи, к победе!

T.I.P. 13.04.2008 18:31

Конечно, извиняюсь за оффтоп, но Кэп ушёл, вСлава тоже,да и мортема давно не видно.
Очень жаль что нас осталось так мало.

Mortem 13.04.2008 21:32

Я тут периодически бываю, просто темы сейчас меня не сильно вдохновляют - плагины, слимы и т.д.
И я слишком ленив, чтобы компилить из консоли, а вСлава потерял интерес к программингу на ПСП, так что некому сделать новую версию PSPxIDE.

l3VGV 13.04.2008 22:28

Вот я тебе и написал как компилить и дебужить по удобному ;)

Mortem 15.04.2008 14:34

l3VGV
У меня пока комп Эклипс не потянет. Благо на КРИ возьму себе в Москве МакБук с Виндой и вот там уже можно будет экспериментировать.
Т.е. респект тебе, обязательно попробую. (:

l3VGV 15.04.2008 16:20

Бери сонивский ноут, с двумяядрами. сони 4зв!

Mortem 16.04.2008 15:58

Не, мне Мак нужен по работе, так что придётся раскошелмтся. Да и виртуализация там очень хорошая, Винда лагать не должна. ^_^

l3VGV 19.04.2008 19:51

Практикая выявила забавный глюк. глобальные переменные не отслеживаются в отладке. те програ работает как надо, но всё что хранится не в стеке имеет значение "0". и в винде и в линуксе попробовал. чья недоработка псплинка или гдб - неясно.

если вычислить адрес переменной то там хранится правильное значение....чудеса...

весь день убил. не поборол. ;(

l3VGV 19.04.2008 23:38

http://www.jetcube.eu/index.html
тута есть немного ленивого щастья. в часности скомпиленый pspsdk под винду, причём не просто сокмпиленый но и оттуда убрана эмуляция линукса. работает быстрее раз в 5.
плюсом там есть gdb 6.7.1 (вместо 6.4 2005го года выпуска который лежит на свн у пс2дев) с ним заработала отслеживалка глобальных переменных, ура!

l3VGV 23.04.2008 12:36

Патч для гдб 6.8 сделал, решает проблемы с невидимостью глобальных переменных. можно конечно было и 6.4 поправить, но лучше уж двигать вперёд...

http://rapidshare.com/files/10901249...PSP.patch.html

Mortem 29.04.2008 14:49

Цитата:

Линка на свежайший пспсдк.
http://files.filefront.com/pspdevrar.../fileinfo.html
Сцылка битая.
Пставил пока качаться яву и Эклипс. Может вечерком попробую всё настроить.

l3VGV 29.04.2008 17:21

Цитата:

Сообщение от l3VGV (Сообщение 653936)
http://www.jetcube.eu/index.html
тута есть немного ленивого щастья. в часности скомпиленый pspsdk под винду, причём не просто сокмпиленый но и оттуда убрана эмуляция линукса. работает быстрее раз в 5.
плюсом там есть gdb 6.7.1 (вместо 6.4 2005го года выпуска который лежит на свн у пс2дев) с ним заработала отслеживалка глобальных переменных, ура!

под винду вот это качай.

Ilsor 28.06.2008 14:30

Мда. Всё это безнадёжно устарело...
В попытке вылечить проблему impure_ptr, выяснилось, что скачанный toolchain компилируется со сбоями. Почему-то вылетает с ошибкой ("программа выполнила недопустимую операцию") cc1.exe. Вообщем, пока не получается пересобрать комплект разработки. Простая замена библиотек cygwin'а и libstdc++.a в старом комплекте на свежевыкачанный cygwin ничерта не даёт и всё так же Си++ не работает...

l3VGV 28.06.2008 17:30

Отставить волноваться. всё уже собрано до нас. под вин32 готовый комплект:
http://sourceforge.net/project/showf...roup_id=223830
можеш смело качать тестовый 0.8.3

если у тебя не компилистся тулчейн как я описал то это обычно ошипки памяти. или косяки винды...или пятна на сонце влияют на цпу :) но метод точно рабочий, проверено на себе.

Ilsor 28.06.2008 19:26

Здорово! Сейчас попробую. :)

добавлено через 20 минут
Мдя... не помогло. Всё равно та же ошибка:

Код:

Compiling: main.cpp
Linking executable: Release\Test.elf
..\..\devkitPSP\psp\lib\libstdc++.a(vterminate.o): In function `__gnu_cxx::__verbose_terminate_handler()':
: undefined reference to `_impure_ptr'



Текущее время: 07:40. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.