Создание Эльфов : Эльфостроение : Форум

Страница 201 из 211: « 1 ... 197 198 199 200 [201] 202 203 204 205 ... 211 »

 Joker XT:
27.02.12, 05:10
 D3mon, что хочешь в нём обновляй) ну и, да, его за место таймера юзают

 D3mon:
27.02.12, 15:05
 Joker XT, Спасибо, Жек.

Т.е. такой код будет перерисовывать мой дисп каждую секунду?
Код: 
int onCreate(DISP_OBJ * DispObj)
{
  DispObject_SetRefreshTimer(DispObj, 1000);
  return 1;
}
void onRefresh(DISP_OBJ * DispObj)
{
  DispObject_InvalidateRect(DispObj, 0);
}
void onRedraw(DISP_OBJ * DispObj, int a, int b, int c)
{
  . . . . .
}


 Joker XT:
27.02.12, 15:56
 D3mon, ага)

 den_po:
27.02.12, 21:11
 D3mon,
внутри onrefresh ещё надо таймер обновлять - SetRefreshTimer

 IDOL1234:
06.04.12, 00:14
 Так, я вернулся..
Скажите, можно ли напрямую редактировать указатели? Есть ли директива компилятора, отключающая проверку типов данных?
Почему не работает такой код:
Код:
char* a;
  a = NULL;
  a += 0x14367618;
  
  *a = 0xff;

?
Получить данные я могу, а изменить - нет..

[ Редактировано IDOL1234 в 6.4.12 00:31 ]

 den_po:
06.04.12, 08:16
 IDOL1234, хочешь патчить? =) память защищена от записи. нужно получить супервизора и разрешить модификацию.
вот исходник, который делает это для jjpatcher, а затем восстанавливает режим процессора и регистр управления доступом к памяти
Код: 
;arm
include "%fasminc%\x.inc"

macro call ad
{
  if global_codesize = 32
    if ad and 3 = 1
      blx (ad and 0xFFFFFFFE)
    else
      bl (ad and 0xFFFFFFFE)
    end if
  else
    if ad and 3 = 1
      bl (ad and 0xFFFFFFFE)
    else
      blx (ad and 0xFFFFFFFE)
    end if
  end if
}


macro savedacr reg
{
  call setdacr
  if reg eq r0
  else
    mov reg,r0
  end if
}
macro loaddacr reg
{
  mcr p15, 0, reg, c3, c0 ;restore dacr
}
macro saverights reg
{
  mov r12,swinum ;set supervisor
  swi swinum
  if reg eq r0
  else
    mov reg,r0
  end if
}
macro loadrights reg
{
  msr cpsr_cxsf, reg ;restore rights
}



code32
        stmfd sp!,{r1-r7,lr}

        mov r7,r0


        mov r2,3
        adr r1,rightspatch
        adr r0,drivername
        bl biosInstall

        adr r0,drivername
        bl biosOpen
        
        ;mov r1,fnnumber
        bl callbios
        mov r6,r0

        adr r0,drivername
        bl biosUninstall


        savedacr r5

        ;r7 - data array
        ;вот тут патчится


        ldmia r7!,{r0}
.ploop:
        subs r0,r0,1
        bmi .out

        ldmia r7!,{r1,r2}
        mov r2,r2,lsr 8
        strb r2,[r1]
        b .ploop

.out:

        loaddacr r5
        loadrights r6


        ldmfd sp!,{r1-r7,pc}


setdacr:
        mrc p15, 0, r0, c3, c0 ;save old dacr
        stmfd sp!,{r0}
        mvn r0,0
        mcr p15, 0, r0, c3, c0 ;set dacr
        ldmfd sp!,{r0}
        bx lr




rightspatch:
            STMFD   SP!, {R1}
            ldr     r0,[sp,4]
            bic     r1, r0, 0x1f
            orr     r1, r1, 0x13
            str     r1,[sp,4]
            LDMFD   SP!, {R1}
            BX      LR            


callbios:
            STMFD   SP!, {R7,LR}
            MOV     R7, r1
            mov     r12, r0
            SWI     0xFE
            LDMFD   SP!, {R7,LR}
            BX      LR


biosUninstall:
            MOV     R12, 3
            b driverfn_common
biosOpen:
            MOV     R12, 2
            b driverfn_common
biosInstall:
            MOV     R12, 1
driverfn_common:  
            MOV     R3, SP
            STR     LR, [SP,-8]!
            SWI     0xFF
            LDR     LR, [SP],8
            BX      LR

drivername: db "rightspatch",0


 IDOL1234:
06.04.12, 10:45
 Ёлки зелёные.. А я думал, здесь такого нет( Наивный..
Немного пугают названия меток вроде "biosUninstall". Названия вообще имеют какое-либо отношение к реальности? Или как Dingo1? %)
Так всё же, можно ли найти какую-либо информацию по этой модификации процессора?
Могут ли быть ребуты при частой смене режима работы процессора таким способом?

 den_po:
06.04.12, 11:42
 IDOL1234, названия эти из прошивки.
и чего, uninstall тебя пугает, а что перед этим install делается - нет?
полной документации не найдёшь. доки по процессорам семейства на arm.com
ребутов при грамотном использовании это не вызовет.

 IDOL1234:
06.04.12, 12:02
 стоп. Имена меток что, сохраняются после сборки????

Код:
if global_codesize = 32

Эмм.. Я чего-то недопонимаю? Почему здесь не "=="?

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


О, нашёл методичку. Не совсем то, что хотелось бы, зато по-русски. И из моего универа XD http://www.studfiles.ru/dir/cat32/subj270/file3240/view4587/page6.html


[ Редактировано IDOL1234 в 6.4.12 12:34 ]

[ Редактировано IDOL1234 в 6.4.12 13:18 ]

 den_po:
06.04.12, 13:52
 IDOL1234, потому что это не си
926 процессор http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0198e/index.html
Страница 201 из 211: « 1 ... 197 198 199 200 [201] 202 203 204 205 ... 211 »

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

© 2005-2018 supertrubka.org