void CVechileMgr::run( void *param ) { int n = 0 ; memcpy( &n , ¶m, sizeof(int) ) ; switch( n ) { case THREAD_TIME: TimeWork() ; break ; case THREAD_NOOP: NoopWork() ; break ; case THREAD_SEND: SendWork() ; break ; } }
void TestASIC(u8 n) { u8 nonce[4] = {0, 0, 0, 0}; u8 work[44]; u8 i; u8 stat; u8 case_n = 1; u32 tick; UARTWriteLine("Test Chip:"); UARTWriteInt(n,2); CloseASIC(); OpenASIC(n); UARTWriteLine("Set Clock To "); UARTWriteInt(10 * (CHIP_CLOCK + 1), 3); SetPll(CHIP_CLOCK); UARTWriteLine("Check Status: "); stat = GetASIC(); UARTWriteOneHex(stat); UARTWriteLine("Sending work: "); for (i = 0; i < 44; i++) { UARTWriteOneHex(cases[case_n].work[i]); } SendWork(cases[case_n].work); UARTWriteLine("Checking work: "); ReadWork(work); for (i = 0; i < 44; i++) { UARTWriteOneHex(work[i]); } tick=GetTime(); while(GetTime()-tick<700); GetNonce(&nonce, TRUE); UARTWriteLine("Get Nonce:"); UARTWriteHex(nonce); UARTWriteLine(" Expected:"); UARTWriteHex(cases[case_n].nonce); UARTGotoNewLine(); }