Компиляция Эльфпака : Эльфостроение : Форум

Страница 1 из 25: [1] 2 3 4 5 ... 25 »

 awg:
10.07.08, 13:23
 Итак.
Т.к. исходники открыто лежат на svn://svn.boba.su/SE (используйте guest/guest для авторизации) или на зеркале http://perk11.info/svn/SE/, то решил написать небольшой фак по компиляции эльфпака с этих ресурсов.
Для начала заходим на один из этих сайтов и скачиваем содержимое папок ElfPack (со всеми вложенными папками), include, C++ с сохранением расположений и названий папок.
Т.е. у вас должно получится следущее, в одном месте должно находится:

-папка C++ и все ее содержимое
-папка ElfPack и все ее содержимое
-папка include и все ее содержимое

Все файлы, что нужны для компиляции, мы скачали. Теперь нужно скачать чем компилировать. Это берем отсюда:Урезанная IAR
Распаковываем содержимое куда-нибудь (мой путь выглядит так: c:\Program Files\Embedded Workbench 4.0 Evaluation).
Теперь находим файл ElfPack.eww в папке ElfPack и ассоциациируем его для простоты дальнейших действий с IAR, т.е. правой кнопкой на ElfPack.eww -> свойства -> приложения кнопка "Изменить" -> кнопка "Обзор" -> ищем файл в дериктории (в моем случае) c:\Program Files\Embedded Workbench 4.0 Evaluation\common\bin\IarIdePM.exe -> кнопка "открыть" -> кнопка "ОК" -> кнопка "Применить" -> кнопка "ОК" :-)
Далее при двойном клике на ElfPack.eww должно открыться окно программы.
Переходим в меню Project, выбираем пункт Edit Configurations и в диалоговом окне выбираем ту модель телефона с той прошивкой, которую вам нужно, жмем "ОК". Далее заходим все в то же меню Project и выбираем пункт Rebuild All.
Если все хорошо, то внизу в окне с логом будет примерно следующее:

Total number of errors: 0
Total number of warnings: 7


Теперь у вас в папке ElfPack появились еще папки: Debug, settings, W610_R6BC002 (у вас свое), и файл ElfPack.dep.
Заходим в: W610_R6BC002\Exe\ и видим там файл ElfPack.elf
Теперь нам нужно перевести файл ElfPack.elf в формат *.vkp.
Переходим в ElfPack\_Utils. Кидаем в нее файл *.raw от нужной вам прошивки, в моем случае w610_R6BC002.raw, и скомпилированный IAR'ом ElfPack.elf из папки W610_R6BC002\Exe\ (см. выше).
Теперь редактируем блокнотом файл make.bat (в моем случае так):

elf2vkp ElfPack.elf xxx.vkp "C:\Comp\ElfPack\_Utils\w610_R6BC002.raw" 0x44140000
cnv 0x44140000 xxx.vkp out.vkp


Сохраняем его (обращаем внимание на выделенный текст, где 0x44140000 начальный адрес вашей прошивки. Его можно узнать с помощью этой софтины).
Все, теперь если все правильно сделали, остается только двойным кликом щелкнуть по make.bat, и у вас в появится два файла:
out.vkp
xxx.vkp

out.vkp - это и есть эльфпак для вашего тела.
После всего проделанного папки Debug, settings, W610_R6BC002 (у вас свое), и файл ElfPack.dep можно удалить.

Теперь относительно расположения папок ZBin, Deamons, Config, Ini. Для определенных телефонов это расположение может отличаться друг от друга. Но начиная с папки other расположение одинаковое.
Заходим в ElfPack\Target\ и ищем файл с названием вашего телефона и вашей прошивки, в моем случае W610_R6BC002.h.
Открываем его блокнотом и видим примерно следущее (показываю только то, что имеет смысл по данному примечанию):

