Fixed missing SCSI ID in scsi2sd-config 3.5.2
authorMichael McMaster <michael@codesrc.com>
Sun, 20 Jul 2014 07:01:22 +0000 (17:01 +1000)
committerMichael McMaster <michael@codesrc.com>
Sun, 20 Jul 2014 07:01:22 +0000 (17:01 +1000)
Added vendor-defined usage page to USB HID device descriptors for
more reliable operation on Mac.

29 files changed:
CHANGELOG
software/SCSI2SD/src/config.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h [changed mode: 0755->0644]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h [changed mode: 0755->0644]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c
software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit
software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch
software/SCSI2SD/v3/USB_Bootloader.cydsn/Generated_Source/PSoCCreatorExportIDE.xml
software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyfit
software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyprj.Micha_000
software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.rpt
software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader_timing.html
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cybootloader.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoCCreatorExportIDE.xml
software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit
software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch
software/SCSI2SD/v4/USB_Bootloader.cydsn/USB_Bootloader.cyfit
software/bootloaderhost/SCSI2SD_HID.cc
software/bootloaderhost/build.sh
software/bootloaderhost/hidapi-mac/hid.c
software/build.sh [new file with mode: 0755]
software/scsi2sd-config/build.sh
software/scsi2sd-config/scsi2sd-config.cc
software/scsi2sd-debug/build.sh

index 813815fe829bcab9a6cf8662273ea576aef65436..3a4442a5bbb2c6fd4252ebc5553a462d43ddcd31 100644 (file)
--- 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.
index f55f444147f198379604f30408ec1172a2e0f081..81fdef009fc0ce0b5a999b24c5af5480155dea01 100755 (executable)
@@ -28,7 +28,7 @@
 \r
 // CYDEV_EEPROM_ROW_SIZE == 16.\r
 static const char magic[CYDEV_EEPROM_ROW_SIZE] = "codesrc_00000002";\r
-static const uint16_t FIRMWARE_VERSION = 0x0350;\r
+static const uint16_t FIRMWARE_VERSION = 0x0352;\r
 \r
 // Config shadow RAM (copy of EEPROM)\r
 static Config shadow =\r
old mode 100755 (executable)
new mode 100644 (file)
index 8858b47..e178fc2
 #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_NUM_OUT_RPTS   (1u)\r
 #define USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_COUNT   (1u)\r
 #define USBFS_ENABLE_HID_CLASS   \r
-#define USBFS_HID_RPT_1_SIZE_LSB   (0x24u)\r
+#define USBFS_HID_RPT_1_SIZE_LSB   (0x25u)\r
 #define USBFS_HID_RPT_1_SIZE_MSB   (0x00u)\r
+#define USBFS_HID_RPT_2_SIZE_LSB   (0x25u)\r
+#define USBFS_HID_RPT_2_SIZE_MSB   (0x00u)\r
 #define USBFS_MAX_REPORTID_NUMBER   (0u)\r
 \r
 #define USBFS_MON_VBUS                       (0u)\r
