When I use RTFS and Upp together operating in different threads, in cases of large data transfers and saves Upp returns a general -1 error IOM_EBADIO and even if I do GIO_delete and try to reconfigure it, it fails (that time with -6, or IOM_EABORT). This only happens frequently when ~2MB of data are being continuously transferred across the Upp and subsequently saved with RTFS.
I'm using OMAPL138, specifically the DSP c6748, My project setup is:
- bios 5_42_01_09
- pspdrivers 01_30_01
- edma3_lld_01_11_03_01
- rtfs_1_10_02_32.
I've stripped it down to 3 threads, one TX Upp thread, one RX Upp, and one file writer. The Upp loopback is set up with GIO_create - params:
Upp_ChanParams uppChanparamB =
{
TRUE,
Upp_ChanSel_B,
Upp_bitWidth_8,
Upp_dataRate_SINGLE,
Upp_ChanMode_NORMAL,
Upp_dataPackFmt_RJZE,
75000000,
0xFFFF,
NULL,//uppCBOut, //EOL interrupt CB
NULL,
NULL, //Error CB
NULL,
Upp_fifoThreshold_64,
{
TRUE,
Upp_polarity_ACTIVE_HIGH,
TRUE,
Upp_polarity_ACTIVE_HIGH,
TRUE,
Upp_polarity_ACTIVE_HIGH,
Upp_clkPol_RISING_EDGE_SYNC,
Upp_PinIdleState_IDLE_VAL,
}
};
The Rx is setup to mirror that but using chanSel_A. The RTFS is setup the same as the example project under rtfs_1_10_02_32\packages\ti\rtfs\examples\mmcsd\bios5\evm6748.
Changing priorities hasn't seemed to help, every configuration I've tried still results in the error. I'm suspicious that both the Upp GIO driver and RTFS are using EDMA and possibly stomping each others PINMUX or something like that but I haven't been able to track it down. Any help would be greatly appreciated!