Код: 
....
#define PATH_ELF_ROOT_INT     (L"/usb/other")
#define PATH_ELF_ROOT_EXT     (L"/card/other")
#define PATH_ELF_INT          (L"/usb/other/ZBin")
#define PATH_ELF_EXT          (L"/card/other/ZBin")
#define PATH_ELF_DAEMONS_INT  (L"/usb/other/ZBin/Daemons")
#define PATH_ELF_DAEMONS_EXT  (L"/card/other/ZBin/Daemons")
#define PATH_ELF_CONFIG_INT   (L"/usb/other/ZBin/Config")
#define PATH_ELF_CONFIG_EXT   (L"/card/other/ZBin/Config")
#define PATH_INI              (L"/usb/other/ini")
#define PATH_DEFAULT          (L"/usb/other")

....


Это и будет правильное расположение ваших папок.

Готовые эльфпаки, которые автоматом генерируются при любом изменении содержимого на svn://svn.boba.su/SE, можно найти здесь http://justdanpo.cheb.ru/elfpack

Также, для телефонов на платформе DB2010 надо брать *.raw с замейном, иначе при перегонке ElfPack.elf в *.vkp вылетит ошибка. Замейн в прошивку можно добавить с помощью программы Recovery BIN Lite, инструкция и сама прога находятся здесь. Потом полученный файл уже перегнать в *.raw.

Для телефонов на платформе A2 (только на тех, на которых ElfPack устанавливается сразу в 2 файла: phone_app.cxc и phone_emp_app.cxc) надо брать *.raw или *.cxc (не знаю имеет ли значение формат файла) в котором будут совмещены должным образом 2 файла (что значит должным образом? Обратите внимания на адреса с которых начинаются и которыми заканчиваются эти файлы ;-) ), phone_app.cxc и phone_emp_app.cxc, а также в конце этого файла должны присутствовать зануленная область, достаточная для того, чтоб до нее дотянулись адреса и разместился сам патч ElfPack'а, иначе при перегонке ElfPack.elf в *.vkp возможно вылетит ошибка и патч скомпилируется не полностью.

Получить файл *.raw нужной вам прошивки для телефонов на платформах DB20xx можно с помощью этой софтины. Достаточно перетащить файл вашей прошивки (либо файл полученный с помощью Recovery BIN Lite) на babe2raw.exe, и на выходе рядом со значком программы появится файл *.raw

Также перегнать файл Elfpack.elf в формат *.vkp можно несколько проще, за что говорим спасибо INFerno--.
INFerno--
Для компиляторщиков, сделал elf2vkp специально для SE, не каких махинаций с замейном на DB2010 делать не надо, автоматически добавляется модель телефона и версия прошивки в выходной файл, так же можно добавлять комментрарии из файла, прошивка используется BABE, а не RAW, базы тоже вводить не надо.

Usage: elf2vkp.exe elfname.elf main.mbn [comment.txt]

elfname.elf - Собственно сам эльф
main.mbn - Файл прошивки (BABE)
comment.txt - Файл с комментариями (можно не указывать)

elf2vkp.zip

и ещё одна версия конвертора - elf2vkpex (краткое описание)

Вроде все!
И как обычно: Все вышеизложенное вы проделываете на свой страх и риск!
Автор: © awg

 rdn:
20.07.08, 14:41
 У меня почему то в IAR выскакивают вот эти ошибки. Компилю для w200 014. Что я не так делаю?
