/* we install our own startup routine which sets up threads */ void cyg_user_start(void) { targetBoardInit(); TCInterruptInstallHandler (CYGNUM_HAL_INTERRUPT_WATCHDOG, &watchdogIsrHandler, NULL); #ifdef _PRMGR_INT TCInterruptInstallHandler (CYGNUM_HAL_INTERRUPT_PRMGR, &pmIsrHandler, NULL); #endif //_PRGGR_INT cyg_thread_create(20, init_thread_main, (cyg_addrword_t)0, "INIT Thread", (void *)init_thread_stack, 4096, &init_thread_handle, &init_thread); cyg_thread_resume(init_thread_handle); }
HRESULT avsIntInstallHandlers(void) { HRESULT hResult = NO_ERROR; hResult = TCInterruptInstallHandler (CYGNUM_HAL_INTERRUPT_AVS0, NULL, &avsIntEventHandler0); if (hResult != NO_ERROR) return hResult; hResult = TCInterruptInstallHandler (CYGNUM_HAL_INTERRUPT_AVS1, NULL, &avsIntEventHandler1); if (hResult != NO_ERROR) return hResult; hResult = TCInterruptInstallHandler (CYGNUM_HAL_INTERRUPT_AVS2, NULL, &avsIntEventHandler2); if (hResult != NO_ERROR) return hResult; return hResult; }
HRESULT i2cInitialize(void) { HRESULT hResult = NO_ERROR; //enabel trace to debug the startup. //sysTraceStart(0); MPTR(IC_INTR_MASK) = 0; //disable all i2c interrupt MPTR(IC_RX_TL) = 0; //rx threshhold to 1, to correct error in the databook hResult = TCSemaphoreOpenIRQ(&i2cBufSemId, 1); if (hResult != NO_ERROR) return hResult; hResult = TCSemaphoreOpenIRQ(&i2cCompleteSemId, 0); if (hResult != NO_ERROR) return hResult; TCInterruptInstallHandler(CYGNUM_HAL_INTERRUPT_I2C, NULL, i2cIntDsr); i2cSetup(I2C_7_BIT_ADDR, I2C_STANDARD_SPEED); #ifdef _CLI hResult += i2cInstallCLITools(); #endif return hResult; }
HRESULT grayEventInitialize(void) { HRESULT hResult = NO_ERROR; hResult = grayEventInitCallbacks(); if (hResult != NO_ERROR) return hResult; hResult = grayEventCreateMessageQueues(); if (hResult != NO_ERROR) return hResult; // Start gray threads grayEventResumeTasks(); #ifdef _GRAYINT_POLLING if (grayEventPollingEnable == FALSE) #endif //_GRAYINT_POLLING { //hResult = TCInterruptCreateGray(&grayIntEventHandler); TCInterruptInstallHandler(CYGNUM_HAL_INTERRUPT_GRAY, NULL, &grayIntEventHandler); if (hResult != NO_ERROR) return hResult; } grayEventInitialized = TRUE; return hResult; }
HRESULT spiInitialize(void) { //SYS_TRACE2(SYSDEBUG_TRACE_SPI, spiBufHead, spiBufTail); TCInterruptInstallHandler(CYGNUM_HAL_INTERRUPT_SPI, NULL, spiIntDsr); return NO_ERROR; }