bsp_packet.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /******************************************************************************
  2. 函数名称: shm_comm_packet_write
  3. 函数版本: 01.01
  4. 创建作者: zhaoyang
  5. 创建日期: 2025-08-25
  6. 函数说明: 向共享内存写入数据(自动处理A,B,crc).
  7. 参数说明:
  8. addr:共享内存的地址
  9. data:写入数据
  10. len:写入数据长度
  11. 返回值: 成功返回写入数据的长度, 失败返回-1
  12. 修改记录:
  13. 使用说明:
  14. 输入参数data为带有A,B和crc的结构体,len为整个结构体的长度
  15. 应用层不需要理会A,B和crc.
  16. */
  17. #ifndef __BSP_PACKET_H__
  18. #define __BSP_PACKET_H__
  19. #include <stdint.h>
  20. int shm_comm_packet_write(uint32_t addr, uint8_t *data, uint32_t len);
  21. /******************************************************************************
  22. 函数名称: shm_comm_packet_read
  23. 函数版本: 01.01
  24. 创建作者: zhaoyang
  25. 创建日期: 2025-08-25
  26. 函数说明: 读取共享内存的数据(自动处理A,B,crc).
  27. 参数说明:
  28. addr:所以读取共享内存的地址
  29. len:需要读取数据的长度
  30. out_data:输出buf
  31. out_data_size:输出buf的长度
  32. 返回值:
  33. 成功返回读取数据的长度,
  34. 失败返回 <0
  35. 修改记录:
  36. 使用说明:
  37. 输入参数out_data为带有A,B和crc的结构体,len为整个结构体的长度
  38. 应用层不需要理会A,B和crc.
  39. */
  40. int shm_comm_packet_read(uint32_t addr, uint32_t len, uint8_t *out_data, uint32_t out_data_size);
  41. /******************************************************************************
  42. 函数名称: shm_comm_packet_read_noABcrc
  43. 函数版本: 01.01
  44. 创建作者: zhaoyang
  45. 创建日期: 2025-08-25
  46. 函数说明: 读取共享内存的数据(结构体不存在A,B,crc).
  47. 参数说明:
  48. addr:所以读取共享内存的地址
  49. len:需要读取数据的长度
  50. out_data:输出buf
  51. out_data_size:输出buf的长度
  52. 返回值:
  53. 成功返回读取数据的长度,
  54. 失败返回 <0
  55. 修改记录:
  56. 使用说明:
  57. 如:Ad7616采样点结构
  58. 本函数只处理不含有A,B和crc的结构体
  59. */
  60. int shm_comm_packet_read_noABcrc(uint32_t addr, uint32_t len, uint8_t *out_data, uint32_t out_data_size);
  61. void shm_comm_test(void);
  62. #endif