38#ifndef W25Q_W25Q_VALIDATION_HPP_
39#define W25Q_W25Q_VALIDATION_HPP_
42#include "W25QFlashSPI.hpp"
45#define W25Q_VALIDATION_BASE_ADDR ((uint32_t)0x000000u)
48#define W25Q_VALIDATION_SMALL_RANGE_SIZE ((uint32_t)256u)
51#define W25Q_VALIDATION_PATTERN_TEST_SIZE ((uint32_t)256u)
54#define W25Q_VALIDATION_BOUNDARY_TEST_SIZE ((uint32_t)512u)
58 W25Q_VALIDATION_TEST_NONE = 0,
59 W25Q_VALIDATION_TEST_ERASED_STATE,
60 W25Q_VALIDATION_TEST_SMALL_RANGE,
61 W25Q_VALIDATION_TEST_PATTERN,
62 W25Q_VALIDATION_TEST_PAGE_BOUNDARY
63} w25qValidationTestId_t;
67 W25Q_VALIDATION_PHASE_IDLE = 0,
68 W25Q_VALIDATION_PHASE_ERASE,
69 W25Q_VALIDATION_PHASE_FILL,
70 W25Q_VALIDATION_PHASE_VERIFY
71} w25qValidationPhase_t;
75 W25Q_VALIDATION_STATUS_PASS = 0,
76 W25Q_VALIDATION_STATUS_FAIL
77} w25qValidationStatus_t;
133 void recordFailure(w25qValidationTestId_t testId, w25qValidationPhase_t phase,
134 uint32_t offset, uint8_t expectedValue, uint8_t actualValue);
135 void printFailure()
const;
136 static const char *getTestName(w25qValidationTestId_t testId);
137 static const char *getPhaseName(w25qValidationPhase_t phase);
140 bool runErasedStateTest();
143 bool runSmallRangeTest();
146 bool runPatternTest();
149 bool runPageBoundaryTest();
STM32 HAL SPI1 driver for a Winbond W25Q-series flash chip (Adafruit 5632/5633/5634),...
Destructive validation suite for a W25QFlashSPI driver – see w25q_validation.hpp's file header for th...
const w25qValidationReport_t * GetReport() const
Gets the most recent validation report without rerunning tests.
const w25qValidationReport_t * RunAll()
Runs every validation test in sequence, stopping at the first failure, printing progress and results ...
W25QValidation(W25QFlashSPI &flash)
Constructs the validation suite against an already-initialized driver.
: Header for main.c file. This file contains the common defines of the application.
Detailed validation report, persistent for the life of the W25QValidation instance.
uint32_t failedOffset
Byte offset (from W25Q_VALIDATION_BASE_ADDR) where the failure was detected.
uint8_t actualValue
Value actually read back at failedOffset.
uint8_t expectedValue
Value expected to be read back at failedOffset.
w25qValidationTestId_t failedTest
Which test failed, or NONE if status is PASS.
w25qValidationStatus_t status
Overall PASS/FAIL outcome of the last RunAll().
uint32_t testsRun
Count of tests that started running, whether they passed or failed.
w25qValidationPhase_t failedPhase
Which phase of failedTest failed (erase/fill/verify).