motofan logo
61 страниц V « < 2 3 4 5 6 > »         
> 

Учимся писать эльфов вместе, Обсуждение процесса кодинга

Andy51
сообщение 29.10.2007, 20:13 Закрепленное сообщение!


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Вот и долгожданное обновление SDK до v0.2

Основные новшества с прошлой версии:
+ Добавлено множество функций в SDK
+ Добавлено два новых примера - на этот раз GUI

Что внутри:
Папка SDK - ну, и так ясно, заголовочные файлы. За описаниями функций заглядываем в эту папку.

helloworld_snd - первый пример эльфа. Несколько нестандартный HelloWorld, заменяет озвучку цифровой клавиатуры системными звуками. Предназначен в основном для изучения структуры приложения (Application), ну и как пример приложения, работающего в фоне.

helloworld_gui - классический HelloWorld эльф, на этот раз с использованием GUI. Выводит сообщение с помощью диалога Notice. Предназначен для изучения структуры простейшего GUI-приложения.

ListTest - пример использования диалога List. Значительно более сложный пример, предназначен для изучения возможностей и принципов управления диалогами.

make_*.bat - батники для сборки эльфов-примеров. Эльфы расчитаны на компиляцию с комплектом ADS. Из-за правил форума, я не могу включить его в SDK, однако оставляю ссылки
http://ifolder.ru/3937671
http://slil.ru/25060171
http://rapidshare.com/files/67580866/ads.7z.html

Lib.o - для функционирования эльфа под моим загрузчиком, необходимо подлинковать этот файл к проекту (в make.bat уже прописан).
Внимание! Этот файл не зависит от конкретной версии прошивки, под которую собирается эльф, но, тем не менее, зависит от версии библиотеки!
В этом SDK уже включен Lib.o для библиотеки v071218 (оч. старый - не забудьте обновить, если понадобятся новые функции)

Пара слов об т.н. Application.
В телефонах motorola есть система AFW, которая позволяет, не затрачивая лишних ресурсов процессора на обеспечение "полноценной" многозадачности, достаточно полноценно работать нескольким приложениям, ориентированным на диалог с пользователем. Как это работает: приложения представляют собой, фактически, набор обработчиков событий(ивентов, events) + структура данных приложения. Откликаясь на те или иные события, приложения поочерёдно обрабатывают списки накопившихся ивентов. Таким образом, мы фактически имеем невытесняющую многозадачность.
Есть теоретическая возможность писать и эльфы, выделенные в отдельный процесс(task), но эта часть всё ещё в разработке.

Книги по Си
  1. Руководство полного идиота по программированию (на языке Си) - Не смотря на такое название все азы разжёваны. Если вы вообще никогда не видели Си, начните с этой книги
  2. Герберт Шилдт, "Полный справочник по С (4-е издание)"
    Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1072
  3. "Язык программирования C"
    Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 818
Исходники эльфов
  1. SRC by om2804
  2. SRC by G-XaD
SDK
  1. SDK by om2804
  2. SDK by G-XaD
Эльфостроение на motoWiki

Компилятор + исходники от om2804 для EP1 скачать

Сообщение отредактировал om2804 - 3.5.2011, 13:59
Прикрепленный файл SDKv02.rar   ( 24.88 килобайт ) Кол-во скачиваний: 2044
Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 818
Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1072
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 13.1.2008, 0:23


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Цитата(RekGRpth @ Вчера, 13:33)

требует функцию AFW_TranslateEvEvD
*

На самом деле не требует. Вместо AFW_TranslateEvEvD отлично катит AFW_AddEvEvD.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Last1Left
сообщение 5.2.2008, 19:36


Опытный
***

Группа: Пользователи
Сообщений: 103
Регистрация: 30.1.2008
Из: Romania
Пользователь №: 161 862
Модель телефона: v360 ACR / Nokia N82
Прошивка: FallenAngel

Рейтинг: 97



updated SDK in english
Прикрепленный файл SDK.rar   ( 15.12 килобайт ) Кол-во скачиваний: 166
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MONSTER92
сообщение 14.2.2008, 16:04


Мастер
****

Группа: Пользователи
Сообщений: 224
Регистрация: 19.11.2006
Пользователь №: 107 368
Модель телефона: ROKR e6
Прошивка: Неважно

Рейтинг: 9.5



Попробовал поставить вместо NOTICE_TYPE_DEFAULT в ХВгуи ельфе 4 и получил, мне кажется полезную вещ - он не исчезает по времени а по нажатию на любую клавишу, буду эксперементировать, можед быть сделаю расписание звонков начала и конца занятийsmile.gif

