We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Folks looking for quick guidence or willing to learn from other peoples expreiences.
I started a project over a 18 months ago and apart from the rtx and Fs the libs provided in the RL-ARM package were either flaky or there was next to no documetation on how to use all the libs together.
The project I have worked on basically data logs to a internal SD card using FS lib then when required the data is trasnferred to a USB memstick connected to the FS port of a stm32F205
I started the project using ST code for the USB and they had a project using FAT_FS so included that in.
Recently the USB has become very problematic by not working with random USB msd - by either not enumerating - getting to the stage where its enumerated but first data transfer fails or simply ends up in a USB ISR storm locking the project until a watchdog kicks in.
So after trying to compare the ST USB and drivers to Keil I noticed things seem to have moved on regards USB host examples for the STM32F2xx so converted the MSD_File host exmple to a RTX application ( so now its using the RTX, FS and USB libs).
Simply bodging all you do is take blinky and change the main in MSD_file to a task and create a task for it using its own stack.
IF you look in the MSD_file.c the main() is never blocked and will call usbh_engine_all(); as fast as it can run.
But since I have other tasks also requiring processor time ( display, CAN etc ) I need to either RoundRobin it or block it with a 0s_wait call or os_itv_wait ();
In discussion with another engineer I decided upon the os_itv_wait(); option and set the inteval period with os_itv_set (20); /** 20ms **/. I understand this was once used with trying to get the TCP lib working with RTX ( could be wrong)
So the question is is this interval too long or too short e.g. 20ms for the USB to operate reliably.
It seems to work well with 8 tasks running and the USB task being the higest priority. Are there any observations anyone would like to make ?