Firmwatre je vytvořen modifikací CustomHID příkladu poskytovaného společností STMicroelectronics.
originální CustomHID je v adresáři \\vyvoj\firmware\STM32_USB-FS-Device_Lib_V3.0.1\Project\Custom_HID\RVMDK\

/******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
* Author             : MCD Application Team
* Version            : V3.0.1
* Date               : 04/27/2009
* Description        : Custom HID demo main file
********************************************************************************
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

Popis hlavních modifikací jednotlivých zdrojových souborů:

usb_desc.c
	- HID Report deskriptory

usb_endp.c
	- upravena funkce void EP1_OUT_Callback(void)
	- obsluha komunikace USB

stm32f10x_it.c
	- přidána funkce void TIM4_IRQHandler(void)
	- obsluha přerušení čítače (generování)

hw_config.c
	- upravena funkce void USB_Interrupts_Config(void)
	- pridana inicializace globalního timeru TIM4

	- upravena funkce void GPIO_Configuration(void)
	- pridany inicializace I/O portů

	- přidána funkce void External_SRAM_config(void)
	- inicializace externí paměťové sběrnice FSMC

	- přidána void Timer_config(void)
	- inicializace čítače TIM4

	- přidána funkce void HW_init(void)
	- inicializace zařízení (odpojení výstupů atp.)

my_defs.c
	- definice délky reporů a USB bufferu
	- při zvětšení bufferu je potřeba změnit počáteční adresy Rx a Tx bufferu paměti EP1 v usb_conf.h 
	  sekce Buffer Descriptor Table
	- definice aliasů I/O pinů a portů.

Upozornění:
MCU generátoru je připojen k oscilátoru 16MHz, proto je nutné v debug módu nastavit příslušnou frekvenci 
(Project -> Oprions for target "STM3210E-EVAL" -> Target).

