Example #1
0
/** Standard driver entry point. Initializes the driver.
 */
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
	NTSTATUS status = STATUS_UNSUCCESSFUL;
	DEBUG_ENTER_FUNCTION("DriverObject=0x%p; RegistryPath=%S", DriverObject, RegistryPath->Buffer);

#ifdef _DEBUG
	status = DebugAllocatorModuleInit();
#else 
	status = STATUS_SUCCESS;
#endif
	if (NT_SUCCESS(status)) {
		status = SpecialValuesModuleInit(DriverObject);
		if (NT_SUCCESS(status)) {
			status = DriverInit(DriverObject);
			if (!NT_SUCCESS(status))
				SpecialValuesModuleFinit();
		}

		if (!NT_SUCCESS(status)) {
#ifdef _DEBUG
			DebugAllocatorModuleFinit();
#endif
		}
	}

	DEBUG_EXIT_FUNCTION("0x%x", status);
	return status;
}
int main(){
    DSG::Sample_Rate(44100);
    DSG::FourierSquare _sqr(220.0,0.0);
    
    DriverInit(&_sqr);
    Pa_Sleep(5000);
    DriverExit();
    return 0;
}
Example #3
0
/**
 ******************************************************************************
 ** Main application to control the program flow
 *****************************************************************************/
void main(void)
{
    // Initialize all interrupt levels of resources
    Vectors_InitIrqLevels();
    // Allow all interrupt levels
    __set_il(7);
    // Enable interrupts
    __EI();

 	Flash_EnableWriting();
 	InitLCD();
 	
 	#if ((SMC_TYPE != SMC_TYPE_R200) && (ZPD == ZPD_ENABLE))
 		ZPD_Init();	
 		//ќжидание окончани¤ ZPD
 		while (m_enSmcMode == Zpd)
 		{
			WDTCP = 0x00;    		
 		}
 	#else 	
	 	m_enSmcMode = NormalDriving;
	#endif

	InitSMC(20);
	Timer_Init();
	InitADC();
	InitRTC();
	
// ≈сли двигатель R200 или ZPD не активно
	#if ((SMC_TYPE == SMC_TYPE_R200) || (ZPD == ZPD_DISABLE))	
		ZeroPosSMC();
		Timer_Wait(TIMER_ID_MAIN, 2000, TRUE);  
	#endif
		
	ClearPosSMC();
	
	DriverInit();
	InitFRTimer0();
	InitExtInt0(); //test

	Init_4_imp();
	InitBacklight();
	Button_Init(ButtonCallback);
	CAN_Init();
	J1939_init();
	InitUsart0();
	
	if (Button_GetCurrentButtonState(BUTTON_ID_B1) == StateLow)
		SetModePass();	
    
    while(1)
    { 
    	WDTCP_ = 0x00;    	
    	Timer_Main();	      
    }   
}
Example #4
0
struct DriverBase*
_LibInit( struct DriverBase* AHIsubBase,
	  BPTR               seglist,
	  struct ExecBase*   sysbase )
{
  SysBase = sysbase;

  AHIsubBase->library.lib_Node.ln_Type = NT_LIBRARY;
  AHIsubBase->library.lib_Node.ln_Name = (STRPTR) LibName;
  AHIsubBase->library.lib_Flags        = LIBF_SUMUSED | LIBF_CHANGED;
  AHIsubBase->library.lib_Version      = VERSION;
  AHIsubBase->library.lib_Revision     = REVISION;
  AHIsubBase->library.lib_IdString     = (STRPTR) LibIDString;
  AHIsubBase->seglist                  = seglist;

  AHIsubBase->intuitionbase = OpenLibrary( INTUITIONNAME, 37 );
  AHIsubBase->utilitybase   = OpenLibrary( UTILITYNAME, 37 );

  if( IntuitionBase == NULL )
  {
    Alert( AN_Unknown|AG_OpenLib|AO_Intuition );
    goto error;
  }
  
  if( UtilityBase == NULL )
  {
    Req( "Unable to open 'utility.library' version 37.\n" );
    goto error;
  }

  if( ! DriverInit( AHIsubBase ) )
  {
    goto error;
  }


