ZEN
Developer
Регистрация: 15.12.07 Сообщений: 132 Репутация: 984 Откуда: Полоцк
#1 [08.08.09, 16:52] Урок 1. Создаём вибру
Код:
; это первый урок будут и другие PUSH {R0-R5,LR} ;здесь устанавливаються параметры вибры: мощьность,время одного вибрика, время между вибриками MOV R0, 0x30 MOV R1, 0x20 MOV R2, 0x10 ;здесь вызываеться функция виры LDR R5, SWI_0x1BB_Vibra BLX R5 MOV R0, 0x7F ;время длительности всего этого процесса LDR R1, off_ ; переход на выключение вибры LDR R5, SWI_0x129_Timer_Set BLX R5 POP {R0-R5,PC} off: ;здесь сопсна говоря она и вырубаеться PUSH {R0-R3,LR} MOV R0, 0 LDR R3, SWI_0x248_Vibra_Off BLX R3 POP {R0-R3,PC} ; --------------------------------------------------------------------------- SWI_0x1BB_Vibra DCD 0x45452EA4+1 off_ DCD off+1 SWI_0x129_Timer_Set DCD 0x45294D90+1 SWI_0x248_Vibra_Off DCD 0x45452F7C+1 ;дреса преведены для W810 R4DB005
[ Редактировано ZEN в 9.8.09 11:51 ]
Спасибо сказали: Ну6иК, Va_st, -Sanek-, Xamid, CyberMaster, HotRabbit, farid
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#2 [08.08.09, 17:25] Re: Урок 1 "создаём выбру"
promt is better than google translate
Спасибо сказали: HotRabbit
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#3 [08.08.09, 18:35] Re: Урок 1 "создаём выбру"
тогда так:
Добавлено 8.8.09 20:39 или так:
Код:
PUSH {R0-R7,LR} MOV R0, 0 SUB SP, SP, 4 STR R0, [SP] SUB SP, SP, 0x88 MOV R0, SP LDR R1, off_ BLX R1 MOVL R1, 0x3E8 MOV R2, 0x32 ADD R3, R1, 0 LDR R6, [R0] MOVL R4, 0x168 LDR R6, [R6,R4] BLX R6 ADD SP, SP, 0x8C POP {R0-R7,PC} ALIGN 4 off_ DCD 0x4529D5D8+1;for k790 r8bf003
j10i2 r7ca061
Спасибо сказали: CyberMaster, HotRabbit
jamesbond22
Свой в доску
Регистрация: 19.8.07 Сообщений: 1764 Репутация: 1322
#4 [08.08.09, 22:13] Re: Урок 1. Создаём вибру
example for phones A2:
Код:
PUSH {R0-R7,LR} SUB SP, SP, 4 MOV R0, SP LDR R1, off_ BLX R1 LDR R0, [SP] MOVL R1, 0x3e8 MOV R2, 0x32 ADD R3, R1, 0 LDR R6, [R0] MOV R4, 0xFF ADD R4, 0x89 LDR R6, [R6,R4] BLX R6 ADD SP, SP, 4 POP {R0-R7,PC} align 4 off_ DCD 0x10DC0070+1 ;for W595 r3ea037 LT
XPeria X8 ROM 2.3.5 GingerDX v008
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#5 [08.08.09, 23:16] Re: Урок 1. Создаём вибру
jamesbond22 , и в чем различие от последнего?? причем а2??
Код:
push {r0-r7,lr} sub sp, sp, 4 mov r0, sp ldr r1,.addr blx r1 ldr r0,[sp] movl r1, 0x3e8 mov r2, 0x32 add r3,r1,0 ldr r6,[r0] movl r4, 0x194 ldr r6,[r6,r4] blx r6 add sp,sp,4 pop {r0-r7,pc} ;for w910 sw-r1fa035
j10i2 r7ca061
CyberMaster
Patchmaster
Регистрация: 24.10.07 Сообщений: 101 Репутация: 243 Откуда: Днепропетровск
#6 [09.08.09, 02:18] Re: Урок 1. Создаём вибру
Va_st писал:
Код:
sub_AudioControl_Vibrate: PUSH {R3} LDR R3, off_AudioControl_Vibrate MOV R12, R3 POP {R3} BX R12
это не правильно. поправь
Код:
sub_AudioControl_Vibrate: ldr r4, off_AudioControl_Vibrate bx r4
[ Редактировано CyberMaster в 9.8.09 02:41 ]
Спасибо сказали: HotRabbit
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#7 [09.08.09, 03:48] Re: Урок 1. Создаём вибру
CyberMaster , как это неправильно?
promt is better than google translate
CyberMaster
Patchmaster
Регистрация: 24.10.07 Сообщений: 101 Репутация: 243 Откуда: Днепропетровск
#8 [09.08.09, 04:51] Re: Урок 1. Создаём вибру
den_po , ну а смысл такое извращение делать если можно обойтись всего двумя строчками
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#9 [09.08.09, 07:08] Re: Урок 1. Создаём вибру
CyberMaster , точно так же можно спросить "а смысл выносить в отдельную функцию?", это ж целая команда лишняя, да не просто команда, а 4байтная.
всё зависит от того, насколько интенсивно в твоей функции используются регистры. вот не будет тебе их хватать, тогда посмотрим, как ты двумя строчками обойдёшься.
в любом случае, его вариант не неправильный.
Добавлено 9.8.09 07:10 вопрос ко всем: вы отступы в исходниках принципиально не используете?
Добавлено 9.8.09 07:22 по поводу обёрток для вызова дальних функций маленькая подсказка
да и вообще посыл посмотреть в сторону макросов. макросы могут упростить написание повторяющихся кусков кода.
макрос создаёт такую обёртку и даёт ей имя, прибавляя в начало имени аргумента "far_".
к примеру есть у нас константа debug_printf с некоторым адресом. ставим где-то в коде вызов макроса
longf debug_printf
после этого можно вызывать обёртку командой bl far_debug_printf.
и живой пример использования этого макроса
promt is better than google translate
Спасибо сказали: MahmudS
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#10 [09.08.09, 09:18] Re: Урок 1. Создаём вибру
CyberMaster , пойдет???
Spoiler:
include "x.inc" setupwizard = 0x45294A44 AudioControl_Vibrate = 0x44C30DC8+1 AudioControl_Init = 0x44FDC19C+1 org setupwizard push {r0-r7,lr} ldr r3, off_audiocontrol_init blx r3 cmp r0, 0 bne loc_ ldr r0, dword_getaudiocontrolptr ldr r0, [r0] loc_: mov r3, 0x30 ;totaltime mov r2, 0x10 ;pausetime mov r1, 0x20 ;vibratime ldr r7, off_audiocontrol_vibrate blx r7 pop {r0-r7,pc} align 4 off_audiocontrol_init dw AudioControl_Init dword_getaudiocontrolptr dw 0x201806c4 off_audiocontrol_vibrate dw AudioControl_Vibrate
j10i2 r7ca061
Похожие темы
Тема Ответы Автор Просмотры Обновление Урок 1. Создание простого эльфа Фонарик 29 arban 41100 05.04.12, 16:36 Видео урок по созданию графических патчей 7 a6b6 7638 13.08.11, 01:25 [Голосование] Предложения по написанию уроков 9 arban 10432 08.03.11, 14:40 Урок: разбираем списки, часть 1 2 arban 6531 30.09.10, 21:31 Урок: создаём GUI, часть 1 6 arban 13364 01.08.10, 22:32 Урок - Создание/редактирование простого эльфа (подробно) 7 vodoo999 12434 18.07.10, 21:17 Урок 2. создаём окно 12 ZEN 15327 17.06.10, 14:51 Урок: создаём GUI, часть 2 1 arban 7588 23.02.09, 20:23
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.