Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

ARMPC : Патчестроение : Патчи : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Патчи
      /  Патчестроение
   /  ARMPC
На печать 
Правила 
Страница 10 из 11: « 1 ... 6 7 8 9 [10] 11 »

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #91 [08.11.09, 19:13] ARMPC   

 
Так уж сложилось, что отдельной темы для armpc на форуме нет. А пакет время от времени обновляется, и обновления остаются многими незамеченными.

ARM Patch Compiler - набор для компиляции патчей. Делал я его для себя, делал так, как удобно работать мне.
В качестве компилятора в пакете используется FASMARM. Обновления и исходники можно взять на http://arm.flatassembler.net/ (следует учесть, что компилятор в armpc может отличаться от того, что на официальном сайте).

Дальше пойдёт набор бессвязных фактов =)

- Многие не знают, но fasmarm вполне можно использовать и вне armpc, он даёт на выходе бинарник.

- make.bat с давних пор нужно передавать максимум два параметра - имя исходника и имя raw/cxc файла. Базовый адрес передавать не нужно, он определяется автоматически. Если внутри make.bat указать полное имя наиболее часто используемого raw/cxc файла, при запуске make.bat достаточно указать только имя исходника.

- Файл x.inc содержит описания макросов. ADR и MOVL - это не команды, это макросы. Некоторые ключевые слова в x.inc заменяются на макросы (code16, code32, ldr, org), поэтому комплияция со включением x.inc и без него даёт разный результат.

- Макросы в fasmarm, в отличие от команд, регистрозависимы. Макросы ldr/code16/code32/movl продублированы и в верхнем регистре, а вот org нет. Поэтому если вы собираете патч, используйте org, а если вы хотите получить простой бинарник, вам нужен ORG.

- В исходниках можно использовать переменные системного окружения (свойства системы, дополнительно, переменные среды). Для себя я добавил переменную FASMINC, в значении которой указал полный путь к каталогу, где лежит armpc (помните, для вступления действия в силу иногда может потребоваться перезагрузка). Так можно компилировать исходники, лежащие в любых папках, без указания полного пути к x.inc.
Код:
include "%fasminc%\x.inc"


FAR+ARMPC
Мало кто использует FAR Manager в повседневности, а вот я в нём постоянно. И компиляцию запускаю из FAR так, как мне удобно. А конкретней - простое нажатие enter на исходнике собирает патч для z610, нажатие ctrl+pgdn выдаёт меню со списком прошивок, для которых будет собираться патч. Делается оно легко:

f9 -> commands -> file associatoins -> ins -> маска файла *.asm -> описание какое вам нужно -> нужная команда на выполнение для enter и ctrl+pgdn.

У меня команды выглядят примерно так:
Код:
make.bat "!.!" C702_R3EF001

или для ручного ввода имени таргета:
Код:
make.bat "!.!" !?$armpc$target?Z610_R6DA001!

Нужно учесть, что если для типа файла есть только одно действие (как у меня на enter), то оно выполняется молча, а если несколько разных (ассоциация с *.asm добавлена несколько раз, команды на выполнение для ctrl+pgdn отличаются), то показывается меню.

В последней версии armpc компилятор чуть поправлен:
- теперь он понимает movs/cmps/adds и прочие "s" в thumb безо всяких макросов (arm режим в патчах используется нечасто, но кто-то мог допустить ошибку, убирая s у арм-команд);
- ldr и adr работают с адресами без скобок, макрос для этого больше не нужен;
- du в качестве аргумента должны подаваться строки в utf8 (т.е. сам исходник при этом должен быть сохранен в utf8 без BOM).

BOM - специальный маркер, позволяющий другим приложениям однозначно идентифицировать этот файл. В частности сохранить файл с BOM или без BOM можно во встроенном редакторе FAR и в notepad.

Скачать текущую версию


Про использование ещё раз: 
маска файла *.asm -

[ Редактировано den_po в 28.5.15 13:50 ]




promt is better than google translate
Спасибо сказали: UltraShot, -DeJaVu-, 273308715, MNS81, MahmudS, DuXeN0N, Olegat0r, ipod, Se-MaG, Slawwan, Ax, JohnNorth, Zormax, SEVENI, Alex1992, MAVER145, PRO100light, vodoo999, Blend, Alex_E, Oganyan-Arthur, TahaSpawn, BigHercules, Therion, Pixel, russ123, H0sseiN, KIBER-DEMON, Melodic_Death, clisto, Vov4ик, farid, LiNkMaN, a6b6

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #92 [16.09.12, 13:46] Re: ARMPC   

 
Legas2, ты слишком увлёкся своими "улучшениями". всё работает.




promt is better than google translate
Спасибо сказали: E1kolyan, SEVEN7, a6b6

Legas


Expert


Регистрация: 30.4.09
Сообщений: 444
Репутация: 1422





 
  #93 [16.09.12, 14:26] Re: ARMPC   

 
я сегодня повторил на твоём скрипте ещё раз перед тем как написал то сообщение.
ждём ответа от bill_kevin....




