Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
TrackIDentify
Новости
Статьи
Файлы
Патчи
Патчи 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
Репутация: 1407





 
  #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://supertrubka.org/newbb_plus/viewtopic.php?topic_id=3183&post_id=193028#193028




promt is better than google translate

Legas


Expert


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





 
  #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
Репутация: 1407





 
  #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
Репутация: 1407





 
  #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\test>set firmwares=E:\SE_DEV\Main

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

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

E:\SE_DEV\test>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\test>echo %cmdlineargs%
%cmdlineargs%

E:\SE_DEV\test>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\test>set firmwares="E:\SE_DEV\Main"

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

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

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


E:\SE_DEV\test>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://supertrubka.org/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
Репутация: 1407





 
  #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.16 секунд | 11 Запросов | HTML: 56.94 КБ -