ChibiOS-Contrib/testhal/STM32/STM32F4xx/FSMC_SRAM/memtest.hpp

58 lines
1.4 KiB
C++
Raw Normal View History

#ifndef MEMTEST_HPP_
#define MEMTEST_HPP_
#define MEMTEST_WALKING_ONE (1 << 0)
#define MEMTEST_WALKING_ZERO (1 << 1)
#define MEMTEST_OWN_ADDRESS (1 << 2)
2015-02-24 06:43:53 -08:00
#define MEMTEST_MOVING_INVERSION_ZERO (1 << 3)
#define MEMTEST_MOVING_INVERSION_55AA (1 << 4)
#define MEMTEST_MOVING_INVERSION_RAND (1 << 5)
#define MEMTEST_RUN_ALL (MEMTEST_WALKING_ONE | \
MEMTEST_WALKING_ZERO | \
MEMTEST_OWN_ADDRESS | \
2015-02-24 06:43:53 -08:00
MEMTEST_MOVING_INVERSION_ZERO | \
MEMTEST_MOVING_INVERSION_55AA | \
MEMTEST_MOVING_INVERSION_RAND)
typedef struct memtest_t memtest_t;
typedef uint32_t testtype_t;
/*
* Error call back.
*/
typedef void (*memtestecb_t)(memtest_t *memp, testtype_t e, size_t address);
/*
*
*/
typedef enum {
MEMTEST_WIDTH_8,
MEMTEST_WIDTH_16,
MEMTEST_WIDTH_32
} memtest_bus_width_t;
/*
*
*/
struct memtest_t {
void *start;
size_t size;
memtest_bus_width_t width;
memtestecb_t ecb;
unsigned int rand_seed;
};
/*
*
*/
#ifdef __cplusplus
extern "C" {
#endif
void memtest_run(memtest_t *memp, uint32_t testmask);
#ifdef __cplusplus
}
#endif
#endif /* MEMTEST_HPP_ */