This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/EK-TM4C1294XL: TI RTOS Wi-Fi driver issues with PORTL as IRQ

Part Number: EK-TM4C1294XL
Other Parts Discussed in Thread: CC3100

Tool/software: TI-RTOS

Dear All,

I hope you are doing fine.

I am working with TI CC3100 booster pack module  and before i continue with the question, given below is my code for Wi-Fi module configuration and  initialization. Please have a look at it.

WiFiCC3100_Object wiFiCC3100Objects[EK_TM4C1294XL_WIFICOUNT];

const WiFiCC3100_HWAttrs wiFiCC3100HWAttrs[EK_TM4C1294XL_WIFICOUNT] = {
{
.irqPort = GPIO_PORTC_BASE,
.irqPin = GPIO_PIN_6,
.irqIntNum = INT_GPIOC,

.csPort = GPIO_PORTB_BASE,
.csPin = GPIO_PIN_4,

.enPort = GPIO_PORTC_BASE,
.enPin = GPIO_PIN_7
}
};

const WiFi_Config WiFi_config[] = {
{
.fxnTablePtr = &WiFiCC3100_fxnTable,
.object = &wiFiCC3100Objects[0],
.hwAttrs = &wiFiCC3100HWAttrs[0]
},
{NULL,NULL, NULL},
};

/*
* ======== EK_TM4C1294XL_initWiFi ========
*/
void EK_TM4C1294XL_initWiFi(void)
{
/* Configure EN & CS pins to disable CC3100 */
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_4);
GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_7);
GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_4, GPIO_PIN_4);
GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_7, 0);


/* Configure IRQ pin */
GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_6);
GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_6, GPIO_STRENGTH_2MA,
GPIO_PIN_TYPE_STD_WPD);
GPIOIntTypeSet(GPIO_PORTC_BASE, GPIO_PIN_6, GPIO_RISING_EDGE);

SPI_init();
EK_TM4C1294XL_initDMA();

WiFi_init();
}

After calling EK_TM4C1294XL_initWiFi(), the following code is used to start a TI RTOS WiFi driver instance.

// Initialize Wi-Fi parameters
WiFi_Params_init(&wifiSimpleLinkParams);
// Open Wi-Fi instance
wifiSimpleLinkHandle = WiFi_open(Board_WIFI, Board_WIFI_SPI, NULL, &wifiSimpleLinkParams);
// Validate Wi-Fi handle
if (!wifiSimpleLinkHandle)
{
// Abort
System_abort("Wi-Fi did not open");
}

Everything works fine with this code and i am able to access CC3100 booster pack module version information using  sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION, &pConfigOpt, &configLen, (unsigned char *)(&ver));.

Now, I need to change the irq port and pin for WiFi module from PORTC & pin #6 to PORTL & pin #5. The problem is that when i change .irqPort in wiFiCC3100HWAttrs to GPIO_PORTL_BASE and .irqIntNum to INT_GPIOL, my code crashes when executing "wifiSimpleLinkHandle = WiFi_open(Board_WIFI, Board_WIFI_SPI, NULL, &wifiSimpleLinkParams);". I looked into the code to find out exactly where the code is exiting. I found out that code crashes when call to following function is made in WiFiCC3100_open().

Hwi_construct(&(object->wifiHwi), hwAttrs->irqIntNum, hostDriverInterruptHandler, &hwiParams, NULL);

It would be really helpful if anyone who has encountered this problem before or has knowledge about it can share some thoughts.

Thanks,

Muhammad Shuaib