flash_api_error.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Файл с кодами ошибок для драйверов внешней флешпамяти
  2. // v 1.2 от 22/07/15
  3. // v 1.21 от 14/10/19
  4. // v 1.22 от 07/10/20
  5. // Автор: Сычев А
  6. #ifndef FLASHDRIVER_ERR_H
  7. #define FLASHDRIVER_ERR_H
  8. typedef enum
  9. {
  10. //--- коды расширенного статуса выполнения ----------------------------
  11. // защита от стирания/записи
  12. FLERR_PROTECT_ENABLED = 0xdeed, // установлена защита
  13. FLERR_PROTECT_DISABLED = 0xbeef, // защита не установлена
  14. //--- коды успешного выполнения ---------------------------------------
  15. FLERR_SUCCESS = 0, // успешное выполнение команды
  16. //--- коды ошибочного выполнения ---------------------------------------
  17. // коды ошибок инициализации
  18. FLERR_LL_INITFAIL_NOTFOUND =-1, // ID микросхемы прочитан как All-FF, что означает, что чип отсутствует.
  19. FLERR_LL_INITFAIL_WRONGID =-2, // неверный ID микросхемы (Manufacturer ID)
  20. FLERR_LL_INITFAIL_WRONGDENSITY =-3, // неверный размер микросхемы (Density)
  21. FLERR_LL_INITFAIL_WRONGFAMILY =-4, // неверный семейство микросхемы (Family)
  22. FLERR_LL_INITFAIL_PAGESIZE =-5, // неверный размер страницы.
  23. // Причина: Выбран режим эмуляции страницы по 512 байт, либо выбран режим 528 байт
  24. // когда в чипе установлен фиксированный размер страницы 512 байт.
  25. // Необходимо объявить макрос AT45DB161E_PRM512 в файле "AT45DB161E_CONF.h"
  26. // коды общих ошибок
  27. FLERR_TIMEOUT =-6, // таймаут операций API
  28. // Причина: устройство занято
  29. FLERR_INVALID_PARAMETER =-7, // Ошибка в переданном параметре. см. описание функции
  30. FLERR_GENERIC_ERROR =-8, // Ошибка выполнения команды.
  31. // Причина зависит от функции
  32. FLERR_VERIFY_ERROR =-9, // Ошибка верификации данных во время записи flash_write()
  33. FLERR_INVALID_BUFFER =-10, // Ошибка: неверный буфер / недостаточно места в буфере
  34. FLERR_DEVICE_MALFUNCTION =-13, // Ошибка: непредсказуемое состояние, ошибка в работе чипа
  35. FLERR_WRONG_CONTEXT =-16, // Ошибка: неправильный контекст (не используется 17/04/19)
  36. // Причина: функция требует выполнения только в контексте задачи или прерывания
  37. // коды фатальных ошибок
  38. FLERR_UNEXPECTED_BUSY =-32, // Ошибка, устройство занято во время критической операции. Условия выполнения
  39. // функции нарушены, результат не гарантируется. Ожидаемое состояние устройства
  40. // не гарантируется. Причина: устройство возвращает статус "занято" по истечении
  41. // критического таймаута.
  42. }
  43. flash_err_t;
  44. #define FLASH_SUCCESS(err) (((err) >= FLERR_SUCCESS)?((__FLASH_DWORD)(-1)):0ul)
  45. #define FLASH_ERROR(err) (((err) < FLERR_SUCCESS)?((__FLASH_DWORD)(-1)):0ul)
  46. #endif