Учимся писать эльфы - Elf "Эльфы" - Flashing & Patching - Форум

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




[ Новые сообщения · Участники · Правила форума · Поиск ]
Страница 1 из 11
Модератор форума: Химер 
Форум » Flashing & Patching » Elf "Эльфы" » Учимся писать эльфы
Учимся писать эльфы
yr4ik
Дата: Воскресенье, 18.05.2008, 17:17Пост # 1
Эксперт


Группа: Эльфмейкер
Сообщений: 162
Модель телефона: k750 -> w800
Прошивка: r1bd001
Оператор: Life:)
Статус на сайте: Offline

Статус icq:
Самым первым делом нужно научиться компелировать.
Это я покажу на примере простого эльфа 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 и если все без ошибок то в окне сообщений будет писаться:

Code
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

Quote
#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


 
68-artem
Дата: Четверг, 22.05.2008, 00:11Пост # 2
Новичок


Группа: VIP
Сообщений: 61
Модель телефона:
Прошивка:
Оператор:
Статус на сайте: Offline

Статус icq:
спасибо за фак.Буду сам чёнть пытаться делать

 
Skinnyman
Дата: Вторник, 09.09.2008, 00:35Пост # 3

Местный житель

Группа: Проверенные
Сообщений: 88
Модель телефона: SE
Прошивка: Крутая)))
Оператор: Какой именно?
Статус на сайте: Offline

Статус icq:
Не могу скачать хэлоу ворлд sad

Добавлено (08.09.2008, 23:35)
---------------------------------------------
Всё скачал... Разобрался немного... Этого мануала явно не достаточно(может завтра на свежую голову и вьеду. Пока только смог по издеваться над хелоу ворлдом)) Он у мя пишет типа вирус загружен biggrin А с сишкой париться и учить её поностью... Ведь в ней же нет никаких буков, да и адреса функций в библе друнгие. dry Ладно завтра подробнее вникну. Со временем может поколдую над исходниками фастбара crazy biggrin


_


Не откладывай на завтра, то что можно прошить сегодня 8)
LAVISHGAME rullez!!!
I'm Skinnyman aka Ensaier aka @uDV!D

 
Форум » Flashing & Patching » Elf "Эльфы" » Учимся писать эльфы
Страница 1 из 11
Поиск: