| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*!
- \file usbd_dfu_mal.h
- \brief USB DFU device media access layer header file
- */
- /*
- Copyright (C) 2017 GigaDevice
- 2017-06-06, V1.0.0, firmware for GD32F3x0
- */
- #ifndef USBD_DFU_MAL_H
- #define USBD_DFU_MAL_H
- #include "usb_conf.h"
- #include "usbd_conf.h"
- typedef struct _DFU_MAL_PROPERTY
- {
- const uint8_t* pStrDesc;
- uint8_t (*pMAL_Init) (void);
- uint8_t (*pMAL_DeInit) (void);
- uint8_t (*pMAL_Erase) (uint32_t Addr);
- uint8_t (*pMAL_Write) (uint32_t Addr, uint32_t Len);
- uint8_t* (*pMAL_Read) (uint32_t Addr, uint32_t Len);
- uint8_t (*pMAL_CheckAdd) (uint32_t Addr);
- const uint32_t EraseTimeout;
- const uint32_t WriteTimeout;
- }
- DFU_MAL_Property_TypeDef;
- typedef enum
- {
- MAL_OK = 0,
- MAL_FAIL
- } MAL_Status;
- #define _1st_BYTE(x) (uint8_t)((x) & 0xFF) /*!< addressing cycle 1st byte */
- #define _2nd_BYTE(x) (uint8_t)(((x) & 0xFF00) >> 8) /*!< addressing cycle 2nd byte */
- #define _3rd_BYTE(x) (uint8_t)(((x) & 0xFF0000) >> 16) /*!< addressing cycle 3rd byte */
- #define SET_POLLING_TIMEOUT(x) buffer[1] = _1st_BYTE(x);\
- buffer[2] = _2nd_BYTE(x);\
- buffer[3] = _3rd_BYTE(x);
- uint8_t DFU_MAL_Init (void);
- uint8_t DFU_MAL_DeInit (void);
- uint8_t DFU_MAL_Erase (uint32_t Addr);
- uint8_t DFU_MAL_Write (uint32_t Addr, uint32_t Len);
- uint8_t* DFU_MAL_Read (uint32_t Addr, uint32_t Len);
- uint8_t DFU_MAL_GetStatus (uint32_t Addr, uint8_t Cmd, uint8_t *buffer);
- extern uint8_t MAL_Buffer[TRANSFER_SIZE];
- #endif /* USBD_DFU_MAL_H */
|