ARMPC : Патчестроение : Форум |
Страница 1 из 11: [1] 2 3 4 5 ... 11 » |
den_po: |
08.11.09, 19:13 |
Так уж сложилось, что отдельной темы для armpc на форуме нет. А пакет время от времени обновляется, и обновления остаются многими незамеченными. ARM Patch Compiler - набор для компиляции патчей. Делал я его для себя, делал так, как удобно работать мне. В качестве компилятора в пакете используется FASMARM. Обновления и исходники можно взять на http://arm.flatassembler.net/ (следует учесть, что компилятор в armpc может отличаться от того, что на официальном сайте). Дальше пойдёт набор бессвязных фактов - Многие не знают, но fasmarm вполне можно использовать и вне armpc, он даёт на выходе бинарник. - 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. Скачать текущую версию Про использование ещё раз: [ Редактировано den_po в 28.5.15 13:50 ] |
den_po: |
18.01.10, 09:27 |
поправил автодетект базы для старых телефонов |
den_po: |
04.03.10, 04:58 |
обновил fasmarm до версии 1.69.11 |
GaS: |
21.03.10, 08:49 |
den_po писал: теперь он понимает movs/cmps/adds и прочие "s" что-то он не захотел понять при компиляции патча "win кодировка", пришлось убирать все"S", и ещё почемуто пару патчей нормально скомпилились с "loc"-ами, а один ну ни в какую |
den_po: |
21.03.10, 09:22 |
GaS пишет: den_po писал: теперь он понимает movs/cmps/adds и прочие "s" что-то он не захотел понять при компиляции патча "win кодировка", пришлось убирать все"S", «какие ваши доказательства?» © и ещё почемуто пару патчей нормально скомпилились с "loc"-ами, а один ну ни в какую может, стоит почитать документацию? |
GaS: |
21.03.10, 09:56 |
den_po, Код: c:\>make.bat 1.asm phone_app.cxc v.info>log.txt 1.asm [17]: LSLS R0, R7, 1 error: illegal instruction. |
den_po: |
21.03.10, 15:17 |
GaS, с конкретно lsl/lsr там какая-то отдельная история была |
Sandre: |
22.03.10, 09:14 |
Здорово парни,здорово. Почему то компилятор не сохраняет полученное. Лог такой же,как и во всех факах,а файла почему - то нету ни где. Что делать? Пробовал через асмедитор компилировать и просто через сам компилятор,навоза вместе прощивку и исходник на него |
den_po: |
22.03.10, 13:03 |
Sandre, учись пользоваться командной строкой |
breeze81: |
22.03.10, 16:49 |
обновите тогда уж в архиве и файл x.inc, конкретно в блоке LDR fix ldr DCD fix dw DCB fix db CODE16 fix code16 CODE32 fix code32 MOVL fix movl жутко не хватает ADR fix adr |
Страница 1 из 11: [1] 2 3 4 5 ... 11 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4458 © 2005-2018 supertrubka.org |