Go to the documentation of this file.
48 #ifndef __GR55XX_DFU_H__
49 #define __GR55XX_DFU_H__
56 #define DFU_ADV_MAX_LENGTH 18
57 #define RECEIVE_MAX_LEN 2048
61 #define DFU_WRITE_RAM_DISABLE 0x0001
62 #define DFU_READ_RAM_DISABLE 0x0002
63 #define DFU_DUMP_FLASH_DISABLE 0x0004
64 #define DFU_ERASE_FLASH_DISABLE 0x0008
65 #define DFU_UPDAE_FLASH_DISABLE 0x0010
66 #define DFU_OPERATE_SYSTEM_INFO_DISABLE 0x0020
67 #define DFU_OPERATE_NVDS_DISABLE 0x0040
68 #define DFU_OPERATE_EFUSE_DISABLE 0x0080
69 #define DFU_CONFIG_SPI_FLASH_DISABLE 0x0100
70 #define DFU_OPERATE_REG_DISABLE 0x0200
197 void (*dfu_ble_send_data)(uint8_t *p_data, uint16_t length);
198 void (*dfu_uart_send_data)(uint8_t *p_data, uint16_t length);
199 uint32_t (*dfu_flash_read)(
const uint32_t addr, uint8_t *p_buf,
const uint32_t size);
200 uint32_t (*dfu_flash_write)(
const uint32_t addr,
const uint8_t *p_buf,
const uint32_t size);
201 bool (*dfu_flash_erase)(
const uint32_t addr,
const uint32_t size);
202 bool (*dfu_flash_erase_chip)(void);
203 void (*dfu_flash_set_security)(
bool enable);
204 bool (*dfu_flash_get_security)(void);
205 void (*dfu_flash_get_info)(uint32_t *id, uint32_t *size);
211 void (*dfu_spi_flash_init)(uint8_t *p_data);
212 uint32_t (*dfu_spi_flash_read)(uint32_t addr, uint8_t *buf, uint32_t size);
213 uint32_t (*dfu_spi_flash_write)(uint32_t addr, uint8_t *buf, uint32_t size);
214 bool (*dfu_spi_flash_erase)(uint32_t addr, uint32_t size);
215 bool (*dfu_spi_flash_erase_chip)(void);
216 void (*dfu_spi_flash_get_info)(uint32_t *id, uint32_t *size);
223 void (*dfu_program_start_callback)(void);
224 void (*dfu_programing_callback)(uint8_t pro);
225 void (*dfu_program_end_callback)(uint8_t status);
dfu_uart_pin_group_t pin_group
Uart pin group.
void dfu_init(dfu_func_t *p_app_dfu_func, uint8_t *p_dfu_buffer, dfu_pro_callback_t *p_dfu_callback)
Function for initializing the DFU Used and Program State Callback.
#define DFU_ADV_MAX_LENGTH
The max length of advertisement is 18 bytes.
void dfu_set_disable_cmd(uint16_t disable_cmd_bit_map)
Function for set DFU disable cmd.
uint32_t load_addr
Firmware Load Address.
uint32_t code_copy_mode
Bit: 4 code copy mode.
@ DFU_UART_PARITY_ODD
Parity odd.
DFU used functions config definition.
void dfu_ble_receive_data_process(uint8_t *p_data, uint16_t length)
This function should be called when BLE receives data.
@ DFU_UART_STOP_BIT_1_5
Stop bit 1.5.
@ DFU_UART_PIN_GROUP_0
GPIO0_PIN3 -> UART0_TXD(MUX0),GPIO0_PIN4 -> UART0_RXD(MUX0)
DFU uart config definition.
@ DFU_UART_BAUDRATE_9600
Baudrate 9600.
@ DFU_UART_PIN_GROUP_3
GPIO1_PIN14 -> UART0_TXD(MUX5),GPIO1_PIN10 -> UART0_RXD(MUX5)
void dfu_uart_receive_data_process(uint8_t *p_data, uint16_t length)
This function should be called when UART receives data.
void dfu_start_jump(uint32_t start_addr)
Function for jumping to address to run.
@ DFU_UART_DATA_BIT_5
Data bit 5.
DFU NVDS init info definition.
dfu_uart_parity_bit_t parity
Specify the parity mode.
@ DFU_UART_PARITY_SP_1
Parity stick 1.
dfu_uart_data_bit_t data_bit
The number of data bits transmitted or received in a frame.
uint32_t xqspi_speed
Bit: 0-3 clock speed.
uint32_t boot_delay
Bit: Boot delay flag.
void dfu_ble_set_mtu_size(uint16_t mtu_size)
Function for setting the BLE MTU size.
@ DFU_UART_BAUDRATE_921600
Baudrate 921600.
void dfu_ble_send_data_cmpl_process(void)
This function should be called when BLE stack sends data completely.
uint32_t bin_size
Firmware Size.
@ DFU_UART_PARITY_SP_0
Parity stick 0.
dfu_uart_stop_bit_t
UART stop bit definition.
dfu_uart_parity_bit_t
UART parity definition.
@ DFU_UART_BAUDRATE_230400
Baudrate 230400.
@ DFU_UART_BAUDRATE_19200
Baudrate 19200.
dfu_info_state state
If DFU cmd disable config is required, this parameter can be a value of dfu_info_state.
dfu_uart_stop_bit_t stop_bits
The number of stop bits transmitted.
@ DFU_UART_STOP_BIT_1
Stop bit 1.
dfu_info_state
DFU informatica status.
@ DFU_INFO_DISABLE
DFU Config Info Disable.
void dfu_schedule(void)
Function for checking DFU cmd.
dfu_info_state state
DFU UART Enable or Disable.
@ DFU_UART_BAUDRATE_115200
Baudrate 115200.
uint16_t page_size
NVDS page size.
@ DFU_UART_DATA_BIT_7
Data bit 7.
@ DFU_UART_PIN_GROUP_2
GPIO0_PIN0 -> UART0_TXD(MUX4),GPIO0_PIN1 -> UART0_RXD(MUX4)
uint32_t run_addr
Firmware Run Address.
@ DFU_INFO_DEFAULT
DFU Config Info DEFAULT.
@ DFU_UART_BAUDRATE_38400
Baudrate 38400.
void dfu_start_address(boot_info_t *p_boot_info)
Function for changing the boot info and reseting device.
dfu_uart_pin_group_t
UART pin group definition.
uint32_t check_sum
Firmware Check Sum Value.
@ DFU_UART_PIN_GROUP_1
GPIO0_PIN10 -> UART0_TXD(MUX2),GPIO0_PIN11 -> UART0_RXD(MUX2)
uint16_t adv_name_length
The length of the name.
dfu_uart_data_bit_t
UART data bit definition.
dfu_info_state state
If a set name is used, this parameter can be a value of dfu_info_state.
@ DFU_UART_PARITY_EVEN
Parity even.
dfu_uart_baudrate_t
UART baudrate definition.
void dfu_spi_flash_func_config(dfu_spi_flash_func_t *spi_flash_func)
Function for initializing the DFU SPI Flash Callback.
dfu_uart_baudrate_t baud_rate
UART communication baudrate.
uint16_t cmd_bit_map
NVDS start address.
@ DFU_UART_DATA_BIT_6
Data bit 6.
BootLoader information definition.
@ DFU_UART_STOP_BIT_2
Stop bit 2.
uint32_t check_image
Bit: 8 check image.
uint32_t start_address
NVDS start address.
DFU Advertisement name config definition.
uint32_t xqspi_xip_cmd
XIP Read Mode.
SPI used functions config definition.
@ DFU_UART_BAUDRATE_57600
Baudrate 57600.
uint32_t is_dap_boot
Bit: 11 check if boot dap mode.
uint32_t system_clk
Bit: 5-7 system clock.
DFU program state callback definition.
dfu_info_state state
If NVDS init is required, this parameter can be a value of dfu_info_state.
void dfu_cmd_parse_state_reset(void)
Function for reset the DFU cmd parse state.
@ DFU_UART_PARITY_NONE
Parity none.
@ DFU_UART_PIN_GROUP_5
GPIO0_PIN9 -> UART1_TXD(MUX3),GPIO0_PIN8 -> UART1_RXD(MUX3)
@ DFU_INFO_ENABLE
DFU Config Info Enable.
DFU cmd disable info definition.
@ DFU_UART_DATA_BIT_8
Data bit 8.
uint32_t reserved
Bit: 24 reserved.
@ DFU_UART_PIN_GROUP_4
GPIO0_PIN7 -> UART1_TXD(MUX3),GPIO0_PIN6 -> UART1_RXD(MUX3)