Компелирование эльфов

Главная  Форум   Файлы    Чат   Загрузить файл   Поиск    RSS
English


Рейтинг пользователей

1. yr4ik [162]
2. HTC [139]
3. RegMe [107]
4. Skinnyman [88]
5. Akmar [66]
6. HELLdozER [65]
7. 68-artem [61]
8. dimmss [47]
9. Ugolovnik [44]
10. maldan [40]

Наш опрос

Как вам новая шапка сайта?
Всего ответов: 35
Главная » Статьи » Компелирование

Компелирование эльфов
Самым первым делом нужно научиться компелировать.
Это я покажу на примере простого эльфа HelloWorld.

Необходимые файлы
ЯР для написания эльфов
Учебник по СИ
HelloWorld

Итак начнем

Первое и самое главное --- это распаковать и правильно использоавать IAR
После распаковки IAR у нас появиться папка Embedded Workbench 4.0 Evaluation.
В которой будут Исче две папки ARM и common
В папку ARM нужно положить файлы из этого архива.(Скачать)

Потом нужно скачать HelloWord (который мы будем компилировать) и положить его в папку ARM
Нажимаем на файл HelloWorld.eww и открывается наш IAR Embedded Workbench IDE( если вы его установили biggrin )
Нажимаем Project -> Edit Configurations...(в вверхней строке главного меню) и выбираем Release
Далее нажимаем Rebuild all и если все без ошибок то в окне сообщений будет писаться:

Building configuration: main - Release        
Updating build tree...        
3  file(s) deleted.        
Updating build tree...        
_cpp2.cpp        
func.asm        
main.c        
Linking        
Total number of errors: 0        
Total number of warnings: 0

После этого в папке HelloWorld появятся 3 паки.
Заходим в папку Release/Exe и видим наш эльф main.elf
Небольшая структура HelloWorld

#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"

u16 timer; // ID таймера
int lamp=0; // текущая яркость лампы
BOOK * HWBook;

int TerminateElf(void * ,BOOK* book)
{
FreeBook(book);
return(1);
}

typedef struct
{
BOOK * book;
}MSG;

int ShowAuthorInfo(void *mess ,BOOK* book)//Что будет показывать при нажатии автор в BookMan
{
MSG * msg = (MSG*)mess;
MessageBox(0x6fFFFFFF,STR("Hello Wordl!\n\nExample elf.."),0, 1 ,5000,msg->book);
return(1);
}

const PAGE_MSG HW_PageEvents[]@ "DYN_PAGE" ={
ELF_TERMINATE_EVENT , TerminateElf,
ELF_SHOW_INFO_EVENT , ShowAuthorInfo,
0,0
};

PAGE_DESC base_page ={"HW_BasePage",0,HW_PageEvents};

void elf_exit(void)

{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}

void onTimer (u16 * unk , void * data)//Обьявляем таймер
{
{
// перезапускаем таймер
Timer_ReSet(&timer,500,onTimer,0);
// переключаем лампу
SetLampLevel(lamp^=0x10);//Уровень яркости.Для 2020 нужно писать SetLampLevel(lamp^=1)
}
}

void onCloseHWBook(BOOK * book)//Выключение эльфа
{
if (book)
{
Timer_Kill(&timer);
StatusIndication_ShowNotes(0x6FFFFFFF);
SetLampLevel(0);
SUBPROC(elf_exit);
}
}

BOOK * CreateHWBook()
{
HWBook= new BOOK;
CreateBook(HWBook,onCloseHWBook,&base_page,"Example",-1,0);
return(HWBook);
}

int main (void)//Запуск
{
CreateHWBook();
// выводим текст в "заметки" на StandBy
StatusIndication_ShowNotes(STR("Hello World!"));
// запускаем таймер на 0.5 сек.
timer=Timer_Set(500,onTimer,0);
return(0);
}

©yr4ik
Категория: Компелирование | Добавил: yr4ik (27.07.2008)
Просмотров: 164 | Рейтинг: 0.0/0
Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Аккаунт

Приветствую Вас Дух сети
Группа Гости

Логин:
Пароль:

Библиотеки для ElfPack

Друзья сайта


Статистика

Зарегистрировано: 1214
Последний: Bloodkiller2010
Сайт сегодня посещали
Список пользователей


Онлайн всего: 1
Гостей: 1
Пользователей: 0