index f06085b66c4ed8f0063cb1e9da22486fe680160c..00c65059b9f70d19115f7b8eeb1eaae75bd6f175 100644 (file)
@@ -126,8 +126,8 @@ const uint8 CYCODE USBFS_DEVICE0_CONFIGURATION0_DESCR[73u] = {
 /*  bCountryCode                           */ 0x00u,\r
 /*  bNumDescriptors                        */ 0x01u,\r
 /*  bDescriptorType                        */ 0x22u,\r
-/*  wDescriptorLength (LSB)                */ USBFS_HID_RPT_1_SIZE_LSB,\r
-/*  wDescriptorLength (MSB)                */ USBFS_HID_RPT_1_SIZE_MSB,\r
+/*  wDescriptorLength (LSB)                */ USBFS_HID_RPT_2_SIZE_LSB,\r
+/*  wDescriptorLength (MSB)                */ USBFS_HID_RPT_2_SIZE_MSB,\r
 /*********************************************************************\r
 * Endpoint Descriptor\r
 *********************************************************************/\r
@@ -187,12 +187,12 @@ const uint8 CYCODE USBFS_SN_STRING_DESCRIPTOR[10] = {
 };\r
 \r
 /*********************************************************************\r
-* HID Report Descriptor: Generic HID\r
+* HID Report Descriptor: Generic HID - Vendor FF00\r
 *********************************************************************/\r
-const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[40u] = {\r
+const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[41u] = {\r
 /*  Descriptor Size (Not part of descriptor)*/ USBFS_HID_RPT_1_SIZE_LSB,\r
 USBFS_HID_RPT_1_SIZE_MSB,\r
-/* USAGE_PAGE                              */ 0x05u, 0x01u, \r
+/* USAGE_PAGE                              */ 0x06u, 0x00u, 0xFFu, \r
 /* USAGE                                   */ 0x09u, 0x00u, \r
 /* COLLECTION                              */ 0xA1u, 0x00u, \r
 /* USAGE                                   */ 0x09u, 0x00u, \r
@@ -214,6 +214,34 @@ USBFS_HID_RPT_1_SIZE_MSB,
 /*********************************************************************/\r
 /* End of the HID Report Descriptor        */ 0x00u, 0x00u};\r
 /*********************************************************************/\r
+/*********************************************************************\r
+* HID Report Descriptor: Generic HID - Vendor FF01\r
+*********************************************************************/\r
+const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR2[41u] = {\r
+/*  Descriptor Size (Not part of descriptor)*/ USBFS_HID_RPT_2_SIZE_LSB,\r
+USBFS_HID_RPT_2_SIZE_MSB,\r
+/* USAGE_PAGE                              */ 0x06u, 0x01u, 0xFFu, \r
+/* USAGE                                   */ 0x09u, 0x01u, \r
+/* COLLECTION                              */ 0xA1u, 0x00u, \r
+/* USAGE                                   */ 0x09u, 0x00u, \r
+/* COLLECTION                              */ 0xA1u, 0x00u, \r
+/* USAGE                                   */ 0x09u, 0x00u, \r
+/* LOGICAL_MINIMUM                         */ 0x15u, 0x00u, \r
+/* LOGICAL_MAXIMUM                         */ 0x25u, 0xFFu, \r
+/* REPORT_SIZE                             */ 0x75u, 0x08u, \r
+/* REPORT_COUNT                            */ 0x95u, 0x40u, \r
+/* OUTPUT                                  */ 0x91u, 0x02u, \r
+/* USAGE                                   */ 0x09u, 0x00u, \r
+/* LOGICAL_MINIMUM                         */ 0x15u, 0x00u, \r
+/* LOGICAL_MAXIMUM                         */ 0x25u, 0xFFu, \r
+/* REPORT_SIZE                             */ 0x75u, 0x08u, \r
+/* REPORT_COUNT                            */ 0x95u, 0x40u, \r
+/* INPUT                                   */ 0x81u, 0x02u, \r
+/* END_COLLECTION                          */ 0xC0u, \r
+/* END_COLLECTION                          */ 0xC0u, \r
+/*********************************************************************/\r
+/* End of the HID Report Descriptor        */ 0x00u, 0x00u};\r
+/*********************************************************************/\r
 \r
 #if !defined(USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_HID_RPT_STORAGE)\r
 /*********************************************************************\r
@@ -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},\r
     {0x00u,     &USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_RPT_TABLE},\r
     {0x00u,    NULL},\r
-    {0x01u,     (const void *)&USBFS_HIDREPORT_DESCRIPTOR1[0]},\r
+    {0x01u,     (const void *)&USBFS_HIDREPORT_DESCRIPTOR2[0]},\r
     {0x01u,     (const void *)&USBFS_DEVICE0_CONFIGURATION0_DESCR[50]}\r
 };\r
 #endif /* USER_DEFINE_USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_HID_RPT_STORAGE */\r
old mode 100755 (executable)
new mode 100644 (file)
index d344831..db14e05
@@ -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;\r
 extern uint8 USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF[\r
             USBFS_DEVICE0_CONFIGURATION0_INTERFACE1_ALTERNATE0_HID_OUT_BUF_SIZE];\r
-extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[40u];\r
+extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR1[41u];\r
+extern const uint8 CYCODE USBFS_HIDREPORT_DESCRIPTOR2[41u];\r
 extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_IN_RPT_TABLE[1u];\r
 extern const T_USBFS_TD CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_OUT_RPT_TABLE[1u];\r
 extern const T_USBFS_LUT CYCODE USBFS_DEVICE0_CONFIGURATION0_INTERFACE0_ALTERNATE0_HID_TABLE[5u];\r
index 3a96596e7007fac456a28a6a2016c116cbc447a6..65a8d8b92c8211767f8b54b777ecf51a86d8427b 100644 (file)
@@ -28,7 +28,7 @@ __attribute__ ((__section__(".cyloadablemeta"), used))
 const uint8 cy_meta_loadable[] = {\r
     0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,\r
     0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,\r
-    0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x50u, 0x03u,\r
+    0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x52u, 0x03u,\r
     0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,\r
     0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,\r
     0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,\r
index 439ad963a51fcfc05f92311210c9b76f2936d038..81519e102e558088c6886b2c9c7c170a8d845f23 100644 (file)
Binary files a/software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit and b/software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit differ
index 33241b8a5bb3dc383053ab905fd1c360a11995f4..f676ffacb01c395002123bb069f654c4471819e4 100755 (executable)
Binary files a/software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch and b/software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch differ
index 32c479182de741f166868812b961aae73d1761f8..25304716775d69b461e044286b87a6d5fc3ab89b 100755 (executable)
@@ -18,7 +18,7 @@
       <Tool Name="postbuild" Command="" Options="" />\r
     </Toolchain>\r
   </Toolchains>\r
-  <Project Name="USB_Bootloader" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" Version="4.0" Type="Bootloader">\r
+  <Project Name="USB_Bootloader" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" Version="4.0" Type="Bootloader">\r
     <CMSIS_SVD_File>USB_Bootloader.svd</CMSIS_SVD_File>\r
     <Datasheet />\r
     <LinkerFiles>\r
       <LinkerFile Toolchain="IAR EWARM">.\Generated_Source\PSoC5\Cm3Iar.icf</LinkerFile>\r
     </LinkerFiles>\r
     <Folders>\r
-      <Folder BuildType="BUILD" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
+      <Folder BuildType="BUILD" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="">.\main.c</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5">\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cyfitter_cfg.h</File>\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cyfitter_cfg.c</File>\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cymetadata.c</File>\r
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\libelf.dll</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_GCC">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_GCC">\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="ARM GCC">.\Generated_Source\PSoC5\ARM_GCC\CyComponentLibrary.a</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_Keil_MDK">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5\ARM_Keil_MDK">\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="ARM Keil MDK">.\Generated_Source\PSoC5\ARM_Keil_MDK\CyComponentLibrary.a</File>\r
         </Files>\r
       </Folder>\r
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5\IAR">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5\IAR">\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn">\r
           <File BuildType="BUILD" Toolchain="IAR">.\Generated_Source\PSoC5\IAR\CyComponentLibrary.a</File>\r
         </Files>\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\codegentemp">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\ARM_GCC_441">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\ARM_GCC_473">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\DP8051_Keil_951">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\DP8051">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\CortexM0">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
       </Folder>\r
       <Folder BuildType="EXCLUDE" Path=".\CortexM3">\r
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn" />\r
       </Folder>\r
     </Folders>\r
   </Project>\r
index bd169b6369396d7f55b1d70a1e5a35204aaa657d..d405b9eba4e2abe608041e12c14adaebd4622072 100644 (file)
Binary files a/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyfit and b/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader.cyfit differ
index b20fabc73c416c26cd44c8f6c8caa7a471bf0044..718dd0aebef9e0da2778e648773d9559818d276d 100755 (executable)
 <dep name=".\Generated_Source\PSoC5\BL.c" />\r
 </file>\r
 <file name=".\Generated_Source\PSoC5\BL.c" />\r
-<file name=".\CortexM3\ARM_GCC_473\Release\USBFS_pm.o">\r
-<dep name=".\Generated_Source\PSoC5\BL.h" />\r
-<dep name=".\Generated_Source\PSoC5\BL_PVT.h" />\r
-<dep name=".\Generated_Source\PSoC5\CyDmac.h" />\r
-<dep name=".\Generated_Source\PSoC5\CyFlash.h" />\r
-<dep name=".\Generated_Source\PSoC5\CyLib.h" />\r
-<dep name=".\Generated_Source\PSoC5\CySpc.h" />\r
-<dep name=".\Generated_Source\PSoC5\SCSI_Out_DBx_aliases.h" />\r
-<dep name=".\Generated_Source\PSoC5\SCSI_Out_aliases.h" />\r
-<dep name=".\Generated_Source\PSoC5\SD_PULLUP.h" />\r
-<dep name=".\Generated_Source\PSoC5\SD_PULLUP_aliases.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_Dm.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_Dm_aliases.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_Dp.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_Dp_aliases.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_audio.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_cdc.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_hid.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_midi.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_pvt.h" />\r
-<dep name=".\Generated_Source\PSoC5\core_cm3.h" />\r
-<dep name=".\Generated_Source\PSoC5\core_cm3_psoc5.h" />\r
-<dep name=".\Generated_Source\PSoC5\core_cmFunc.h" />\r
-<dep name=".\Generated_Source\PSoC5\core_cmInstr.h" />\r
-<dep name=".\Generated_Source\PSoC5\cyPm.h" />\r
-<dep name=".\Generated_Source\PSoC5\cydevice.h" />\r
-<dep name=".\Generated_Source\PSoC5\cydevice_trm.h" />\r
-<dep name=".\Generated_Source\PSoC5\cydisabledsheets.h" />\r
-<dep name=".\Generated_Source\PSoC5\cyfitter.h" />\r
-<dep name=".\Generated_Source\PSoC5\cyfitter_cfg.h" />\r
-<dep name=".\Generated_Source\PSoC5\cypins.h" />\r
-<dep name=".\Generated_Source\PSoC5\cytypes.h" />\r
-<dep name=".\Generated_Source\PSoC5\project.h" />\r
-<dep name=".\Generated_Source\PSoC5\USBFS_pm.c" />\r
-</file>\r
-<file name=".\Generated_Source\PSoC5\USBFS_pm.c" />\r
 <file name=".\CortexM3\ARM_GCC_473\Release\Cm3Start.o">\r
 <dep name=".\Generated_Source\PSoC5\CyDmac.h" />\r
 <dep name=".\Generated_Source\PSoC5\CyFlash.h" />\r
 <dep name=".\Generated_Source\PSoC5\USBFS_midi.c" />\r
 </file>\r
 <file name=".\Generated_Source\PSoC5\USBFS_midi.c" />\r
+<file name=".\CortexM3\ARM_GCC_473\Release\USBFS_pm.o">\r
+<dep name=".\Generated_Source\PSoC5\BL.h" />\r
+<dep name=".\Generated_Source\PSoC5\BL_PVT.h" />\r
+<dep name=".\Generated_Source\PSoC5\CyDmac.h" />\r
+<dep name=".\Generated_Source\PSoC5\CyFlash.h" />\r
+<dep name=".\Generated_Source\PSoC5\CyLib.h" />\r
+<dep name=".\Generated_Source\PSoC5\CySpc.h" />\r
+<dep name=".\Generated_Source\PSoC5\SCSI_Out_DBx_aliases.h" />\r
+<dep name=".\Generated_Source\PSoC5\SCSI_Out_aliases.h" />\r
+<dep name=".\Generated_Source\PSoC5\SD_PULLUP.h" />\r
+<dep name=".\Generated_Source\PSoC5\SD_PULLUP_aliases.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_Dm.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_Dm_aliases.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_Dp.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_Dp_aliases.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_audio.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_cdc.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_hid.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_midi.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_pvt.h" />\r
+<dep name=".\Generated_Source\PSoC5\core_cm3.h" />\r
+<dep name=".\Generated_Source\PSoC5\core_cm3_psoc5.h" />\r
+<dep name=".\Generated_Source\PSoC5\core_cmFunc.h" />\r
+<dep name=".\Generated_Source\PSoC5\core_cmInstr.h" />\r
+<dep name=".\Generated_Source\PSoC5\cyPm.h" />\r
+<dep name=".\Generated_Source\PSoC5\cydevice.h" />\r
+<dep name=".\Generated_Source\PSoC5\cydevice_trm.h" />\r
+<dep name=".\Generated_Source\PSoC5\cydisabledsheets.h" />\r
+<dep name=".\Generated_Source\PSoC5\cyfitter.h" />\r
+<dep name=".\Generated_Source\PSoC5\cyfitter_cfg.h" />\r
+<dep name=".\Generated_Source\PSoC5\cypins.h" />\r
+<dep name=".\Generated_Source\PSoC5\cytypes.h" />\r
+<dep name=".\Generated_Source\PSoC5\project.h" />\r
+<dep name=".\Generated_Source\PSoC5\USBFS_pm.c" />\r
+</file>\r
+<file name=".\Generated_Source\PSoC5\USBFS_pm.c" />\r
 <file name=".\CortexM3\ARM_GCC_473\Release\USBFS_std.o">\r
 <dep name=".\Generated_Source\PSoC5\CyDmac.h" />\r
 <dep name=".\Generated_Source\PSoC5\CyFlash.h" />\r
 <name_val_pair name="Z:\projects\SCSI2SD\git-3.4_debug\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Release\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
 <name_val_pair name="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Release\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
 <name_val_pair name="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Release\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
+<name_val_pair name="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Release\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
 </name>\r
 <name v="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3">\r
 <name_val_pair name=".\main.c" v="&quot;-I. &quot;&quot;-I./Generated_Source/PSoC5 &quot;&quot;-Wno-main &quot;&quot;-mcpu=cortex-m3 &quot;&quot;-mthumb &quot;&quot;-Wall &quot;&quot;-g &quot;&quot;-D &quot;&quot;DEBUG &quot;&quot;-Wa,-alh=${OutputDir}\${CompileFile}.lst &quot;&quot;-ffunction-sections &quot;" />\r
 <name_val_pair name="W:\SCSI2SD\software\SCSI2SD\USB_Bootloader.cydsn\CortexM3\ARM_GCC_473\Debug\USB_Bootloader.hex" v="&quot;-mthumb &quot;&quot;-march=armv7-m &quot;&quot;-mfix-cortex-m3-ldrd &quot;&quot;-T &quot;&quot;.\Generated_Source\PSoC5\cm3gcc.ld &quot;&quot;-g &quot;&quot;-Wl,-Map,${OutputDir}\${ProjectShortName}.map &quot;&quot;-specs=nano.specs &quot;&quot;-Wl,--gc-sections &quot;" />\r
 </name>\r
 </genericCmdLineData>\r
-<codeGenCmdLineTag v="&quot;-.appdatapath&quot; &quot;C:\Users\Micha_000\AppData\Local\Cypress Semiconductor\PSoC Creator\3.0&quot; &quot;-.fdsnotice&quot; &quot;-.fdswarpdepfile=warp_dependencies.txt&quot; &quot;-.fdselabdepfile=elab_dependencies.txt&quot; &quot;-.fdsbldfile=generated_files.txt&quot; &quot;-p&quot; &quot;Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj&quot; &quot;-d&quot; &quot;CY8C5267AXI-LP051&quot; &quot;-s&quot; &quot;Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5&quot; &quot;--&quot; &quot;-yv2&quot; &quot;-v3&quot; &quot;-ygs&quot; &quot;-q10&quot; &quot;-o2&quot; &quot;-.fftcfgtype=LE&quot; " />\r
+<codeGenCmdLineTag v="&quot;-.appdatapath&quot; &quot;C:\Users\Micha_000\AppData\Local\Cypress Semiconductor\PSoC Creator\3.0&quot; &quot;-.fdsnotice&quot; &quot;-.fdswarpdepfile=warp_dependencies.txt&quot; &quot;-.fdselabdepfile=elab_dependencies.txt&quot; &quot;-.fdsbldfile=generated_files.txt&quot; &quot;-p&quot; &quot;Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\USB_Bootloader.cyprj&quot; &quot;-d&quot; &quot;CY8C5267AXI-LP051&quot; &quot;-s&quot; &quot;Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\Generated_Source\PSoC5&quot; &quot;--&quot; &quot;-yv2&quot; &quot;-v3&quot; &quot;-ygs&quot; &quot;-q10&quot; &quot;-o2&quot; &quot;-.fftcfgtype=LE&quot; " />\r
 </CyGuid_b0374e30-ce3a-47f2-ad85-821643292c68>\r
 </dataGuid>\r
 <dataGuid v="597c5b74-0c46-4204-8b7f-96f3570671dc">\r
 <v>C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif</v>\r
 <v>C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\rtlpkg.vif</v>\r
 </warp_dep>\r
-<deps_time v="130495593784227004" />\r
+<deps_time v="130503061473414440" />\r
 <top_block v="TopDesign" />\r
 <last_generation v="0" />\r
 </CyGuid_925cc1e1-309e-4e08-b0a1-09a83c35b157>\r
 </dataGuid>\r
 <dataGuid v="769d31ea-68b1-4f0c-b90a-7c10a43ee563">\r
 <CyGuid_769d31ea-68b1-4f0c-b90a-7c10a43ee563 type_name="CyDesigner.Common.ProjMgmt.Model.CyLinkCustomData" version="1">\r
-<deps_time v="130495594117493903" />\r
+<deps_time v="130503062519177686" />\r
 </CyGuid_769d31ea-68b1-4f0c-b90a-7c10a43ee563>\r
 </dataGuid>\r
 <dataGuid v="bf610382-39c6-441f-80b8-b04622ea7845">\r
index 0dd5397a70cd436e07a009ca64bc1d8812ee49ac..0408db366e61c43e92af4726575c2e37687f84d5 100644 (file)
@@ -1,13 +1,13 @@
-Loading plugins phase: Elapsed time ==> 0s.663ms\r
-Initializing data phase: Elapsed time ==> 5s.693ms\r
+Loading plugins phase: Elapsed time ==> 0s.484ms\r
+Initializing data phase: Elapsed time ==> 4s.047ms\r
 <CYPRESSTAG name="CyDsfit arguments...">\r
-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</CYPRESSTAG>\r
+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</CYPRESSTAG>\r
 <CYPRESSTAG name="Design elaboration results...">\r
 </CYPRESSTAG>\r
-Elaboration phase: Elapsed time ==> 9s.252ms\r
+Elaboration phase: Elapsed time ==> 7s.623ms\r
 <CYPRESSTAG name="HDL generation results...">\r
 </CYPRESSTAG>\r
-HDL generation phase: Elapsed time ==> 0s.756ms\r
+HDL generation phase: Elapsed time ==> 0s.655ms\r
 <CYPRESSTAG name="Synthesis results...">\r
 \r
      | | | | | | |\r
@@ -25,23 +25,23 @@ HDL generation phase: Elapsed time ==> 0s.756ms
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe\r
-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\r
+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\r
 ======================================================================\r
 \r
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe\r
-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\r
+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\r
 ======================================================================\r
 \r
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   vlogfe\r
-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\r
+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\r
 ======================================================================\r
 \r
 vlogfe V6.3 IR 41:  Verilog parser\r
-Fri Jul 11 23:34:40 2014\r
+Sun Jul 20 15:00:50 2014\r
 \r
 \r
 ======================================================================\r
@@ -51,7 +51,7 @@ Options  :    -yv2 -q10 USB_Bootloader.v
 ======================================================================\r
 \r
 vpp V6.3 IR 41:  Verilog Pre-Processor\r
-Fri Jul 11 23:34:40 2014\r
+Sun Jul 20 15:00:50 2014\r
 \r
 \r
 vpp:  No errors.\r
@@ -76,11 +76,11 @@ vlogfe:  No errors.
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   tovif\r
-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\r
+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\r
 ======================================================================\r
 \r
 tovif V6.3 IR 41:  High-level synthesis\r
-Fri Jul 11 23:34:41 2014\r
+Sun Jul 20 15:00:51 2014\r
 \r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\std.vhd'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\cypress.vhd'.\r
@@ -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'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_mthv.vif'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif'.\r
-Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
-Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
+Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
+Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
 \r
 tovif:  No errors.\r
 \r
@@ -100,11 +100,11 @@ tovif:  No errors.
 ======================================================================\r
 Compiling:  USB_Bootloader.v\r
 Program  :   topld\r
-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\r
+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\r
 ======================================================================\r
 \r
 topld V6.3 IR 41:  Synthesis and optimization\r
-Fri Jul 11 23:34:43 2014\r
+Sun Jul 20 15:00:52 2014\r
 \r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\std.vhd'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\cypress.vhd'.\r
@@ -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'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_mthv.vif'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\common\stdlogic\mod_genv.vif'.\r
-Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
-Linking 'Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
+Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.ctl'.\r
+Linking 'Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v3\USB_Bootloader.cydsn\codegentemp\USB_Bootloader.v'.\r
 Linking 'C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\lib\lcpsoc3\stdlogic\cpsoc3.vif'.\r
 \r
 ----------------------------------------------------------\r
@@ -202,16 +202,16 @@ topld:  No errors.
 \r
 CYPRESS_DIR    : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\r
 Warp Program   : C:\Program Files (x86)\Cypress\PSoC Creator\3.0\PSoC Creator\warp\bin/warp.exe\r
-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\r
+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\r
 </CYPRESSTAG>\r
-Warp synthesis phase: Elapsed time ==> 9s.922ms\r
+Warp synthesis phase: Elapsed time ==> 8s.781ms\r
 <CYPRESSTAG name="Fitter results...">\r
 <CYPRESSTAG name="Fitter startup details...">\r
-cyp3fit: V3.0.0.1539, Family: PSoC3, Started at: Friday, 11 July 2014 23:34:49\r
-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\r
+cyp3fit: V3.0.0.1539, Family: PSoC3, Started at: Sunday, 20 July 2014 15:00:57\r
+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\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Design parsing">\r
-Design parsing phase: Elapsed time ==> 0s.152ms\r
+Design parsing phase: Elapsed time ==> 0s.031ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Tech mapping">\r
 <CYPRESSTAG name="Initial Mapping" icon="FILE_RPT_TECHM">\r
@@ -1314,8 +1314,8 @@ EMIF Fixed Blocks             :    0 :    1 :    1 :   0.00%
 LPF Fixed Blocks              :    0 :    2 :    2 :   0.00%\r
 SAR Fixed Blocks              :    0 :    1 :    1 :   0.00%\r
 </CYPRESSTAG>\r
-Technology Mapping: Elapsed time ==> 0s.414ms\r
-Tech mapping phase: Elapsed time ==> 0s.690ms\r
+Technology Mapping: Elapsed time ==> 0s.406ms\r
+Tech mapping phase: Elapsed time ==> 0s.687ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Analog Placement">\r
 Initial Analog Placement Results:\r
@@ -1345,10 +1345,10 @@ IO_5@[IOP=(3)][IoId=(5)] : SD_PULLUP(4) (fixed)
 IO_7@[IOP=(15)][IoId=(7)] : \USBFS:Dm(0)\ (fixed)\r
 IO_6@[IOP=(15)][IoId=(6)] : \USBFS:Dp(0)\ (fixed)\r
 USB[0]@[FFB(USB,0)] : \USBFS:USB\\r
-Analog Placement phase: Elapsed time ==> 0s.169ms\r
+Analog Placement phase: Elapsed time ==> 0s.094ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Analog Routing">\r
-Analog Routing phase: Elapsed time ==> 0s.001ms\r
+Analog Routing phase: Elapsed time ==> 0s.000ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Analog Code Generation">\r
 ============ Analog Final Answer Routes ============\r
@@ -1363,29 +1363,29 @@ Dump of CyP35AnalogRoutingResultsDB
 IsVddaHalfUsedForComp = False\r
 IsVddaHalfUsedForSar0 = False\r
 IsVddaHalfUsedForSar1 = False\r
-Analog Code Generation phase: Elapsed time ==> 1s.579ms\r
+Analog Code Generation phase: Elapsed time ==> 1s.405ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Digital Placement">\r
 <CYPRESSTAG name="Detailed placement messages">\r
 I2659: No Constrained paths were found. The placer will run in non-timing driven mode.\r
-I2076: Total run-time: 5.4 sec.\r
+I2076: Total run-time: 5.3 sec.\r
 \r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="PLD Packing">\r
 <CYPRESSTAG name="PLD Packing Summary">\r
 No PLDs were packed.\r
 </CYPRESSTAG>\r
-PLD Packing: Elapsed time ==> 0s.005ms\r
+PLD Packing: Elapsed time ==> 0s.000ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Partitioning">\r
 <CYPRESSTAG name="Initial Partitioning Summary">\r
 Initial Partitioning Summary not displayed at this verbose level.</CYPRESSTAG>\r
 <CYPRESSTAG name="Final Partitioning Summary">\r
 Final Partitioning Summary not displayed at this verbose level.</CYPRESSTAG>\r
-Partitioning: Elapsed time ==> 0s.088ms\r
+Partitioning: Elapsed time ==> 0s.079ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Simulated Annealing">\r
-Annealing: Elapsed time ==> 0s.003ms\r
+Annealing: Elapsed time ==> 0s.000ms\r
 <CYPRESSTAG name="Simulated Annealing Results">\r
 The seed used for moves was 114161200.\r
 Inital cost was 120, final cost is 120 (0.00% improvement).</CYPRESSTAG>\r
@@ -2664,32 +2664,32 @@ Port | Pin | Fixed |      Type |       Drive Mode |            Name | Connection
 </CYPRESSTAG>\r
 </CYPRESSTAG>\r
 </CYPRESSTAG>\r
-Digital component placer commit/Report: Elapsed time ==> 0s.381ms\r
-Digital Placement phase: Elapsed time ==> 9s.177ms\r
+Digital component placer commit/Report: Elapsed time ==> 0s.373ms\r
+Digital Placement phase: Elapsed time ==> 9s.093ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Digital Routing">\r
 Routing successful.\r
-Digital Routing phase: Elapsed time ==> 11s.165ms\r
+Digital Routing phase: Elapsed time ==> 8s.703ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Bitstream and API generation">\r
-Bitstream and API generation phase: Elapsed time ==> 25s.258ms\r
+Bitstream and API generation phase: Elapsed time ==> 25s.515ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Bitstream verification">\r
-Bitstream verification phase: Elapsed time ==> 0s.188ms\r
+Bitstream verification phase: Elapsed time ==> 0s.125ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Static timing analysis">\r
 Timing report is in USB_Bootloader_timing.html.\r
-Static timing analysis phase: Elapsed time ==> 3s.834ms\r
+Static timing analysis phase: Elapsed time ==> 3s.999ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Data reporting">\r
 Data reporting phase: Elapsed time ==> 0s.000ms\r
 </CYPRESSTAG>\r
 <CYPRESSTAG name="Database update...">\r
-Design database save phase: Elapsed time ==> 0s.664ms\r
+Design database save phase: Elapsed time ==> 0s.734ms\r
 </CYPRESSTAG>\r
-cydsfit: Elapsed time ==> 53s.302ms\r
+cydsfit: Elapsed time ==> 50s.735ms\r
 </CYPRESSTAG>\r
-Fitter phase: Elapsed time ==> 53s.394ms\r
-API generation phase: Elapsed time ==> 23s.082ms\r
-Dependency generation phase: Elapsed time ==> 1s.067ms\r
-Cleanup phase: Elapsed time ==> 0s.811ms\r
+Fitter phase: Elapsed time ==> 50s.829ms\r
+API generation phase: Elapsed time ==> 23s.686ms\r
+Dependency generation phase: Elapsed time ==> 0s.859ms\r
+Cleanup phase: Elapsed time ==> 0s.609ms\r
index 38df0b8fe72f2ead1d3d07fdd27413f869be8097..8b6a5f5d011e637e0a949b8bae1675b21071ab09 100644 (file)
@@ -539,7 +539,7 @@ function getElementsByClass(rootNode, elemName, className)
 <tr> <td class="prop"> Project :</td>\r
 <td class="proptext"> USB_Bootloader</td></tr>\r
 <tr> <td class="prop"> Build Time :</td>\r
-<td class="proptext"> 07/11/14 23:35:41</td></tr>\r
+<td class="proptext"> 07/20/14 15:01:46</td></tr>\r
 <tr> <td class="prop"> Device :</td>\r
 <td class="proptext"> CY8C5267AXI-LP051</td></tr>\r
 <tr> <td class="prop"> Temperature :</td>\r
index 911a24347502965e681b9a6b0498370f3d29a419..5392bd6495a2d5e2210587322898d28146d99756 100644 (file)
 #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)
index 29ed72b27416c6f19572f6119f052c05473c6e3f..196f01cacad14dcb00c85711ddf122ddc0bc9f68 100644 (file)
@@ -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 */
index bb5f7fba50416289f57a97b8fbbf8749c1160ec4..6c332eeb541214e52f7f318dac97f8590d6c31ba 100644 (file)
@@ -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];
index 9271af71f8c640d378a7b19451715f61a4491c1d..b4ea4dad303cd200d0c1df0351cc9c31c396a16a 100644 (file)
@@ -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))
index 706302ec6b45a2467705a68fd51a5ec17ca90083..e49d6c55884a27e25af0a7b69053029964681c88 100644 (file)
@@ -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,
index 2810d8e47f2d9428aed99f748c8fd643908930cf..2a28481f88c97959320ed132fae66cf0b2285238 100755 (executable)
@@ -18,7 +18,7 @@
       <Tool Name="postbuild" Command="" Options="" />
     </Toolchain>
   </Toolchains>
