spi_demo.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /** @file
  2. spi_demo.h
  3. @brief
  4. This file is used to define bt demo for different Quectel Project.
  5. */
  6. /*================================================================
  7. Copyright (c) 2020 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
  8. Quectel Wireless Solution Proprietary and Confidential.
  9. =================================================================*/
  10. /*=================================================================
  11. EDIT HISTORY FOR MODULE
  12. This section contains comments describing changes made to the module.
  13. Notice that changes are listed in reverse chronological order.
  14. WHEN WHO WHAT, WHERE, WHY
  15. ------------ ------- -------------------------------------------------------------------------------
  16. =================================================================*/
  17. #ifndef SPI_DEMO_H
  18. #define SPI_DEMO_H
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. #define APP_A_ADDR (0x8000)
  23. #define BOOT_INFO_ADDR (0x3c000)
  24. #define DATA_LENTH (512)
  25. #define FRAME_HEAD (0X5A)
  26. #define DATA_HEAD (0X5A)
  27. #define FRAME_TAIL (0XA5)
  28. #define MPU_ADDR (0X10)
  29. #define MCU_ADDR (0X20)
  30. #define MASTER_CMD (0X50)
  31. #define SLAVE_CMD_ACK (0X5C)
  32. #define SLAVE_CMD_NACK (0X5F)
  33. #define MASTER_CTR (0X60)
  34. #define SLAVE_CTR_ACK (0X6C)
  35. #define SLAVE_CTR_NACK (0X6F)
  36. #define SPI_BUF_LEN (512)
  37. /*========================================================================
  38. * Variable Definition
  39. *========================================================================*/
  40. #define SPI_DEMO_TASK_PRIO 12
  41. #define SPI_DEMO_TASK_STACK_SIZE 8*1024
  42. #define SPI_DEMO_TASK_EVENT_CNT 4
  43. /*========================================================================
  44. * function Definition
  45. *========================================================================*/
  46. QlOSStatus ql_spi_demo_init(void);
  47. #pragma pack(1)
  48. /* 固定开头帧 */
  49. typedef struct
  50. {
  51. uint8_t frame_head;
  52. uint16_t data_lenth;
  53. uint8_t source_addr;
  54. uint8_t destination_addr;
  55. uint8_t cmd;
  56. uint8_t cmd_type;
  57. }frame_pack_t;
  58. /* 固定帧各字节顺序*/
  59. enum
  60. {
  61. FRAME_HEAD_INDEX = 0,
  62. FRAME_LEN_INDEX,
  63. FRAME_SOUADDR_INDEX = 3,
  64. FRAME_DETADDR_INDEX,
  65. FRAME_CMD_INDEX,
  66. FRAME_CMD_TYPE_INDEX,
  67. };
  68. #pragma pack()
  69. unsigned short crc16_modbus(unsigned char *pdata, int len);
  70. uint8_t data_decode_mpu(uint8_t *input_data, uint16_t input_data_len, uint8_t* output, uint16_t* output_data_len);
  71. uint8_t data_mpu_pack(uint8_t* output, uint16_t* output_data_len, uint8_t cmd, uint8_t cmd_type);
  72. uint16_t Full_Frame_Verifi(uint8_t *srcdata, uint16_t srcLen, uint16_t* frame_start);
  73. #ifdef __cplusplus
  74. } /*"C" */
  75. #endif
  76. #endif /* SPI_DEMO_H */