diff --git a/CHANGELOG b/CHANGELOG index 813815f..3a4442a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,11 @@ +20140718 3.5.2 + - Fix blank SCSI ID in scsi2sd-config output. + +20140717 3.5.1 + - Allow building utilities on older Linux distros + - Resolve missing DLL issues for the Windows utilities + - Fix scsi2sd-config crash on Mac. + 20140713 3.5 - Fixed several performance issues. Transfer rates up to 2.5MB/s are now possible. diff --git a/software/SCSI2SD/src/config.c b/software/SCSI2SD/src/config.c index f55f444..81fdef0 100755 --- a/software/SCSI2SD/src/config.c +++ b/software/SCSI2SD/src/config.c @@ -28,7 +28,7 @@ // CYDEV_EEPROM_ROW_SIZE == 16. static const char magic[CYDEV_EEPROM_ROW_SIZE] = "codesrc_00000002"; -static const uint16_t FIRMWARE_VERSION = 0x0350; +static const uint16_t FIRMWARE_VERSION = 0x0352; // Config shadow RAM (copy of EEPROM) static Config shadow = diff --git a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h old mode 100755 new mode 100644 index 8858b47..e178fc2 --- a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h +++ b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h @@ -83,8 +83,10 @@ #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_NUM_OUT_RPTS (1u) #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_COUNT (1u) #define USBFS_ENABLE_HID_CLASS -#define USBFS_HID_RPT_1_SIZE_LSB (0x24u) +#define USBFS_HID_RPT_1_SIZE_LSB (0x25u) #define USBFS_HID_RPT_1_SIZE_MSB (0x00u) +#define USBFS_HID_RPT_2_SIZE_LSB (0x25u) +#define USBFS_HID_RPT_2_SIZE_MSB (0x00u) #define USBFS_MAX_REPORTID_NUMBER (0u) #define USBFS_MON_VBUS (0u) diff --git a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c index f06085b..00c6505 100644 --- a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c +++ b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c @@ -126,8 +126,8 @@ const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[73u] = { /* bCountryCode */ 0x00u, /* bNumDescriptors */ 0x01u, /* bDescriptorType */ 0x22u, -/* wDescriptorLength (LSB) */ USBFS_HID_RPT_1_SIZE_LSB, -/* wDescriptorLength (MSB) */ USBFS_HID_RPT_1_SIZE_MSB, +/* wDescriptorLength (LSB) */ USBFS_HID_RPT_2_SIZE_LSB, +/* wDescriptorLength (MSB) */ USBFS_HID_RPT_2_SIZE_MSB, /********************************************************************* * Endpoint Descriptor *********************************************************************/ @@ -187,12 +187,12 @@ const uint8 CYCODE USBFS_SN_STRING_DESCRIPTOR[10] = { }; /********************************************************************* -* HID Report Descriptor: Generic HID +* HID Report Descriptor: Generic HID - Vendor FF00 *********************************************************************/ -const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[40u] = { +const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[41u] = { /* Descriptor Size (Not part of descriptor)*/ USBFS_HID_RPT_1_SIZE_LSB, USBFS_HID_RPT_1_SIZE_MSB, -/* USAGE_PAGE */ 0x05u, 0x01u, +/* USAGE_PAGE */ 0x06u, 0x00u, 0xFFu, /* USAGE */ 0x09u, 0x00u, /* COLLECTION */ 0xA1u, 0x00u, /* USAGE */ 0x09u, 0x00u, @@ -214,6 +214,34 @@ USBFS_HID_RPT_1_SIZE_MSB, /*********************************************************************/ /* End of the HID Report Descriptor */ 0x00u, 0x00u}; /*********************************************************************/ +/********************************************************************* +* HID Report Descriptor: Generic HID - Vendor FF01 +*********************************************************************/ +const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR2[41u] = { +/* Descriptor Size (Not part of descriptor)*/ USBFS_HID_RPT_2_SIZE_LSB, +USBFS_HID_RPT_2_SIZE_MSB, +/* USAGE_PAGE */ 0x06u, 0x01u, 0xFFu, +/* USAGE */ 0x09u, 0x01u, +/* COLLECTION */ 0xA1u, 0x00u, +/* USAGE */ 0x09u, 0x00u, +/* COLLECTION */ 0xA1u, 0x00u, +/* USAGE */ 0x09u, 0x00u, +/* LOGICAL_MINIMUM */ 0x15u, 0x00u, +/* LOGICAL_MAXIMUM */ 0x25u, 0xFFu, +/* REPORT_SIZE */ 0x75u, 0x08u, +/* REPORT_COUNT */ 0x95u, 0x40u, +/* OUTPUT */ 0x91u, 0x02u, +/* USAGE */ 0x09u, 0x00u, +/* LOGICAL_MINIMUM */ 0x15u, 0x00u, +/* LOGICAL_MAXIMUM */ 0x25u, 0xFFu, +/* REPORT_SIZE */ 0x75u, 0x08u, +/* REPORT_COUNT */ 0x95u, 0x40u, +/* INPUT */ 0x81u, 0x02u, +/* END_COLLECTION */ 0xC0u, +/* END_COLLECTION */ 0xC0u, +/*********************************************************************/ +/* End of the HID Report Descriptor */ 0x00u, 0x00u}; +/*********************************************************************/ #if !defined(USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_HID_RPT_STORAGE) /********************************************************************* @@ -305,7 +333,7 @@ const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_ {0x00u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_TABLE}, {0x00u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_TABLE}, {0x00u, NULL}, - {0x01u, (const void *)&USBFS_HIDREPORT_DESCRIPTOR1[0]}, + {0x01u, (const void *)&USBFS_HIDREPORT_DESCRIPTOR2[0]}, {0x01u, (const void *)&USBFS_DEVICE0_CONFIGURATION0_DESCR[50]} }; #endif /* USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_HID_RPT_STORAGE */ diff --git a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h old mode 100755 new mode 100644 index d344831..db14e05 --- a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h +++ b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h @@ -48,7 +48,8 @@ extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF[ extern T_USBFS_XFER_STATUS_BLOCK USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_SCB; extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF[ USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF_SIZE]; -extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[40u]; +extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[41u]; +extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR2[41u]; extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_IN_RPT_TABLE[1u]; extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_RPT_TABLE[1u]; extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_TABLE[5u]; diff --git a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c index 3a96596..65a8d8b 100644 --- a/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c +++ b/software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c @@ -28,7 +28,7 @@ __attribute__ ((__section__(".cyloadablemeta"), used)) const uint8 cy_meta_loadable[] = { 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x50u, 0x03u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x52u, 0x03u, 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, diff --git a/software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit b/software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit index 439ad96..81519e1 100644 Binary files a/software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit and b/software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit differ diff --git a/software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch b/software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch index 33241b8..f676ffa 100755 Binary files a/software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch and b/software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch differ diff --git a/software/SCSI2SD/v3/USB_Bootloader.cydsn/Generated_Source/PSoCCreatorExportIDE.xml b/software/SCSI2SD/v3/USB_Bootloader.cydsn/Generated_Source/PSoCCreatorExportIDE.xml index 32c4791..2530471 100755 --- a/software/SCSI2SD/v3/USB_Bootloader.cydsn/Generated_Source/PSoCCreatorExportIDE.xml +++ b/software/SCSI2SD/v3/USB_Bootloader.cydsn/Generated_Source/PSoCCreatorExportIDE.xml @@ -18,7 +18,7 @@ - + USB_Bootloader.svd @@ -27,13 +27,13 @@ .\Generated_Source\PSoC5\Cm3Iar.icf - - + + .\main.c - - + + .\Generated_Source\PSoC5\cyfitter_cfg.h .\Generated_Source\PSoC5\cyfitter_cfg.c .\Generated_Source\PSoC5\cymetadata.c @@ -111,41 +111,41 @@ .\Generated_Source\PSoC5\libelf.dll - - + + .\Generated_Source\PSoC5\ARM_GCC\CyComponentLibrary.a - - + + .\Generated_Source\PSoC5\ARM_Keil_MDK\CyComponentLibrary.a - - + + .\Generated_Source\PSoC5\IAR\CyComponentLibrary.a - + - + - + - + - + - + - + diff --git a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyfit b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyfit index bd169b6..d405b9e 100644 Binary files a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyfit and b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyfit differ diff --git a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyprj.Micha_000 b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyprj.Micha_000 index b20fabc..718dd0a 100755 --- a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyprj.Micha_000 +++ b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyprj.Micha_000 @@ -119,43 +119,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -402,6 +365,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1080,6 +1080,7 @@ + @@ -1113,7 +1114,7 @@ - + @@ -1666,14 +1667,14 @@ C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\rtlpkg.vif - + - + diff --git a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.rpt b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.rpt index 0dd5397..0408db3 100644 --- a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.rpt +++ b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.rpt @@ -1,13 +1,13 @@ -Loading plugins phase: Elapsed time ==> 0s.663ms -Initializing data phase: Elapsed time ==> 5s.693ms +Loading plugins phase: Elapsed time ==> 0s.484ms +Initializing data phase: Elapsed time ==> 4s.047ms -cydsfit arguments: -.fdsnotice -.fdswarpdepfile=warp_dependencies.txt -.fdselabdepfile=elab_dependencies.txt -.fdsbldfile=generated_files.txt -p Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 -s Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5 -- -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE +cydsfit arguments: -.fdsnotice -.fdswarpdepfile=warp_dependencies.txt -.fdselabdepfile=elab_dependencies.txt -.fdsbldfile=generated_files.txt -p Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 -s Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5 -- -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -Elaboration phase: Elapsed time ==> 9s.252ms +Elaboration phase: Elapsed time ==> 7s.623ms -HDL generation phase: Elapsed time ==> 0s.756ms +HDL generation phase: Elapsed time ==> 0s.655ms | | | | | | | @@ -25,23 +25,23 @@ HDL generation phase: Elapsed time ==> 0s.756ms ====================================================================== Compiling: USB_Bootloader.v Program : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe -Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog +Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog ====================================================================== ====================================================================== Compiling: USB_Bootloader.v Program : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe -Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog +Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog ====================================================================== ====================================================================== Compiling: USB_Bootloader.v Program : vlogfe -Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v +Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v ====================================================================== vlogfe V6.3 IR 41: Verilog parser -Fri Jul 11 23:34:40 2014 +Sun Jul 20 15:00:50 2014 ====================================================================== @@ -51,7 +51,7 @@ Options : -yv2 -q10 USB_Bootloader.v ====================================================================== vpp V6.3 IR 41: Verilog Pre-Processor -Fri Jul 11 23:34:40 2014 +Sun Jul 20 15:00:50 2014 vpp: No errors. @@ -76,11 +76,11 @@ vlogfe: No errors. ====================================================================== Compiling: USB_Bootloader.v Program : tovif -Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v +Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v ====================================================================== tovif V6.3 IR 41: High-level synthesis -Fri Jul 11 23:34:41 2014 +Sun Jul 20 15:00:51 2014 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\std.vhd'. Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\cypress.vhd'. @@ -91,8 +91,8 @@ Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\c Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_cnst.vif'. Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_mthv.vif'. Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif'. -Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'. -Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'. +Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'. +Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'. tovif: No errors. @@ -100,11 +100,11 @@ tovif: No errors. ====================================================================== Compiling: USB_Bootloader.v Program : topld -Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v +Options : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 -verilog USB_Bootloader.v ====================================================================== topld V6.3 IR 41: Synthesis and optimization -Fri Jul 11 23:34:43 2014 +Sun Jul 20 15:00:52 2014 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\std.vhd'. Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\cypress.vhd'. @@ -115,8 +115,8 @@ Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\c Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_cnst.vif'. Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_mthv.vif'. Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif'. -Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'. -Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'. +Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'. +Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'. Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\lcpsoc3\stdlogic\cpsoc3.vif'. ---------------------------------------------------------- @@ -202,16 +202,16 @@ topld: No errors. CYPRESS_DIR : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp Warp Program : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe -Warp Arguments : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog +Warp Arguments : -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -dcpsoc3 USB_Bootloader.v -verilog -Warp synthesis phase: Elapsed time ==> 9s.922ms +Warp synthesis phase: Elapsed time ==> 8s.781ms -cyp3fit: V3.0.0.1539, Family: PSoC3, Started at: Friday, 11 July 2014 23:34:49 -Options: -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 USB_Bootloader.v -verilog +cyp3fit: V3.0.0.1539, Family: PSoC3, Started at: Sunday, 20 July 2014 15:00:57 +Options: -yv2 -v3 -ygs -q10 -o2 -.fftcfgtype=LE -ya -.fftprj=Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj -d CY8C5267AXI-LP051 USB_Bootloader.v -verilog -Design parsing phase: Elapsed time ==> 0s.152ms +Design parsing phase: Elapsed time ==> 0s.031ms @@ -1314,8 +1314,8 @@ EMIF Fixed Blocks : 0 : 1 : 1 : 0.00% LPF Fixed Blocks : 0 : 2 : 2 : 0.00% SAR Fixed Blocks : 0 : 1 : 1 : 0.00% -Technology Mapping: Elapsed time ==> 0s.414ms -Tech mapping phase: Elapsed time ==> 0s.690ms +Technology Mapping: Elapsed time ==> 0s.406ms +Tech mapping phase: Elapsed time ==> 0s.687ms Initial Analog Placement Results: @@ -1345,10 +1345,10 @@ IO_5@[IOP=(3)][IoId=(5)] : SD_PULLUP(4) (fixed) IO_7@[IOP=(15)][IoId=(7)] : \USBFS:Dm(0)\ (fixed) IO_6@[IOP=(15)][IoId=(6)] : \USBFS:Dp(0)\ (fixed) USB[0]@[FFB(USB,0)] : \USBFS:USB\ -Analog Placement phase: Elapsed time ==> 0s.169ms +Analog Placement phase: Elapsed time ==> 0s.094ms -Analog Routing phase: Elapsed time ==> 0s.001ms +Analog Routing phase: Elapsed time ==> 0s.000ms ============ Analog Final Answer Routes ============ @@ -1363,29 +1363,29 @@ Dump of CyP35AnalogRoutingResultsDB IsVddaHalfUsedForComp = False IsVddaHalfUsedForSar0 = False IsVddaHalfUsedForSar1 = False -Analog Code Generation phase: Elapsed time ==> 1s.579ms +Analog Code Generation phase: Elapsed time ==> 1s.405ms I2659: No Constrained paths were found. The placer will run in non-timing driven mode. -I2076: Total run-time: 5.4 sec. +I2076: Total run-time: 5.3 sec. No PLDs were packed. -PLD Packing: Elapsed time ==> 0s.005ms +PLD Packing: Elapsed time ==> 0s.000ms Initial Partitioning Summary not displayed at this verbose level. Final Partitioning Summary not displayed at this verbose level. -Partitioning: Elapsed time ==> 0s.088ms +Partitioning: Elapsed time ==> 0s.079ms -Annealing: Elapsed time ==> 0s.003ms +Annealing: Elapsed time ==> 0s.000ms The seed used for moves was 114161200. Inital cost was 120, final cost is 120 (0.00% improvement). @@ -2664,32 +2664,32 @@ Port | Pin | Fixed | Type | Drive Mode | Name | Connection -Digital component placer commit/Report: Elapsed time ==> 0s.381ms -Digital Placement phase: Elapsed time ==> 9s.177ms +Digital component placer commit/Report: Elapsed time ==> 0s.373ms +Digital Placement phase: Elapsed time ==> 9s.093ms Routing successful. -Digital Routing phase: Elapsed time ==> 11s.165ms +Digital Routing phase: Elapsed time ==> 8s.703ms -Bitstream and API generation phase: Elapsed time ==> 25s.258ms +Bitstream and API generation phase: Elapsed time ==> 25s.515ms -Bitstream verification phase: Elapsed time ==> 0s.188ms +Bitstream verification phase: Elapsed time ==> 0s.125ms Timing report is in USB_Bootloader_timing.html. -Static timing analysis phase: Elapsed time ==> 3s.834ms +Static timing analysis phase: Elapsed time ==> 3s.999ms Data reporting phase: Elapsed time ==> 0s.000ms -Design database save phase: Elapsed time ==> 0s.664ms +Design database save phase: Elapsed time ==> 0s.734ms -cydsfit: Elapsed time ==> 53s.302ms +cydsfit: Elapsed time ==> 50s.735ms -Fitter phase: Elapsed time ==> 53s.394ms -API generation phase: Elapsed time ==> 23s.082ms -Dependency generation phase: Elapsed time ==> 1s.067ms -Cleanup phase: Elapsed time ==> 0s.811ms +Fitter phase: Elapsed time ==> 50s.829ms +API generation phase: Elapsed time ==> 23s.686ms +Dependency generation phase: Elapsed time ==> 0s.859ms +Cleanup phase: Elapsed time ==> 0s.609ms diff --git a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader_timing.html b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader_timing.html index 38df0b8..8b6a5f5 100644 --- a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader_timing.html +++ b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader_timing.html @@ -539,7 +539,7 @@ function getElementsByClass(rootNode, elemName, className) Project : USB_Bootloader Build Time : - 07/11/14 23:35:41 + 07/20/14 15:01:46 Device : CY8C5267AXI-LP051 Temperature : diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h index 911a243..5392bd6 100644 --- a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h +++ b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h @@ -83,8 +83,10 @@ #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_NUM_OUT_RPTS (1u) #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_COUNT (1u) #define USBFS_ENABLE_HID_CLASS -#define USBFS_HID_RPT_1_SIZE_LSB (0x24u) +#define USBFS_HID_RPT_1_SIZE_LSB (0x25u) #define USBFS_HID_RPT_1_SIZE_MSB (0x00u) +#define USBFS_HID_RPT_2_SIZE_LSB (0x25u) +#define USBFS_HID_RPT_2_SIZE_MSB (0x00u) #define USBFS_MAX_REPORTID_NUMBER (0u) #define USBFS_MON_VBUS (0u) diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c index 29ed72b..196f01c 100644 --- a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c +++ b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c @@ -126,8 +126,8 @@ const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[73u] = { /* bCountryCode */ 0x00u, /* bNumDescriptors */ 0x01u, /* bDescriptorType */ 0x22u, -/* wDescriptorLength (LSB) */ USBFS_HID_RPT_1_SIZE_LSB, -/* wDescriptorLength (MSB) */ USBFS_HID_RPT_1_SIZE_MSB, +/* wDescriptorLength (LSB) */ USBFS_HID_RPT_2_SIZE_LSB, +/* wDescriptorLength (MSB) */ USBFS_HID_RPT_2_SIZE_MSB, /********************************************************************* * Endpoint Descriptor *********************************************************************/ @@ -187,12 +187,12 @@ const uint8 CYCODE USBFS_SN_STRING_DESCRIPTOR[10] = { }; /********************************************************************* -* HID Report Descriptor: Generic HID +* HID Report Descriptor: Generic HID - Vendor FF00 *********************************************************************/ -const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[40u] = { +const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[41u] = { /* Descriptor Size (Not part of descriptor)*/ USBFS_HID_RPT_1_SIZE_LSB, USBFS_HID_RPT_1_SIZE_MSB, -/* USAGE_PAGE */ 0x05u, 0x01u, +/* USAGE_PAGE */ 0x06u, 0x00u, 0xFFu, /* USAGE */ 0x09u, 0x00u, /* COLLECTION */ 0xA1u, 0x00u, /* USAGE */ 0x09u, 0x00u, @@ -214,6 +214,34 @@ USBFS_HID_RPT_1_SIZE_MSB, /*********************************************************************/ /* End of the HID Report Descriptor */ 0x00u, 0x00u}; /*********************************************************************/ +/********************************************************************* +* HID Report Descriptor: Generic HID - Vendor FF01 +*********************************************************************/ +const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR2[41u] = { +/* Descriptor Size (Not part of descriptor)*/ USBFS_HID_RPT_2_SIZE_LSB, +USBFS_HID_RPT_2_SIZE_MSB, +/* USAGE_PAGE */ 0x06u, 0x01u, 0xFFu, +/* USAGE */ 0x09u, 0x01u, +/* COLLECTION */ 0xA1u, 0x00u, +/* USAGE */ 0x09u, 0x00u, +/* COLLECTION */ 0xA1u, 0x00u, +/* USAGE */ 0x09u, 0x00u, +/* LOGICAL_MINIMUM */ 0x15u, 0x00u, +/* LOGICAL_MAXIMUM */ 0x25u, 0xFFu, +/* REPORT_SIZE */ 0x75u, 0x08u, +/* REPORT_COUNT */ 0x95u, 0x40u, +/* OUTPUT */ 0x91u, 0x02u, +/* USAGE */ 0x09u, 0x00u, +/* LOGICAL_MINIMUM */ 0x15u, 0x00u, +/* LOGICAL_MAXIMUM */ 0x25u, 0xFFu, +/* REPORT_SIZE */ 0x75u, 0x08u, +/* REPORT_COUNT */ 0x95u, 0x40u, +/* INPUT */ 0x81u, 0x02u, +/* END_COLLECTION */ 0xC0u, +/* END_COLLECTION */ 0xC0u, +/*********************************************************************/ +/* End of the HID Report Descriptor */ 0x00u, 0x00u}; +/*********************************************************************/ #if !defined(USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_HID_RPT_STORAGE) /********************************************************************* @@ -305,7 +333,7 @@ const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_ {0x00u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_RPT_TABLE}, {0x00u, &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_TABLE}, {0x00u, NULL}, - {0x01u, (const void *)&USBFS_HIDREPORT_DESCRIPTOR1[0]}, + {0x01u, (const void *)&USBFS_HIDREPORT_DESCRIPTOR2[0]}, {0x01u, (const void *)&USBFS_DEVICE0_CONFIGURATION0_DESCR[50]} }; #endif /* USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_HID_RPT_STORAGE */ diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h index bb5f7fb..6c332ee 100644 --- a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h +++ b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h @@ -48,7 +48,8 @@ extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_IN_BUF[ extern T_USBFS_XFER_STATUS_BLOCK USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_SCB; extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF[ USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF_SIZE]; -extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[40u]; +extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[41u]; +extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR2[41u]; extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_IN_RPT_TABLE[1u]; extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_RPT_TABLE[1u]; extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_TABLE[5u]; diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cybootloader.c b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cybootloader.c index 9271af7..b4ea4da 100644 --- a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cybootloader.c +++ b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cybootloader.c @@ -31,18 +31,18 @@ const uint8 cy_bootloader[] = { 0x00u, 0x40u, 0x00u, 0x20u, 0x11u, 0x00u, 0x00u, 0x00u, 0x59u, 0x01u, 0x00u, 0x00u, 0x59u, 0x01u, 0x00u, 0x00u, 0x08u, 0xB5u, 0x04u, 0x4Bu, 0x04u, 0x48u, 0x1Au, 0x68u, - 0x02u, 0x60u, 0x00u, 0xF0u, 0x53u, 0xFCu, 0x00u, 0xF0u, + 0x02u, 0x60u, 0x00u, 0xF0u, 0x87u, 0xFCu, 0x00u, 0xF0u, 0x9Du, 0xF8u, 0x00u, 0xBFu, 0xFAu, 0x46u, 0x00u, 0x40u, 0xBCu, 0x76u, 0x00u, 0x40u, 0x10u, 0xB5u, 0x05u, 0x4Cu, 0x23u, 0x78u, 0x33u, 0xB9u, 0x04u, 0x48u, 0x10u, 0xB1u, 0x04u, 0x48u, 0xAFu, 0xF3u, 0x00u, 0x80u, 0x01u, 0x21u, 0x21u, 0x70u, 0x10u, 0xBDu, 0x28u, 0xC1u, 0xFFu, 0x1Fu, - 0x00u, 0x00u, 0x00u, 0x00u, 0xBCu, 0x1Fu, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x24u, 0x20u, 0x00u, 0x00u, 0x08u, 0xB5u, 0x06u, 0x4Bu, 0x1Bu, 0xB1u, 0x06u, 0x48u, 0x06u, 0x49u, 0xAFu, 0xF3u, 0x00u, 0x80u, 0x06u, 0x48u, 0x01u, 0x68u, 0x11u, 0xB1u, 0x05u, 0x4Au, 0x02u, 0xB1u, 0x90u, 0x47u, 0x08u, 0xBDu, 0x00u, 0x00u, 0x00u, 0x00u, - 0xBCu, 0x1Fu, 0x00u, 0x00u, 0x2Cu, 0xC1u, 0xFFu, 0x1Fu, + 0x24u, 0x20u, 0x00u, 0x00u, 0x2Cu, 0xC1u, 0xFFu, 0x1Fu, 0x08u, 0xC1u, 0xFFu, 0x1Fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x08u, 0xB5u, 0x34u, 0x4Bu, 0x1Au, 0x78u, 0x02u, 0xF0u, 0xFEu, 0x00u, 0x18u, 0x70u, 0x93u, 0xF8u, 0x7Au, 0x10u, @@ -70,7 +70,7 @@ const uint8 cy_bootloader[] = { 0x16u, 0x1Cu, 0x01u, 0xF0u, 0xFEu, 0x02u, 0x03u, 0xF8u, 0x16u, 0x2Cu, 0x93u, 0xF8u, 0x55u, 0x00u, 0x00u, 0xF0u, 0xFEu, 0x01u, 0x83u, 0xF8u, 0x55u, 0x10u, 0x00u, 0xF0u, - 0xEBu, 0xF9u, 0xFEu, 0xE7u, 0x02u, 0x50u, 0x00u, 0x40u, + 0xADu, 0xFBu, 0xFEu, 0xE7u, 0x02u, 0x50u, 0x00u, 0x40u, 0xFEu, 0xE7u, 0x00u, 0x00u, 0x08u, 0xB5u, 0x12u, 0x49u, 0x12u, 0x4Bu, 0x4Au, 0x1Cu, 0x1Au, 0xD0u, 0x53u, 0xF8u, 0x10u, 0x6Cu, 0x53u, 0xF8u, 0x0Cu, 0x0Cu, 0x53u, 0xF8u, @@ -79,9 +79,9 @@ const uint8 cy_bootloader[] = { 0x04u, 0x32u, 0xF7u, 0xE7u, 0x53u, 0xF8u, 0x04u, 0x0Cu, 0x00u, 0x22u, 0x82u, 0x42u, 0x03u, 0xD0u, 0x00u, 0x25u, 0xA5u, 0x50u, 0x04u, 0x32u, 0xF9u, 0xE7u, 0x01u, 0x39u, - 0x10u, 0x33u, 0xE2u, 0xE7u, 0x01u, 0xF0u, 0xD2u, 0xFEu, + 0x10u, 0x33u, 0xE2u, 0xE7u, 0x01u, 0xF0u, 0x06u, 0xFFu, 0xFFu, 0xF7u, 0x6Eu, 0xFFu, 0xFEu, 0xE7u, 0x00u, 0xBFu, - 0x00u, 0x00u, 0x00u, 0x00u, 0x18u, 0x22u, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x80u, 0x22u, 0x00u, 0x00u, 0x08u, 0xB5u, 0x10u, 0x4Au, 0x10u, 0x4Bu, 0x1Au, 0x60u, 0x98u, 0x68u, 0x40u, 0xF4u, 0x00u, 0x72u, 0x9Au, 0x60u, 0x00u, 0x23u, 0x03u, 0x2Bu, 0x96u, 0xBFu, 0x0Du, 0x4Au, @@ -104,7 +104,7 @@ const uint8 cy_bootloader[] = { 0x00u, 0x24u, 0x23u, 0xF8u, 0x02u, 0x1Cu, 0x5Fu, 0x4Eu, 0x4Fu, 0xF4u, 0xF0u, 0x70u, 0x37u, 0x78u, 0x07u, 0xF0u, 0x01u, 0x02u, 0x42u, 0xEAu, 0x44u, 0x04u, 0x00u, 0xF0u, - 0x4Bu, 0xFBu, 0x01u, 0x3Du, 0x04u, 0xF0u, 0x03u, 0x04u, + 0x7Fu, 0xFBu, 0x01u, 0x3Du, 0x04u, 0xF0u, 0x03u, 0x04u, 0x17u, 0xD0u, 0x03u, 0x2Cu, 0xEFu, 0xD1u, 0x58u, 0x48u, 0x58u, 0x4Fu, 0x00u, 0x26u, 0x4Fu, 0xF4u, 0x80u, 0x73u, 0x57u, 0x4Du, 0x07u, 0x21u, 0x48u, 0x22u, 0x02u, 0x24u, @@ -113,7 +113,7 @@ const uint8 cy_bootloader[] = { 0x28u, 0x78u, 0x40u, 0xF0u, 0x04u, 0x03u, 0x2Bu, 0x70u, 0x00u, 0xE0u, 0xFEu, 0xE7u, 0x4Fu, 0x4Fu, 0x06u, 0x21u, 0x01u, 0xFBu, 0x06u, 0x72u, 0x00u, 0x21u, 0x10u, 0x68u, - 0x01u, 0x36u, 0x92u, 0x88u, 0x01u, 0xF0u, 0x79u, 0xFEu, + 0x01u, 0x36u, 0x92u, 0x88u, 0x01u, 0xF0u, 0xADu, 0xFEu, 0x07u, 0x2Eu, 0xF3u, 0xD1u, 0x00u, 0x23u, 0x19u, 0x46u, 0x49u, 0x4Cu, 0x00u, 0x22u, 0x18u, 0x59u, 0x30u, 0x34u, 0xC6u, 0xB2u, 0x20u, 0xF0u, 0xFFu, 0x07u, 0x04u, 0xEBu, @@ -151,10 +151,10 @@ const uint8 cy_bootloader[] = { 0x0Fu, 0x01u, 0x00u, 0x49u, 0x22u, 0x42u, 0x00u, 0x40u, 0xA1u, 0x46u, 0x00u, 0x40u, 0x25u, 0x42u, 0x00u, 0x40u, 0x04u, 0x40u, 0x00u, 0x40u, 0x06u, 0x40u, 0x00u, 0x40u, - 0xE8u, 0x46u, 0x00u, 0x40u, 0xC0u, 0x1Fu, 0x00u, 0x00u, - 0xECu, 0x1Fu, 0x00u, 0x00u, 0x03u, 0x50u, 0x01u, 0x40u, + 0xE8u, 0x46u, 0x00u, 0x40u, 0x28u, 0x20u, 0x00u, 0x00u, + 0x54u, 0x20u, 0x00u, 0x00u, 0x03u, 0x50u, 0x01u, 0x40u, 0xC2u, 0x43u, 0x00u, 0x40u, 0xA0u, 0x43u, 0x00u, 0x40u, - 0x00u, 0x51u, 0x00u, 0x40u, 0x4Au, 0x20u, 0x00u, 0x00u, + 0x00u, 0x51u, 0x00u, 0x40u, 0xB2u, 0x20u, 0x00u, 0x00u, 0xF0u, 0x51u, 0x00u, 0x40u, 0x62u, 0x51u, 0x00u, 0x40u, 0x22u, 0x43u, 0x00u, 0x40u, 0xCFu, 0x01u, 0x00u, 0x49u, 0x6Eu, 0x58u, 0x00u, 0x40u, 0x76u, 0x58u, 0x00u, 0x40u, @@ -193,127 +193,140 @@ const uint8 cy_bootloader[] = { 0x02u, 0x78u, 0xE4u, 0xB2u, 0x94u, 0x42u, 0x01u, 0xD0u, 0x06u, 0x20u, 0x70u, 0xBDu, 0x00u, 0x2Du, 0xFBu, 0xD0u, 0x00u, 0x20u, 0x70u, 0xBDu, 0xC0u, 0xFFu, 0x01u, 0x00u, - 0x2Du, 0xE9u, 0xF0u, 0x43u, 0xADu, 0xF2u, 0xA4u, 0x4Du, - 0x00u, 0xF0u, 0x20u, 0xFAu, 0x10u, 0xB1u, 0x00u, 0x20u, - 0x00u, 0xF0u, 0xA2u, 0xFAu, 0x02u, 0xA8u, 0x00u, 0xF0u, - 0x2Du, 0xFAu, 0x10u, 0xB1u, 0x00u, 0x20u, 0x00u, 0xF0u, - 0x9Bu, 0xFAu, 0xB5u, 0x48u, 0x03u, 0x68u, 0x19u, 0x68u, + 0x2Du, 0xE9u, 0xF0u, 0x4Fu, 0xADu, 0xF5u, 0x61u, 0x7Du, + 0x80u, 0x46u, 0x00u, 0xF0u, 0xE5u, 0xFBu, 0x62u, 0xB6u, + 0x00u, 0x26u, 0xB2u, 0x46u, 0x4Fu, 0xF0u, 0x0Au, 0x09u, + 0x37u, 0x46u, 0xB8u, 0xF1u, 0x00u, 0x0Fu, 0x01u, 0xD1u, + 0xFFu, 0x23u, 0x00u, 0xE0u, 0x43u, 0x46u, 0x4Au, 0xA8u, + 0x4Fu, 0xF4u, 0x96u, 0x71u, 0x01u, 0xAAu, 0x00u, 0xF0u, + 0x0Du, 0xFCu, 0xB8u, 0xF1u, 0x00u, 0x0Fu, 0x03u, 0xD0u, + 0x09u, 0xF1u, 0xFFu, 0x39u, 0x5Fu, 0xFAu, 0x89u, 0xF9u, + 0xB9u, 0xF1u, 0x00u, 0x0Fu, 0x02u, 0xD0u, 0x00u, 0x28u, + 0xE7u, 0xD1u, 0x01u, 0xE0u, 0x00u, 0x28u, 0x71u, 0xD1u, + 0xBDu, 0xF8u, 0x04u, 0x20u, 0x06u, 0x2Au, 0x40u, 0xF2u, + 0x7Bu, 0x81u, 0x9Du, 0xF8u, 0x28u, 0x31u, 0x01u, 0x2Bu, + 0x40u, 0xF0u, 0x76u, 0x81u, 0x9Du, 0xF8u, 0x2Au, 0x01u, + 0x9Du, 0xF8u, 0x2Bu, 0x51u, 0x4Au, 0xA9u, 0x40u, 0xEAu, + 0x05u, 0x25u, 0xECu, 0x1Du, 0x4Bu, 0x19u, 0x94u, 0x42u, + 0x58u, 0x79u, 0x19u, 0x79u, 0x00u, 0xF2u, 0x66u, 0x81u, + 0x9Au, 0x79u, 0x17u, 0x2Au, 0x40u, 0xF0u, 0x64u, 0x81u, + 0x2Bu, 0x1Du, 0x9Bu, 0xB2u, 0x00u, 0x22u, 0x3Bu, 0xB1u, + 0x0Du, 0xF2u, 0x27u, 0x14u, 0xE4u, 0x5Cu, 0x01u, 0x3Bu, + 0x12u, 0x19u, 0x92u, 0xB2u, 0x9Bu, 0xB2u, 0xF6u, 0xE7u, + 0x52u, 0x42u, 0x41u, 0xEAu, 0x00u, 0x20u, 0x91u, 0xB2u, + 0x88u, 0x42u, 0x40u, 0xF0u, 0x53u, 0x81u, 0x4Au, 0xE0u, + 0x00u, 0x2Eu, 0x00u, 0xF0u, 0x4Du, 0x81u, 0x01u, 0x2Du, + 0x4Fu, 0xF0u, 0x00u, 0x04u, 0x40u, 0xF0u, 0x3Cu, 0x81u, + 0xBBu, 0xF1u, 0x01u, 0x0Fu, 0x00u, 0xF2u, 0x38u, 0x81u, + 0xFFu, 0x23u, 0x8Du, 0xF8u, 0x2Cu, 0x41u, 0x8Du, 0xF8u, + 0x2Du, 0x41u, 0x25u, 0x46u, 0x8Du, 0xF8u, 0x2Eu, 0x31u, + 0x8Du, 0xF8u, 0x2Fu, 0x61u, 0x04u, 0x24u, 0x01u, 0x20u, + 0x00u, 0x22u, 0x21u, 0x1Du, 0xADu, 0xF8u, 0x06u, 0x40u, + 0x8Du, 0xF8u, 0x28u, 0x01u, 0x8Du, 0xF8u, 0x29u, 0x51u, + 0x8Du, 0xF8u, 0x2Au, 0x41u, 0x8Du, 0xF8u, 0x2Bu, 0x21u, + 0x8Bu, 0xB2u, 0x0Du, 0xF2u, 0x27u, 0x10u, 0xC1u, 0x5Cu, + 0x01u, 0x3Bu, 0x52u, 0x18u, 0x9Bu, 0xB2u, 0x92u, 0xB2u, + 0x00u, 0x2Bu, 0xF6u, 0xD1u, 0x50u, 0x42u, 0x81u, 0xB2u, + 0x08u, 0x0Au, 0x4Bu, 0xAAu, 0x0Du, 0xF2u, 0x2Du, 0x13u, + 0x11u, 0x55u, 0x18u, 0x55u, 0x17u, 0x21u, 0x0Du, 0xF5u, + 0x97u, 0x72u, 0xE3u, 0x1Du, 0x11u, 0x55u, 0x4Au, 0xA8u, + 0x99u, 0xB2u, 0x0Du, 0xF1u, 0x06u, 0x02u, 0x96u, 0x23u, + 0x00u, 0xF0u, 0x62u, 0xFBu, 0xB8u, 0xF1u, 0x00u, 0x0Fu, + 0x3Fu, 0xF4u, 0x72u, 0xAFu, 0x00u, 0x2Eu, 0x00u, 0xF0u, + 0x12u, 0x81u, 0x01u, 0x26u, 0x69u, 0xE7u, 0x9Du, 0xF8u, + 0x29u, 0x21u, 0x9Du, 0xF8u, 0x2Cu, 0xB1u, 0xA2u, 0xF1u, + 0x31u, 0x03u, 0x0Au, 0x2Bu, 0x00u, 0xF2u, 0xF7u, 0x80u, + 0x01u, 0xA1u, 0x51u, 0xF8u, 0x23u, 0xF0u, 0x00u, 0xBFu, + 0xB5u, 0x06u, 0x00u, 0x00u, 0xD9u, 0x05u, 0x00u, 0x00u, + 0x6Fu, 0x08u, 0x00u, 0x00u, 0xD3u, 0x06u, 0x00u, 0x00u, + 0x85u, 0x07u, 0x00u, 0x00u, 0x6Fu, 0x08u, 0x00u, 0x00u, + 0x8Bu, 0x07u, 0x00u, 0x00u, 0xA9u, 0x07u, 0x00u, 0x00u, + 0xD3u, 0x06u, 0x00u, 0x00u, 0xC3u, 0x07u, 0x00u, 0x00u, + 0x4Fu, 0x08u, 0x00u, 0x00u, 0x00u, 0x2Eu, 0x00u, 0xF0u, + 0xDFu, 0x80u, 0x00u, 0x2Du, 0x40u, 0xF0u, 0xDCu, 0x80u, + 0xFFu, 0xF7u, 0xF0u, 0xFEu, 0xD0u, 0xF1u, 0x01u, 0x02u, + 0x38u, 0xBFu, 0x00u, 0x22u, 0x8Du, 0xF8u, 0x2Cu, 0x21u, + 0xBBu, 0xE0u, 0x34u, 0x2Au, 0x12u, 0xD1u, 0x00u, 0x2Eu, + 0x00u, 0xF0u, 0xCEu, 0x80u, 0x03u, 0x2Du, 0x40u, 0xF0u, + 0xCBu, 0x80u, 0xABu, 0xF1u, 0x40u, 0x07u, 0x3Fu, 0x2Fu, + 0x8Cu, 0xBFu, 0x4Fu, 0xF4u, 0x90u, 0x77u, 0x10u, 0x27u, + 0x95u, 0xA8u, 0x00u, 0x21u, 0x3Au, 0x46u, 0x01u, 0xF0u, + 0x88u, 0xFCu, 0x05u, 0xE0u, 0x00u, 0x2Eu, 0x00u, 0xF0u, + 0xBBu, 0x80u, 0x02u, 0x2Du, 0x40u, 0xF2u, 0xB8u, 0x80u, + 0x03u, 0x3Du, 0x95u, 0xABu, 0x2Au, 0x46u, 0xD8u, 0x19u, + 0x0Du, 0xF2u, 0x2Fu, 0x11u, 0x01u, 0xF0u, 0x70u, 0xFCu, + 0xABu, 0xF1u, 0x40u, 0x00u, 0x7Au, 0x19u, 0x3Fu, 0x28u, + 0x96u, 0xB2u, 0x03u, 0xD8u, 0x00u, 0xF0u, 0xD4u, 0xF9u, + 0x10u, 0x24u, 0x01u, 0xE0u, 0x4Fu, 0xF4u, 0x90u, 0x74u, + 0xA6u, 0x42u, 0x40u, 0xF0u, 0x97u, 0x80u, 0x9Du, 0xF8u, + 0x2Eu, 0x11u, 0x9Du, 0xF8u, 0x2Du, 0x71u, 0xBBu, 0xF1u, + 0x3Fu, 0x0Fu, 0x47u, 0xEAu, 0x01u, 0x25u, 0x11u, 0xD8u, + 0xBAu, 0xF1u, 0x00u, 0x0Fu, 0x0Eu, 0xD1u, 0x51u, 0x46u, + 0x4Fu, 0xF4u, 0x90u, 0x72u, 0x02u, 0xA8u, 0x01u, 0xF0u, + 0x58u, 0xFCu, 0x01u, 0x20u, 0xFFu, 0x21u, 0x02u, 0xAAu, + 0x4Fu, 0xF4u, 0x90u, 0x73u, 0x00u, 0xF0u, 0x64u, 0xF9u, + 0x4Fu, 0xF0u, 0x01u, 0x0Au, 0x33u, 0x46u, 0x58u, 0x46u, + 0x29u, 0x46u, 0x95u, 0xAAu, 0x00u, 0xF0u, 0x5Cu, 0xF9u, + 0x01u, 0x26u, 0x00u, 0x28u, 0x75u, 0xD0u, 0x00u, 0x27u, + 0x0Au, 0x25u, 0x75u, 0xE0u, 0x00u, 0x2Eu, 0x77u, 0xD0u, + 0x7Au, 0xE0u, 0x00u, 0x2Eu, 0x74u, 0xD0u, 0x7Cu, 0x19u, + 0xB4u, 0xF5u, 0x96u, 0x7Fu, 0x6Eu, 0xD8u, 0x95u, 0xA9u, + 0xC8u, 0x19u, 0x2Au, 0x46u, 0x4Bu, 0xA9u, 0x01u, 0xF0u, + 0x2Bu, 0xFCu, 0xA7u, 0xB2u, 0x00u, 0x25u, 0x63u, 0xE0u, + 0x00u, 0x2Du, 0x65u, 0xD1u, 0x3Au, 0x48u, 0x02u, 0xAEu, + 0x4Bu, 0xACu, 0x03u, 0xC8u, 0x86u, 0xE8u, 0x03u, 0x00u, + 0x84u, 0xE8u, 0x03u, 0x00u, 0x01u, 0x26u, 0x08u, 0x24u, + 0x21u, 0xE7u, 0x00u, 0x2Eu, 0x58u, 0xD0u, 0x03u, 0x2Du, + 0x56u, 0xD1u, 0x9Du, 0xF8u, 0x2Eu, 0x01u, 0x9Du, 0xF8u, + 0x2Du, 0x11u, 0xABu, 0xF1u, 0x40u, 0x02u, 0x3Fu, 0x2Au, + 0x41u, 0xEAu, 0x00u, 0x25u, 0x0Au, 0xD8u, 0x2Du, 0x01u, + 0x00u, 0x23u, 0x10u, 0x22u, 0x2Du, 0x48u, 0x11u, 0x18u, + 0x4Cu, 0x5Du, 0x01u, 0x3Au, 0x23u, 0x44u, 0xDBu, 0xB2u, + 0xF8u, 0xD1u, 0x26u, 0xE0u, 0x05u, 0xEBu, 0x0Bu, 0x23u, + 0x1Cu, 0x02u, 0x4Fu, 0xF4u, 0x80u, 0x72u, 0x00u, 0x23u, + 0x01u, 0x3Au, 0x10u, 0x5Du, 0x19u, 0x18u, 0xCBu, 0xB2u, + 0x00u, 0x2Au, 0xF9u, 0xD1u, 0xBBu, 0xF1u, 0x3Fu, 0x0Fu, + 0x17u, 0xD8u, 0x0Bu, 0xF5u, 0x10u, 0x34u, 0x05u, 0xEBu, + 0x04u, 0x20u, 0x41u, 0x01u, 0x54u, 0x5Cu, 0x01u, 0x32u, + 0x1Bu, 0x19u, 0x20u, 0x2Au, 0xDBu, 0xB2u, 0xF9u, 0xD1u, + 0xBBu, 0xF1u, 0x01u, 0x0Fu, 0x09u, 0xD1u, 0xFFu, 0x2Du, + 0x07u, 0xD1u, 0x1Bu, 0x4Du, 0x1Bu, 0x4Cu, 0x28u, 0x78u, + 0x19u, 0x1Au, 0x23u, 0x78u, 0xCAu, 0x1Au, 0x02u, 0xF0u, + 0xFFu, 0x03u, 0x5Du, 0x42u, 0x8Du, 0xF8u, 0x2Cu, 0x51u, + 0x00u, 0x25u, 0x01u, 0x24u, 0xDBu, 0xE6u, 0xFFu, 0xF7u, + 0x29u, 0xFEu, 0x10u, 0xB9u, 0x14u, 0x4Du, 0x80u, 0x24u, + 0x2Cu, 0x70u, 0x00u, 0xF0u, 0x47u, 0xF9u, 0x0Bu, 0xE0u, + 0x04u, 0x25u, 0xD0u, 0xE6u, 0x01u, 0x26u, 0x00u, 0x27u, + 0x04u, 0xE0u, 0x07u, 0x46u, 0x9Au, 0xE7u, 0x05u, 0x25u, + 0x00u, 0x24u, 0xC8u, 0xE6u, 0x03u, 0x25u, 0xFBu, 0xE7u, + 0x04u, 0x25u, 0xF9u, 0xE7u, 0x08u, 0x25u, 0xF7u, 0xE7u, + 0xB8u, 0xF1u, 0x00u, 0x0Fu, 0x01u, 0xD1u, 0x47u, 0x46u, + 0x5Eu, 0xE6u, 0x00u, 0x27u, 0xEDu, 0xE6u, 0x0Du, 0xF5u, + 0x61u, 0x7Du, 0xBDu, 0xE8u, 0xF0u, 0x8Fu, 0x00u, 0xBFu, + 0xF0u, 0x20u, 0x00u, 0x00u, 0xFFu, 0x7Fu, 0x00u, 0x40u, + 0xD0u, 0xFFu, 0x01u, 0x00u, 0xD1u, 0xFFu, 0x01u, 0x00u, + 0xFAu, 0x46u, 0x00u, 0x40u, 0x10u, 0xB5u, 0xC8u, 0xB0u, + 0x00u, 0xF0u, 0x94u, 0xF8u, 0x10u, 0xB1u, 0x00u, 0x20u, + 0x00u, 0xF0u, 0x16u, 0xF9u, 0x68u, 0x46u, 0x00u, 0xF0u, + 0xA1u, 0xF8u, 0x10u, 0xB1u, 0x00u, 0x20u, 0x00u, 0xF0u, + 0x0Fu, 0xF9u, 0x16u, 0x48u, 0x03u, 0x68u, 0x19u, 0x68u, 0x00u, 0x23u, 0x0Au, 0x46u, 0x22u, 0xB1u, 0x12u, 0xF8u, 0x01u, 0x4Du, 0xE3u, 0x18u, 0xDBu, 0xB2u, 0xF9u, 0xE7u, - 0x42u, 0x68u, 0x10u, 0x78u, 0xC3u, 0x1Au, 0x03u, 0xF0u, - 0xFFu, 0x02u, 0x82u, 0x42u, 0x00u, 0xD1u, 0x11u, 0xB9u, - 0x00u, 0x20u, 0x00u, 0xF0u, 0x85u, 0xFAu, 0xFFu, 0xF7u, - 0x95u, 0xFFu, 0xAAu, 0x49u, 0x0Bu, 0x78u, 0x03u, 0xF0u, - 0xC0u, 0x02u, 0x40u, 0x2Au, 0x0Bu, 0x46u, 0x01u, 0xD0u, - 0x00u, 0x28u, 0x3Eu, 0xD0u, 0x00u, 0x26u, 0x1Eu, 0x70u, - 0x00u, 0xF0u, 0x82u, 0xFBu, 0x62u, 0xB6u, 0xB1u, 0x46u, - 0x00u, 0x27u, 0x92u, 0xA8u, 0x4Fu, 0xF4u, 0x96u, 0x71u, - 0x01u, 0xAAu, 0xFFu, 0x23u, 0x00u, 0xF0u, 0xB2u, 0xFBu, - 0x00u, 0x28u, 0xF6u, 0xD1u, 0xBDu, 0xF8u, 0x04u, 0x20u, - 0x06u, 0x2Au, 0x40u, 0xF2u, 0x81u, 0x81u, 0x9Du, 0xF8u, - 0x48u, 0x42u, 0x01u, 0x2Cu, 0x40u, 0xF0u, 0x7Cu, 0x81u, - 0x9Du, 0xF8u, 0x4Au, 0x12u, 0x9Du, 0xF8u, 0x4Bu, 0x52u, - 0x92u, 0xABu, 0x41u, 0xEAu, 0x05u, 0x25u, 0x05u, 0xF1u, - 0x07u, 0x0Eu, 0x5Bu, 0x19u, 0x96u, 0x45u, 0x5Cu, 0x79u, - 0x19u, 0x79u, 0x00u, 0xF2u, 0x6Bu, 0x81u, 0x9Au, 0x79u, - 0x17u, 0x2Au, 0x40u, 0xF0u, 0x69u, 0x81u, 0x2Bu, 0x1Du, - 0x9Bu, 0xB2u, 0x33u, 0xB1u, 0x0Du, 0xF2u, 0x47u, 0x22u, - 0xD2u, 0x5Cu, 0x01u, 0x3Bu, 0x80u, 0x18u, 0x80u, 0xB2u, - 0xF6u, 0xE7u, 0x40u, 0x42u, 0x41u, 0xEAu, 0x04u, 0x24u, - 0x81u, 0xB2u, 0x8Cu, 0x42u, 0x40u, 0xF0u, 0x5Au, 0x81u, - 0x08u, 0xE0u, 0x80u, 0x20u, 0x08u, 0x70u, 0x00u, 0xF0u, - 0x39u, 0xFAu, 0x29u, 0xB0u, 0x0Du, 0xF5u, 0x80u, 0x6Du, - 0xBDu, 0xE8u, 0xF0u, 0x83u, 0x9Du, 0xF8u, 0x49u, 0x22u, - 0x9Du, 0xF8u, 0x4Cu, 0x82u, 0xA2u, 0xF1u, 0x31u, 0x03u, - 0x0Au, 0x2Bu, 0x00u, 0xF2u, 0x15u, 0x81u, 0xDFu, 0xE8u, - 0x13u, 0xF0u, 0x0Bu, 0x00u, 0x1Au, 0x00u, 0x13u, 0x01u, - 0x32u, 0x00u, 0x8Cu, 0x00u, 0x13u, 0x01u, 0x90u, 0x00u, - 0xA1u, 0x00u, 0x32u, 0x00u, 0xAFu, 0x00u, 0x03u, 0x01u, - 0x00u, 0x2Eu, 0x00u, 0xF0u, 0x35u, 0x81u, 0x00u, 0x2Du, - 0x40u, 0xF0u, 0x32u, 0x81u, 0xFFu, 0xF7u, 0x26u, 0xFFu, - 0xD0u, 0xF1u, 0x01u, 0x02u, 0x38u, 0xBFu, 0x00u, 0x22u, - 0x8Du, 0xF8u, 0x4Cu, 0x22u, 0xDAu, 0xE0u, 0x00u, 0x2Eu, - 0x00u, 0xF0u, 0x26u, 0x81u, 0x01u, 0x2Du, 0x4Fu, 0xF0u, - 0x00u, 0x04u, 0x40u, 0xF0u, 0xEAu, 0x80u, 0xB8u, 0xF1u, - 0x01u, 0x0Fu, 0x00u, 0xF2u, 0xE6u, 0x80u, 0xFFu, 0x23u, - 0x8Du, 0xF8u, 0x4Cu, 0x42u, 0x8Du, 0xF8u, 0x4Du, 0x42u, - 0x25u, 0x46u, 0x8Du, 0xF8u, 0x4Eu, 0x32u, 0x8Du, 0xF8u, - 0x4Fu, 0x62u, 0x04u, 0x24u, 0xE2u, 0xE0u, 0x34u, 0x2Au, - 0x12u, 0xD1u, 0x00u, 0x2Eu, 0x00u, 0xF0u, 0x0Cu, 0x81u, - 0x03u, 0x2Du, 0x40u, 0xF0u, 0x09u, 0x81u, 0xA8u, 0xF1u, - 0x40u, 0x07u, 0x3Fu, 0x2Fu, 0x8Cu, 0xBFu, 0x4Fu, 0xF4u, - 0x90u, 0x77u, 0x10u, 0x27u, 0xDDu, 0xA8u, 0x00u, 0x21u, - 0x3Au, 0x46u, 0x01u, 0xF0u, 0x72u, 0xFCu, 0x05u, 0xE0u, - 0x00u, 0x2Eu, 0x00u, 0xF0u, 0xF9u, 0x80u, 0x02u, 0x2Du, - 0x40u, 0xF2u, 0xF6u, 0x80u, 0x03u, 0x3Du, 0xDDu, 0xABu, - 0x2Au, 0x46u, 0xD8u, 0x19u, 0x0Du, 0xF2u, 0x4Fu, 0x21u, - 0x01u, 0xF0u, 0x5Au, 0xFCu, 0xA8u, 0xF1u, 0x40u, 0x00u, - 0x7Au, 0x19u, 0x3Fu, 0x28u, 0x96u, 0xB2u, 0x03u, 0xD8u, - 0x00u, 0xF0u, 0xBEu, 0xF9u, 0x10u, 0x24u, 0x01u, 0xE0u, - 0x4Fu, 0xF4u, 0x90u, 0x74u, 0xA6u, 0x42u, 0x40u, 0xF0u, - 0xAAu, 0x80u, 0x9Du, 0xF8u, 0x4Eu, 0x12u, 0x9Du, 0xF8u, - 0x4Du, 0x72u, 0xB8u, 0xF1u, 0x3Fu, 0x0Fu, 0x47u, 0xEAu, - 0x01u, 0x25u, 0x11u, 0xD8u, 0xB9u, 0xF1u, 0x00u, 0x0Fu, - 0x0Eu, 0xD1u, 0x49u, 0x46u, 0x4Fu, 0xF4u, 0x90u, 0x72u, - 0x4Au, 0xA8u, 0x01u, 0xF0u, 0x42u, 0xFCu, 0x01u, 0x20u, - 0xFFu, 0x21u, 0x4Au, 0xAAu, 0x4Fu, 0xF4u, 0x90u, 0x73u, - 0x00u, 0xF0u, 0x4Eu, 0xF9u, 0x4Fu, 0xF0u, 0x01u, 0x09u, - 0x33u, 0x46u, 0x40u, 0x46u, 0x29u, 0x46u, 0xDDu, 0xAAu, - 0x00u, 0xF0u, 0x46u, 0xF9u, 0x01u, 0x26u, 0x00u, 0x28u, - 0x00u, 0xF0u, 0x88u, 0x80u, 0x00u, 0x27u, 0x0Au, 0x25u, - 0x87u, 0xE0u, 0x00u, 0x2Eu, 0x00u, 0xF0u, 0xB4u, 0x80u, - 0x22u, 0xE7u, 0x00u, 0x2Eu, 0x00u, 0xF0u, 0xB0u, 0x80u, - 0x7Cu, 0x19u, 0xB4u, 0xF5u, 0x96u, 0x7Fu, 0x00u, 0xF2u, - 0xA9u, 0x80u, 0xDDu, 0xA9u, 0xC8u, 0x19u, 0x2Au, 0x46u, - 0x93u, 0xA9u, 0x01u, 0xF0u, 0x11u, 0xFCu, 0xA7u, 0xB2u, - 0x00u, 0x25u, 0x72u, 0xE0u, 0x00u, 0x2Du, 0x40u, 0xF0u, - 0x9Fu, 0x80u, 0x2Bu, 0x48u, 0x4Au, 0xAEu, 0x93u, 0xACu, - 0x03u, 0xC8u, 0x86u, 0xE8u, 0x03u, 0x00u, 0x84u, 0xE8u, - 0x03u, 0x00u, 0x01u, 0x26u, 0x08u, 0x24u, 0x65u, 0xE0u, - 0x00u, 0x2Eu, 0x00u, 0xF0u, 0x91u, 0x80u, 0x03u, 0x2Du, - 0x40u, 0xF0u, 0x8Eu, 0x80u, 0x9Du, 0xF8u, 0x4Eu, 0x42u, - 0x9Du, 0xF8u, 0x4Du, 0x12u, 0xA8u, 0xF1u, 0x40u, 0x02u, - 0x3Fu, 0x2Au, 0x41u, 0xEAu, 0x04u, 0x25u, 0x0Au, 0xD8u, - 0x2Du, 0x01u, 0x00u, 0x23u, 0x10u, 0x22u, 0x1Du, 0x48u, - 0x11u, 0x18u, 0x4Cu, 0x5Du, 0x01u, 0x3Au, 0x23u, 0x44u, - 0xDBu, 0xB2u, 0xF8u, 0xD1u, 0x26u, 0xE0u, 0x05u, 0xEBu, - 0x08u, 0x23u, 0x1Cu, 0x02u, 0x4Fu, 0xF4u, 0x80u, 0x72u, - 0x00u, 0x23u, 0x01u, 0x3Au, 0x10u, 0x5Du, 0x19u, 0x18u, - 0xCBu, 0xB2u, 0x00u, 0x2Au, 0xF9u, 0xD1u, 0xB8u, 0xF1u, - 0x3Fu, 0x0Fu, 0x17u, 0xD8u, 0x08u, 0xF5u, 0x10u, 0x34u, - 0x05u, 0xEBu, 0x04u, 0x20u, 0x41u, 0x01u, 0x54u, 0x5Cu, - 0x01u, 0x32u, 0x1Bu, 0x19u, 0x20u, 0x2Au, 0xDBu, 0xB2u, - 0xF9u, 0xD1u, 0xB8u, 0xF1u, 0x01u, 0x0Fu, 0x09u, 0xD1u, - 0xFFu, 0x2Du, 0x07u, 0xD1u, 0x0Au, 0x4Du, 0x0Bu, 0x4Cu, - 0x28u, 0x78u, 0x19u, 0x1Au, 0x23u, 0x78u, 0xCAu, 0x1Au, - 0x02u, 0xF0u, 0xFFu, 0x03u, 0x5Du, 0x42u, 0x8Du, 0xF8u, - 0x4Cu, 0x52u, 0x00u, 0x25u, 0x01u, 0x24u, 0x1Du, 0xE0u, - 0x0Cu, 0xC1u, 0xFFu, 0x1Fu, 0xFAu, 0x46u, 0x00u, 0x40u, - 0x88u, 0x20u, 0x00u, 0x00u, 0xFFu, 0x7Fu, 0x00u, 0x40u, - 0xD0u, 0xFFu, 0x01u, 0x00u, 0xD1u, 0xFFu, 0x01u, 0x00u, - 0xFFu, 0xF7u, 0x34u, 0xFEu, 0x10u, 0xB9u, 0x20u, 0x48u, - 0x80u, 0x25u, 0x05u, 0x70u, 0x00u, 0xF0u, 0x1Eu, 0xF9u, - 0x36u, 0xE0u, 0x04u, 0x25u, 0x06u, 0xE0u, 0x01u, 0x26u, - 0x00u, 0x27u, 0x2Fu, 0xE0u, 0x07u, 0x46u, 0x8Bu, 0xE7u, - 0x05u, 0x25u, 0x00u, 0x24u, 0x01u, 0x21u, 0x8Du, 0xF8u, - 0x49u, 0x52u, 0x00u, 0x22u, 0x25u, 0x1Du, 0xADu, 0xF8u, - 0x06u, 0x40u, 0x8Du, 0xF8u, 0x48u, 0x12u, 0x8Du, 0xF8u, - 0x4Au, 0x42u, 0x8Du, 0xF8u, 0x4Bu, 0x22u, 0xADu, 0xB2u, - 0x0Du, 0xF2u, 0x47u, 0x20u, 0x41u, 0x5Du, 0x6Bu, 0x1Eu, - 0x52u, 0x18u, 0x9Du, 0xB2u, 0x92u, 0xB2u, 0x00u, 0x2Du, - 0xF6u, 0xD1u, 0x50u, 0x42u, 0x81u, 0xB2u, 0x93u, 0xAAu, - 0x11u, 0x55u, 0x0Du, 0x0Au, 0x0Du, 0xF2u, 0x4Du, 0x23u, - 0x17u, 0x20u, 0x0Du, 0xF2u, 0x4Eu, 0x21u, 0x1Du, 0x55u, - 0x08u, 0x55u, 0x07u, 0x34u, 0x92u, 0xA8u, 0xA1u, 0xB2u, - 0x0Du, 0xF1u, 0x06u, 0x02u, 0x96u, 0x23u, 0x00u, 0xF0u, - 0x03u, 0xFAu, 0x72u, 0xE6u, 0x03u, 0x25u, 0xD0u, 0xE7u, - 0x04u, 0x25u, 0xCEu, 0xE7u, 0x08u, 0x25u, 0xCCu, 0xE7u, + 0x42u, 0x68u, 0x10u, 0x78u, 0xC4u, 0x1Au, 0x04u, 0xF0u, + 0xFFu, 0x03u, 0x83u, 0x42u, 0x00u, 0xD1u, 0x11u, 0xB9u, + 0x00u, 0x20u, 0x00u, 0xF0u, 0xF9u, 0xF8u, 0x0Cu, 0x4Cu, + 0xFFu, 0xF7u, 0xD4u, 0xFDu, 0x21u, 0x78u, 0x01u, 0xF0u, + 0xC0u, 0x02u, 0x40u, 0x2Au, 0x00u, 0xD0u, 0x18u, 0xB1u, + 0x00u, 0x20u, 0x20u, 0x70u, 0xFFu, 0xF7u, 0x0Cu, 0xFEu, + 0x14u, 0x20u, 0xFFu, 0xF7u, 0x09u, 0xFEu, 0x80u, 0x20u, + 0x20u, 0x70u, 0x00u, 0xF0u, 0xE7u, 0xF8u, 0x48u, 0xB0u, + 0x10u, 0xBDu, 0x00u, 0xBFu, 0x0Cu, 0xC1u, 0xFFu, 0x1Fu, 0xFAu, 0x46u, 0x00u, 0x40u, 0x08u, 0xB5u, 0x0Au, 0x4Bu, 0x1Au, 0x78u, 0x02u, 0xF0u, 0xC0u, 0x00u, 0x80u, 0x28u, 0x0Cu, 0xD1u, 0x00u, 0x21u, 0x19u, 0x70u, 0x01u, 0x20u, - 0xFFu, 0xF7u, 0x9Eu, 0xFDu, 0x30u, 0xB1u, 0x01u, 0x20u, - 0xFFu, 0xF7u, 0x9Au, 0xFDu, 0xBDu, 0xE8u, 0x08u, 0x40u, - 0xFFu, 0xF7u, 0x94u, 0xBDu, 0x08u, 0xBDu, 0x00u, 0xBFu, + 0xFFu, 0xF7u, 0x6Au, 0xFDu, 0x30u, 0xB1u, 0x01u, 0x20u, + 0xFFu, 0xF7u, 0x66u, 0xFDu, 0xBDu, 0xE8u, 0x08u, 0x40u, + 0xFFu, 0xF7u, 0x60u, 0xBDu, 0x08u, 0xBDu, 0x00u, 0xBFu, 0xFAu, 0x46u, 0x00u, 0x40u, 0x00u, 0x00u, 0x00u, 0x00u, 0x02u, 0x30u, 0x80u, 0x08u, 0x00u, 0xF0u, 0x05u, 0x80u, 0x00u, 0xBFu, 0x01u, 0x38u, 0x00u, 0x46u, 0x7Fu, 0xF4u, @@ -499,9 +512,9 @@ const uint8 cy_bootloader[] = { 0x23u, 0xBEu, 0x00u, 0xBFu, 0xA5u, 0x43u, 0x00u, 0x40u, 0x9Du, 0x60u, 0x00u, 0x40u, 0x94u, 0x43u, 0x00u, 0x40u, 0x12u, 0x60u, 0x00u, 0x40u, 0xF8u, 0x51u, 0x00u, 0x40u, - 0x84u, 0x60u, 0x00u, 0x40u, 0xBBu, 0x15u, 0x00u, 0x00u, - 0xB9u, 0x15u, 0x00u, 0x00u, 0xF9u, 0x13u, 0x00u, 0x00u, - 0x51u, 0x15u, 0x00u, 0x00u, 0x85u, 0x15u, 0x00u, 0x00u, + 0x84u, 0x60u, 0x00u, 0x40u, 0x23u, 0x16u, 0x00u, 0x00u, + 0x21u, 0x16u, 0x00u, 0x00u, 0x61u, 0x14u, 0x00u, 0x00u, + 0xB9u, 0x15u, 0x00u, 0x00u, 0xEDu, 0x15u, 0x00u, 0x00u, 0x18u, 0x4Bu, 0x01u, 0x22u, 0x10u, 0xB5u, 0x1Au, 0x70u, 0x17u, 0x4Bu, 0x4Fu, 0xF4u, 0x00u, 0x04u, 0x1Cu, 0x60u, 0x4Fu, 0xF0u, 0x80u, 0x74u, 0x1Cu, 0x60u, 0x1Au, 0x60u, @@ -815,7 +828,7 @@ const uint8 cy_bootloader[] = { 0x04u, 0x4Bu, 0x05u, 0x49u, 0x1Au, 0x78u, 0x01u, 0xEBu, 0xC2u, 0x03u, 0x5Au, 0x68u, 0x02u, 0xEBu, 0xC0u, 0x00u, 0xC0u, 0x68u, 0x70u, 0x47u, 0x6Cu, 0xC1u, 0xFFu, 0x1Fu, - 0x90u, 0x20u, 0x00u, 0x00u, 0xF8u, 0xB5u, 0x3Du, 0x4Bu, + 0xF8u, 0x20u, 0x00u, 0x00u, 0xF8u, 0xB5u, 0x3Du, 0x4Bu, 0x1Au, 0x78u, 0x00u, 0x2Au, 0x74u, 0xD0u, 0x18u, 0x78u, 0x41u, 0x1Eu, 0xC8u, 0xB2u, 0xFFu, 0xF7u, 0xE8u, 0xFFu, 0xC3u, 0x68u, 0x05u, 0x7Au, 0x08u, 0x33u, 0x00u, 0x20u, @@ -1002,9 +1015,9 @@ const uint8 cy_bootloader[] = { 0x08u, 0x70u, 0x32u, 0xE0u, 0x60u, 0xC1u, 0xFFu, 0x1Fu, 0x00u, 0x60u, 0x00u, 0x40u, 0x01u, 0x60u, 0x00u, 0x40u, 0x03u, 0x60u, 0x00u, 0x40u, 0x6Cu, 0xC1u, 0xFFu, 0x1Fu, - 0x90u, 0x20u, 0x00u, 0x00u, 0x02u, 0x60u, 0x00u, 0x40u, - 0x56u, 0x21u, 0x00u, 0x00u, 0xD2u, 0x21u, 0x00u, 0x00u, - 0x4Cu, 0x21u, 0x00u, 0x00u, 0x04u, 0x60u, 0x00u, 0x40u, + 0xF8u, 0x20u, 0x00u, 0x00u, 0x02u, 0x60u, 0x00u, 0x40u, + 0xBEu, 0x21u, 0x00u, 0x00u, 0x3Au, 0x22u, 0x00u, 0x00u, + 0xB4u, 0x21u, 0x00u, 0x00u, 0x04u, 0x60u, 0x00u, 0x40u, 0x78u, 0xC1u, 0xFFu, 0x1Fu, 0x55u, 0xC1u, 0xFFu, 0x1Fu, 0x6Fu, 0xC1u, 0xFFu, 0x1Fu, 0x71u, 0xC1u, 0xFFu, 0x1Fu, 0x5Eu, 0xC1u, 0xFFu, 0x1Fu, 0x5Cu, 0xC1u, 0xFFu, 0x1Fu, @@ -1036,14 +1049,14 @@ const uint8 cy_bootloader[] = { 0x54u, 0x1Au, 0xA5u, 0x10u, 0x00u, 0x24u, 0xACu, 0x42u, 0x05u, 0xD0u, 0x05u, 0x4Bu, 0x53u, 0xF8u, 0x24u, 0x00u, 0x80u, 0x47u, 0x01u, 0x34u, 0xF7u, 0xE7u, 0x38u, 0xBDu, - 0xF0u, 0x21u, 0x00u, 0x00u, 0xF0u, 0x21u, 0x00u, 0x00u, - 0xF0u, 0x21u, 0x00u, 0x00u, 0xF8u, 0x21u, 0x00u, 0x00u, + 0x58u, 0x22u, 0x00u, 0x00u, 0x58u, 0x22u, 0x00u, 0x00u, + 0x58u, 0x22u, 0x00u, 0x00u, 0x60u, 0x22u, 0x00u, 0x00u, 0x10u, 0xB5u, 0x00u, 0x23u, 0x93u, 0x42u, 0x03u, 0xD0u, 0xCCu, 0x5Cu, 0xC4u, 0x54u, 0x01u, 0x33u, 0xF9u, 0xE7u, 0x10u, 0xBDu, 0x82u, 0x18u, 0x03u, 0x46u, 0x93u, 0x42u, 0x02u, 0xD0u, 0x03u, 0xF8u, 0x01u, 0x1Bu, 0xFAu, 0xE7u, - 0x70u, 0x47u, 0x00u, 0x00u, 0x38u, 0x22u, 0x00u, 0x00u, - 0x8Eu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x70u, 0x47u, 0x00u, 0x00u, 0xA0u, 0x22u, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x10u, 0x51u, 0x00u, 0x40u, 0x10u, 0x00u, 0xC0u, 0x51u, 0x00u, 0x40u, 0x10u, 0x00u, 0x00u, 0x00u, 0x01u, 0x40u, 0x00u, 0x10u, 0x00u, 0x14u, 0x01u, 0x40u, 0x00u, 0x08u, @@ -1070,22 +1083,22 @@ const uint8 cy_bootloader[] = { 0x03u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x33u, 0x33u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x69u, 0x30u, 0x13u, 0x2Eu, 0x00u, 0x14u, 0x01u, 0x01u, - 0x01u, 0x00u, 0x00u, 0x00u, 0x98u, 0x20u, 0x00u, 0x00u, - 0x01u, 0x00u, 0x00u, 0x00u, 0xD2u, 0x21u, 0x00u, 0x00u, - 0x01u, 0x00u, 0x00u, 0x00u, 0xA8u, 0x20u, 0x00u, 0x00u, - 0x01u, 0x00u, 0x00u, 0x00u, 0xA9u, 0x21u, 0x00u, 0x00u, - 0x02u, 0x00u, 0x00u, 0x00u, 0xCAu, 0x20u, 0x00u, 0x00u, - 0x01u, 0x00u, 0x00u, 0x00u, 0xDCu, 0x20u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0xC8u, 0x20u, 0x00u, 0x00u, + 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x21u, 0x00u, 0x00u, + 0x01u, 0x00u, 0x00u, 0x00u, 0x3Au, 0x22u, 0x00u, 0x00u, + 0x01u, 0x00u, 0x00u, 0x00u, 0x10u, 0x21u, 0x00u, 0x00u, + 0x01u, 0x00u, 0x00u, 0x00u, 0x11u, 0x22u, 0x00u, 0x00u, + 0x02u, 0x00u, 0x00u, 0x00u, 0x32u, 0x21u, 0x00u, 0x00u, + 0x01u, 0x00u, 0x00u, 0x00u, 0x44u, 0x21u, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x30u, 0x21u, 0x00u, 0x00u, 0x03u, 0x00u, 0x00u, 0x00u, 0x01u, 0x03u, 0x40u, 0x00u, 0x03u, 0x00u, 0x00u, 0x00u, 0x82u, 0x03u, 0x40u, 0x00u, 0x03u, 0x00u, 0x00u, 0x00u, 0x01u, 0x00u, 0x00u, 0x00u, - 0xE4u, 0x20u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x18u, 0x21u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x0Cu, 0x21u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x4Cu, 0x21u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x80u, 0x21u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x74u, 0x21u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x01u, 0x00u, 0x00u, 0x00u, - 0x24u, 0x21u, 0x00u, 0x00u, 0x01u, 0x00u, 0x00u, 0x00u, - 0xBBu, 0x21u, 0x00u, 0x00u, 0x41u, 0x00u, 0x00u, 0x00u, + 0x8Cu, 0x21u, 0x00u, 0x00u, 0x01u, 0x00u, 0x00u, 0x00u, + 0x23u, 0x22u, 0x00u, 0x00u, 0x41u, 0x00u, 0x00u, 0x00u, 0x33u, 0xC2u, 0xFFu, 0x1Fu, 0x74u, 0xC2u, 0xFFu, 0x1Fu, 0x41u, 0x00u, 0x00u, 0x00u, 0xF2u, 0xC1u, 0xFFu, 0x1Fu, 0xEEu, 0xC1u, 0xFFu, 0x1Fu, 0x24u, 0x00u, 0x05u, 0x01u, @@ -1117,10 +1130,10 @@ const uint8 cy_bootloader[] = { 0x51u, 0x00u, 0x00u, 0x00u, 0xB1u, 0x01u, 0x00u, 0x00u, 0xF8u, 0xB5u, 0x00u, 0xBFu, 0xF8u, 0xBCu, 0x08u, 0xBCu, 0x9Eu, 0x46u, 0x70u, 0x47u, 0x2Du, 0x00u, 0x00u, 0x00u, - 0x18u, 0x22u, 0x00u, 0x00u, 0x08u, 0xC1u, 0xFFu, 0x1Fu, + 0x80u, 0x22u, 0x00u, 0x00u, 0x08u, 0xC1u, 0xFFu, 0x1Fu, 0x20u, 0x00u, 0x00u, 0x00u, 0x50u, 0x01u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0xB4u, 0x1Fu, 0x00u, 0x00u, - 0xB8u, 0x1Fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x7Du, + 0x00u, 0x00u, 0x00u, 0x00u, 0x1Cu, 0x20u, 0x00u, 0x00u, + 0x20u, 0x20u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x7Du, 0x00u, 0xFAu, 0x00u, 0x00u, 0x40u, 0x00u, 0x00u, 0x00u, 0x00u, 0x90u, 0xD0u, 0x03u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, @@ -1134,19 +1147,6 @@ const uint8 cy_bootloader[] = { 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}; #if defined(__GNUC__) || defined(__ARMCC_VERSION) @@ -1158,7 +1158,7 @@ __attribute__ ((__section__(".cymeta"), used)) #endif const uint8 cy_metadata[] = { 0x00u, 0x01u, 0x2Eu, 0x13u, 0x30u, 0x69u, 0x00u, 0x01u, - 0x2Eu, 0x1Fu, 0x7Au, 0x6Bu}; + 0x2Eu, 0x1Fu, 0x9Au, 0x39u}; #if defined(__GNUC__) || defined(__ARMCC_VERSION) __attribute__ ((__section__(".cycustnvl"), used)) diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c index 706302e..e49d6c5 100644 --- a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c +++ b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c @@ -28,7 +28,7 @@ __attribute__ ((__section__(".cyloadablemeta"), used)) const uint8 cy_meta_loadable[] = { 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x50u, 0x03u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x52u, 0x03u, 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoCCreatorExportIDE.xml b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoCCreatorExportIDE.xml index 2810d8e..2a28481 100755 --- a/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoCCreatorExportIDE.xml +++ b/software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoCCreatorExportIDE.xml @@ -18,7 +18,7 @@ - + SCSI2SD.svd @@ -27,8 +27,8 @@ .\Generated_Source\PSoC5\Cm3Iar.icf - - + + ..\..\src\main.c ..\..\src\diagnostic.c ..\..\src\disk.c @@ -55,13 +55,13 @@ ..\..\src\config.h - - + + .\device.h - - + + .\Generated_Source\PSoC5\cyfitter_cfg.h .\Generated_Source\PSoC5\cyfitter_cfg.c .\Generated_Source\PSoC5\cybootloader.c @@ -205,41 +205,41 @@ .\Generated_Source\PSoC5\libelf.dll - - + + .\Generated_Source\PSoC5\ARM_GCC\CyComponentLibrary.a - - + + .\Generated_Source\PSoC5\ARM_Keil_MDK\CyComponentLibrary.a - - + + .\Generated_Source\PSoC5\IAR\CyComponentLibrary.a - + - + - + - + - + - + - + diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit b/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit index fc745ec..6757f1f 100644 Binary files a/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit and b/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit differ diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch b/software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch index 0a5400e..e9e55f2 100755 Binary files a/software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch and b/software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch differ diff --git a/software/SCSI2SD/v4/USB_Bootloader.cydsn/USB_Bootloader.cyfit b/software/SCSI2SD/v4/USB_Bootloader.cydsn/USB_Bootloader.cyfit index 3a62b69..e5e6ce7 100644 Binary files a/software/SCSI2SD/v4/USB_Bootloader.cydsn/USB_Bootloader.cyfit and b/software/SCSI2SD/v4/USB_Bootloader.cydsn/USB_Bootloader.cyfit differ diff --git a/software/bootloaderhost/SCSI2SD_HID.cc b/software/bootloaderhost/SCSI2SD_HID.cc index 535f102..0a439c8 100644 --- a/software/bootloaderhost/SCSI2SD_HID.cc +++ b/software/bootloaderhost/SCSI2SD_HID.cc @@ -38,12 +38,14 @@ HID::HID(hid_device_info* hidInfo) : // read to differentiate the interfaces. while (hidInfo && !(myConfigHandle && myDebugHandle)) { - if (hidInfo->interface_number == CONFIG_INTERFACE) + if ((hidInfo->interface_number == CONFIG_INTERFACE) || + (hidInfo->usage_page == 0xFF00)) { myConfigHandle = hid_open_path(hidInfo->path); hidInfo = hidInfo->next; } - else if (hidInfo->interface_number == DEBUG_INTERFACE) + else if ((hidInfo->interface_number == DEBUG_INTERFACE) || + (hidInfo->usage_page == 0xFF01)) { myDebugHandle = hid_open_path(hidInfo->path); readDebugData(); @@ -55,6 +57,8 @@ HID::HID(hid_device_info* hidInfo) : // interfaces are enumerated in a random order. :-( // We rely on the watchdog value of the debug interface // changing on each read to differentiate the interfaces. + // Not necessary since firmware 3.5.2 as the usage_page can + // be used instead. hid_device* dev = hid_open_path(hidInfo->path); if (!dev) { @@ -226,7 +230,13 @@ HID::getFirmwareVersionStr() const std::stringstream ver; ver << std::hex << (myFirmwareVersion >> 8) << - '.' << (myFirmwareVersion & 0xFF); + '.' << ((myFirmwareVersion & 0xF0) >> 4); + + int rev = myFirmwareVersion & 0xF; + if (rev) + { + ver << "." << rev; + } return ver.str(); } } diff --git a/software/bootloaderhost/build.sh b/software/bootloaderhost/build.sh index a7a8f7f..64b4eea 100755 --- a/software/bootloaderhost/build.sh +++ b/software/bootloaderhost/build.sh @@ -1,5 +1,6 @@ #!/bin/sh +rm -rf build/ make && \ make TARGET=Win32 && make TARGET=Win64 diff --git a/software/bootloaderhost/hidapi-mac/hid.c b/software/bootloaderhost/hidapi-mac/hid.c index 153101f..c645817 100644 --- a/software/bootloaderhost/hidapi-mac/hid.c +++ b/software/bootloaderhost/hidapi-mac/hid.c @@ -334,7 +334,7 @@ static wchar_t *dup_wcs(const wchar_t *s) static int make_path(IOHIDDeviceRef device, char *buf, size_t len) { int res; - unsigned short vid, pid; + unsigned short vid, pid, usage_page; char transport[32]; int32_t location; @@ -350,11 +350,10 @@ static int make_path(IOHIDDeviceRef device, char *buf, size_t len) location = get_location_id(device); vid = get_vendor_id(device); pid = get_product_id(device); + usage_page = get_int_property(device, CFSTR(kIOHIDPrimaryUsagePageKey)); - int interval = get_int_property(device, CFSTR(kIOHIDReportIntervalKey)); - - res = snprintf(buf, len, "%s_%04hx_%04hx_%x_%d", - transport, vid, pid, location, interval); + res = snprintf(buf, len, "%s_%04hx_%04hx_%x_%04hx", + transport, vid, pid, location, usage_page); buf[len-1] = '\0'; diff --git a/software/build.sh b/software/build.sh new file mode 100755 index 0000000..c724a35 --- /dev/null +++ b/software/build.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +case `uname -s` in +Linux) + # Builds all of the utilities (not firmware) under Linux. + # Requires mingw installed to cross-compile Windows targets. + + (cd bootloaderhost && ./build.sh) && + (cd scsi2sd-config && ./build.sh) && + (cd scsi2sd-debug && ./build.sh) + + if [ $? -eq 0 ]; then + mkdir -p build/linux + mkdir -p build/windows/64bit + mkdir -p build/windows/32bit + + cp bootloaderhost/build/linux/bootloaderhost build/linux + cp scsi2sd-config/build/linux/scsi2sd-config build/linux + cp scsi2sd-debug/build/linux/scsi2sd-debug build/linux + + cp bootloaderhost/build/windows/32bit/bootloaderhost.exe build/windows/32bit + cp scsi2sd-config/build/windows/32bit/scsi2sd-config.exe build/windows/32bit + cp scsi2sd-debug/build/windows/32bit/scsi2sd-debug.exe build/windows/32bit + + cp bootloaderhost/build/windows/64bit/bootloaderhost.exe build/windows/64bit + cp scsi2sd-config/build/windows/64bit/scsi2sd-config.exe build/windows/64bit + cp scsi2sd-debug/build/windows/64bit/scsi2sd-debug.exe build/windows/64bit + fi +;; + +Darwin) + make -C bootloaderhost && + make -C scsi2sd-config && + make -C scsi2sd-debug + + if [ $? -eq 0 ]; then + mkdir -p build/mac + + cp bootloaderhost/build/mac/bootloaderhost build/mac + cp scsi2sd-config/build/mac/scsi2sd-config build/mac + cp scsi2sd-debug/build/mac/scsi2sd-debug build/mac + fi + +esac diff --git a/software/scsi2sd-config/build.sh b/software/scsi2sd-config/build.sh index a7a8f7f..64b4eea 100755 --- a/software/scsi2sd-config/build.sh +++ b/software/scsi2sd-config/build.sh @@ -1,5 +1,6 @@ #!/bin/sh +rm -rf build/ make && \ make TARGET=Win32 && make TARGET=Win64 diff --git a/software/scsi2sd-config/scsi2sd-config.cc b/software/scsi2sd-config/scsi2sd-config.cc index bbd685c..7226774 100644 --- a/software/scsi2sd-config/scsi2sd-config.cc +++ b/software/scsi2sd-config/scsi2sd-config.cc @@ -114,7 +114,7 @@ struct __attribute__((packed)) ConfigPacket static void printConfig(ConfigPacket* packet) { std::cout << - "SCSI ID:\t\t\t" << packet->scsiId << "\n" << + "SCSI ID:\t\t\t" << static_cast(packet->scsiId) << "\n" << "Vendor:\t\t\t\t\"" << std::string(packet->vendor, 8) << "\"\n" << "Product ID:\t\t\t\"" << std::string(packet->prodId, 16) << "\"\n" << "Revision:\t\t\t\"" << std::string(packet->revision, 4) << "\"\n" << @@ -390,7 +390,11 @@ int main(int argc, char* argv[]) } printf(" Done.\n"); +#ifdef _WIN32 + Sleep(1000); //ms +#else sleep(1); // Wait for the data to be saved to eeprom +#endif // Clear outstanding stale data scsi2sdHID->readConfig( diff --git a/software/scsi2sd-debug/build.sh b/software/scsi2sd-debug/build.sh index a7a8f7f..64b4eea 100755 --- a/software/scsi2sd-debug/build.sh +++ b/software/scsi2sd-debug/build.sh @@ -1,5 +1,6 @@ #!/bin/sh +rm -rf build/ make && \ make TARGET=Win32 && make TARGET=Win64