improved make.bat (armpc)
--
Sе C902 SW-R3EG004 AO
Sе w995 SW-R1HA035
k800, k850, c510, c905, w880, w910, w705, w715, j105
j20 cid81

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #94 [16.09.12, 15:05] Re: ARMPC   

 
Legas2, небось древность какую-то используешь
http://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=3183&post_id=193028#193028




promt is better than google translate

Legas


Expert


Регистрация: 30.4.09
Сообщений: 444
Репутация: 1422





 
  #95 [09.12.12, 23:15] Re: ARMPC   

 
проблема похожа, но в:
http://justdanpo.cheb.ru/data/projects/gsm/armpc.rar
http://justdanpo.cheb.ru/data/projects/gsm/elf2vkpex.zip
она не исправлена.

я тут подготовил видео чтоб развеить сомнения: http://upwap.ru/2931304




improved make.bat (armpc)
--
Sе C902 SW-R3EG004 AO
Sе w995 SW-R1HA035
k800, k850, c510, c905, w880, w910, w705, w715, j105
j20 cid81

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #96 [09.12.12, 23:26] Re: ARMPC   

 
не хочу видео. давай по шагам, как скачать, распаковать, что куда положить, как запустить, чтоб получить ошибку.




promt is better than google translate

Legas


Expert


Регистрация: 30.4.09
Сообщений: 444
Репутация: 1422





 
  #97 [10.12.12, 15:18] Re: ARMPC   

 
положи прошивку в %firmwares%\%target%\%target%.mbn
и положи копию прошивки в %firmwares%\%target%.mbn
при наличии двух файлов прошивки а1 в переменной cmdlineargs, файл на выходе будет out1.vkp
перепроверял на чистой винде. Предположение с raw оказалось ошибочным, тк оказалось, что бат скрипт просто некорректно работает с сетевыми дисками (по крайней мере, if exist).

Однако, надо ещё перепроверить повторит это проблему, но если не закрывать окно cmd, а запускать повторно скрипт, то переменная cmdlineargs по окончанию работы скрипта не обнуляется. То есть, она накапливает в себе список прошивок при каждом последующем перезапуске скрипта (при всё том же открытом окне cmd!) - это тоже может повторить проблему (даже при отстутствии копий прошивок).

Кстати, исправление для батника по пробелам в путях к прошивкам в выложеном батнике ещё отсутствуют...




improved make.bat (armpc)
--
Sе C902 SW-R3EG004 AO
Sе w995 SW-R1HA035
k800, k850, c510, c905, w880, w910, w705, w715, j105
j20 cid81

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #98 [10.12.12, 22:41] Re: ARMPC   

 
Legas2 пишет:
положи прошивку в %firmwares%\%target%\%target%.mbn
и положи копию прошивки в %firmwares%\%target%.mbn
при наличии двух файлов прошивки а1 в переменной cmdlineargs, файл на выходе будет out1.vkp

каким должен быть результат? а каким он должен быть, если файлы прошивок имеют одно имя, но содержимое их отличается?


Однако, надо ещё перепроверить повторит это проблему, но если не закрывать окно cmd, а запускать повторно скрипт, то переменная cmdlineargs по окончанию работы скрипта не обнуляется. То есть, она накапливает в себе список прошивок при каждом последующем перезапуске скрипта (при всё том же открытом окне cmd!) - это тоже может повторить проблему (даже при отстутствии копий прошивок).

это да. голой комстрокой не пользуюсь - фар гораздо удобней, а из фара такой проблемы нет. поправлю


Кстати, исправление для батника по пробелам в путях к прошивкам в выложеном батнике ещё отсутствуют...

правда?
Код: 
D:\1 3>set firmwares="d:\1 2\fw"

D:\1 3>dir %firmwares% /w
 Том в устройстве D имеет метку 2TB_D
 Серийный номер тома: 2422-30EA

 Содержимое папки d:\1 2\fw

[.]        [..]       Z610.mbn
               1 файлов     30 160 336 байт
               2 папок  174 505 054 208 байт свободно

D:\1 3>dir /w
 Том в устройстве D имеет метку 2TB_D
 Серийный номер тома: 2422-30EA

 Содержимое папки D:\1 3

[.]       [..]      a a.asm
               1 файлов             62 байт
               2 папок  174 505 054 208 байт свободно

D:\1 3>"d:\1 2\make.bat" "a a.asm" z610
target = z610
flat assembler for ARM  version 1.70.03  (1639775 kilobytes memory)
4 passes, 804 bytes.
elf2vkpex by den_po v1.03 (Aug  3 2011)
all done

D:\1 3>dir /w
 Том в устройстве D имеет метку 2TB_D
 Серийный номер тома: 2422-30EA

 Содержимое папки D:\1 3

[.]            [..]           a a.asm        a a.z610.vkp
               2 файлов             97 байт
               2 папок  174 505 054 208 байт свободно

D:\1 3>




promt is better than google translate

Legas


Expert


