can_ymodem.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * Copyright (c) 2006-2018, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2020-04-29 redoc first version.
  9. */
  10. #ifndef __CAN_YMODEM_H__
  11. #define __CAN_YMODEM_H__
  12. #include <rtthread.h>
  13. #ifndef RT_CAN_YMODEM_DEVICE_SIZE
  14. #define RT_CAN_YMODEM_DEVICE_SIZE 1100
  15. #endif
  16. #ifndef RT_CAN_YMODEM_PACK_SIZE_TX
  17. #define RT_CAN_YMODEM_PACK_SIZE_TX 6
  18. #endif
  19. struct rt_can_ymodem_rx_fifo
  20. {
  21. /* software fifo */
  22. rt_uint8_t *buffer;
  23. rt_uint16_t put_index, get_index;
  24. rt_bool_t is_full;
  25. };
  26. struct rt_can_ymodem_device
  27. {
  28. struct rt_device parent;
  29. const struct rt_can_ymodem_ops *ops;
  30. void *can_ymodem_rx;
  31. rt_uint32_t channel;
  32. };
  33. typedef struct rt_can_ymodem_device rt_can_ymodem_t;
  34. /**
  35. * uart operators
  36. */
  37. struct rt_can_ymodem_ops
  38. {
  39. int (*puts)(struct rt_can_ymodem_device *can_ymodem,
  40. const void *buffer,
  41. rt_size_t size);
  42. };
  43. void rt_can_ymodem_rx(struct rt_can_ymodem_device *can_ymodem, const void *buffer, rt_size_t size);
  44. rt_err_t rt_hw_can_ymodem_register(struct rt_can_ymodem_device *can_ymodem,
  45. const char *name,
  46. rt_uint32_t flag,
  47. void *data);
  48. #endif