Урок 2: Создание первой собственной программы, глава 1

Итак, вы прочитали Урок № 1 и создали среду программирования, в которой будете создавать свои программы. И вот наконец-то представляю вашему вниманию ту часть учебных материалов, которую вы с нетерпением ждали. Ее можно озаглавить, как «Первая программа для PSP». Данный урок расскажет об основах языка программирования C (Си) и поможет создать первые собственную программу.

Если у вас возникнут вопросы по данному уроку и вам необходима помощь, заходите на наши форумы и задавайте вопросы, на которые мы с радостью ответим!

В первую очередь создаем папку для наших проектов (Для тех, кто выбрал второй способ и установил MinPSPW и Eclipse или любую другую IDE этот шаг можно пропустить, так как мы уже указали папку для проектов при первом запуске Eclipse). Открываем CYGWIN bash и пишем «mkdir projects», после этого нажимаем enter. Эта команда «mkdir» означает «создать папку (директорию)». Она создает папку (или каталог) в текущем операционном каталоге. Теперь у нас есть папка под названием projects для наших проектов. Далее набираем «mkdir helloworld» и нажимаем enter. После этого называем новый каталог как «cd helloworld».

Следующим шагом мы должны открыть IDE (Eclipse)/текстовый редактор в зависимости от того, какой способ вы выбрали в первом уроке. Им может быть как Wordpad, так и Notepad (блокнот). В данном случае, это не имеет значения, какой редактор вы выберете. Я отдаю предпочтение тому редактору, который умеет находить и исправлять ошибки в синтаксисе и функциях, поэтому использую Dev-C++. Но если честно, это не так важно (главное, чтобы вы умели пользоваться редактором).

Тем, кто выбрал первый способ, использует CYGWIN и текстовый редактор предстоит сделать ниже написанные действия вручную, тем же, кто использует MinPSPW и Eclipse (или любую другую IDE) придется намного проще, так как для них уже имеются заготовки, которые здорово подсократят ваше время и работу, однако я все равно настоятельно рекомендую вам ознакомиться (но не выполнять написанные действия) с ниже изложенной информацией, так как она содержит некоторые вещи, которые можно отнести к азам и обязательны для понимания.
Сейчас создаем новый файл под названием «main.c» в нашей папке «helloworld». Он будет содержать исходный код для нашей программы. Для тех, кто не знает, что такое исходный код, поясняю: исходный код – это текст на алгоритмическом языке для создания программы. Он записывается таким образом, чтобы люди смогли понять. На многих языках программирования код должен быть преобразован в такой формат, который сможет прочесть компьютер (или в нашем случае, PSP). Такие языки программирования называются транслируемыми языками. И С, и С++ (преобразование осуществляется компилятором, который устанавливаем в Уроке № 1) как раз таки попадают в данную категорию. Есть и другие языки программирования, которые используют то, что называют интерпретатором. Поэтому они интерпретируют исходный код и моментально «отправляют» его компьютеру. Они называются языками подготовки сценариев (например, язык программирования PHP). Но вернемся к нашим «баранам»…

Итак, теперь у нас есть новый файл, являющийся «хранилищем» нашего исходного кода, который сейчас нам предстоит написать. Первая часть программы будет содержать комментарии. Они помогут каждому узнать цель создания программы, дату ее написания и автора. Комментарии – это строки исходного кода, которые исключены из скомпилированного двоичного файла (или пропущены интерпретатором в языках сценариев, то есть они будут видны только вам). Комментарии являются важной частью вашего кода. Ведь, когда вы (или кто-то другой) с течением времени возвращаетесь для редактирования исходного кода, все особенности составленной программы у вас забываются. В данной ситуации вам и пригодятся комментарии, которые будут выполнять функцию примечаний. Комментарии отмечаются символами «//» и «/*». Символ «//» означает, что оставшаяся часть строки будет комментарием; а символ «/*» означает, что компилятор (или интерпретатор) проигнорирует все, что будет написано до «/*». Причем, комментарии, обозначенные «/*» могут включать много строк в отличие от «//».

