| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #pragma once
- #include "s600_config.h"
- #include "stdio.h"
- #define CAN_PIN_MAP_PA11_PA12 1
- #define CAN_PIN_MAP_PB8_PB9 2
- #define CAN_PIN_MAP_PD0_PD1 3
- #ifdef CONFIG_BOARD_S600
- #define CONFIG_BOARD_NAME "S600"
- #define CONFIG_CAN_ID 0x41
- #define CONFIG_CAN_PIN_MAP CAN_PIN_MAP_PA11_PA12
- #elif defined(CONFIG_BOARD_C200)
- #define CONFIG_BOARD_NAME "C200"
- #define CONFIG_CAN_ID 0x43
- #define CONFIG_CAN_PIN_MAP CAN_PIN_MAP_PB8_PB9
- #elif defined(CONFIG_BOARD_G580)
- #define CONFIG_BOARD_NAME "G580"
- #define CONFIG_CAN_ID 0x50
- #define CONFIG_CAN_PIN_MAP CAN_PIN_MAP_PB8_PB9
- #elif defined(CONFIG_BOARD_PS300)
- #define CONFIG_BOARD_NAME "PS300"
- #define CONFIG_CAN_ID 0x43
- #define CONFIG_CAN_PIN_MAP CAN_PIN_MAP_PB8_PB9
- #elif defined(CONFIG_BOARD_PS100)
- #define CONFIG_BOARD_NAME "PS100"
- #define CONFIG_CAN_ID 0x42
- #define CONFIG_CAN_PIN_MAP CAN_PIN_MAP_PB8_PB9
- #else
- #error "Invalid Board!"
- #endif
- #ifdef GD32E10X_H
- #define CONFIG_GD32E10X 1
- #define FMC_PAGE_SIZE 1024
- #endif
- #ifdef GD32F10X_H
- #define CONFIG_GD32F10X 1
- #ifdef GD32F10X_MD
- #define FMC_PAGE_SIZE 1024
- #else
- #define FMC_PAGE_SIZE 2048
- #endif
- #endif
- #define NELEM(a) \
- (sizeof(a) / sizeof((a)[0]))
- #define LAST_ELEM(a) \
- ((a)[NELEM(a) - 1])
- #define KB(value) \
- ((value) << 10)
- #define MB(value) \
- ((value) << 20)
- #define SYSTICK_SECONDS(value) \
- (SystemCoreClock * (value))
- #define SYSTICK_MSECONDS(value) \
- (SYSTICK_SECONDS(value) / 1000)
- #if S600_UART_PRINT
- #define println(fmt, args ...) \
- printf(fmt "\r\n", ##args)
- #define pr_pos_info() \
- println("%s:%d", __FILE__, __LINE__)
- #else
- #define println(fmt, args ...)
- #define pr_pos_info()
- #endif
- #define U32(value) \
- ((u32) (value))
- #define PU32(value) \
- ((u32 *) (value))
- #define U16(value) \
- ((u16) (value))
- #define PU16(value) \
- ((u16 *) (value))
- #define U8(value) \
- ((u8) (value))
- #define PU8(value) \
- ((u8 *) (value))
- #define DECODE_U16(buff) \
- (U16(buff[1]) << 8 | buff[0])
- #define DECODE_U24(buff) \
- (U32(buff[2]) << 16 | DECODE_U16(buff))
- #define DECODE_U32(buff) \
- (U32(buff[3]) << 24 | DECODE_U24(buff))
- typedef uint32_t u32;
- typedef int32_t s32;
- typedef uint16_t u16;
- typedef int16_t s16;
- typedef uint8_t u8;
- typedef int8_t s8;
- typedef void (*s600_command_t)(void);
- #ifdef CONFIG_GD32E10X
- typedef enum {
- false,
- true,
- } bool;
- #else
- #define true TRUE
- #define false FALSE
- #endif
- extern uint32_t SystemCoreClock;
- extern const u8 s600_value_char_map[];
- extern u32 s600_iap_100ms;
- u16 s600_get_avg_value(const u16 *values, u16 size);
- u32 s600_checksum_put(u32 checksum, const u8 *data, u16 size);
- u32 s600_checksum_put_value(u32 checksum, u16 value);
- u16 s600_checksum_finish(u32 checksum);
- u8 s600_char2value(char ch);
- u8 s600_month2value(const char *text);
- u16 s600_decode_u16(const u8 *buff);
- u32 s600_decode_u24(const u8 *buff);
- u32 s600_decode_u32(const u8 *buff);
- void s600_encode_u16(u8 *buff, u16 value);
- void s600_encode_u24(u8 *buff, u32 value);
- void s600_encode_u32(u8 *buff, u32 value);
|