92 lines
2.4 KiB
C
92 lines
2.4 KiB
C
#ifndef __COMMUNICATION_SYSAPI_H__
|
|
#define __COMMUNICATION_SYSAPI_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef _WIN32
|
|
#include "stdio.h"
|
|
|
|
#define TRACE(str, ...) do { printf("%s/" str "\n", __FUNCTION__, __VA_ARGS__); } while (0)
|
|
#define ASSERT(cond, str, ...) \
|
|
do { if (!(cond)) { printf("[ASSERT]%s/" str, __FUNCTION__, __VA_ARGS__); while (1); } } while (0)
|
|
#define TRACE_TIME(num,str, ...) TRACE(num,str, __VA_ARGS__)
|
|
|
|
int write_sig_data(const unsigned char *data, unsigned int len);
|
|
int write_code_data(const unsigned char *data, unsigned int len);
|
|
void programmer_main(void);
|
|
#else
|
|
#include "hal_trace.h"
|
|
#include "hal_timer.h"
|
|
|
|
#define TRACE_TIME(num,str, ...) TRACE(num+1,"[%05u] " str, TICKS_TO_MS(hal_sys_timer_get()), ##__VA_ARGS__)
|
|
#endif
|
|
|
|
#define UART_OUT_SIGNAL_ID 0x19
|
|
enum DOWNLOAD_TRANSPORT {
|
|
TRANSPORT_USB,
|
|
TRANSPORT_UART,
|
|
};
|
|
|
|
enum XFER_TIMEOUT {
|
|
XFER_TIMEOUT_SHORT,
|
|
XFER_TIMEOUT_MEDIUM,
|
|
XFER_TIMEOUT_LONG,
|
|
XFER_TIMEOUT_IDLE,
|
|
|
|
XFER_TIMEOUT_QTY
|
|
};
|
|
|
|
enum UART_DMA_STATE {
|
|
UART_DMA_IDLE,
|
|
UART_DMA_START,
|
|
UART_DMA_DONE,
|
|
UART_DMA_ERROR,
|
|
};
|
|
|
|
void init_transport(void);
|
|
void deinit_transport(void);
|
|
void reinit_transport(void);
|
|
void set_send_timeout(uint32_t timeout);
|
|
int secure_settings_valid(void);
|
|
int secure_boot_enabled(void);
|
|
int usb_enabled(void);
|
|
int usb_connected(void);
|
|
unsigned short get_boot_security_value(void);
|
|
unsigned int get_boot_key_index(void);
|
|
int send_data(const unsigned char *buf, unsigned int len);
|
|
int recv_data(unsigned char *buf, unsigned int len);
|
|
int recv_data_dma(unsigned char *buf, unsigned int len, unsigned int expect);
|
|
void recv_data_state_get(enum UART_DMA_STATE *state);
|
|
void recv_data_reset(void);
|
|
int handle_error(void);
|
|
int cancel_input(void);
|
|
|
|
int verify_signature(const unsigned char *key, const unsigned char *sig, const unsigned char *data, unsigned int len);
|
|
|
|
int debug_read_enabled(void);
|
|
int debug_write_enabled(void);
|
|
|
|
int get_flash_boot_flag(void);
|
|
void set_flash_boot_flag(int flag);
|
|
void system_reboot(void);
|
|
void system_shutdown(void);
|
|
void system_flash_boot(void);
|
|
void system_set_bootmode(unsigned int bootmode);
|
|
void system_clear_bootmode(unsigned int bootmode);
|
|
unsigned int system_get_bootmode(void);
|
|
|
|
void wait_trace_finished(void);
|
|
|
|
unsigned int get_current_time(void);
|
|
uint32_t ama_uart_get_fifo_data(uint8_t *buf);
|
|
uint32_t avil_len_of_the_fifo();
|
|
void send_message();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|