Сообщение отредактировал MONSTER92 - 14.2.2008, 16:07
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MONSTER92
сообщение 15.2.2008, 13:11


Мастер
****

Группа: Пользователи
Сообщений: 224
Регистрация: 19.11.2006
Пользователь №: 107 368
Модель телефона: ROKR e6
Прошивка: Неважно

Рейтинг: 9.5



Хм, а у нас какиенибуть функции преобразования исла в строку есть, чтото я ничего так понять и не смог sad.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 15.2.2008, 16:29


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



MONSTER92, ltoa, sprintf и прочие пристутствуют в прошивке (в IROM для LTE2 скорее всего) - добавить нетрудно.
У меня даже есть sprintf - он в CG1 как на LTE, так и на LTE2
Код
sprintf T 1 B40FB530B091A9160889900F480C0089
extern int sprintf(char * /*s*/, const char * /*format*/, ...);
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MONSTER92
сообщение 15.2.2008, 17:54


Мастер
****

Группа: Пользователи
Сообщений: 224
Регистрация: 19.11.2006
Пользователь №: 107 368
Модель телефона: ROKR e6
Прошивка: Неважно

Рейтинг: 9.5



тоесть для использование sprintf пирмерно sprintf(/*строка, в которую будет записан результат*/,/*строка из которой формируется результат*/ "Variable i= %i",/*список переменных*/, i/* int i*/); , правильно?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 15.2.2008, 20:12


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



MONSTER92, да, всё правильно. Всё как у printf, только первый параметр добавился
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MONSTER92
сообщение 17.2.2008, 7:39


Мастер
****

Группа: Пользователи
Сообщений: 224
Регистрация: 19.11.2006
Пользователь №: 107 368
Модель телефона: ROKR e6
Прошивка: Неважно

Рейтинг: 9.5



А функция DL_ClkGetTime(TIME *time); должна получать время?
Напишите пожалуйста пример ёе еспользования smile.gif

ypedef struct
{
UINT8 hour;
UINT8 minute;
UINT8 seconds;
} TIME;

Значит при заданной переменной TIME timenow; через timenow.hour мы сможим получить час?

Сообщение отредактировал MONSTER92 - 17.2.2008, 7:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 17.2.2008, 12:32


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



MONSTER92,
Код
TIME timenow;
UINT8 hoursnow;
DL_ClkGetTime(&timenow);
hoursnow = timenow.hour;
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MONSTER92
сообщение 17.2.2008, 13:55


Мастер
****

Группа: Пользователи
Сообщений: 224
Регистрация: 19.11.2006
Пользователь №: 107 368
Модель телефона: ROKR e6
Прошивка: Неважно

Рейтинг: 9.5



unsure.gif Cтранно при добавлении в код образуется много ошибок
Код

D:\SDK>tcc -ISDK -c -bigend -apcs /interwork helloworld_gui.c
"helloworld_gui.c", line 149: Serious error: C2304E: <command> expected but foun
d 'int'
"helloworld_gui.c", line 151: Serious error: C2292E: typedef name 'WCHAR' used i
n expression context
"helloworld_gui.c", line 151: Serious error: C2284E: expected ';' after command
- inserted before 'msg'
"helloworld_gui.c", line 151: Error: C2456E: undeclared name, inventing 'extern
int msg'
"helloworld_gui.c", line 151: Serious error: C2947E: Illegal types for operands:
<subscript>
"helloworld_gui.c", line 152: Serious error: C2304E: <command> expected but foun
d 'char'
"helloworld_gui.c", line 153: Error: C2456E: undeclared name, inventing 'extern
int msg2'
"helloworld_gui.c", line 153: Error: C2456E: undeclared name, inventing 'extern
int i'
"helloworld_gui.c", line 153: Error: C3029E: <argument 1 to 'sprintf'>: implicit
cast of non-0 int to pointer
"helloworld_gui.c", line 154: Error: C3029E: <argument 1 to 'u_atou'>: implicit
cast of non-0 int to pointer
"helloworld_gui.c", line 154: Error: C3029E: <argument 2 to 'u_atou'>: implicit
cast of non-0 int to pointer
helloworld_gui.c: 0 warnings, 6 errors, 5 serious errors

Скорее всего значение имеет только первая из них, при закоментировании строчек
Код

DL_ClkGetTime(&timenow);
hoursnow = timenow.hour;
всё снова работает нормально

Сообщение отредактировал MONSTER92 - 17.2.2008, 13:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Учимся писать эльфов вместе, Обсуждение процесса кодинга · Эльфы, их разработка и портирование · Forum
 

61 страниц V « < 2 3 4 5 6 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.4.2024, 6:56

Форум живёт: