34 #include "config/usb_conf.h"
35 #include "config/usbd_conf.h"
36 #include "stm32/usbd_dfu_core.h"
39 typedef struct _DFU_MAL_PROP
41 const uint8_t* pStrDesc;
42 uint16_t (*pMAL_Init) (void);
43 uint16_t (*pMAL_DeInit) (void);
44 uint16_t (*pMAL_Erase) (uint32_t Add);
45 uint16_t (*pMAL_Write) (uint32_t Add, uint32_t Len);
46 uint8_t *(*pMAL_Read) (uint32_t Add, uint32_t Len);
47 uint16_t (*pMAL_CheckAdd) (uint32_t Add);
48 const uint32_t EraseTiming;
49 const uint32_t WriteTiming;
59 #define _1st_BYTE(x) (uint8_t)((x)&0xFF)
60 #define _2nd_BYTE(x) (uint8_t)(((x)&0xFF00)>>8)
61 #define _3rd_BYTE(x) (uint8_t)(((x)&0xFF0000)>>16)
62 #define _4th_BYTE(x) (uint8_t)(((x)&0xFF000000)>>24)
65 #define SET_POLLING_TIMING(x) buffer[1] = _1st_BYTE(x);\
66 buffer[2] = _2nd_BYTE(x);\
67 buffer[3] = _3rd_BYTE(x);
71 uint16_t MAL_Init (
void);
72 uint16_t MAL_DeInit (
void);
73 uint16_t MAL_Erase (uint32_t SectorAddress);
74 uint16_t MAL_Write (uint32_t SectorAddress, uint32_t DataLength);
75 uint8_t *MAL_Read (uint32_t SectorAddress, uint32_t DataLength);
76 uint16_t MAL_GetStatus(uint32_t SectorAddress ,uint8_t Cmd, uint8_t *buffer);
78 extern uint8_t MAL_Buffer[XFERSIZE];