Объединить протокол терминала TMS2812 для Python и Android
This commit is contained in:
@@ -102,6 +102,14 @@ PCAN_ABI_API const char *pcan_abi_periph28335_command_name(
|
||||
size_t project_index, size_t command_index);
|
||||
|
||||
/* PM67/TMS320F2812 legacy memory upload. */
|
||||
PCAN_ABI_API size_t pcan_abi_tms2812_build_fixed(uint8_t controller, uint8_t command,
|
||||
const uint8_t *payload, size_t payload_size, uint8_t *output, size_t output_size);
|
||||
PCAN_ABI_API size_t pcan_abi_tms2812_build_memory(uint8_t controller, uint8_t command,
|
||||
uint32_t word_address, uint16_t value, uint8_t *output, size_t output_size);
|
||||
PCAN_ABI_API size_t pcan_abi_tms2812_build_test(uint8_t controller, uint16_t duration,
|
||||
uint16_t pause, const uint8_t *digits, size_t digit_count, uint8_t *output, size_t output_size);
|
||||
PCAN_ABI_API int pcan_abi_tms2812_validate_response(const uint8_t *data, size_t size,
|
||||
uint8_t controller, uint8_t command, size_t full_size, int allow_short_tail);
|
||||
PCAN_ABI_API uint16_t pcan_abi_tms2812_crc16(
|
||||
const uint8_t *data, size_t size);
|
||||
PCAN_ABI_API size_t pcan_abi_tms2812_build_upload(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @file tms2812.h
|
||||
* @brief Shared PM67/TMS320F2812 legacy upload protocol.
|
||||
* @brief Shared PM67/TMS320F2812 legacy terminal and memory protocol.
|
||||
*/
|
||||
#ifndef TMS2812_H
|
||||
#define TMS2812_H
|
||||
@@ -13,6 +13,10 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define TMS2812_CMD_UPLOAD 52U
|
||||
#define TMS2812_CMD_PEEK 56U
|
||||
#define TMS2812_CMD_POKE 57U
|
||||
#define TMS2812_CMD_TEST_ALL 66U
|
||||
#define TMS2812_PING_ADDRESS 0x00000100UL
|
||||
#define TMS2812_UPLOAD_REQUEST_SIZE 12U
|
||||
#define TMS2812_UPLOAD_RESPONSE_OVERHEAD 8U
|
||||
|
||||
@@ -28,6 +32,20 @@ typedef enum {
|
||||
|
||||
uint16_t tms2812_crc16(const uint8_t *data, size_t size);
|
||||
|
||||
size_t tms2812_build_fixed_request(uint8_t controller, uint8_t command,
|
||||
const uint8_t *payload, size_t payload_size, uint8_t *output, size_t output_size);
|
||||
/* command=0 is the host PING operation; on wire it is PEEK at 0x100. */
|
||||
size_t tms2812_build_memory_request(uint8_t controller, uint8_t command,
|
||||
uint32_t word_address, uint16_t value, uint8_t *output, size_t output_size);
|
||||
size_t tms2812_build_test_request(uint8_t controller, uint16_t duration,
|
||||
uint16_t pause, const uint8_t *digits, size_t digit_count,
|
||||
uint8_t *output, size_t output_size);
|
||||
/* Ordinary BALZAM responses reserve two bytes after CRC. If allow_short_tail
|
||||
* is true only those bytes may be omitted; caller must observe the UART gap.
|
||||
* UPLOAD responses use tms2812_validate_upload_response instead. */
|
||||
int tms2812_validate_response(const uint8_t *data, size_t size,
|
||||
uint8_t controller, uint8_t command, size_t full_size, int allow_short_tail);
|
||||
|
||||
size_t tms2812_build_upload_request(
|
||||
uint8_t controller, uint32_t word_address, uint32_t byte_count,
|
||||
uint8_t *output, size_t output_size);
|
||||
|
||||
Reference in New Issue
Block a user