Hi Martin
That is critical information about the even priorities; I never knew that and must have missed it in the MQX doc set.
Yes we are using MQX and it's native USB stack.
We install the vectors via mqx, but setup via C for both the FTM0, PIT0, here is the init for FTM0 and PIT0. Please note the setting of the priorities... an attempt to see if the priorities would have an impact on the USB irq recognition. But it either doesn't or we have the wrong priorities. Can you recommend a priority schema? We have low frequency interrupts < 2.5k for the FTM0 and the same for the PIT0. We are primarily concerned about the USB or lack thereof. What I have observed is that the cheaper flashdrives appear to take longer for startup sequencing before becoming ready. That is I think the flash drive controller is slow and takes varying amounts of time to come online depending on the flash drive vendors choice of USB controller. But I thought that the call backs would not register from the USB until the controller was definitely ready? Do you think that this is an invalid assumption. Maybe just the physical interface being plugged in (ie flash drive inserted) triggers the device ready for the MQX stack and it gets out of sync from there on?
We did not use the kernel form of the install... should we? We are running the vector table out of RAM because the boot loader is always loaded and uses the ROM vector table.
void vFn_FTM0_PIT0_ISR_Install (void){
//~~~~~~~~~~~~~~~~~~~~~~ Install FTM0 ISR Vectors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_int_install_isr (INT_FTM0, FreqCapture_Interrupt, 0); // install ISR for FTM0, only one interrupt for entire timer, sets NVIC
_bsp_int_init ((IRQInterruptIndex)INT_FTM0, 4, 0, TRUE); // sets priority of interrupts, loads vector table
_bsp_int_enable ((IRQInterruptIndex)INT_FTM0); // enables interrupt
//~~~~~~~~~~~~~~~~~~~~~~ Install PIT0 ISR Vectors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_int_install_isr (INT_PIT0, FreqOut_Interrupt, 0); // install ISR for FTM0, only one interrupt for entire timer, sets NVIC
_bsp_int_init ((IRQInterruptIndex)INT_PIT0, 4, 0, TRUE); // sets priority of interrupts, loads vector table
_bsp_int_enable ((IRQInterruptIndex)INT_PIT0); // enables interrupt
return;
}
Thank you for responding.
Regards
Robert