motofan logo
46 страниц V < 1 2 3 4 > »         
> 

ElfPack v2.0, начало всеобщего тестирования

tim apple
сообщение 22.4.2009, 6:55 Закрепленное сообщение!


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375

Рейтинг: 403



Из анонса:
Spoiler:

Было решено отказаться от ADS в пользу GCC - а конкретно devkitARM. Процесс сборки эльфа дополнился новым этапом - постлинк-обработкой.
  • *.c -> [GCC] -> *.o
  • *.o -> [AR] -> *.a (необязательно - но удобно хранить прекомпилированные библиотеки вроде libc.o в одном файле)
  • *.o + *.a -> [LD] -> *.so -> [POSTLINKER] -> [EP2]*.so (это и есть динамическая библиотека)
  • *.o + *.a + *.so -> [LD] -> *.elf -> [POSTLINKER] -> [EP2]*.elf (готовый к выполнению на телефоне эльф)
Постлинкер оптимизирует эльф, а также делает его меньше путем вырезания всякого шлака.
Использование GCC позволило перейти на открытую архитектуру, и в частности, добавить поддержку общих динамических библиотек (*.so).

Что уже сделано:
  • Работоспособная сборка для L7e.0A, L9.05, E1.79
  • Полная поддержка 2х типов динамических библиотек
  • Несколько эльфов - HelloWorld, DRMChanger, MotoCMD2, ProcessManager, Matrix (работа с ATI), ScrShot (аналог Screener-a), LibTest, несколько инет-эльфов.
Делается:
  • Открытое бетта-тестирование (поиск и фикс багов)
  • Изменение кода, преимущественно для красоты и удобства
Что еще предстоит сделать:
  • Исправить обнаруженные баги
  • Описать новый API и портирование с ЕР1
  • Зарелизить
Примечания:
  • ЕР2 не заменяет ЕР1 - они спокойно работают совместно shades.gif (ЕР2 даже запускает эльфы от ЕР1, если последний установлен)
  • Хорошая новость - исходники будут доступны через SVN. spiteful.gif
[close]


Whats new since EP1:
Spoiler:
  • Наконец-то появился контроль запускаемых эльфов на наличие всех необходимых для их работы функций. Если для эльфа чего-то нехватает, он просто не запустится.
  • Библиотеки функций теперь не зависят от патча эльфпака. Тоесть, можно ими теперь меняться без проблем в пределах прошивки.
  • В заголовке библиотек функций теперь указывается целевая прошивка и версия библиотеки.
  • "Динамические" константы - в либе можно хранить объекты размером 4 байта и получать их по уникальным ID (2 байта).
    Примеры использования: прошивко-зависимые ивенты, адреса, константы и пр.
  • Добавился конфигурационный файл.
  • Графическая консоль - что-то вроде игровой консоли по ~, служит для вывода текстовой информации прямо на экран (необходим дисплей ATI). Эльфы имеют доступ к этой консоли.
  • Список загруженных в память эльфов - теперь можно отследить повторную загрузку эльфа и не только.
  • Динамические библиотеки с load- и run-time линковкой. Даешь плагины!
  • Параметры в функцию Register(теперь _start) передаются в Unicode.
  • Сделан API для установки коллбеков на обновление дисплея (полезно для вывода графики через драйвер прямо поверх системной)
[close]


12.08.2009 Начало тестирования.
Начинаем выкладывать тестовые сборки ЕР2 под несколько прошивок. Целью не ставится портировать под все, а лишь на достаточное количество для проведения тестирования.

Тестирование закончено, всем спасибо. Имеем то, что имеем.

Как этим пользоваться:
  1. Делаем как написано в readme_for_*.txt - получаем ЕР2 в своем телефоне.
  2. По нажатию "быстрой" кнопки запускается MotoCMD2 - через него можно запускать другие эльфы (в том числе от ЕР1)
  3. Сообщаем сюда обо всех проблемах и задаем вопросы.
Примечание. "Быстрая" кнопка мульти-функциональная - действие зависит от длительности нажатия:
  1. ивент (см. FastRunEvent в elfpack.cfg)
  2. эльф (см. FastRunElf в elfpack.cfg)
  3. консоль
  4. перегрузка либы и конфига
Пояснение к конфигу:
Spoiler:

EnableConsole = 0/1 - выкл/вкл поддержку консоли.
AutoShowConsole = 0/1 - автоматически показывать консоль при выводе в нее.
DebugMode = 0/1 - режим отладки, ЕР2 выводит системные сообщения.
ShowLogo = 0/1 - показ лого при запуске.
SkipAutorun = 0 пропустить обработку авторана (1-да,0-нет)