-  <Project Name="SCSI2SD" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" Version="4.0" Type="Bootloadable">
+  <Project Name="SCSI2SD" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" Version="4.0" Type="Bootloadable">
     <CMSIS_SVD_File>SCSI2SD.svd</CMSIS_SVD_File>
     <Datasheet />
     <LinkerFiles>
@@ -27,8 +27,8 @@
       <LinkerFile Toolchain="IAR EWARM">.\Generated_Source\PSoC5\Cm3Iar.icf</LinkerFile>
     </LinkerFiles>
     <Folders>
-      <Folder BuildType="BUILD" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\src">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
+      <Folder BuildType="BUILD" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\src">
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
           <File BuildType="BUILD" Toolchain="">..\..\src\main.c</File>
           <File BuildType="BUILD" Toolchain="">..\..\src\diagnostic.c</File>
           <File BuildType="BUILD" Toolchain="">..\..\src\disk.c</File>
           <File BuildType="BUILD" Toolchain="">..\..\src\config.h</File>
         </Files>
       </Folder>
-      <Folder BuildType="BUILD" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
+      <Folder BuildType="BUILD" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
           <File BuildType="BUILD" Toolchain="">.\device.h</File>
         </Files>
       </Folder>
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5">
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cyfitter_cfg.h</File>
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cyfitter_cfg.c</File>
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\cybootloader.c</File>
           <File BuildType="BUILD" Toolchain="">.\Generated_Source\PSoC5\libelf.dll</File>
         </Files>
       </Folder>
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5\ARM_GCC">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5\ARM_GCC">
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
           <File BuildType="BUILD" Toolchain="ARM GCC">.\Generated_Source\PSoC5\ARM_GCC\CyComponentLibrary.a</File>
         </Files>
       </Folder>
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5\ARM_Keil_MDK">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5\ARM_Keil_MDK">
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
           <File BuildType="BUILD" Toolchain="ARM Keil MDK">.\Generated_Source\PSoC5\ARM_Keil_MDK\CyComponentLibrary.a</File>
         </Files>
       </Folder>
