I'm looking for a firmware engineer who can save me a bit of time writing a very small C based project using existing software examples provided by the micro controller manufacturer. This project is to develop a C source code example demonstrating switch based control of loading one of three of the ST Microelectronics supplied USB device drivers. Basically, depending on the switch that is enabled, the project would load either a HID, CDC comm port, or DFU driver. The microcontroller target is the STM32F303 and your work would be confirmed and must run on the STM32F3DISCOVERY. Here are specific requirements:
- The software shall be developed to run on the STM32F3DISCOVERY development board.
- The software shall utilize the current revision STM32F3xx USB full speed device library and peripheral library.
- Upon start-up, the software shall read a 2 position dip switch and load one of three of the already written STM32F3xx USB full speed device drivers.
- Each of the three USB device classes shall have a separate descriptor file.
- When the dip switch is the value 0, the software shall load the Custom HID driver with a VID of 0x1000 and PID of 0x1001.
- When the dip switch is the value 1, the software shall load a CDC class virtual serial port driver with a VID of 0x1000 and PID of 0x1002.
- When the dip switch is the value 2 or 3, the software shall load the STM DFU class driver with a VID of 0x1001 and PID of 0x1003.
- The software shall compile on MDK-ARM [url removed, login to view] and without warning or errors.
- All USB device classes must be enumerated and recognized on a windows based PC without error.
- The deliverable shall be the source code and project files that I will compile and then run on my STM32F3DISCOVERY development board.
Please note this is not one composite device driver, but the loading of one of three possible device drivers. No composite driver functionality is necessary.