Регистрация: 30.4.09
Сообщений: 444
Репутация: 1422





 
  #99 [10.12.12, 23:32] Re: ARMPC   

 
den_po пишет:
каким должен быть результат? а каким он должен быть, если файлы прошивок имеют одно имя, но содержимое их отличается?

допустим, для каждой прошивки создастся отдельный файл out%1.vkp. Или, для каждой прошивки он скомпилит с одинаковым именем out.vkp, но содержимое затрётся последним. В любом случае, сейчас происходит ни первый вариант, ни второй, и скрипт такой результат не обрабатывает ;-)

это да. голой комстрокой не пользуюсь - фар гораздо удобней, а из фара такой проблемы нет. поправлю

можно ещё просто перетаскивать асм на батник, если в нём провально прописан set target. Но и чинится оно просто - быть может достаточно добавить
Код:
set cmdlineargs=

перед заполнением в него значений...
Кскати, вместо
Код:
if ""=="%cmdlineargs%" set...

рекомендую
Код:
IF NOT DEFINED cmdlineargs set...

тк кавычки внутри значения переменной могут всё заломать :-)

правда?

Код: 

E:\SE_DEV    est>set firmwares=E:\SE_DEV\Main

E:\SE_DEV    est>set target=K800 SW-R8BF003 GEN

E:\SE_DEV    est>if exist %firmwares%\%target%\%target%.mbn set cmdlineargs=%cmdlineargs% -f%firmwares%\%target%\%target%.mbn

E:\SE_DEV    est>echo if exist %firmwares%\%target%\%target%.mbn set cmdlineargs=%cmdlineargs% -f%firmwares%\%target%\%target%.mbn
if exist E:\SE_DEV\Main\K800 SW-R8BF003 GEN\K800 SW-R8BF003 GEN.mbn set cmdlineargs=%cmdlineargs% -fE:\SE_DEV\Main\K800 SW-R8BF003 GEN\K800 SW-R8BF003 GEN.mbn

E:\SE_DEV    est>echo %cmdlineargs%
%cmdlineargs%

E:\SE_DEV    est>dir "%firmwares%\%target%\" /w
 Том в устройстве E имеет метку 160
 Серийный номер тома: 8A8D-CA96

 Содержимое папки E:\SE_DEV\Main\K800 SW-R8BF003 GEN

[.]
[..]
K800 SW-R8BF003 GEN.mbn
K800_R8BF003_MAIN_GENERIC_WI_RED52.idb
K800_SW-R8BF003_GEN.raw
               3 файлов    156 792 202 байт
               2 папок  52 362 866 688 байт свободно

ну, или:
Код: 

E:\SE_DEV    est>set firmwares="E:\SE_DEV\Main"

E:\SE_DEV    est>set target="K800 SW-R8BF003 GEN"

E:\SE_DEV    est>if exist %firmwares%\%target%\%target%.mbn set cmdlineargs=%cmdli
neargs% -f%firmwares%\%target%\%target%.mbn

E:\SE_DEV    est>echo %cmdlineargs%
%cmdlineargs% -f"E:\SE_DEV\Main"\"K800 SW-R8BF003 GEN"\"K800 SW-R8BF003 GEN".mbn


E:\SE_DEV    est>make test.asm "K800 SW-R8BF003 GEN"
target = "K800 SW-R8BF003 GEN"
flat assembler for ARM  version 1.70.03  (743284 kilobytes memory)
4 passes, 772 bytes.
elf2vkpex by den_po v1.03 (Aug  3 2011)
bad argument 2: %cmdlineargs%

тоже, что и второе, только кавычки выставлены внутри батника:
Код:

target = "K800 SW-R8BF003 GEN"
flat assembler for ARM  version 1.70.03  (739242 kilobytes memory)
4 passes, 772 bytes.
elf2vkpex by den_po v1.03 (Aug  3 2011)
unable to read 'E:\SE_DEV\Main"K800'


мы это уже как-то обсуждали... тут остался тебе фрагмент на заметку: http://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4458&post_id=213505#213505
;-)




improved make.bat (armpc)
--
Sе C902 SW-R3EG004 AO
Sе w995 SW-R1HA035
k800, k850, c510, c905, w880, w910, w705, w715, j105
j20 cid81

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #100 [10.12.12, 23:52] Re: ARMPC   

 
извращенец

пробелы в именах не люблю со времён 95-й винды




promt is better than google translate

Legas


Expert


Регистрация: 30.4.09
Сообщений: 444
Репутация: 1422





 
  #101 [11.12.12, 01:02] Re: ARMPC   

 
зато они красиво задают имя прошивки в шапке патча :-)
пробелы не любит винда (вернее, командная строка), а не её пользователи ;-)

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




improved make.bat (armpc)
--
Sе C902 SW-R3EG004 AO
Sе w995 SW-R1HA035
k800, k850, c510, c905, w880, w910, w705, w715, j105
j20 cid81
Страница 10 из 11: « 1 ... 6 7 8 9 [10] 11 »



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

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.03 секунд | 10 Запросов | HTML: 56.8 КБ -