В данной ленте мы собираем наиболее интересные новости сторонних источников.
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Вход
Главная » 2010»Август»24 » Программируем для PSP: Часть I, настройка компилятора
11:34
Программируем для PSP: Часть I, настройка компилятора
Давайте условимся сразу: я следую паттерну "изучение обучением", т.е.
учу, одновременно изучая, обгоняя читателей на 2-3 "шага" вперед.
Однако это не значит, что я ничего не знаю и все, что говорю - обычные
копипасты: я стараюсь разобраться в теме, прежде чем писать о ней.
Поэтому смело задавайте вопросы, этим вы принесете пользу и себе, и
мне: на вопросы, ответ на которые я не знаю, я буду его искать,
осозновать и рассказывать вам.
Итак, в этом топике будет небольшой рассказ о том, как скомпилировать и
запустить первую программу на своей приставке. Сразу предупреждение:
статья мегатехнического плана, почти все содержание касается
утомительной, но быстрой настройки компилятора, а в результате вы
получите лишь банальный "Hello World". Однако без нее никак.
Будем предполагать как данность, что у вас есть приставка Sony PSP,
перепрошитая до последней версии - 3.90 M33-3 (так называемая custom
firmware, неофициальная прошивка). О том, как перепрошиваться, уже рассказывали многие,
и останавливаться на этом я не буду. Так же будем считать, что в кирпич
ваш вставлена флешка, на которой есть хотя бы 50кб свободного места, и
вы имеете к ним доступ (например, через саму PSP).
Скажу сразу: я почти уверен, что ничего плохого с вашей приставкой не
случится, если вы будете достаточно аккуратны, но никаких гарантий
дать, к сожалению, не могу.
Используемый язык программирования — Си, я буду использовать бесплатную IDE Code::Blocks
под Windows XP. Пользователи других компиляторов или ОС могут
попробовать настроить IDE сами, благо, настройки у всех похожи; я же
использовал то, для чего нашел мануал ;)
Для начала, скачаем набор компиляторов, линкеров и библиотек для PSP под названием DevKitPSP. Распакуйте его куда-нибудь, я его распаковал в корень диска E: (теперь у меня есть папка E:\devkitpsp\).
Теперь откройте Code::Blocks. В меню выберите Settings→Compiler and
Debugger, как Selected Compiler в открывшемся окошке выберите GNU GCC
(он должен стоять по умолчанию), скопируйте его, назвав, например,
DevKitPSP, и настройте его:
Вкладка Search Directories→Compiler (удалите все, что там есть, и нажимайте Add для добавления каждого из путей):
Compiler's installation directory: E:\devkitPSP . Там есть примечание, что в этой папке должна быть подпапка bin, проверьте.
C-compiler: psp-gcc.exe
C++-compiler: psp-g++.exe
Linker for dynamic libs: psp-g++.exe
Linker for static libs: psp-ar.exe
Еще три поля я оставил пустыми.
Теперь можно жать OK, и переходить к созданию нового проекта
(File→New→Project..., слева в окошке жмем Projects и выбираем Empty).
Заполняем Project Title (не играет роли, пусть будет PSPHelloWorld), не
забываем поставить папку для сохранения проекта (я вон в первый раз
забыл, и получил кучу глюков и ошибок); компилятор, разумеется, ставим
свежесозданный нами.
Наш проект девственно пуст, создаем фаил (File→New→File..., на название
наплевать, я выбрал main.c) — не забудьте в мастере создания фаила
выбрать как язык Си и поставить галочки "Add to current project",
"Debug" и "Release" (почему они не стоят по умолчанию?).
В созданный фаил копируем код
(ключ доступа - хабрахабр). Я бы сюда закинул, если бы не хабрапарсер.
Код писал не я, кстати: опыта пока-что маловато, хотя я вполне понимаю,
что там происходит и как - в любом случае, в этом топике я
останавливаться на этом не буду.
Теперь последние штрихи к настройке. Мы уже настроили то, с помощью
чего будем компилировать, но не настроили, как и что у нас должно
выходить. Поэтому жмем правой кнопкой на название проекта справа,
выбираем Properties, а там — Build targets. Снимаем
галочку "Auto-generate filename extension", и правим в Output filename
расширение "exe" на "elf". Выполняем тоже самое для конфигурации
Release, жмем Ok.
Жмем правой кнопкой на название проекта опять, выбираем Build Options
и, на вкладке Linker Options, вписываем в Other linker options:
Вроде всё (надеюсь, это последняя статья скучного технического плана).
Теперь собираем проект (Build→Build или знакомое всем Ctrl-F9) — если
вдруг появились ошибки, то думаем, что же сделали не так, а потом
спрашиваем в комментариях (может, я забыл чего).
Чтобы не настраивать потом заново, стоит сохранить проект как шаблон (File→Save Project as user-template...).
Итак, у нас есть elf-фаил нашей программы. Перед тем, как закидывать
его на PSP, надо преобразовать его в EBOOT.PBP (название придумал не я,
честно). Для этого у меня стоит такой bat-ник:
Он располагается у меня в директории pspprj, в которой я создаю по
папке для каждого проекта. Используется он так: make_eboot.bat
HelloWorld . Если у вас другая организация папок, или вы просто хотите
его переписать или запускать каждую программу вручную — просто
запускайте по строчке, не забывая заменять %1 на названия или пути к
фаилам. В результате у вас получится фаил EBOOT.PBP, его надо будет
закинуть в папку /PSP/GAME150/HelloWorld (или другое название)/, а все
остальное можно спокойно удалить. Теперь проверяйте (выход — по кнопке
Home).
Как "домашнее задание" — сделайте так, чтобы все "хелловорлды" были с новой строки. До встречи!
P.S. Вырезал весь "юмор", который сначала вписывал. Всегда самого
раздражали тупые шутки в такого рода постах, а в том, что мои шутки не
тупы, я быть уверен не могу :)