PSPxIDE - мини IDE для разработок под PSP
Вложений: 1
Всех поздравляю с наступившим 2007 годом !
Вот написал свою мини среду разработки под PSP, обозвал PSPxIDE. Основные фичи первой версии: - Полнофуекциональный редактор c/cpp исходников с синтаксической расцветкой - Возможность объединения исходников в проекты - Code Folding - сворачивание блоков исходников при редактировании - Компиляция и билд проектов в cygwin (PSPDev Environment for Win32) ! - Вывод результатов компиляции + позиционирование в тексте модуля на ошибках - Полная изоляция от консольной cmd строки :) - Поддержка русского и английского языков интерфейса Работа с PSPxIDE: 1. Разархивируйте папку PSPxIDE в любое место 2. После первого запуска PSPXIDE.exe открывайте меню Проект - Опции Выберите директорию PSPDEV - куда поставили PSPDev Environment for Win32 (обычно c:\pspdev), в параметры gcc ставьте kxploit (если хотите получить хомебрю под 1.5, 3.02 OE, пусто - значит 1.0) , далее ставьте галку "Параметры по умолчанию" и жмите ОК. Теперь при создании любого прожекта или открытии исходников эти параметры будут действовать по умолчанию ! 3. Поддерживается две методики работы : а) Работа без создания проекта - просто откройте главный файл исходников хомебрю *.c,*.cpp в директории, где лежит Makefile. При этом в дальнейшем будут использоваться только параметры по умолчанию. б) Работа с созданием проекта - можно открыть несколько файлов исходников и затем сохранить новый проект в меню Файл-Проект. Вместе с проектом сохраняются опции (для каждого проекта можно установить свои ) и входящие в него файлы. 4. Редактирование - все как в нормальной современной среде программирования 5. Компиляция - меню Проект - Отбилдить либо горячая клавиша F9. для визуального контроля над компиляцией откройте окнго вывода - меню Вид - Окно вывода. Если все успешно, то в конце увидите строку Successfully complete !, то есть результаты будут находиться в каталоге проекта, откуда можно их скопировать в PSP\Game для 1.5 или PSP\Game150 для 3.02. Так же предусмотрена возможность автоматического копирования результатов билда куда хотите, для этого в опциях проекта установите "Коприровать результат в", теперь после компиляции в случае успеха результат дополнительно будет скопирован в выбраное местоположение (например сразу в PSP). Если исходники содержат ошибки, то в окне вывода появится секция "Errors/Warnings ...", и под ней перечисление ошибок/предупреждение. При этом, если кликнуть два раза в окне сообщений на строке ошибки, то если данный модуль открыт в редакторе, то окно этого модуля в редакторе станет активным и курсор установится на строку ошибки. Вот в принципе все что мог ,написал , если у кого будут вопросы и предложения пишите. P.S. Выкладываю на www.pspx.ru в первую очередь в поддержку русского PSPDev сообщества :) На буржуйских форумах народ много спрашивает про подобную весч, ведь с cmd мало кто дружит :) так же выложу скоро и там. |
Сейчас извините, в голове новоголний шум ещё стоит... ппроверю потом, но в принципе можно туда "Run" прикрутить? Ну как я понимаю копируется ебут на зыз и там запускается(на ЗЫЗе естественно караулит другая прога). Это что-то вроде PSPLINK выходит, но с тем что-то мне в силу врождённой лености неохота разбираться...
Ну мне кажется, самое нужное не IDE и постоянная командная строка бекграундом, а как то автоматизировать заливку прог на ЗЫЗ и запуск... |
У меня новый год тоже еще в голове , но вот решил чем то позитивным заняться, как то ниче не делать не получается :)
Конечно, все можно прикрутить, но постепенно . Над PSP Link я тоже сразу думал, он же в PSP Dev входит. Но разбираться надо. Если б кто помог :unknw: . Я вот что в исходниках PSPLINK нашел # ****** to load a prx and its symbols, set a breakpoint on its main # function and start it. # Call it 'run filename' modload $1.prx symload $1.sym bpset '?$!:main?' modstart '@$!' $1.prx значит и отладчик возможен ! Добавить отладчик в PSPXIDE мне дело нехитрое, вот инфу отладочную как организовать, это пока вопрос. Вообще идея такая, чтоб использовать PSP для отладки как удаленный терминал. Если это реализовать, то PSPXIDE станет делфей под ЗЫЗу :) Будем стремится , думаю что это реально. |
Да... Хм... Не знаю Symbol Table это здорово, но я всётаки не профессионал.
Если я ещё как-то себе представляю как сделать отладку в опкодном представлении, то дебаг инфа, в ебуте - ваще что-то для меня запредельное. Вобщем, я лично, буду безмерно благодарен если что-то подобное с доступным интерфейсом появится.... Я просто думал о том, что можно сделать проще, я о Run'е. Грубо, есть irShell кторый может распаралелить USB-синхронизацию, и ещё одну прогу которая будет ждать появления ебута в определённой папке. Вот вам и Ран... Ну это только размышления... |
Уже почти пришел к пониманию как програмно сделать рун на PSP через PSP Link :) Так что думаю на днях организую.
Вот еще кому интересно, дока про PSP : аппаратная архитектура и методы ее программироования : http://ps2dev.org/psp/Tutorials/PSP_...embly.download |
Вложений: 1
Выкладываю новый релиз 1.1 с возможностью запуска хомбрю на PSP !
1. Инструкция в первом посте остается в силе 2. Появились новые 2 пункта меню Проекта и кнопки в панели: Запуск и Остановить Новая функция основана на хомбрю PSP утилите PSPLINK и USB драйвере , входящие в комплект PSPDev Environment for Win32. Порядок установки: 1. PSPLINK часть для PSP версий 1.5, 3.02 и выше находится в каталоге pspdev в \psplink\v1.5\. Копируем в PSP\Game для 1.5 или PSP\Game150 для 3.02 и выше. 2. Запускаем PSPLINK на PSP 3. При первом запуске (если USB кабель присоединен) в Windows откроется Мастер нового оборудования, нужно установить специальный USB драйвер под PSPLINK, указав в качестве каталога для поиска расположение pspdev\bin. При этом в диспетчере устройств появится LibUSB-Win32 Devices. Все, теперь в PSPxIDE можно открыть проект или c/cpp , отбилдить, а потом запустить, для выхода из хомбрю нужно нажать Остановить, при этом PSPLINK вернется в первоначальное состояние, соответственно можно запускать сколько угодно раз ! Я использую фичу PSPLINK, позволяющая запускать программы прямо с диска PC, ничего не копируя на мемористик! Это дело я автоматизировал, так что прилинковывается текущий каталог разрабатываемой хомебрю, так что все автоматом :) В текущей версии все заточено под скомпилированные для PBP - ELF файлы, но в принципе могу доделать под PRX, если конечно интерес будет. Еще ! самое главное, я почти разобрался с методами debuga под PSP, как низкоуровневыми, так и Source level ! Тут реализован клиент серверный механизм удаленной отладки GDB, я ранее использовал его в пректе на gcc, так что полнофункциональному ОТЛАДЧИКУ БЫТЬ ! В следующей версии вставлю примитивную отладку. |
У меня все время ошибки выдает, когда же в gcc компилит нормально
добавлено через 5 минут И кстати, при запуске PSPLink у меня никаких драйверов не требует, просто открывает как обычный съемный диск добавлено через 6 минут От ошибки избавился!! |
.//Hack , в итоге нормально все запускает через PSPLINK ?
|
Чтобы установить тип "B" тоже добился.
добавлено через 1 минуту Даже не знаю1 Пишет Run а потом OK! но что при этом должно проиходить? добавлено через 1 минуту Отлично работает!! добавлено через 23 секунды Просто по подробней в описании с настройками опиши!! добавлено через 49 секунд стукни в асю мне 241-613-423 |
Вложений: 1
Очередное обновление, версия 1.15
Добавлено: 1. Теперь возможно компилировать и в PRX ! Для этого нужно чтоб в MakeFile после ASFLAGS = $(CFLAGS) была строка BUILD_PRX = 1 и в опциях проекта было clean (вместо kxploit) 2. Первая отладочная фича - получение скриншотов с PSP ! (не так информативно но красиво :) не удержался). Идем в Меню Вид - Окно PSP ScreenShot. Во время выполнения хомбрю на PSP (под PSPLINK) нажимаем Grab и радуемся (также последний скриншот лежит в каталоге текущего проекта и зовется scrshot.bmp). P.S. //Hack , завтра буду доступен в аське, спишемся если че Народ ! Что то смотрю много просмотров темы, а отозвались всего два человека, неужели никому не интересно :( Ведь при удачном развитии проект реально может стать хорошим дополнением к PSPDev Environment, надо же хоть както заявить о себе, а то только буржуи на PSP сцене ! |
! В дополнение к посту 6, при установке PSPLINK: конфигурационный файл под USB Host - его копировать на PSP в каталог PSPLINK !
|
Качаю, щас опробую, отпишусь.
|
О, здорово, еще один пост появился, (elvis live!) отпишись как все получилось. Я в принципе, уже source debug сделал, то есть можно бреакпоинты расставлять в исходниках, просматривать переменные и т.д. , все как в Делфи :) . Осталось как всегда самое тяжелое :) - все это в интерфейс IDE вставить, горячие клавиши и т.д. Еще все думаю, как конфигурацию и настройки проекта удобней сделать. Такая инфа для размышления: Запускать можно на отладку файлы 3 типов: elf, prx, pbp. Так вот elf, prx могут содержать дебаг инфо и соответственно удобно отлаживаться, но есть ограничение, что их можно отлаживать только для user level хомбрю, а kernel level - нет. Но можно хоть что фиктивно отлаживать через pbp (не тот что финальный, а тот что в результате дебуг компиляции делается), то есть писать отладочную инфу самому в stderr. В общем ,всю эту специфику надо как то организовать, то есть сесть и сделать.
Еще нужно доделать, чтоб итоговая хомбрю была с иконками, музыкой, т.е. мастер, который картинки и музыку в проект добавляет, и соответственно в компиляцию это вставит, как это делать, я уже знаю. Если у кого есть желание нормально это сделать в виде плагина, буду оч. рад разделить авторство :) |
Так, всё поставил, всё почти работает. Есть только одна трабла:
- После первого удачного старта проги на ЗЫЗ приходится вырубать приставку и заново запускать ПСПЛИНК. Иначе повторно запустить неудаётся: Connecting to PSP ... Retry ... Retry ... Retry ... Retry ... А так, wSlava - респект. Очень удобно. |
Ага, вот значит походу какой-то глюк с резетом.
Если отправить в suspend, а потом вернуть - то всё Ок. Фиг знает что это. Может из-за 3.03ОЕ? Но всё равно класно. |
Спасибо. Капитан, а ты когда хомбрю на PSP запустилась из под IDE, для остановки нажимал на Stop ? Должно было в окне сообщений вывестись: Reset и PSP просто вернуться в PSPLINK и тогда только можно перезапустить. Скинь вообще весь лог. Еще можешь написать, какую хомку запускал, если пробовал запускать из демок PSPDev? А скриншот пробовал сделать ?
P.S. Последний раз на 3.03 ОЕ-А' смотрел, на OE-B еще нет, может изза этого. Буду смотреть. Еще раз спасибо за тест :) |
Стоп нажимал, и PSP ресетится(раздаётся щелчок UMD-привода и возврат в PSPLINK). Просто потом прога не хочет конектится с PSP снова. Запускал просто пример из: C:\pspdev\psp\sdk\samples\controller\basic
Скриншот работает. Запустить прогу повторно можно только если выключить ЗЫЗ и заново запустить ПСПЛИНК. Или, что странно, просто отправить ЗЫЗ в standby а потом вернуть обратно - тогда перезапускать PSPLINK не требуется. Сейчас лог не скину, чуть попозже. Вчера на домашнем компьютере проверял, здесь ещё не подключал. Заодно и проверю мож в компе дело. |
Цитата:
|
ОК. Я седня пробовал и дома и на работе, все нормально и на 3.03 ОЕ-В идет. .//Hack тоже говорил , что все ОК. Очень даже похоже что виснет драйвер USB (libusb0.sys). То есть когда повторно устанавливается канал, ничего не происходит. А при выключении или просто в суспенд, из винды устройство демонтируется, а при инициализации монтируется и все ОК. Сначала можно просто попробовать переустановить драйвер USB вручную, находятся он в \pspdev\bin\ , зовется libusb0.sys, файл установки psp.inf.
Вот еще что посмотреть можно: при старте хомбрю на PSP в начале создается на PC процесс usbhostfs_pc (должен висеть в диспетчере задач) - он обеспечивает обмен данных по USB, после Reset usbhostfs_pc отваливается. Есть момент, что после Reset повторный запуск usbhostfs_pc проходит дольше, поэтому в цикле проверяю, прошел ли старт успешно и через таймаут выдаю предупреждение. Мне интересно узнать, когда второй раз запуск не проходит и выдается предупреждение, если его не закрывать и глянуть в процессы, есть ли там usbhostfs_pc ? |
Ок, драйверы переставлю, дипетчер соскришотю =),вечером отпишусь.
Значит дело точно в компе. |
Стоп ! Я еще на 3 тачках опробовал и на третьей как раз такая ситуация ! Значит дело не в драйвере, потому как там все с нуля поставил для чистоты эксперимента. Буду смотреть.
|
Вложений: 1
Все, вроде локализовал проблему. В общем я usbhostfs_pc в daemon режиме запускал, то есть независимый процесс получался, вот почемуто когда я его удаляю из памяти, порт, который он слушает (100000), некоторое время продолжает висеть, и не дает никому подключиться. На тачке, где не заработало, через пару минут все запустилось. У меня таймаут естественно меньше. Сейчас запускаю в режиме консоли, и когда после Reset эту косоль убиваю, порт сразу освобождается. В общем, выложил новый exeшник
|
Отлично, отпишусь вечером. Теперь всё супер должно быть...
|
Да, всё чудесно теперь пашет! Спасибо.
|
Супер ! Ну теперь в следующую версию уже дебаг вставлю, вот тогда действительно чудесно будет :)
|
Хорошая работа, ощутимых багов пока не нашел
|
Вложений: 1
Начал разбирать структуру Makefile , так как ,чесно говоря, до текущего момента только тупо брал за основу из экзамплов , провел обширные поиски по этой теме и выкладываю ссылку на достаточно хороший туториал http://www.opussoftware.com/tutorial/TutMakefile.htm , так же в аттачменте смотрите генератор Makefile, написанный одним из разработчиков для упрощения это процедуры, скорей всего я вставлю в PSPXiDE нечто подобное ...
|
Вот честно говоря сам брал мейкфайл с примеров =)
|
Возник вопрос, вот например разбираю хомку из pspdev\psp\sdk\samples\usb\
в мейкфайле есть строчка: LIBS = -lpspusb -lpspusbstor понял, что берутся библиотеки libpspusb.a и pspusbstor.a из \pspdev\psp\sdk\lib при этом в main.cpp инклудятся: #include <pspkernel.h> #include <pspiofilemgr.h> #include <pspmodulemgr.h> #include <pspdisplay.h> #include <pspdebug.h> #include <pspusb.h> #include <pspusbstor.h> #include <pspthreadman.h> #include <pspctrl.h> #include <pspsdk.h> так вот, явно, что -lpspusb -lpspusbstor предназначены для #include <pspusb.h> #include <pspusbstor.h> а остальные инклуды что берут ?? по умолчанию чтоли библиотеки какие-то и вообще есть ли где описание какие h в каких библиотеках ??? |
Слава(надеюсь такое обращение допустимо),
Эту тему я искал, НО! Ничего стоящего так и не увидел. По поиску на пс2дев проскакивали фразы про дефолтовые библиотеки, но конкретных привязок хедер-либ я так и не нашёл. По логике, они должны существовать, но... мож только через мыло попробовать их попросить у кого-нибудь из гуру. |
Естественно, ко мне на ты :) спасибо, Капитан. Да, часто такое бывает, вроде все уже что надо раскопаешь, а до мелочей доходит дело ... и это оказывается вершиной айсберга :) На то и PSP закрытая платформа, зато интересней, чем под тот же наладонник софт писать.
Я сейчас в стадии раздумывания, что делать с мейкфайлом. Во первых, нужно, чтоб его как то удобно создать дл нового проета, во вторых, нужно использовать уже имеющийся, в третьих, например, для дебага или prx нужно вставить в него свои поля. Вот я что пока надумал: в оциях проекта сделать две закладки и выбор типа мейкфайла - простой (simple) и произвольный (advanced). В произвольный можно либо импортировать имеющийся файл, либо строить свой навороченный с макросами и т.д. , а в простой будут лишь основные поля (так же импортируются,если есть мейкфайл), вот тут еслиб однозначно знать что к какой библиотеке относится можноб вставить мастера. Капитан, ну и все конечно, может есть идеи как это организовать удобней ? |
я честно говоря к таким библиотекам как pspkernel.h относился как к stdio.h в C.
что-то без чего не будет работать ничего :-) |
Вложений: 1
Выпустил релиз PSPxIDE версии 2. Теперь с возможностью отладки !
Для начала посмотрите скрин, очень даже красиво (ИМХО) вышло http://savepic.ru/12723.jpg. Конечно, добавление этой возможности далось нелегко, но теперь можно констатировать, что PSPxIDE единственная в своем роде среда быстрой (Rapid) среды программирования для PSP под cygwin :) Пока лишь опишу что добавил в последний релиз (кто не втеме, читайте с первого поста) 1. Все таки определился со структурой Makefile и типами проектов. Поддерживается 2 типа приложений PBP и PRX. 2. Поддерживается 2 типа отладки: а) GDB - отладка на уровне исходников, сейчас только для PBP и ! только для USER MODE приложений б) Отладка через вывод в stderr, это как раз для KERNEL MODE приложений !!! Сейчас доступен только запуск, позже добавлю вывод из stderr 3. Настройки MakeFile доступны из меню Проект - мастер Makefile. По умолчанию берется текущий мейкфайл если есть, если нету, то создается новый со всем необходимым. В дальнейшем добавлю автоматический поиск используемых библиотек (уже знаю как) и ресурсов 4. Конечно самое главное в этой версии - отладчик, появилась новая панелька отладки. Процесс отладки аналогичен отладке в Delphi: F5 - поставить/снять точку останова. F9 - запуск, при этом точки отладки сканируются насчет, является ли строка исполнимой, если нет, то строка становится серой. Если в нет ни одной выполнимой точки останова, то хомка просто запускается на исполнение, если есть, то по F9 включается режим отладки и программа останавливается на первой пришедшей точке останова. Далее можно открыть Watch окно просмотра переменных, открываем меню Вид->Окно отладки переменных и как обычно в Watch пишем любое выражение (переменная, массив и т.д.), если выражение вычислимо в текущем контексте, то результат выведется в Value. Также от точки останова можно шагать F8 - на следующую строку (step over), F7 внутрь (step into) . При step into , если функция из другого модуля, то сначала модуль ищется в текущем каталоге, если не найден, то ищется во всех каталогах, указанных в опциях проекта (путь поиска исходников), если найден, то он открывается и курсор отладки переходит в него, если не найден, то будет просто сообщаться о текущих шагах ( номера строк) по данному файлу (берется из дебуг-информации). В общем то все стандартно. Есть некоторая недоделка, если исходники одного проекта в разных каталогах, и на первый взгляд все работает, но это я еще посмотрю повнимательней. 5)Так же добавил фишку, что по F1 в редакторе слово под курсором ищется pspdev хэлпе и открывается если найдено, если не найдено, то открывается корень хэлпа Еще почикал мелкие недочеты, например, русские сообщения в консоли выводились кракозяблами, все окошки (Watch, ScreenShot и т.д) нормально встраиваются (drag'n'drop) в главное окно и при этом сохраняются при закрытии. Все, смотрите аттачмент, задавайте вопросы. P.S. В общем, получается довольно-таки хороший продукт. С помощью PSPxIDE разрабатывать для PSP гораздо легче, особенно новичкам, и кто не превык к консольной отладке. Надеюсь, это привлечет народ к програмированию на ПСП. Кстати, это уже моя третья среда разрабоки :) В общем, есть идея открыть под PSPxIDE отдельный ресурс. Сейчас я еще раз все обдумаю, "причешу" все и буду запускать в девелоперские хомбрю массы. Если вам интересно, былобы неплохо этот раздел организовать на pspx.ru (чтото типа ide.pspx.ru) и вести всю работу в рамках него. |
ОТЛИЧНО! Дома заценю. Тогда отпишусь что да как.
Ну и соображения свои тоже напишу. |
Сделайте пожалусто фак как пользоваться всем этим добром :prankster: . PSPDev у меня есть(может не той версии и т п), C++ знаю ,PSPXIDEv2.zip скачал ,путь к PSPDev в проге указал, и всеравно говорит "Error 123", Что делать?
Я уже знаю что pspkernel.h надо обязательно подключать без него ни че не выдет. И если это возможно дайте исходный код программы выводящий на экран "Hello, World". |
The ALKASH: PSPLINK на PSP запустил ? Читал посты #6 и #11 ?
Хелло ворд зачем, любой проект из \pspdev\psp\sdk\samples\ идет. Еще, сначала скомпилировал перед запуском ? Напиши лог, что выдалось полностью |
На PSP я нечиго не ставил. А надо ставить PSP Link?
Ошибка : http://hotimg4.fotki.com/b/85_192/164_199/123456.jpg |
Хм... ОК, буду FAQ писать. The ALKASH , перечитай все от начала или жди FAQ. Опиши подробнее, что и как делаешь. Еще, открой окно сообщений из меню Вид->Окно вывода, что там пишется?. Кстати, версия SDK должна быть PSPDev Environment for Win32 based on the GCC v4.0.2 toolchain.
|
2 Кстати, версия SDK должна быть PSPDev Environment for Win32 based on the GCC v4.0.2 toolchain.
А где таковую взять? Теперь вот что пишет: "Project not compiled (ELF not found)" |
|
Текущее время: 12:03. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.