diff --git a/.vscode/settings.json b/.vscode/settings.json
index 96d1637..92965d7 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -17,7 +17,8 @@
"usbd_ioreq.h": "c",
"tim.h": "c",
"nyan_temp_sensor.h": "c",
- "nyan_bitcoin.h": "c"
+ "nyan_bitcoin.h": "c",
+ "usb_otg.h": "c"
},
"cSpell.words": [
"BINTERVAL",
diff --git a/Composite/AL94.I-CUBE-USBD-COMPOSITE_conf.h b/Composite/AL94.I-CUBE-USBD-COMPOSITE_conf.h
index 3334769..cc98fae 100644
--- a/Composite/AL94.I-CUBE-USBD-COMPOSITE_conf.h
+++ b/Composite/AL94.I-CUBE-USBD-COMPOSITE_conf.h
@@ -6,7 +6,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2023 STMicroelectronics.
+ * Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -27,7 +27,7 @@
/**
MiddleWare name : AL94.I-CUBE-USBD-COMPOSITE.1.0.3
- MiddleWare fileName : ./AL94.I-CUBE-USBD-COMPOSITE_conf.h
+ MiddleWare fileName : AL94.I-CUBE-USBD-COMPOSITE_conf.h
MiddleWare version :
*/
/*---------- _USBD_USE_HS -----------*/
diff --git a/Core/Inc/nyan_os.h b/Core/Inc/nyan_os.h
index 0507498..841e907 100644
--- a/Core/Inc/nyan_os.h
+++ b/Core/Inc/nyan_os.h
@@ -8,6 +8,8 @@
#include "nyan_bitcoin.h"
#include "nyan_eeprom_map.h"
+#include "usb_device.h"
+
#define _NYAN_WELCOME_GUARD_TIME 2 // Currently a multiple of TIM7 Period (.777 seconds)
#define _NYAN_CDC_CHANNEL 0
#define _NYAN_CDC_RX_BUF_SZ 512
@@ -19,9 +21,10 @@
#define _NYAN_NUM_COMMANDS (sizeof(nyan_commands) / sizeof(nyan_commands[0]))
-extern Eeprom24xx nos_eeprom; // 24xx Based EEPROM
-extern LatticeIceHX nos_fpga; // Lattice ICE40HX4k FPGA driver access
-extern NyanBitcoin nyan_bitcoin; // Nyan Keys Background Bitcoin Miner
+extern Eeprom24xx nos_eeprom; // 24xx Based EEPROM
+extern LatticeIceHX nos_fpga; // Lattice ICE40HX4k FPGA driver access
+extern NyanBitcoin nyan_bitcoin; // Nyan Keys Background Bitcoin Miner
+extern USBD_HandleTypeDef hUsbDevice; // USB Device for DFU Reset
static const char* const nyan_commands[] = {
"help",
@@ -29,7 +32,8 @@ static const char* const nyan_commands[] = {
"getperf",
"write-bitstream",
"set-owner",
- "bitcoin-miner-set"
+ "bitcoin-miner-set",
+ "dfu-mode"
};
typedef enum {
@@ -66,6 +70,7 @@ typedef enum {
NYAN_EXE_WRITE_BITSTREAM, /**< Execute command to write a bitstream to FPGA. */
NYAN_EXE_SET_OWNER, /**< Execute command to set the owner of the system. */
NYAN_EXE_BITCOIN_MINER_SET, /**< Execute command to configure the Bitcoin miner. */
+ NYAN_EXE_DFU_MODE, /**< Execute command to make nyan keys enter DFU Mode: Board version > .9e*/
NYAN_EXE_COMMAND_NOT_SUPPORTED, /**< Indicator for an unsupported or unrecognized command. */
NYAN_EXE_IDLE /**< System is in an idle state, not currently executing any command. */
} NyanExe;
@@ -100,6 +105,8 @@ typedef struct {
typedef struct {
bool send_welcome_screen; /**< Flag to indicate if the welcome screen should be sent. Initialized to false. */
uint8_t send_welcome_screen_guard; /**< Timer value to prevent multiple welcome screens. */
+ bool dfu_mode; /**< Boolean representing if Nyan Keys should enter a DFU mode */
+ bool dfu_counter; /**< Number of counts to let capacitor charge up, to enable BOOT0 to go high */
char exe_char; /**< ASCII character that triggers command evaluation. */
Eeprom24xx *eeprom; /**< Pointer to NyanOS EEPROM driver. */
@@ -284,4 +291,9 @@ void FreeNyanCommandArgs(volatile NyanOS* nos);
*/
void FreeNyanString(NyanString* nyanString);
+/**
+ * @brief Pulls pin E0 high to charge capacitor to let Nyan Keys enter th DFU mode
+ */
+NyanReturn NyanEnterDFUMode(volatile NyanOS* nos);
+
#endif // NYAN_OS_H
\ No newline at end of file
diff --git a/Core/Inc/nyan_strings.h b/Core/Inc/nyan_strings.h
index 6c99181..9d3a782 100644
--- a/Core/Inc/nyan_strings.h
+++ b/Core/Inc/nyan_strings.h
@@ -53,4 +53,7 @@ extern const uint8_t nyan_keys_write_bitcoin_miner_nbits[];
//COMMAND: bitcoin-miner-set nonce
extern const uint8_t nyan_keys_write_bitcoin_miner_nonce[];
+//COMMAND: dfu-mode
+extern const uint8_t nyan_keys_enter_dfu_mode_reboot_warning[];
+
#endif // _NYAN_STRINGS
\ No newline at end of file
diff --git a/Core/Src/main.c b/Core/Src/main.c
index f75ae1d..628a2a5 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -130,10 +130,10 @@ int main(void)
MX_TIM7_Init();
MX_TIM6_Init();
MX_TIM1_Init();
- MX_USB_OTG_HS_PCD_Init();
MX_RNG_Init();
MX_TIM8_Init();
MX_TIM14_Init();
+ MX_USB_OTG_HS_PCD_Init();
/* USER CODE BEGIN 2 */
// Activate the STM32F7 timer interrupts
HAL_TIM_Base_Start_IT(&htim1);
@@ -151,8 +151,9 @@ int main(void)
#ifdef BITCOIN_MINER_EN
NyanBitcoinInit(&nyan_bitcoin); // Load up the bitcoin miner, comment this out or delete to disable.
#endif
- /* USER CODE END 2 */
bool keys_dma_started = false;
+ /* USER CODE END 2 */
+
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
diff --git a/Core/Src/nyan_os.c b/Core/Src/nyan_os.c
index 7402109..49235f9 100644
--- a/Core/Src/nyan_os.c
+++ b/Core/Src/nyan_os.c
@@ -12,7 +12,6 @@
#include "main.h"
#include "24xx_eeprom.h"
#include "tim.h"
-#include "usbd_cdc_acm_if.h"
#include "nyan_os.h"
#include "nyan_sha256.h"
#include "nyan_strings.h"
@@ -269,6 +268,16 @@ NyanReturn NyanExecute(volatile NyanOS* nos) {
nos->exe = NYAN_EXE_IDLE;
HAL_TIM_OC_Start_IT(&htim8, TIM_CHANNEL_1);
return NOS_SUCCESS;
+
+ case NYAN_EXE_DFU_MODE:
+ HAL_TIM_OC_Stop_IT(&htim8, TIM_CHANNEL_1);
+ nos->exe_in_progress = true;
+ NyanEnterDFUMode(nos);
+ NyanPrint(nos, (char*)&nyan_keys_enter_dfu_mode_reboot_warning[0], strlen((char*)nyan_keys_enter_dfu_mode_reboot_warning));
+ nos->exe_in_progress = false;
+ nos->exe = NYAN_EXE_IDLE;
+ HAL_TIM_OC_Start_IT(&htim8, TIM_CHANNEL_1);
+ return NOS_SUCCESS;
case NYAN_EXE_IDLE :
return NOS_SUCCESS;
@@ -287,6 +296,13 @@ NyanReturn NyanExecute(volatile NyanOS* nos) {
}
}
+NyanReturn NyanEnterDFUMode(volatile NyanOS* nos)
+{
+ nos->dfu_counter = 0;
+ nos->dfu_mode = true;
+ return NOS_SUCCESS;
+}
+
NyanReturn NyanDecodeArgs(volatile NyanOS* nos)
{
if (!nos) {
diff --git a/Core/Src/nyan_strings.c b/Core/Src/nyan_strings.c
index 7917723..0d447e9 100644
--- a/Core/Src/nyan_strings.c
+++ b/Core/Src/nyan_strings.c
@@ -73,3 +73,6 @@ const uint8_t nyan_keys_write_bitcoin_miner_nbits[] = "Nyan BitCoin Miner nbits
//COMMAND: bitcoin-miner-set nonce
const uint8_t nyan_keys_write_bitcoin_miner_nonce[] = "Nyan BitCoin Miner nonce set successfully.\r\n";
+
+//COMMAND: dfu-mode
+const uint8_t nyan_keys_enter_dfu_mode_reboot_warning[] = "Nyan Keys entering DFU mode and rebooting\r\n";
diff --git a/Core/Src/stm32f7xx_it.c b/Core/Src/stm32f7xx_it.c
index eb3554c..c181614 100644
--- a/Core/Src/stm32f7xx_it.c
+++ b/Core/Src/stm32f7xx_it.c
@@ -356,6 +356,20 @@ void SPI2_IRQHandler(void)
/* USER CODE END SPI2_IRQn 1 */
}
+/**
+ * @brief This function handles TIM8 update interrupt and TIM13 global interrupt.
+ */
+void TIM8_UP_TIM13_IRQHandler(void)
+{
+ /* USER CODE BEGIN TIM8_UP_TIM13_IRQn 0 */
+
+ /* USER CODE END TIM8_UP_TIM13_IRQn 0 */
+ HAL_TIM_IRQHandler(&htim8);
+ /* USER CODE BEGIN TIM8_UP_TIM13_IRQn 1 */
+
+ /* USER CODE END TIM8_UP_TIM13_IRQn 1 */
+}
+
/**
* @brief This function handles TIM8 trigger and commutation interrupts and TIM14 global interrupt.
*/
diff --git a/Core/Src/usb_otg.c b/Core/Src/usb_otg.c
index d398d07..fc18c58 100644
--- a/Core/Src/usb_otg.c
+++ b/Core/Src/usb_otg.c
@@ -7,7 +7,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2023 STMicroelectronics.
+ * Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
diff --git a/Makefile b/Makefile
index 98d4acb..7704c13 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
##########################################################################################################################
-# File automatically-generated by tool: [projectgenerator] version: [4.1.0] date: [Mon Jan 08 23:03:23 PST 2024]
+# File automatically-generated by tool: [projectgenerator] version: [4.1.0] date: [Tue Jan 09 08:35:57 PST 2024]
##########################################################################################################################
# ------------------------------------------------
@@ -76,7 +76,6 @@ Core/Src/iceuncompr.c \
Core/Src/lattice_ice_hx.c \
Core/Src/24xx_eeprom.c \
Core/Src/tim.c \
-Core/Src/usb_otg.c \
Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Class/COMPOSITE/Src/usbd_composite.c \
Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Class/HID_KEYBOARD/Src/usbd_hid_keyboard.c \
Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Core/Src/usbd_core.c \
@@ -87,7 +86,8 @@ Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_desc.c \
Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Target/usbd_conf.c \
Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Class/CDC_ACM/Src/usbd_cdc_acm.c \
Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_cdc_acm_if.c \
-Core/Src/dma.c
+Core/Src/dma.c \
+Core/Src/usb_otg.c
# ASM sources
ASM_SOURCES = \
@@ -152,10 +152,12 @@ C_INCLUDES = \
-IComposite \
-IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Class/COMPOSITE/Inc \
-IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Class/HID_KEYBOARD/Inc \
+-IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Class/CDC_ACM/Inc \
-IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Core/Inc \
-IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App \
--IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Target \
--IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Class/CDC_ACM/Inc
+-IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Target \
+-IMiddlewares/Third_Party/AL94_USB_Composite/COMPOSITE/Target
+
# compile gcc flags
diff --git a/Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_dfu_if.c b/Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_dfu_if.c
deleted file mode 100644
index 4aa6c3e..0000000
--- a/Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_dfu_if.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* USER CODE BEGIN Header */
-/**
- ******************************************************************************
- * @file : usbd_dfu_if.c
- * @brief : Usb device for Download Firmware Update.
- ******************************************************************************
- * @attention
- *
- *
© Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software component is licensed by ST under Ultimate Liberty license
- * SLA0044, the "License"; You may not use this file except in compliance with
- * the License. You may obtain a copy of the License at:
- * www.st.com/SLA0044
- *
- ******************************************************************************
- */
-/* USER CODE END Header */
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_dfu_if.h"
-
-/* USER CODE BEGIN INCLUDE */
-
-/* USER CODE END INCLUDE */
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-
-/* USER CODE BEGIN PV */
-/* Private variables ---------------------------------------------------------*/
-
-/* USER CODE END PV */
-
-/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
- * @brief Usb device.
- * @{
- */
-
-/** @defgroup USBD_DFU
- * @brief Usb DFU device module.
- * @{
- */
-
-/** @defgroup USBD_DFU_Private_TypesDefinitions
- * @brief Private types.
- * @{
- */
-
-/* USER CODE BEGIN PRIVATE_TYPES */
-
-/* USER CODE END PRIVATE_TYPES */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_DFU_Private_Defines
- * @brief Private defines.
- * @{
- */
-
-#define FLASH_DESC_STR "@Internal Flash /0x08000000/03*016Ka,01*016Kg,01*064Kg,07*128Kg,04*016Kg,01*064Kg,07*128Kg"
-
-/* USER CODE BEGIN PRIVATE_DEFINES */
-
-/* USER CODE END PRIVATE_DEFINES */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_DFU_Private_Macros
- * @brief Private macros.
- * @{
- */
-
-/* USER CODE BEGIN PRIVATE_MACRO */
-
-/* USER CODE END PRIVATE_MACRO */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_DFU_Private_Variables
- * @brief Private variables.
- * @{
- */
-
-/* USER CODE BEGIN PRIVATE_VARIABLES */
-
-/* USER CODE END PRIVATE_VARIABLES */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_DFU_Exported_Variables
- * @brief Public variables.
- * @{
- */
-
-extern USBD_HandleTypeDef hUsbDevice;
-
-/* USER CODE BEGIN EXPORTED_VARIABLES */
-
-/* USER CODE END EXPORTED_VARIABLES */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_DFU_Private_FunctionPrototypes
- * @brief Private functions declaration.
- * @{
- */
-
-static uint16_t MEM_If_Init(void);
-static uint16_t MEM_If_Erase(uint32_t Add);
-static uint16_t MEM_If_Write(uint8_t *src, uint8_t *dest, uint32_t Len);
-static uint8_t *MEM_If_Read(uint8_t *src, uint8_t *dest, uint32_t Len);
-static uint16_t MEM_If_DeInit(void);
-static uint16_t MEM_If_GetStatus(uint32_t Add, uint8_t Cmd, uint8_t *buffer);
-
-/* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */
-
-/* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */
-
-/**
- * @}
- */
-
-#if defined ( __ICCARM__ ) /* IAR Compiler */
- #pragma data_alignment=4
-#endif
-
-__ALIGN_BEGIN USBD_DFU_MediaTypeDef USBD_DFU_fops __ALIGN_END =
-{
- (uint8_t*)FLASH_DESC_STR,
- MEM_If_Init,
- MEM_If_DeInit,
- MEM_If_Erase,
- MEM_If_Write,
- MEM_If_Read,
- MEM_If_GetStatus
-};
-
-/* Private functions ---------------------------------------------------------*/
-
-/**
- * @brief Memory initialization routine.
- * @retval USBD_OK if operation is successful, MAL_FAIL else.
- */
-uint16_t MEM_If_Init(void)
-{
- /* USER CODE BEGIN 6 */
- return (USBD_OK);
- /* USER CODE END 6 */
-}
-
-/**
- * @brief De-Initializes Memory.
- * @retval USBD_OK if operation is successful, MAL_FAIL else.
- */
-uint16_t MEM_If_DeInit(void)
-{
- /* USER CODE BEGIN 7 */
- return (USBD_OK);
- /* USER CODE END 7 */
-}
-
-/**
- * @brief Erase sector.
- * @param Add: Address of sector to be erased.
- * @retval USBD_OK if operation is successful, MAL_FAIL else.
- */
-uint16_t MEM_If_Erase(uint32_t Add)
-{
- /* USER CODE BEGIN 8 */
- return (USBD_OK);
- /* USER CODE END 8 */
-}
-
-/**
- * @brief Memory write routine.
- * @param src: Pointer to the source buffer. Address to be written to.
- * @param dest: Pointer to the destination buffer.
- * @param Len: Number of data to be written (in bytes).
- * @retval USBD_OK if operation is successful, MAL_FAIL else.
- */
-uint16_t MEM_If_Write(uint8_t *src, uint8_t *dest, uint32_t Len)
-{
- /* USER CODE BEGIN 9 */
- return (USBD_OK);
- /* USER CODE END 9 */
-}
-
-/**
- * @brief Memory read routine.
- * @param src: Pointer to the source buffer. Address to be written to.
- * @param dest: Pointer to the destination buffer.
- * @param Len: Number of data to be read (in bytes).
- * @retval Pointer to the physical address where data should be read.
- */
-uint8_t *MEM_If_Read(uint8_t *src, uint8_t *dest, uint32_t Len)
-{
- /* Return a valid address to avoid HardFault */
- /* USER CODE BEGIN 10 */
- return (uint8_t*)(USBD_OK);
- /* USER CODE END 10 */
-}
-
-/**
- * @brief Get status routine.
- * @param Add: Address to be read from.
- * @param Cmd: Number of data to be read (in bytes).
- * @param buffer: used for returning the time necessary for a program or an erase operation
- * @retval 0 if operation is successful
- */
-uint16_t MEM_If_GetStatus(uint32_t Add, uint8_t Cmd, uint8_t *buffer)
-{
- /* USER CODE BEGIN 11 */
- switch(Cmd)
- {
- case DFU_MEDIA_PROGRAM:
-
- break;
-
- case DFU_MEDIA_ERASE:
- default:
-
- break;
- }
- return (USBD_OK);
- /* USER CODE END 11 */
-}
-
-/* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */
-
-/* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_dfu_if.h b/Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_dfu_if.h
deleted file mode 100644
index f881b7f..0000000
--- a/Middlewares/Third_Party/AL94_USB_Composite/COMPOSITE/App/usbd_dfu_if.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* USER CODE BEGIN Header */
-/**
- ******************************************************************************
- * @file : usbd_dfu_if.h
- * @brief : Header for usbd_dfu_if.c file.
- ******************************************************************************
- * @attention
- *
- * © Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software component is licensed by ST under Ultimate Liberty license
- * SLA0044, the "License"; You may not use this file except in compliance with
- * the License. You may obtain a copy of the License at:
- * www.st.com/SLA0044
- *
- ******************************************************************************
- */
-/* USER CODE END Header */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBD_DFU_IF_H__
-#define __USBD_DFU_IF_H__
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include "usbd_dfu.h"
-
-/* USER CODE BEGIN INCLUDE */
-
-/* USER CODE END INCLUDE */
-
-/** @addtogroup STM32_USB_DEVICE_LIBRARY
- * @brief For Usb device.
- * @{
- */
-
-/** @defgroup USBD_MEDIA USBD_MEDIA
- * @brief Header file for the usbd_dfu_if.c file.
- * @{
- */
-
-/** @defgroup USBD_MEDIA_Exported_Defines USBD_MEDIA_Exported_Defines
- * @brief Defines.
- * @{
- */
-
-/* USER CODE BEGIN EXPORTED_DEFINES */
-
-/* USER CODE END EXPORTED_DEFINES */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_MEDIA_Exported_Types USBD_MEDIA_Exported_Types
- * @brief Types.
- * @{
- */
-
-/* USER CODE BEGIN EXPORTED_TYPES */
-
-/* USER CODE END EXPORTED_TYPES */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_MEDIA_Exported_Macros USBD_MEDIA_Exported_Macros
- * @brief Aliases.
- * @{
- */
-
-/* USER CODE BEGIN EXPORTED_MACRO */
-
-/* USER CODE END EXPORTED_MACRO */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_MEDIA_Exported_Variables USBD_MEDIA_Exported_Variables
- * @brief Public variables.
- * @{
- */
-
-/** MEDIA Interface callback. */
-extern USBD_DFU_MediaTypeDef USBD_DFU_fops;
-
-/* USER CODE BEGIN EXPORTED_VARIABLES */
-
-/* USER CODE END EXPORTED_VARIABLES */
-
-/**
- * @}
- */
-
-/** @defgroup USBD_MEDIA_Exported_FunctionsPrototype USBD_MEDIA_Exported_FunctionsPrototype
- * @brief Public functions declaration.
- * @{
- */
-
-/* USER CODE BEGIN EXPORTED_FUNCTIONS */
-
-/* USER CODE END EXPORTED_FUNCTIONS */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __USBD_DFU_IF_H__ */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/STM32Make.make b/STM32Make.make
index be6c2c7..d1452f7 100644
--- a/STM32Make.make
+++ b/STM32Make.make
@@ -226,7 +226,6 @@ vpath %.cpp $(sort $(dir $(CPP_SOURCES)))
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
vpath %.c $(sort $(dir $(C_SOURCES)))
-# list of ASM program objects
# list of ASM program objects
UPPER_CASE_ASM_SOURCES = $(filter %.S,$(ASM_SOURCES))
LOWER_CASE_ASM_SOURCES = $(filter %.s,$(ASM_SOURCES))
diff --git a/nyan_keys.ioc b/nyan_keys.ioc
index 9c502ab..526ea13 100644
--- a/nyan_keys.ioc
+++ b/nyan_keys.ioc
@@ -3,9 +3,10 @@ AL94.I-CUBE-USBD-COMPOSITE.1.0.3.CompositeCcUSBJjCOMPOSITEJjCDCIiACM=true
AL94.I-CUBE-USBD-COMPOSITE.1.0.3.CompositeCcUSBJjCOMPOSITEJjCOMPOSITE=true
AL94.I-CUBE-USBD-COMPOSITE.1.0.3.CompositeCcUSBJjCOMPOSITEJjCore=true
AL94.I-CUBE-USBD-COMPOSITE.1.0.3.CompositeCcUSBJjCOMPOSITEJjHIDIiKEYBOARD=true
-AL94.I-CUBE-USBD-COMPOSITE.1.0.3.IPParameters=_USBD_USE_HS,_USBD_USE_CDC_ACM,_USBD_USE_HID_CUSTOM,_USBD_USE_HID_KEYBOARD,CompositeCcUSBJjCOMPOSITEJjCore,CompositeCcUSBJjCOMPOSITEJjCDCIiACM,CompositeCcUSBJjCOMPOSITEJjHIDIiKEYBOARD,CompositeCcUSBJjCOMPOSITEJjCOMPOSITE
+AL94.I-CUBE-USBD-COMPOSITE.1.0.3.IPParameters=_USBD_USE_HS,_USBD_USE_CDC_ACM,_USBD_USE_HID_CUSTOM,_USBD_USE_HID_KEYBOARD,CompositeCcUSBJjCOMPOSITEJjCore,CompositeCcUSBJjCOMPOSITEJjCDCIiACM,CompositeCcUSBJjCOMPOSITEJjHIDIiKEYBOARD,CompositeCcUSBJjCOMPOSITEJjCOMPOSITE,_USBD_USE_DFU
AL94.I-CUBE-USBD-COMPOSITE.1.0.3.USBJjComposite_Checked=true
AL94.I-CUBE-USBD-COMPOSITE.1.0.3._USBD_USE_CDC_ACM=true
+AL94.I-CUBE-USBD-COMPOSITE.1.0.3._USBD_USE_DFU=false
AL94.I-CUBE-USBD-COMPOSITE.1.0.3._USBD_USE_HID_CUSTOM=false
AL94.I-CUBE-USBD-COMPOSITE.1.0.3._USBD_USE_HID_KEYBOARD=true
AL94.I-CUBE-USBD-COMPOSITE.1.0.3._USBD_USE_HS=true
@@ -279,7 +280,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_I2C1_Init-I2C1-false-HAL-true,7-MX_TIM7_Init-TIM7-false-HAL-true,8-MX_TIM6_Init-TIM6-false-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_USB_OTG_HS_PCD_Init-USB_OTG_HS-false-HAL-true,11-MX_RNG_Init-RNG-false-HAL-true,12-MX_TIM8_Init-TIM8-false-HAL-true,13-MX_TIM14_Init-TIM14-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_I2C1_Init-I2C1-false-HAL-true,7-MX_TIM7_Init-TIM7-false-HAL-true,8-MX_TIM6_Init-TIM6-false-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_RNG_Init-RNG-false-HAL-true,11-MX_TIM8_Init-TIM8-false-HAL-true,12-MX_TIM14_Init-TIM14-false-HAL-true,13-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
RCC.AHBFreq_Value=216000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4
RCC.APB1Freq_Value=54000000