Изменения
ElfPack2
,→ÐиблиоÑека ÑÑнкÑий
CkX4WD <a href="http://qxjdkscqxyls.com/">qxjdkscqxyls</a>, [url=http://jkyglrwcvizx.com/]jkyglrwcvizx[/url], [link=http://zriheztlzfzv.com/]zriheztlzfzv[/link], http://gfcmzbuhowfx.com/
2bx0qL <a href== Библиотека функций == Для генерации библиотеки функций для EP2, необходимо: <ol><li>'''Postlinker<br> Вызывается с ключом "<tt>-stdlib</tt>".</li><li>'''SYM-файл, точно в таком же формате, как раньше, за исключением того, что добавляется информация о константах<br> Константами же считаются все коды ивентов, оффсеты в симах, FeatureID и т.п. прошивкозависимые значения.<br> Каждая константа в библиотеке определяется своим идентификатором ''длиной 2 байта'', так что максимальное значение идентификатора - 0xFFFF(65535). Идентификаторы являются универсальными для всех прошивок и прописаны в SDK.<br> В SYM-файле же константы описываются следующим образомhttp:<br> <tt><значение_константы> C <имя_константы></tt><br> тоесть, в SYM-файле прописываются соответствия Value->Name.<br> Например:<pre>0xC100D C EV_MME_PLAY_COMPLETE</pre></li> <li>'''DEF-файл со списком функций API EP2<br> Этот файл может меняться только с новыми релизами EP2 и находится в репозитории libgenqvzbooyzguhy.<com/li> <li>'''Заголовочный файл consts.h из SDK<br> Для разрешения имён из SYM-файла в идентификаторы для занесения их в библиотеку, используется обычный заголовочный файл C, взятый прямо из SDK. Задаётся с помощью ключа "<tt>-headerqvzbooyzguhy</tt>". В этом файле фактически прописаны соответствия Name->ID. Postlinker обрабатывает заголовочный файл и в результате построения цепочки соответствий Value->Name-a>ID, находит для каждой константы пары Значение-Идентификатор. Имена констант в результирующей библиотеке никак не отражаются, они используются лишь в SYM-файлах и в исходниках эльфов.<br> Например[url=http:<pre>#define EV_MME_PLAY_COMPLETE 0x1504</pre>В результирующей библиотеке значению 0xC100D будет соответствовать идентификатор 0x1504.</li><li>'''Немного информации о самой библиотеке<br> Необходимо указать версию прошивки (и именно так, как прошивка сама себя идентифицирует) с помощью ключа -fw:<pre>-fw R373_G_0E.30xxpsbigjcsyh.49R<com/pre> А также строковую "версию" библиотеки (не больше 7 символов, без пробелов) с помощью ключа -v. Эту информацию ElfPack игнорирует и нужна она только чтобы отличать библиотеки для одной прошивки друг от друга, так что никаких требований (кроме длины и пробелов) на неё не накладывается:<pre>-v ^_^Nya1<]xxpsbigjcsyh[/pre>''Все же очень настаиваю называть версии в формате YYMMDDNurl], YYMMDD [link= дата, N - номер за день по возрастанию. Требуется для сравнения версий либ и определения самой свежей эльфом SyncLib. ред.http:[[Участник:Tim apple|Tim apple]]</li></ol> В результате команда для создания библиотеки (а также файла stdoaidlptxhkdu.sacom/]oaidlptxhkdu[/link], необходимого только при сборке эльфов) будет выглядеть примерно так:<pre>postlink.exe -stdlib R373_G_0E.30.49R.sym -def ldrAPI.def -fw R373_G_0E.30.49R -v ^_^Nya1 -header ..\SDK\consts.h</pre> А уже подготовленные образцы скриптов и файлов (а также собранный postlinker) Вы можете найти в Subversion (SVN) репозитории: <tt>svnhttp://svn.vilkolfntwwigxrin.ru/libgen<com/tt> О том, как пользоваться Subversion - в следующем разделе.
== Разработчикам ==