-      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5\IAR">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
+      <Folder BuildType="STRICT" Path="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn\Generated_Source\PSoC5\IAR">
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn">
           <File BuildType="BUILD" Toolchain="IAR">.\Generated_Source\PSoC5\IAR\CyComponentLibrary.a</File>
         </Files>
       </Folder>
       <Folder BuildType="EXCLUDE" Path=".\codegentemp">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
       </Folder>
       <Folder BuildType="EXCLUDE" Path=".\ARM_GCC_441">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
       </Folder>
       <Folder BuildType="EXCLUDE" Path=".\ARM_GCC_473">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
       </Folder>
       <Folder BuildType="EXCLUDE" Path=".\DP8051_Keil_951">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
       </Folder>
       <Folder BuildType="EXCLUDE" Path=".\DP8051">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
       </Folder>
       <Folder BuildType="EXCLUDE" Path=".\CortexM0">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
       </Folder>
       <Folder BuildType="EXCLUDE" Path=".\CortexM3">
-        <Files Root="Z:\projects\SCSI2SD\git-3.5\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
+        <Files Root="Z:\projects\SCSI2SD\git\SCSI2SD\software\SCSI2SD\v4\SCSI2SD.cydsn" />
       </Folder>
     </Folders>
   </Project>
index fc745ec5d73105d39b25e8838fcead42ec4d7e08..6757f1f21b9b7134b44e1ad486b2466c38b863a3 100644 (file)
Binary files a/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit and b/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit differ
index 0a5400e3f4f48b965b34716b49102c1870c5fda5..e9e55f236bad45fc4461224510f70d57358cb048 100755 (executable)
Binary files a/software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch and b/software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch differ
index 3a62b69c7279853000717441ebdfd6065281319f..e5e6ce7b17252d607cdc5e20fa6bcfc2459b73e5 100644 (file)
Binary files a/software/SCSI2SD/v4/USB_Bootloader.cydsn/USB_Bootloader.cyfit and b/software/SCSI2SD/v4/USB_Bootloader.cydsn/USB_Bootloader.cyfit differ
index 535f10287a1c3afae3ff23ec2f1bcfb17032bfc9..0a439c8ec0d4d162e7fd54e6f01f1ec646084d8c 100644 (file)
@@ -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();
        }
 }
index a7a8f7f83e34da4fe750f04dbfdd580a4e7c571a..64b4eeae5c465f1aad47bf8af1af6269f4e059be 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+rm -rf build/
 make && \
        make TARGET=Win32 &&
        make TARGET=Win64
index 153101f2b02c66ad4505a1d6d76e39568b4ccebc..c645817526ca29a10c0dbc478ccc8363c13abd25 100644 (file)
@@ -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 (executable)
index 0000000..c724a35
--- /dev/null
@@ -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
index a7a8f7f83e34da4fe750f04dbfdd580a4e7c571a..64b4eeae5c465f1aad47bf8af1af6269f4e059be 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+rm -rf build/
 make && \
        make TARGET=Win32 &&
        make TARGET=Win64
index bbd685c28b49b84de982eda06d9b39a9ca72f783..7226774bc640899658371a6c922a069b8030d769 100644 (file)
@@ -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<int>(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(
index a7a8f7f83e34da4fe750f04dbfdd580a4e7c571a..64b4eeae5c465f1aad47bf8af1af6269f4e059be 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+rm -rf build/
 make && \
        make TARGET=Win32 &&
        make TARGET=Win64