Beispiel #1
0
void Mrf49xaInit(Mrf49xaMac_t* inst)
{
    uint8_t k;
#ifdef PIC16_HW
    uint8_t i, j;
#endif
    reset:

    for (k = 0; k < sizeof(Mrf49xaMac_t); k++)
    {
        ((uint8_t*)mrf49Inst)[k] = 0;
    }

    // Power chip, reset it.
    RF_SPI_CS = 1;
    RF_SPI_SCK = 0;
    RF_SPI_SDO = 0;

    RF_POWER = RF_PWR_ON;
    RF_FSEL = 1;
#ifdef PIC16_HW
    RF_INT = 1;
#endif
    Delay50Ms();
    RF_RES = 0;
    Delay50Ms();
    RF_RES = 1;
    Delay50Ms();

    mrf49Inst->state = RECV_IDLE;
    
    SetupRegisters(Init);
    //mrf49xaCfg(mrfRegset_Init, mrfRegset_InitCnt);

    Mrf49xaModeRx(mrf49Inst);

    k = 0;
    while(RF_IRQ == 0)
    {
        k++;
        if (k == 255)
        {
            k = 0;
            // Overflow, reset..
            goto reset;
        }

#ifdef PIC24_HW
        Mrf49xaServe(0);
#else
        Mrf49xaServe(mrf49Inst);
#endif
    }
}
Beispiel #2
0
void StartEmulationFromSave ( usf_state_t * state, void * savestate ) {
	uint32_t count = 0;
	
	//printf("Starting generic Cpu\n");

	//CloseCpu();
	memset(state->N64MEM, 0, state->RdramSize);
	
	memset(state->DMEM, 0, 0x1000);
	memset(state->IMEM, 0, 0x1000);
	memset(state->TLB_Map, 0, 0x100000 * sizeof(uintptr_t) + 0x10000);

	memset(state->CPU_Action,0,sizeof(*state->CPU_Action));
	state->WrittenToRom = 0;

	InitilizeTLB(state);

	SetupRegisters(state, state->Registers);

	BuildInterpreter(state);

	state->Timers->CurrentTimerType = -1;
	state->Timers->Timer = 0;

	for (count = 0; count < MaxTimers; count ++) { state->Timers->Active[count] = 0; }
	ChangeTimer(state,ViTimer,5000);
	ChangeCompareTimer(state);
	state->ViFieldNumber = 0;
	state->CPURunning = 1;
	*state->WaitMode = 0;

	init_rsp(state);

	Machine_LoadStateFromRAM(state, savestate);

	state->SampleRate = 48681812 / (AI_DACRATE_REG + 1);

	if(state->enableFIFOfull) {
		const float VSyncTiming = 789000.0f;
		double BytesPerSecond = 48681812.0 / (AI_DACRATE_REG + 1) * 4;
		double CountsPerSecond = (double)(((double)VSyncTiming) * (double)60.0);
		double CountsPerByte = (double)CountsPerSecond / (double)BytesPerSecond;
		uint32_t IntScheduled = (uint32_t)((double)AI_LEN_REG * CountsPerByte);

		ChangeTimer(state,AiTimer,IntScheduled);
		AI_STATUS_REG|=0x40000000;
	}
    
    state->OLD_VI_V_SYNC_REG = ~VI_V_SYNC_REG;
    
    CPUHLE_Scan(state);
}
Beispiel #3
0
Datei: ucl.c Projekt: M-ike/work
/**
 * The compiler's main entry point. 
 * The compiler handles C files one by one.
 */
int main(int argc, char *argv[])
{
	int i;

	CurrentHeap = &ProgramHeap;
	argc--; argv++;
	i = ParseCommandLine(argc, argv);

	SetupRegisters();
	SetupLexer();
	SetupTypeSystem();
	for (; i < argc; ++i)
	{
		Compile(argv[i]);
	}

	return (ErrorCount != 0);
}
Beispiel #4
0
void Compiler::TranslationUnit()
{
	// 始初化寄存器
	SetupRegisters();

	//开始
	BeginProgram();

	//全局变量部分
	Data_Segment();
	EmitGlobals();

	//代码函部分
	Text_Segment();
	EmitFunctions();

	//结束, 刷新缓冲区
	EndProgram();

	fclose(ASMFile);
}