Код: 
Warning[Pe231]: declaration is not visible outside of function D:\порт\компиляция эльфпака\elfpack\include\png.h 1551 
Warning[Pe301]: typedef name has already been declared (with same type) D:\порт\компиляция эльфпака\elfpack\include\Lib_Clara.h 41 
Warning[Pe231]: declaration is not visible outside of function D:\порт\компиляция эльфпака\elfpack\include\png.h 1551 
Warning[Pe301]: typedef name has already been declared (with same type) D:\порт\компиляция эльфпака\elfpack\include\Lib_Clara.h 41 
Warning[Pe231]: declaration is not visible outside of function D:\порт\компиляция эльфпака\elfpack\include\png.h 1551 
Warning[Pe301]: typedef name has already been declared (with same type) D:\порт\компиляция эльфпака\elfpack\include\Lib_Clara.h 41 
Warning[Pe001]: last line of file ends without a newline D:\порт\компиляция эльфпака\elfpack\include\k750.h 303 
Error[Pe037]: the #endif for this directive is missing D:\порт\компиляция эльфпака\elfpack\include\k750.h 72 
Error[Pa002]: the type attribute "__thumb" is not allowed on this declaration D:\порт\компиляция эльфпака\elfpack\include\k750.h 303 
Error[Pe065]: expected a ";" D:\порт\компиляция эльфпака\elfpack\ElfPack\vars.h 24 
Warning[Pe012]: parsing restarts here after previous syntax error D:\порт\компиляция эльфпака\elfpack\ElfPack\vars.h 29 
Warning[Pe223]: function "ListElement_Prt2NumElement" declared implicitly D:\порт\компиляция эльфпака\elfpack\ElfPack\InternalFunc.c 205 
Warning[Pe223]: function "AllocDirHandle" declared implicitly D:\порт\компиляция эльфпака\elfpack\ElfPack\InternalFunc.c 484 
Error[Pe144]: a value of type "int" cannot be used to initialize an entity of type "int *" D:\порт\компиляция эльфпака\elfpack\ElfPack\InternalFunc.c 484 
Warning[Pe223]: function "GetFname" declared implicitly D:\порт\компиляция эльфпака\elfpack\ElfPack\InternalFunc.c 518 
Error[Pe513]: a value of type "int" cannot be assigned to an entity of type  D:\порт\компиляция эльфпака\elfpack\ElfPack\InternalFunc.c 518 
Warning[Pe223]: function "DestroyDirHandle" declared implicitly D:\порт\компиляция эльфпака\elfpack\ElfPack\InternalFunc.c 539 


 INFerno--:
21.07.08, 10:00
 Для компиляторщиков, сделал elf2vkp специально для SE, не каких махинаций с замейном на DB2010 делать не надо, автоматически добавляется модель телефона и версия прошивки в выходной файл, так же можно добавлять комментрарии из файла, прошивка используется BABE, а не RAW, базы тоже вводить не надо.

Usage: elf2vkp.exe elfname.elf main.mbn [comment.txt]

elfname.elf - Собственно сам эльф
main.mbn - Файл прошивки (BABE)
comment.txt - Файл с комментариями (можно не указывать)

Прикрепленный к сообщению файл:

elf2vkp.zip elf2vkp.zip (4.95 kb; 1182 hits) Скачать файл

 awg:
24.07.08, 10:13
 rdn
У меня почему то в IAR выскакивают вот эти ошибки. Компилю для w200 014. Что я не так делаю?

Обьясняю один раз. На свн'е не дураки файлы выкладывают, и если получаются какие либо ошибки, то здесь:
-либо виновата кривоватость рук, что ведет к все таки либо неправильному расположению файлов и папок, либо недокачки каких нить файлов, либо криво скаченых (и еще хуже самостоятельно случайно или нарошно правленных) файлов;
-либо к глюки системы (в чем я лично не разбираюсь, что в принципе не дает мне право так говорить);
-либо сам IAR глючный (в чем я лично не разбираюсь, что в принципе не дает мне право так говорить).
Проверяйте все еще раз. И настоятельно рекомендую скачивать все содержимое папок, т.к. я сам проверял, и при отсутствии одного или нескольких файлов выдаются ошибки и нужный файл на выходе не появляется.

 Joker XT:
24.07.08, 14:07
 sam22
Ошибка связана с тем, что КРИВО ПОРТАНУТА DATA_N из xcl
Я выкладывал нормальные xcl в моде элбфпака вместе с мод2

 Khort:
24.07.08, 15:13
 Joker XT