DefLibraryPath = file://b/Elf2/library.bin путь к либе
AutorunPath = file://b/Elf2/auto.run путь к авторану

FastRunElf = file://b/Elf2/MotoCMD2.elf пусть к эльфу, запускаемому по "быстрой" кнопке
FastRunEvent = 0x02dc посылать ивент по "быстрой" кнопке

Пути поиска общих либ
LibsPath1 = file://b/Elf2
LibsPath2 = file://c/libs
LibsPath3 = "file://a/shared libs"
[close]


А знаете ли вы, что:
  • Консоль можно прокручивать качелькой громкости
  • Строки в auto.run можно комментировать с помощью знака ;
  • Название прошивки должно быть заводским, иначе либа не загрузится!
С уважением, tim apple.

===========================================================
ВАЖНО! Вышла новая версия DevkitARM v.27, но она не совместипа с ЕР2. Используйте v.26
Прикрепленный файл devkitARM_r26_win32.rar   ( 10.36 мегабайт ) Кол-во скачиваний: 5405

===========================================================

/* Самые свежие версии вы всегда можете скачать с SVN и собрать сами.
Более подробно смотрите в Wiki */


Сообщение отредактировал Andy51 - 18.8.2011, 7:30
Прикрепленный файл devkitARM_r26_win32.rar   ( 10.36 мегабайт ) Кол-во скачиваний: 5405
Прикрепленный файл EP2_R373_G_0E.30.49R_21.01.2010.zip   ( 163.75 килобайт ) Кол-во скачиваний: 1014
Прикрепленный файл EP2_R373_G_0E.30.79R_21.01.2010.zip   ( 163.77 килобайт ) Кол-во скачиваний: 808
Прикрепленный файл EP2_R452D_G_08.01.0AR_21.01.2010.zip   ( 165.21 килобайт ) Кол-во скачиваний: 842
Прикрепленный файл EP2_R452J_G_08.22.05R_21.01.2010.zip   ( 164.19 килобайт ) Кол-во скачиваний: 881
Прикрепленный файл EP2_R4513_G_08.B7.ACR_21.01.2010.zip   ( 163.94 килобайт ) Кол-во скачиваний: 961
Прикрепленный файл EP2_R452J_G_08.22.05R_R52.zip   ( 13.3 килобайт ) Кол-во скачиваний: 361
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 29.4.2009, 7:04


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 530



syberside, например в ЕП2 контролируется импорт функций из либы, чего нет в ЕП1. То есть когда какой то функции которая используется в эльфе нет в либе то эльфпак так и напишет.
А про историю по-подробнее
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
syberside
сообщение 30.4.2009, 1:02


Ветеран
*****

Группа: Пользователи
Сообщений: 422
Регистрация: 30.6.2008
Из: Новоуральск
Пользователь №: 176 082
Модель телефона: Motorola RAZR XT910
Прошивка: ICS 4.0.4


Настроение:
Теперь я с бритвой в кармане)))



Рейтинг: 47.5



ну я про то что также при использовании эльфов ни стого ни с сего ребуты будут?

[ tim apple ] :
ну зависит от причин конечно. а что касается ЕР2 то:
- если в либе не хватает функций то эльф не будет загружен
- ЕР2 написан с нуля и намного сложнее - ошибки есть, но будем стараться исправить

Сообщение отредактировал tim apple - 30.4.2009, 3:49
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Swift
сообщение 2.5.2009, 19:21


Интересующийся
**

Группа: Пользователи
Сообщений: 68
Регистрация: 7.4.2007
Из: http:\forum.motofan.ru\
Пользователь №: 130 114
Модель телефона: E398
Прошивка: 79R

Рейтинг: 18



Так как я понял эльфы от телефонов с ЕР2 зависеть не будут, типо создал эльф и он на все телефоны идёт хорошо?Правильно?

[ tim apple ] :
не совсем. это реально если разработчик побеспокоится о переносимости кода:
- либо проверять на какой прошивке запущен эльф и учесть особенности реализации для каждой
- либо вынести платформо-зависимые участки кода в отдельную либу (при этом юзер должен будет иметь у себя нужную либу)
- либо комбинированный подход.

хотя это не всегда рационально - бывает что лучше создавать отдельные билды.

Сообщение отредактировал tim apple - 3.5.2009, 16:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
logotoy73
сообщение 9.5.2009, 9:10


Ветеран
*****

Группа: Пользователи
Сообщений: 362
Регистрация: 10.1.2007
Из: Подмосковье
Пользователь №: 116 014
Модель телефона: RAZR MAXX, V3i, Defy+
Прошивка: VZV-16, 03.03R, 231


Настроение:
в процессе...



Рейтинг: 220



Обьясните тупому. За счет чего происходит экономия памяти. Ну с постлинкером понятно. А вот с использованием библиотек .so не пойму. Ведь если сейчас используется только динамическая компоновка, то значит при загрузки эльфа будут взяты нужные данные из библиотеки и размещены в эльфе, в памяти. Т. е. закрепляются в памяти эльфа. Немного сумбурно но думаю понятно обьяснил . Но тогда получается что никакой экономии нет, сам эльф будет весить мало, а в памяти развернется во всей красе . Просто удобство использования разными эльфами одной библиотеки с готовыми данными.

[ tim apple ] :
Ответ кроется в последнем предложении - тут не просто удобство, ведь код ф-ции будет в одном экземпляре, а не в каждом эльфе по копии.

Сообщение отредактировал tim apple - 9.5.2009, 10:12
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 9.5.2009, 9:24


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 530



logotoy73, с чего ты взял что он там развернется? Не все же эльфы будут либы юзать. И экономия памяти составляет достаточно много по сравнению с эльфом не обработанным постлинкером
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
logotoy73
сообщение 9.5.2009, 9:54


Ветеран
*****

Группа: Пользователи
Сообщений: 362
Регистрация: 10.1.2007
Из: Подмосковье
Пользователь №: 116 014
Модель телефона: RAZR MAXX, V3i, Defy+
Прошивка: VZV-16, 03.03R, 231


Настроение:
в процессе...



Рейтинг: 220



С постлинкером мне всё понятно. Я про другое. К примеру взять Tunes, часть функции вынести в библиотеку. Сам эльф будет весить меньше. Так? Но при запуске в процессе загрузки в память он дополнится этими функциями и в памяти опять будет монстр :-) . Под этим я имел в виду когда сказал развернется.

[ tim apple ] :
всё верно, если библиотека используется только для одного эльфа.

Сообщение отредактировал tim apple - 26.5.2009, 4:28
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 9.5.2009, 13:59


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Цитата(logotoy73 @ Сегодня, 13:54)

при запуске в процессе загрузки в память он дополнится этими функциями и в памяти опять будет монстр
*

А вот здесь кстати может быть ещё одно преимущество - можно с помощью библиотек разбить "монстра" на части, и тогда не понадобится возиться с патчами на добавление очень-больших-блоков памяти.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
K-E-N-N-Y
сообщение 9.5.2009, 14:06


MotoCrazy^^
*****

Группа: Пользователи
Сообщений: 608
Регистрация: 9.4.2008
Из: Саратов
Пользователь №: 169 076
Модель телефона: Optimus P500
Прошивка: Android 2.2.1
Победитель конкурса 2008

Рейтинг: 533



Прочитал последние посты и не совсем понял с загрузкой эльфов в память.
Как сильно это отобразиться на работе эльфов?
Вообще интересно,будет ли например тот же Tunes работать быстрее чем на EP1?

[ tim apple ] :
ЕР отвечает за загрузку эльфа в память и некоторые сервис-функции. на работу самого эльфа не влияет.

Сообщение отредактировал tim apple - 9.5.2009, 18:46
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
logotoy73
сообщение 9.5.2009, 14:38


Ветеран
*****

Группа: Пользователи
Сообщений: 362
Регистрация: 10.1.2007
Из: Подмосковье
Пользователь №: 116 014
Модель телефона: RAZR MAXX, V3i, Defy+
Прошивка: VZV-16, 03.03R, 231


Настроение:
в процессе...



Рейтинг: 220



Т. е. понадобилась эльфу какая то библиотека, уже загруженная в память, компоновшик открыл её, получаем к примеру указатели на нужные функции, указатели подставляются в код эльфа, закрываем библиотеку. Так? Может не совсем понятно но думаю мысль ясна? Тогда действительно экономия памяти, которой не так уж и много. Просто не совсем понятен принцип работы с библиотеками.

[ tim apple ] :
почти прав. мысли шире: so-либы - это уже не просто набор указателей на ф-ции прошивки (как в стандартная либе), а код новых ф-ций и данные.
библиотека потом не закрывается - ведь эльф ее использует. а закрывается лишь когда закроются все эльфы, использующие ее.

Сообщение отредактировал tim apple - 26.5.2009, 4:50
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 18.5.2009, 15:35


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



lavmen, +1
ati и на первом эльфпаке есть... можешь и на нём неплохие игры делать!
второй эльфпак просто более коректно собран, и из новых сверхвозможностей разве что менеджер запущенных приложений и возможность подключение общей внешней либы... всё в первом есть... ни 3д ни зверского увелечение скорости...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
ElfPack v2.0, начало всеобщего тестирования · Эльфы, их разработка и портирование · Forum
 

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

 



Текстовая версия Сейчас: 19.3.2024, 7:47

Форум живёт: