avr_isp_worker_rw.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #pragma once
  2. #include <furi_hal.h>
  3. typedef struct AvrIspWorkerRW AvrIspWorkerRW;
  4. typedef void (*AvrIspWorkerRWCallback)(
  5. void* context,
  6. const char* name,
  7. bool detect_chip,
  8. uint32_t flash_size);
  9. typedef enum {
  10. AvrIspWorkerRWStatusILDE = 0,
  11. AvrIspWorkerRWStatusEndReading = 1,
  12. AvrIspWorkerRWStatusEndVerification = 2,
  13. AvrIspWorkerRWStatusEndWriting = 3,
  14. AvrIspWorkerRWStatusEndWritingFuse = 4,
  15. AvrIspWorkerRWStatusErrorReading = (-1),
  16. AvrIspWorkerRWStatusErrorVerification = (-2),
  17. AvrIspWorkerRWStatusErrorWriting = (-3),
  18. AvrIspWorkerRWStatusErrorWritingFuse = (-4),
  19. AvrIspWorkerRWStatusReserved = 0x7FFFFFFF, ///< Prevents enum down-size compiler optimization.
  20. } AvrIspWorkerRWStatus;
  21. typedef void (*AvrIspWorkerRWStatusCallback)(void* context, AvrIspWorkerRWStatus status);
  22. AvrIspWorkerRW* avr_isp_worker_rw_alloc(void* context);
  23. void avr_isp_worker_rw_free(AvrIspWorkerRW* instance);
  24. void avr_isp_worker_rw_start(AvrIspWorkerRW* instance);
  25. void avr_isp_worker_rw_stop(AvrIspWorkerRW* instance);
  26. bool avr_isp_worker_rw_is_running(AvrIspWorkerRW* instance);
  27. void avr_isp_worker_rw_set_callback(
  28. AvrIspWorkerRW* instance,
  29. AvrIspWorkerRWCallback callback,
  30. void* context);
  31. void avr_isp_worker_rw_set_callback_status(
  32. AvrIspWorkerRW* instance,
  33. AvrIspWorkerRWStatusCallback callback_status,
  34. void* context_status);
  35. bool avr_isp_worker_rw_detect_chip(AvrIspWorkerRW* instance);
  36. float avr_isp_worker_rw_get_progress_flash(AvrIspWorkerRW* instance);
  37. float avr_isp_worker_rw_get_progress_eeprom(AvrIspWorkerRW* instance);
  38. bool avr_isp_worker_rw_read_dump(
  39. AvrIspWorkerRW* instance,
  40. const char* file_path,
  41. const char* file_name);
  42. void avr_isp_worker_rw_read_dump_start(
  43. AvrIspWorkerRW* instance,
  44. const char* file_path,
  45. const char* file_name);
  46. bool avr_isp_worker_rw_verification(
  47. AvrIspWorkerRW* instance,
  48. const char* file_path,
  49. const char* file_name);
  50. void avr_isp_worker_rw_verification_start(
  51. AvrIspWorkerRW* instance,
  52. const char* file_path,
  53. const char* file_name);
  54. bool avr_isp_worker_rw_check_hex(
  55. AvrIspWorkerRW* instance,
  56. const char* file_path,
  57. const char* file_name);
  58. bool avr_isp_worker_rw_write_dump(
  59. AvrIspWorkerRW* instance,
  60. const char* file_path,
  61. const char* file_name);
  62. void avr_isp_worker_rw_write_dump_start(
  63. AvrIspWorkerRW* instance,
  64. const char* file_path,
  65. const char* file_name);
  66. bool avr_isp_worker_rw_write_fuse(
  67. AvrIspWorkerRW* instance,
  68. const char* file_path,
  69. const char* file_name);
  70. void avr_isp_worker_rw_write_fuse_start(
  71. AvrIspWorkerRW* instance,
  72. const char* file_path,
  73. const char* file_name);