/* * Class: edu_wpi_first_wpilibj_hal_SPIJNI * Method: spiInitialize * Signature: (B)V */ JNIEXPORT void JNICALL Java_edu_wpi_first_wpilibj_hal_SPIJNI_spiInitialize (JNIEnv * env, jclass, jbyte port) { SPIJNI_LOG(logDEBUG) << "Calling SPIJNI spiInitialize"; SPIJNI_LOG(logDEBUG) << "Port = " << (jint) port; int32_t status = 0; spiInitialize(port, &status); SPIJNI_LOG(logDEBUG) << "Status = " << status; CheckStatus(env, status); }
void test_spi_init() { spiConfig_t spiConfigIn; spiConfig_t spiConfigIn2; spiConfig_t spiConfigOut; spiConfigIn.frequency = 100000ULL; spiConfigIn.instance = SPI1; spiConfigIn.clockPhase = 1; spiConfigIn.clockPolarity = 0; spiInitialize(&spiConfigIn,NULL); spiConfigIn2.frequency = 500000ULL; spiConfigIn2.instance = SPI2; spiConfigIn2.clockPhase = 0; spiConfigIn2.clockPolarity = 1; // spiConfigOut should save last configuration (spiConfigIn) spiInitialize(&spiConfigIn2,&spiConfigOut); TEST_ASSERT_TRUE(spiConfigIn.frequency == spiConfigOut.frequency); TEST_ASSERT_TRUE(spiConfigIn.instance == spiConfigOut.instance); TEST_ASSERT_TRUE(spiConfigIn.clockPhase == spiConfigOut.clockPhase); TEST_ASSERT_TRUE(spiConfigIn.clockPolarity == spiConfigOut.clockPolarity); }
void test_spi_speed() { spiConfig_t spiConfigIn; spiConfigIn.frequency = 100000; spiConfigIn.instance = SPI1; spiConfigIn.clockPhase = 1; spiConfigIn.clockPolarity = 0; spiInitialize(&spiConfigIn,NULL); u32 actFrequency = 4000000ULL / (2*(SPI1BRGL+1)); if(actFrequency != spiConfigIn.frequency) printf("%ld instead of %ld\n",actFrequency,spiConfigIn.frequency); TEST_ASSERT_FLOAT_WITHIN(0.2,1.0,spiConfigIn.frequency/actFrequency); }
void targetSpiInit(void) { //Initialize the DICE II SPI module to use the following GPIO //MOSI = GPIO11 //MISO = GPIO12 //CLK = GPIO8 spiInitialize(11, 12, 8); //Create the two slave devices spiGetSlaveDevice(&cpldSSId); spiGetSlaveDevice(&codecSSId); //Configure each of the devices and the slave select call back. spiConfigure(0, SPI_SET_SS_ROUTINE, spi_slave_select); spiConfigure(codecSSId, SPI_RATE, (void *)SPI_SPEED); spiConfigure(codecSSId, SPI_WSIZE, (void *)SPI_WSIZE_16); spiConfigure(cpldSSId, SPI_RATE, (void *)SPI_SPEED); spiConfigure(cpldSSId, SPI_WSIZE, (void *)SPI_WSIZE_16); //at init time, let's talk to CPLD and initialize //read the CPLD version spiOpBlock(cpldSSId, CPLD_SPI_RD_CMD(CPLD_VER_REG,0), &cpldVer); if (cpldVer>=255) cpldVer = 0; cpldSupported = ((cpldVer >= 12) && (cpldVer < 128)); if (cpldSupported) { //Enable parallel mode and passthrough of SPI to both Codecs spiOpBlock(cpldSSId, CPLD_SPI_WR_CMD(CPLD_CTRL_REG, CPLD_CTRL_PAR_EN | CPLD_CTRL_CODEC_EN | CPLD_CTRL_SPI1_EN | CPLD_CTRL_SPI2_EN | CPLD_CTRL_USER_EN), NULL); //read the initial switches spiOpBlock(cpldSSId, CPLD_SPI_RD_CMD(CPLD_SW_REG,0), &initialSwitchSetting); } else initialSwitchSetting = 0x1; //Flash mode }
HRESULT mainInitialize(void) { HRESULT hResult = NO_ERROR; #ifdef _CLI hResult = cliSIOInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_CLI #if 1 //LM??? //Setting WWUID for this device lalSetWWUID(DEFAULT_DEVICE_ID_HIGH, DEFAULT_DEVICE_ID_LOW); #endif #ifdef _SYSDEBUG //sysDebugSetEnabled(SYSDEBUG_TRACE_SPS | SYSDEBUG_TRACE_FIS); #endif //_SYSDEBUG TCTaskingInitialize(); // Init kernel hResult = mainInitializeTasks(); if (hResult != NO_ERROR) return hResult; #ifdef _FIS { fisInitialize(); //Initialize fis early to be able to get environment settings hResult = envInitialize("setup"); //Initialize environment, assume settings image named "setup" if (hResult != NO_ERROR) { sysDebugPrintf("Could not initialize environment - will use default values\n"); } envGetEenvironmentLongDefault ("SERIAL_NO", &serialNo, MAX_PRODUCT_SERIAL); lalSetWWUID (GET_WWUID_HIGH, GET_WWUID_LOW(serialNo)); //ML:171106, per default JET uses PHY clock due to ADAT pulse width on DICE JR/Mini. //envGetEenvironmentLongDefault ("HPLL_CLK", &hpllClk, HPLL_CLK_HZ); //hpllSetClock(hpllClk); } #endif //_FIS #ifdef _CLI hResult = cliInitialize(); if (hResult != NO_ERROR) return hResult; hResult = cliBuiltInToolSetSplashCB(SplashCB); if (hResult != NO_ERROR) return hResult; hResult = cliBuiltInToolSetResetCB(StartBoot); if (hResult != NO_ERROR) return hResult; #ifdef _FIS hResult = envCliInstallTools(); if (hResult != NO_ERROR) return hResult; #endif //_FIS #endif //_CLI #ifdef _1394CORE hResult = lalInitialize1394(); // create the basic 1394 protocol (lal layer and below) if (hResult != NO_ERROR) return hResult; #endif //_1394CORE #ifdef _AVS hResult = avsInitialize(); if (hResult != NO_ERROR) return hResult; //#ifdef _CLI // hResult = avsTestCliInstallTools(); // if (hResult != NO_ERROR) return hResult; //#endif // _CLI #endif //_AVS #ifdef _CRB crbInitialize(); #endif #ifdef _IRM hResult = irmInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_IRM #ifdef _CMP hResult = cmpInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_CMP #ifdef _FCP hResult = fcpInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_FCP #ifdef _AVC hResult = avcInitialize(); if (hResult != NO_ERROR) return hResult; #if 1 //LM??? hResult = avcPanelInitialize(); if (hResult != NO_ERROR) return hResult; #endif #endif //_AVC #ifdef _EDS hResult = edsInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_EDS #ifdef _DRD hResult = drdInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_DRD #if defined (_AVC) && defined (_EDS) && defined (_DRD) hResult = avcAudioInitialize(); if (hResult != NO_ERROR) return hResult; hResult = avcMusicInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_AVC && _EDS && _DRD #ifdef _DTCP hResult = dtcpInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_DTCP #ifdef _PIONEERDVD hResult = pioneerDVDInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_PIONEERDVD #ifdef _REMOTEDVD hResult = remoteDVDInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_REMOTEDVD #ifdef _CLI_CB // How do we get rid of this, ML???? hResult = cliCBInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_CLI #ifdef _MLAN hResult = mLANInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_MLAN #ifdef _DICE_DRIVER hResult = diceDriverInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_DICE_DRIVER #if defined (_AVC) && defined (_EDS) && defined (_DRD) hResult = avcDriverInitialize(); if (hResult != NO_ERROR) return hResult; #endif // (_AVC) && defined (_EDS) && defined (_DRD) #ifdef _FRMWLOAD hResult = frmwLoadInitialize(); if (hResult != NO_ERROR) return hResult; frmwLoadSetResetCB(StartBoot); if (hResult != NO_ERROR) return hResult; #endif //_FRMWLOAD #ifdef _DALREMOTE hResult = RDALInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_DALREMOTE #ifdef _DICEJR hResult = diceInitialize(); if (hResult != NO_ERROR) return hResult; hResult = dalInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_DICE2 #ifdef _MEMTEST hResult = memTestInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_MEMTEST #ifdef _DSP #ifdef _CLI hResult = dspCliInitialize(); if (hResult != NO_ERROR) return hResult; #endif // _CLI #endif //_DSP #ifdef _GRAY // hResult = grayInitialize(); //LM??? grayInitialize called from cli command #ifdef _CLI hResult = grayCliInitialize(); if (hResult != NO_ERROR) return hResult; #endif // _CLI #endif //_GRAY #ifdef _CLI hResult = TCKernelCliInitialize(); if (hResult != NO_ERROR) return hResult; #endif //_CLI #ifdef _I2C i2cInitialize(); #endif //I2C #ifdef _DICE_TIMER2 diceTimer2Initialize(); #endif //_DICE_TIMER2 #ifdef _AML amlInitialize(); #endif //_DICE_TIMER2 #ifdef _SPI spiInitialize(); #endif hResult = myAppInitialize(); if (hResult != NO_ERROR) return hResult; TCTaskingStart(); return hResult; }