  return AHIsubBase;

error:
  _LibExpunge( AHIsubBase );
  return NULL;
}
Example #5
0
int main(void) {
    
    VectorRemap();
    LogInit();
    DriverInit();
    UpdateInfoSetVersion("0.0.2", "2016070510");
    NetWorkInit();
    //if (1 == SysInfoLockIDIsNull()) {
        //WT588DStartPlay(WT588D_CONTEX_LOCK_ASSOC_NONE);
    //}
    SYSLOG("System Normal Work\r\n");

    while (1) {
        DOG_FEED();
        ShellCmdRecv();
        DahuaRecv();
        NetWorkRecv();
        NetWorkSendHeart();
        NetWorkCheckHeart();
        KeyListened();
        PirCheck();
    }
}
/*
 * Starting point for SimpleFlightController
 */
int main(void) {

	printf("Starting Program\n");
	printf("initialize components...");
	DriverInit();

	INT8U err = OS_NO_ERR; //error variable for init errors

	/*
	 * create mutex and semaphores
	 */
	loggerQsem = OSQCreate((void*) &loggerQmessageTable, LOGGER_Q_SIZE); //create Message Queue for LOGGER

	sensorDataMutex = OSMutexCreate(SENSOR_DATA_MUTEX_PRIORITY, &err); // Used to synchronize Main task and SensorDataManager
	rcReceiverMutex = OSMutexCreate(RC_RECEIVER_MUTEX_PRIORITY, &err); // Used to synchronize Main task and RCTask

	mainTaskSem = OSSemCreate(0);		//used to make the MainTask periodic
	sensorDataManageTaskSem = OSSemCreate(0); //used to make the SensorDataMgr periodic
	rcTaskSem = OSSemCreate(0); 		//used to make the RcReciever periodic

	/*
	 * init state -> wait 2 seconds (alt_ticks_per_second() * 2) until every task starts
	 */
	alt_alarm_start(&periodicMainTaskAlarm, alt_ticks_per_second() * MAIN_TASK_DELAY,
			mainTasktimerCallback, NULL); // periodic timer for MainTask

	alt_alarm_start(&periodicRCReceiverTaskAlarm, alt_ticks_per_second() * RC_TASK_DELAY,
			RCReceiverTaskTasktimerCallback, NULL); // periodic timer for RCTask

	alt_alarm_start(&periodicSensorDataManagerTasktimerAlarm,
			alt_ticks_per_second() * SENSORDATA_TASK_DELAY, SensorDataManagerTasktimerCallback,
			NULL); // periodic timer for SensorDataManagerTask

	printf("Init done\n");

	/*
	 * create RCReceiver Task
	 */
	OSTaskCreateExt(RCReceiverTask,
	NULL, (void *) &RCReceiverTask_stk[TASK_STACKSIZE - 1],
	RC_TASK_PRIORITY,
	RC_TASK_PRIORITY, RCReceiverTask_stk,
	TASK_STACKSIZE,
	NULL, 0);

	/*
	 * create SensorDataManagerTask
	 * Task is in an external Task
	 * declared in SensorDataManager.h
	 */
	err = OSTaskCreateExt(SensorDataManagerTask,
	NULL, (void *) &SensorDataManagerTask_stk[TASK_STACKSIZE - 1],
	SDM_TASK_PRIORITY,
	SDM_TASK_PRIORITY, SensorDataManagerTask_stk,
	TASK_STACKSIZE,
	NULL, 0);

	/*
	 * create LoggerTask
	 */
	err = OSTaskCreateExt(LoggerTask,
	NULL, (void *) &LoggerTask_stk[TASK_STACKSIZE - 1],
	LOGGER_TASK_PRIORITY,
	LOGGER_TASK_PRIORITY, LoggerTask_stk,
	TASK_STACKSIZE,
	NULL, 0);

	/*
	 * create MainTask
	 */
	err = OSTaskCreateExt(MainTask,
	NULL, (void *) &MainTask_stk[TASK_STACKSIZE - 1],
	MAIN_TASK_PRIORITY,
	MAIN_TASK_PRIORITY, MainTask_stk,
	TASK_STACKSIZE,
	NULL, 0);

	OSStart();
	return 0;

}