Поэтому начнем нашу программу с комментария, в котором укажем цель создания и имя автора.

// Hello World – моя первая программа для PSP

/*
Эта программа была написана (ваше имя здесь/ дата здесь)
«Hello World» – это простое Приложение.
*/


В следующей части программы мы говорим о компиляторе, заголовочных файлах и тех файлах, которые мы используем в нашей программе. В основном «#include» позволяет копировать код из файла, который мы ей передаем. Такие процессы делают программу простой, так как расширенный код уже написан за вас. «include directive» может включать или заголовочные файлы, которые идут вместе с компилятором (или то, что вы добавили к компилятору), или заголовочные файлы, определенные для конкретного проекта, благодаря которым вы сможете продолжить работу. Для выбора одного из предложенных вариантов, вы используете:
«<>»
Знаки «меньше больше» включают файл компилятора. Итак, мы подключим два файла к нашей программе. Первый из них – «pspkernel.h». Этот файл будет включен в любую программу для PSP. Он содержит весь код, который необходим для работы программы на PSP. Ваша программа не будет работать на PSP, если вы не будете включать этот файл. Вторым файлом, который мы собираемся использовать, будет «pspdebug.h». Данный файл содержит несколько полезных функций для отладки программ и функции для использования экрана. Поэтому добавьте этот код в вашу программу:

#include <pspkernel.h>
#include <pspdebug.h>


Далее мы сообщаем PSP о нашей программе. Это не очень важно, поскольку ваша программа будет работать и без этого. Однако такое сообщение – хорошая идея, которую можно воплотить (только в случае прямой совместимости). Первый атрибут – имя программы, но это не то имя, которое будет отображаться (позже мы его изменим). Остальными атрибутами будут указания версии (не изменяйте их), полноценная и упрощенная версии. Мы оставим эти значения по умолчанию. Теперь добавим эту строку в вашу программу:

PSP_MODULE_INFO("Hello World", 0, 1, 1);


После этого добавим функцию, которая позволяет писать на экране. Этот шаг является дополнительным. Тем не менее, он в несколько раз облегчает работу всех программ, которые связаны с текстом. Основная цель – изменить название функции для PSP, которая называется «pspDebugScreenPrintf», на то, что более удобно печатать. Данная функция используется с целью вывода текста на экран (который вы будете видеть позже). То есть мы переименовываем «pspDebugScreenPrintf» в «printf». Каждый раз компилятор будет воспринимать «printf» как «pspDebugScreenPrintf». Для этого мы сделаем следующее: определим «printf» как «pspDebugScreenPrintf»:

#define printf pspDebugScreenPrintf

Как я уже говорил ранее, для тех, кто выбрал способ все намного проще. Открываем программу Eclipse, в меню выбираем: Файл -> Создать -> Проект… Появится окно выбора:

Выбираем С Project, откроется другое окно, в котором следует выбираем Makefile project -> Empty Project:

Вводим название программы на латинице и без пробелов(!) и нажимаем «Готово»:

Если все сделано верно в левом столбце программы вы увидите название вашего первого проекта:

Именно так вы будете в дальнейшем создавать другие свои программы. Теперь откроем заготовки в данном проекте. Для этого в меню Eclipse выбираем: Файл -> Импортировать… -> Общие -> Файловая система. Откроется окно:

В «Исходный каталог» прописываем: c:/pspsdk/psp/sdk/samples/template/elf_template/ и нажимаем enter — чуть ниже вы увидите папку под названием elf_template, поставьте галочку возле нее, в поле «Целевая папка» прописываем название программы, такое же как вы вводили ранее и нажмите «готово»:

После этого в левом столбце программы нажмите на черный треугольник около названия вашей программы, вы увидите 2 файла — main.c и Makefile, откройте файл main.c:

Откроется заготовка программы, в которой вы увидите знакомые строчки, которые пользователи CYGWIN \’а прописывают вручную… Напоследок перейдите на вкладку Makefile и добавьте в него строку BUILD_PRX = 1 в конце.

Теперь сделайте глубокий вдох… Ну что? Переходим ко второй главе урока?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: