Открыть главное меню

Изменения

ElfPack2

20 775 байт добавлено, 17:19, 9 октября 2011
м
Снята защита с «ElfPack2»
comment6 '''ElfPack2''' — это развитие предыдущей версии [[ElfPack]]-а для [[Motorola]], где учтён опыт его использования как со стороны конечного пользователя, так и со стороны разработчика [[ELF|эльфов]], исправлено множество моментов, http://wwwдосаждавших ранее, а также значительно расширена функциональность.formspring  == Отличия и нововведения == ElfPack2 является улучшенной и полностью переработанной версией своего предшественника.me/margorieerasmo buy tramadol online with cod Достаточно упомянуть, что объём кода увеличился почти в 4 раза, http://wwwи при этом они не имеют общего кода. *Для сборки эльфов используется компилятор GCC вместо ADS<br>Переход на GCC позволил реализовать полноценную систему импортов и динамических библиотек.thoughts *Основная библиотека функций имеет более сложный формат, при этом в ней хранится её версия и версия прошивки, для которой библиотека предназначена.com/metnabuddre/whereПри этом библиотека может быть перезагружена в любой момент -toдля этого более не требуется перезагружать телефон. *Исправлена недоработка, связанная с передачей параметров в эльф в виде char вместо WCHAR. *Более совершенный обработчик auto.run *Добавлена полноценная система импортов функций по их именам. Если ранее для этой цели использовались механизмы сомнительной надёжности, что не раз приводило к различным проблемам, то теперь процедура загрузки эльфа стала гораздо более надёжной. Это в том числе означает, что для каждого загружаемого эльфа проверяется наличие в библиотеках всех требуемых им функций, и выводится сообщение об ошибке, если обнаружены несоответствия. *Добавлена "Консоль" -buyвстроенное в ElfPack средство для вывода текстовой информации на дисплей. В основном используется для вывода информации самим ElfPack-discountом, но ещё позволяет выводить информацию и эльфам. Консоль будет полезна для фоновых эльфов. *Система callback-tramadolов для вывода на дисплей средствами [[AHI]] ''параллельно'' с [[UIS]]. Таким, например, образом работает и Консоль. *Shared libraries -no-rx-cheap Purchase TRAMADOL without rx to ship overnight так называют аналог DLL в [[Linux|линуксе]]. Это такие модули, содержащие функции, которые будучи однажды загружены в память, http://iycмогут быть подлинкованы к различным эльфам.in/sns/pg/profile/tramadolplb cheap overnight tramadol И также, как и с DLL, http://wwwесть два варианта их подгрузки - статический и динамический.tocometПервый подразумевает, что библиотека будет найдена и загружена в память в момент запуска эльфа.com/post/235231/ what is tramadol used for Второй означает, http://wwwчто эльф может загрузить любую библиотеку "на лету".timmynaijaЭто позволяет вынести общий код, используемый сразу во множестве эльфов в отдельный модуль, который будет подгружен лишь единожды - получаем экономию памяти.com/blog/2011/06/28/tramadolВторое применение библиотек -cheapвозможность реализации полноценной системы плагинов. Shared libraries имеют расширение .so *Для предоставления своей функциональности эльфам, в ElfPack2 предусмотрен API -overnight-fedex/ Order TRAMADOL cod , http://wwwнабор интерфейсных функций. Их описание можно посмотреть в файле loader2.formspringh SDK.me *Для настройки возможностей ElfPack2 есть конфигурационный файл, который находится в стандартном билде в /aronkelles pain killers tramadol , http:b/Elf2/wwwelfpack.formspringcfg *В версии для E398 предусмотрена кнопка для пропуска обработки auto.me/drewlax TRAMADOL tablets run (настраивается при сборке эльфпакак, http://chadestebanпо умолчанию - "0") - полезно в случае добавления нерабочего эльфа в авторан. Просто зажмите нужную кнопку во время запуска телефона - и автозапуск обрабатываться не будет.zoomblogДля других моделей - возможность ещё в разработке.com/ TRAMADOL no rx usa fedex shipping Но, в любом случае, необходимо проверять эльфы на работоспособность запуском вручную, http://wwwпрежде чем добавлять их в автозапуск.thoughts *В процесс сборки эльфа добавилось ещё одно звено - postlinker.com/incammentpha/purchaseОсновная функция этой программы -tramadolподготовить эльф для загрузки в ElfPack2. Эльфы, не прошедшие такую обработку, запускаться не будут. Также postlinker создаёт стандартные библиотеки функий из sym-nowфайлов. *Важная особенность для русскоязычных разработчиков -inтеперь можно хранить исходники в кодировке UTF-uk8. За подробностями -withoutниже.  == Библиотека функций == Для генерации библиотеки функций для EP2, необходимо: <ol><li>'''Postlinker<br> Вызывается с ключом "<tt>-astdlib</tt>".</li><li>'''SYM-prescriptionфайл, точно в таком же формате, как раньше, за исключением того, что добавляется информация о константах<br> Константами же считаются все коды ивентов, оффсеты в симах, FeatureID и т.п. прошивкозависимые значения.<br> Каждая константа в библиотеке определяется своим идентификатором ''длиной 2 байта'', так что максимальное значение идентификатора -buy0xFFFF(65535). Идентификаторы являются универсальными для всех прошивок и прописаны в SDK.<br> В SYM-tramadolфайле же константы описываются следующим образом:<br> <tt><значение_константы> C <имя_константы></tt><br> тоесть, в SYM-onlineфайле прописываются соответствия Value-a-href Buy TRAMADOL over the counter fedex , http>Name.<br> Например:<pre>0xC100D C EV_MME_PLAY_COMPLETE</pre></communityli> <li>'''DEF-файл со списком функций API EP2<br> Этот файл может меняться только с новыми релизами EP2 и находится в репозитории libgen.momlogic</li> <li>'''Заголовочный файл consts.h из SDK<br> Для разрешения имён из SYM-файла в идентификаторы для занесения их в библиотеку, используется обычный заголовочный файл C, взятый прямо из SDK.comЗадаётся с помощью ключа "<tt>-header</forum/topics/purchasett>". В этом файле фактически прописаны соответствия Name-tramadol>ID. Postlinker обрабатывает заголовочный файл и в результате построения цепочки соответствий Value-with>Name-no>ID, находит для каждой константы пары Значение-rx Order rx TRAMADOL without Идентификатор. Имена констант в результирующей библиотеке никак не отражаются, httpони используются лишь в SYM-файлах и в исходниках эльфов.<br> Например:<pre>#define EV_MME_PLAY_COMPLETE 0x1504<//dailyboothpre>В результирующей библиотеке значению 0xC100D будет соответствовать идентификатор 0x1504.com</resunftreptio Where can i buy TRAMADOL no rx li><li>'''Немного информации о самой библиотеке<br> Необходимо указать версию прошивки (и именно так, httpкак прошивка сама себя идентифицирует) с помощью ключа -fw://www<pre>-fw R373_G_0E.andalio30.tk49R</indexpre> А также строковую "версию" библиотеки (не больше 7 символов, без пробелов) с помощью ключа -v.php?p=blogs/viewstory/720 Buy TRAMADOL no prescription needed Эту информацию ElfPack игнорирует и нужна она только чтобы отличать библиотеки для одной прошивки друг от друга, httpтак что никаких требований (кроме длины и пробелов) на неё не накладывается:<pre>-v ^_^Nya1<//rolftyupre>''Все же очень настаиваю называть версии в формате YYMMDDN, YYMMDD = дата, N - номер за день по возрастанию. Требуется для сравнения версий либ и определения самой свежей эльфом SyncLib.tigblogред.org:[[Участник:Tim apple|Tim apple]]</postli></4859003 Cheap online purchase TRAMADOL ol>  В результате команда для создания библиотеки (а также файла std.sa, httpнеобходимого только при сборке эльфов) будет выглядеть примерно так://www<pre>postlink.exe -stdlib R373_G_0E.30.49R.sym -def ldrAPI.def -fw R373_G_0E.30.49R -v ^_^Nya1 -header ..box\SDK\consts.neth</shared/fvllyjc6s1 purchase tramadol no visa online without rx , httppre>  А уже подготовленные образцы скриптов и файлов (а также собранный postlinker) Вы можете найти в Subversion (SVN) репозитории: <tt>svn://wwwsvn.pleasurepmusicvilko.comru/profileslibgen</blogs/tramadoltt> О том, как пользоваться Subversion -cod-1 TRAMADOL online consultant , http://wwwв следующем разделе.formspring  == Разработчикам == Процесс разработки эльфов имеет ряд отличий от предыдущей версии.me/kirbyduffin Propafenone and viagra TRAMADOL Это касается как исходного кода, http://gravatarтак и процесса сборки.com/torytawanda 1 tramadol suppositories side effects  Разработка самого эльфпака и ряда эльфов под него проводилось под контролем системы Subversion, httpеё мы рекомендуем использовать и всем разработчикам. Адреса основных репозиториев:  <tt>svn://wwwsvn.amazonvilko.comru/gpelfpack2</pdp/profile/A3HYMUEXL9H3SF mexico pharmacy tramadol , httptt> - исходный код эльфпака<tt>svn://wwwandy.harmonycentralwtf.comla/threadelfpack2</1543547 Utah TRAMADOL overnight , httptt> - зеркало <tt>svn://rolftyusvn.tigblogvilko.orgru/postelfs2</4859001 Order TRAMADOL with no prescription , httptt> - исходные коды эльфов для него <tt>svn://communitysvn.activevilko.comru/bookmarkspostlinker</39390 Order cheap TRAMADOL , httptt> - Postlinker <tt>svn://wwwsvn.tocometvilko.comru/postSDK</237707/ cheap tramadol saturday delivery no prescription tt> - объединённый SDK   Все репозитории доступны для чтения с анонимным доступом. Если Вы желаете внести свой вклад, особенно в развитие SDK - обратитесь к администраторам репозиториев ('''Andy51''', '''tim apple''', '''Vilko'''). {{Внимание|Как Вы могли заметить, появился репозиторий для SDK, а это значит, что разработчики ElfPack2 настоятельно рекомендуют пользоваться только данной версией и активно дополнять именно её всем разработчикам!}}  === Использование Subversion === Если Вы не знаете, что это такое - можно ознакомиться, например, здесь: [http://iycru.wikipedia.inorg/snswiki/pg/profile/tramadol50fb tramadol hcl 50 mg tev , Subversion Subversion] Также Вам понадобится клиент для работы с репозиториями: [http://dailyboothtortoisesvn.comnet/fullfawhardri TRAMADOL without prescription overnight shipping downloads TortoiseSVN] После установки клиента, httpчтобы скачать самые последние версии исходников с какого-либо репозитория://oceanup#Cоздайте папку для проекта.#Нажмите на ней правой кнопкой мыши и выберите "SVN Checkout..."#В поле "URL of repository" введите адрес репозитория. Остальные настройки менять не нужно.#Нажмите ОК. Исходники теперь будут закачиваться в текущую папку. Чтобы обновить проект до самой последней версии из репозитория - выберите из контекстного меню папки с проектом "SVN Update". == Инструментарий разработчика == Как уже упоминалось ранее, для сборки эльфов используется '''GCC'''.com/user/169006 Purchase TRAMADOL visa without rx А именно, набор [http://www.splinderdevkitpro.org devkitPro], который широко используется для разработки под GameBoy Advance, Nintendo DS, GP32, Playstation Portable и GameCube. Из его состава, правда, понадобится только devkitARM часть, которая также включает множество бесполезных для разработчика эльфов приложений и требует много трафика для скачки. Возможно, найдутся желающие сделать специальный пакет программ для разработчиков эльфов...com/profile/dohoosike Purchase cheap discount online TRAMADOL И уже есть первая версия настроенной среды разработки, собранная тов. '''DmT''': [http://wwwforum.splindermotofan.comru/profile/gravimibem TRAMADOL order online no membership overnight , index.php?showtopic=169109 EDK] Скачать установщик можно здесь: [http://stockpickrsourceforge.comnet/userprojects/cheap-Tramadoldevkitpro/files/Automated%20Installer/ tramadol abusers forums , httpAutomated Installer]  === Сборка эльфа === Пример простейшего скрипта для сборки эльфа (make.cmd):<pre>@echo off del prelink.elf arm-eabi-gcc -c -Wall -mbig-endian -mthumb -mthumb-interwork -I..\SDK -fshort-wchar -nostdlib -O -DEP2 helloworld_snd.carm-eabi-ld -pie -EB -O -nostdlib helloworld_snd.o std.sa -o prelink.elf del /Q *.opostlink prelink.elf -o helloworld_snd.elfpause</wwwpre> Некоторые пояснения:*Ключ -I указывает относительный путь к SDK*Файл std.sa выполняет функцию, аналогичную Lib.o предыдущей версии эльфпака*Результат работы arm-eabi-ld мы передаём в postlink. Он создаёт результирующий файл res.elf - его мы переименовываем в helloworld_snd.formspringelf и загружаем в телефон.me*Ключ -o у postlink задаёт имя результирующего файла Для сборки C++ проекта используйте '''arm-eabi-g++''', а также добавьте следующие ключи:<pre>-fno-enforce-eh-specs -fno-rtti -fno-use-cxa-get-exception-ptr -fno-exceptions -fno-non-call-exceptions</kirstinwilfred tramadol hydrochl oride pre> === Сборка shared library === В общем случае, скрипт сборки аналогичен скрипту для обычного эльфа, httpза исключением:<ol><li>Используйте "<tt>-shared</tt>" вместо "<tt>-pie</tt>"</iyc.inli> <li>К строке линкера (arm-eabi-ld) добавляется "<tt>-soname=<внутреннее_имя_библиотеки></snstt>"</pgli> <li>К строке постлинкера добавляется ключ "<tt>-shared</profilett>" и "<tt>-def <имя_def_файла></whatistramadoldt what is canine tramadol tt>" Def-файл предназначен для определения списка функций и глобальных переменных (хотя вторые не рекомендуется делать доступными), httpк которым имеют доступ эльфы, подключающие данную библиотеку.<br><br> Пример def-файла<pre>testlibfnsharedVar</pre></dailybooth.comli></mrtrados/15367038 cod tramadol orders , httpol> Пример самой библиотеки можно посмотреть в репозитории svn://wwwsvn.thoughtsvilko.comru/cristegurgmenelfs2/profile Buy TRAMADOL usa cod , httplibtest  == Различия в исходных кодах == С различиями можно наглядно ознакомиться на примере helloworld из репозитория svn://wwwsvn.articlesbasevilko.comru/authorselfs2/omerhw -madge/913061 Where to buy TRAMADOL onlineважные участки кода отмечены #ifdef-ами.  === Больше всего изменения касаются функции - usa , httpточки входа в эльф ===<br> <ul><li>'''Необходимо объявить ''глобальную'' переменную типа ldrElf:<ul><pre>ldrElf elf;</pre></www.tocomet.comul></postli> <li>'''Точка входа в эльф теперь имеет следующий вид (раньше называлась Register):<ul><pre>ldrElf* _start( WCHAR *uri, WCHAR *params )</257672pre></ viagra online no rx overnight ul>:Обратите внимание также на то, что параметры теперь передаются в неё как WCHAR*, что позволяет избежать проблем с путями, содержащими символы кроме латиницы, и на то, http://iycчто reserve не передаётся.in</sns/pg/profile/ordertramadolcodnu tramadol cod order li> <li>'''При необходимости, можно добавить проверку на то, httpбыл ли уже запущен эльф с таким именем://www<ul><pre>if ( ldrIsLoaded( (char*)app_name ) ) {..formspring.me/deeannjeanett tramadol injection for cats , http:/Если возвращаем NULL из _start - эльф удаляется из памятиreturn NULL;}</iyc.in/snspre></pgul></profile/tramadolojh tramadol cheap no rx required canada li> <li>'''Вместо reserve, httpevcode_base можно получить так:<ul><pre>evcode_base = ldrRequestEventBase( );</pre></wwwul></li> <li>'''В ElfPack2 важные константы берутся из библиотеки функций.timmynaijaК ним также относятся и все коды ивентов.com/blog/2011/06/28/i:А конкретно механизм выглядит так -wantна этапе компиляции в таблицы ивентов (any_state_handlers, например) заносятся не сами значения ивентов, а их идентификаторы. С точки зрения кода в этом месте ничего не меняется -a-tramadol-prescription/ Purchase generic TRAMADOL no prescription подмена никак не отражается. А вот чтобы идентификаторы заменились на реальные значения, http:необходимо вызвать для каждой таблицы функцию ldrInitEventHandlersTbl ДО вызова APP_Register.<ul><pre>//vegweb.com/index.php?actionФункция не модифицирует evcode_base, но возвращает новое значение базы - поэтому присваиваниеevcode_base =profileldrInitEventHandlersTbl( any_state_handlers, evcode_base );u=172296 tramadol dose info , http:</pre></dailybooth.comul></mrtradosli> <li>'''Вместо LdrStartApp используется ldrSendEvent:<ul><pre>ldrSendEvent( evcode_base );</15366942 ups delivered tramadol , http:pre></ul></iycli> <li>'''Необходимо поместить в объявленную ранее переменную типа ldrElf имя текущего эльфа и возвратить указатель на неё:<ul><pre>elf.inname = (char*)app_name;return &elf;</snspre></pgul></profileli></tramadoldosagevx dosages of tramadol ul> <br>=== Также обратите внимание на следующие общие изменения ===<br> <ul><li>'''В функции старта приложения (в примере - HelloWorldStart) необходимо записать в структуру elf указатель на созданное [[Application|приложение]].:Этим мы сообщаем эльфпаку, http://wwwчто эльф начал свою работу как приложение.formspring<ul><pre>elf.meapp = app;</usthomasinamoni Canada TRAMADOL no prescription , http:pre></ul></iyc.inli> <li>'''Функции выгрузки эльфа из памяти теперь не требуются какие-либо параметры:<ul><pre>/sns/pgНазвание сменилось - теперь с маленькой буквы!ldrUnloadElf();</profile/buycheaptramadolqm buy cheapest online tramadol , http:pre></ul></wwwli> <li>'''Никаких структур вроде APP_HELLOWORLD_T (в helloworld_snd.thenewboyzh) объявлять не нужно.com/profile/galinacarmen TRAMADOL non prescription :В прошивке это - необходимая особенность приложений, http://wwwработающих прямо из ROM-памяти. В этой структуре размещаются глобальные переменные для приложения.formspringА так как эльфы выполняются из RAM - они могут создавать обычные глобальные переменные.me</cruzstephany what is the onset of tramadol li> <li>'''В обработчиках сообщений вторым параметром вместо void *app передаётся APPLICATION_T *app, что позволяет избавиться от ненужных преобразований типов, httpсравните:<ul><pre>//wwwEP1:UINT32 HandleUITokenGranted( EVENT_STACK_T *ev_st, void *app ){ APPLICATION_T *papp = (APPLICATION_T*) app; status = APP_ExitStateAndApp( ev_st, app, 0 ); ..formspring.me /emersoncottrel Buy cheap TRAMADOL free fedex shipping / EP2:UINT32 HandleUITokenGranted( EVENT_STACK_T *ev_st, APPLICATION_T *app ){ status = APP_ExitStateAndApp( ev_st, http://iycapp, 0 ); ...in/sns</pgpre></profileul></tramadolpillgm cheapest online price per pill for tramadol , httpli> <li>'''Некоторые заголовочные файлы переименованы для совместимости с Visual Studio (для [[EmuElf]])://www*stdarg.h -> stdargs.h*util.h -> utilities.boxh*memory.neth -> mem.h</shared/xrogy1jb18 no prescription tramadol with fedex li> <li>'''Исходники можно (и рекомендуется) сохранять в кодировке UTF-8::При этом будет корректно обрабатываться, например, такой код, httpсодержащий кириллические символы<ul><pre>WCHAR *str = L"Привет";<//lenoberapre>Больше не нужно вводить такие строки посимвольно, а также для эльфов отпадёт проблема т.н. "неправильного ленга с кракозябрами".blogiaКто сталкивался с этим - поймёт.com</ TRAMADOL fedex delivery only , http:ul></li> </wwwul>  == Заключение == Прогресс не стоит на месте, не стоит и нам с Вами - пора переходить на более совершенную технологию и постепенно отправить устаревший ElfPack1 в архив.box Тем более, что в новой версии для пользователей предоставляется значительно больше возможностей, а разработчикам нужно приложить относительно немного усилий для портирования своих эльфов на EP2.net/shared/zg0p1ch6k8 buy cheap generic tramadol ,  [[Категория:Эльфостроение]]