Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

GBX.ru _ GP2X _ [Wiz] Смена частоты процессора

Автор: quasist Вторник, 03 августа 2010, 17:57

Взято и укорочено из эмуля GBA.
Спасибо Orkie и Exophase

CODE
#ifdef GP2X
#include <sys/mman.h>
#include <fcntl.h>
unsigned long gp2x_dev=0;
static volatile unsigned long *xx_mem;

void WizCpuSpeed(unsigned short c_spd)
{
gp2x_dev=open("/dev/mem",O_RDWR);
xx_mem=(unsigned long*)mmap(0,0x10000,PROT_READ|PROT_WRITE,MAP_SHARED,gp2x_dev, 0xc0000000);

unsigned long v;
unsigned long mdiv, pdiv, sdiv = 0;
#define SYS_CLK_FREQ 27
pdiv=9;
mdiv=(c_spd * pdiv)/27;
mdiv&=0x3ff;
v=(pdiv<<18)|(mdiv<<8)|sdiv;
xx_mem[0xf004>>2]=v;
xx_mem[0xf07c>>2]|=0x8000;
while (xx_mem[0xf07c>>2]&0x8000);
close(gp2x_dev);
}
#endif

Автор: PiroTeX Вторник, 03 августа 2010, 19:35

Можно небольшое пояснениие к коду?

Автор: quasist Вторник, 03 августа 2010, 20:08

QUOTE (PiroTeX @ Вторник, 03 августа 2010, 20:35)
Можно небольшое пояснениие к коду?
*

Число мегагерц переводится в специальный формат и пишется в память виза по определённому адресу. Существуют полуоффициальные спертые доки по материнке виза, откуда линукс хацкеры и брали инфу.