У меня такая же ошибка, как у sam22, появлялась при попытке скомпилировать мод 4 бета..
А те, что на свн лежат компилятся без ошибок.

 Joker XT:
24.07.08, 16:30
 Khort
Неможет такого быть, в моём DATA_N=4C02C7C4-4C02C7CB
Какраз 8 байт...
На свн больше, поэтому может быть ребуть в дальнешем ;)

 Toreton:
31.08.08, 21:14
 блин.. ну неполучаеться скомпилить 5 мод ЭП! в чем проблема???

Код: 

Building configuration: ElfPack - W200_R4HA014 
Updating build tree... 
 
5  file(s) deleted. 
Updating build tree... 
InternalFunc.c 
K600_R2BB001.asm 
K750_R1CA021.asm 
K770_R8BA024.asm 
K790_R8BF003.asm 
K800_R8BF003.asm 
K810_R8BA024.asm 
W200_R4HA014.asm 
W300_R4EA031.asm 
W550_R4CB020.asm 
W580_R8BA024.asm 
W580_R8BE001.asm 
W600_R7CA017.asm 
W610_R6BC002.asm 
W610_R8BA024.asm 
W660_R6AD001.asm 
W660_R8BB001.asm 
W700_R1CA021.asm 
W710_R1JC002.asm 
W800_R1BC002.asm 
W800_R1BD001.asm 
W810_R4DB005.asm 
W810_R4EA031.asm 
W850_R1KG001.asm 
W880_R8BA024.asm 
Z530_R6DA001.asm 
Z550_R6CA009.asm 
Z550_R6GA004.asm 
Z610_R6DA001.asm 
calls.asm 
elfloader.cpp 
Warning[Pe231]: declaration is not visible outside of function C:\SE\include\png.h 1551 
helper.c 
Warning[Pe231]: declaration is not visible outside of function C:\SE\include\png.h 1551 
regfile.c 
Warning[Pe231]: declaration is not visible outside of function C:\SE\include\png.h 1551 
Error[Pe020]: identifier "DATA" is undefined C:\SE\ElfPack\regfile.c 113 
Error[Pe020]: identifier "data" is undefined C:\SE\ElfPack\regfile.c 113 
Error[Pe029]: expected an expression C:\SE\ElfPack\regfile.c 113 
Error[Pe020]: identifier "FILETYPE" is undefined C:\SE\ElfPack\regfile.c 114 
Error[Pe020]: identifier "ft" is undefined C:\SE\ElfPack\regfile.c 114 
Error[Pe020]: identifier "DATA" is undefined C:\SE\ElfPack\regfile.c 156 
Error[Pe029]: expected an expression C:\SE\ElfPack\regfile.c 156 
swi.asm 
 
Total number of errors: 7 
Total number of warnings: 3 



 arban:
31.08.08, 22:19
 Toreton
инклуды заново с свн скачай

 Noodle:
21.11.08, 15:45
 Последний мод от Tartes для k810 R8BA024 не компилится
Код: 
Building configuration: ElfPack - K810_R8BA024 
Updating build tree... 
 
49  file(s) deleted. 
Updating build tree... 
dbext.c 
kbdhook.c 
utils.c 
intfunc.asm 
init.c 
library.c 
swi.asm 
func.asm 
helper.c 
udata.c 
uihook.c 
elficons.c 
regfile.c 
elfloader.cpp 
intfunc_impl.c 
source.asm 
mem.c 
Linking 
Error[e46]: Undefined external "ImageID_GetIndirect" referred in elficons ( D:\IAR\elfloader\ 
K810_R8BA024\Obj\elficons.r79 ) 
Error[e46]: Undefined external "w_fstat" referred in init ( D:\IAR\elfloader\K810_R8BA024\Obj\ 
init.r79 ) 
 
Total number of errors: 2 
Total number of warnings: 0 


В чем может быть проблема? Для остальных моделей все проходит нормально.
Страница 1 из 25: [1] 2 3 4 5 ... 25 »

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=3183

© 2005-2018 supertrubka.org