hal-qspi test: code refactoring

pull/7783/head
Maciej Bocianski 2018-08-03 09:54:47 +02:00
parent 6095ccf1b4
commit 948d1a3013
3 changed files with 46 additions and 41 deletions

View File

@ -108,10 +108,15 @@
// single quad enable flag for both dual and quad mode // single quad enable flag for both dual and quad mode
#define QUAD_ENABLE_IMPLEMENTATION() \ #define QUAD_ENABLE() \
\ \
uint8_t reg_data[QSPI_STATUS_REG_SIZE]; \ uint8_t reg_data[QSPI_STATUS_REG_SIZE]; \
\ \
if (write_enable(qspi) != QSPI_STATUS_OK) { \
return QSPI_STATUS_ERROR; \
} \
WAIT_FOR(WRSR_MAX_TIME, qspi); \
\
reg_data[0] = STATUS_BIT_QE; \ reg_data[0] = STATUS_BIT_QE; \
qspi.cmd.build(QSPI_CMD_WRSR); \ qspi.cmd.build(QSPI_CMD_WRSR); \
\ \
@ -132,10 +137,15 @@
#define QUAD_DISABLE_IMPLEMENTATION() \ #define QUAD_DISABLE() \
\ \
uint8_t reg_data[QSPI_STATUS_REG_SIZE]; \ uint8_t reg_data[QSPI_STATUS_REG_SIZE]; \
\ \
if (write_enable(qspi) != QSPI_STATUS_OK) { \
return QSPI_STATUS_ERROR; \
} \
WAIT_FOR(WRSR_MAX_TIME, qspi); \
\
reg_data[0] = 0; \ reg_data[0] = 0; \
qspi.cmd.build(QSPI_CMD_WRSR); \ qspi.cmd.build(QSPI_CMD_WRSR); \
\ \
@ -156,7 +166,7 @@
#define FAST_MODE_ENABLE_IMPLEMENTATION() \ #define FAST_MODE_ENABLE() \
\ \
qspi_status_t ret; \ qspi_status_t ret; \
const int32_t reg_size = QSPI_STATUS_REG_SIZE + QSPI_CONFIG_REG_0_SIZE; \ const int32_t reg_size = QSPI_STATUS_REG_SIZE + QSPI_CONFIG_REG_0_SIZE; \

View File

@ -71,11 +71,11 @@ uint8_t rx_buf[DATA_SIZE_1024];
static void log_data(const char *str, uint8_t *data, uint32_t size) static void log_data(const char *str, uint8_t *data, uint32_t size)
{ {
printf("%s: ", str); utest_printf("%s: ", str);
for (uint32_t j = 0; j < size; j++) { for (uint32_t j = 0; j < size; j++) {
printf("%02X ", data[j]); utest_printf("%02X ", data[j]);
} }
printf("\r\n"); utest_printf("\r\n");
} }
@ -171,19 +171,19 @@ static void _qspi_write_read_test(Qspi &qspi, qspi_bus_width_t write_inst_width,
if (tx_buf[i] != rx_buf[i]) { if (tx_buf[i] != rx_buf[i]) {
log_data("tx data", tx_buf, data_size); log_data("tx data", tx_buf, data_size);
log_data("rx data", rx_buf, data_size); log_data("rx data", rx_buf, data_size);
printf("erase/write/read time: %d/%d/%d [us]\r\n", erase_time, write_time, read_time); utest_printf("erase/write/read time: %d/%d/%d [us]\r\n", erase_time, write_time, read_time);
TEST_ASSERT_EQUAL(tx_buf[i], rx_buf[i]); TEST_ASSERT_EQUAL(tx_buf[i], rx_buf[i]);
} }
} }
#ifdef QSPI_TEST_LOG_FLASH_TIME #ifdef QSPI_TEST_LOG_FLASH_TIME
printf("erase/write/read time: %d/%d/%d [us]\r\n", erase_time, write_time, read_time); utest_printf("erase/write/read time: %d/%d/%d [us]\r\n", erase_time, write_time, read_time);
#endif #endif
#ifdef QSPI_TEST_LOG_DATA #ifdef QSPI_TEST_LOG_DATA
log_data("tx data", tx_buf, data_size); log_data("tx data", tx_buf, data_size);
log_data("rx data", rx_buf, data_size); log_data("rx data", rx_buf, data_size);
printf("rx/tx data match\r\n"); utest_printf("rx/tx data match\r\n");
#endif #endif
} }
} }
@ -222,9 +222,6 @@ void qspi_write_read_test(void)
if (is_dual_cmd(write_inst_width, write_addr_width, write_data_width) || if (is_dual_cmd(write_inst_width, write_addr_width, write_data_width) ||
is_dual_cmd(read_inst_width, read_addr_width, read_data_width)) { is_dual_cmd(read_inst_width, read_addr_width, read_data_width)) {
ret = write_enable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi);
ret = dual_enable(qspi); ret = dual_enable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret); TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi); WAIT_FOR(WRSR_MAX_TIME, qspi);
@ -232,9 +229,6 @@ void qspi_write_read_test(void)
if (is_quad_cmd(write_inst_width, write_addr_width, write_data_width) || if (is_quad_cmd(write_inst_width, write_addr_width, write_data_width) ||
is_quad_cmd(read_inst_width, read_addr_width, read_data_width)) { is_quad_cmd(read_inst_width, read_addr_width, read_data_width)) {
ret = write_enable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi);
ret = quad_enable(qspi); ret = quad_enable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret); TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi); WAIT_FOR(WRSR_MAX_TIME, qspi);
@ -248,10 +242,13 @@ void qspi_write_read_test(void)
WAIT_FOR(WRSR_MAX_TIME, qspi); WAIT_FOR(WRSR_MAX_TIME, qspi);
#ifdef QSPI_TEST_LOG_FLASH_STATUS #ifdef QSPI_TEST_LOG_FLASH_STATUS
printf("Status "); log_register(STATUS_REG, QSPI_STATUS_REG_SIZE, qspi); utest_printf("Status\r\n"); log_register(STATUS_REG, QSPI_STATUS_REG_SIZE, qspi);
printf("Config 0 "); log_register(CONFIG_REG0, QSPI_CONFIG_REG_0_SIZE, qspi); utest_printf("Config 0\r\n"); log_register(CONFIG_REG0, QSPI_CONFIG_REG_0_SIZE, qspi);
#ifdef CONFIG_REG1 #ifdef CONFIG_REG1
printf("Config 1 "); log_register(CONFIG_REG1, QSPI_CONFIG_REG_1_SIZE, qspi); utest_printf("Config 1\r\n"); log_register(CONFIG_REG1, QSPI_CONFIG_REG_1_SIZE, qspi);
#endif
#ifdef CONFIG_REG2
utest_printf("Config 2\r\n"); log_register(CONFIG_REG2, QSPI_CONFIG_REG_2_SIZE, qspi);
#endif #endif
#endif #endif
@ -265,9 +262,6 @@ void qspi_write_read_test(void)
if (is_dual_cmd(write_inst_width, write_addr_width, write_data_width) || if (is_dual_cmd(write_inst_width, write_addr_width, write_data_width) ||
is_dual_cmd(read_inst_width, read_addr_width, read_data_width)) { is_dual_cmd(read_inst_width, read_addr_width, read_data_width)) {
ret = write_enable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi);
ret = dual_disable(qspi); ret = dual_disable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret); TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi); WAIT_FOR(WRSR_MAX_TIME, qspi);
@ -275,9 +269,6 @@ void qspi_write_read_test(void)
if (is_quad_cmd(write_inst_width, write_addr_width, write_data_width) || if (is_quad_cmd(write_inst_width, write_addr_width, write_data_width) ||
is_quad_cmd(read_inst_width, read_addr_width, read_data_width)) { is_quad_cmd(read_inst_width, read_addr_width, read_data_width)) {
ret = write_enable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi);
ret = quad_disable(qspi); ret = quad_disable(qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret); TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
WAIT_FOR(WRSR_MAX_TIME, qspi); WAIT_FOR(WRSR_MAX_TIME, qspi);
@ -321,10 +312,13 @@ void qspi_init_free_test(void)
flash_init(qspi); flash_init(qspi);
#ifdef QSPI_TEST_LOG_FLASH_STATUS #ifdef QSPI_TEST_LOG_FLASH_STATUS
printf("Status "); log_register(STATUS_REG, QSPI_STATUS_REG_SIZE, qspi); utest_printf("Status\r\n"); log_register(STATUS_REG, QSPI_STATUS_REG_SIZE, qspi);
printf("Config 0 "); log_register(CONFIG_REG0, QSPI_CONFIG_REG_0_SIZE, qspi); utest_printf("Config 0\r\n"); log_register(CONFIG_REG0, QSPI_CONFIG_REG_0_SIZE, qspi);
#ifdef CONFIG_REG1 #ifdef CONFIG_REG1
printf("Config 1 "); log_register(CONFIG_REG1, QSPI_CONFIG_REG_1_SIZE, qspi); utest_printf("Config 1\r\n"); log_register(CONFIG_REG1, QSPI_CONFIG_REG_1_SIZE, qspi);
#endif
#ifdef CONFIG_REG2
utest_printf("Config 2\r\n"); log_register(CONFIG_REG2, QSPI_CONFIG_REG_2_SIZE, qspi);
#endif #endif
#endif #endif
@ -375,7 +369,7 @@ void qspi_frequency_test(void)
void qspi_memory_id_test() void qspi_memory_id_test()
{ {
printf("*** %s memory config loaded ***\r\n", QSPI_FLASH_CHIP_STRING); utest_printf("*** %s memory config loaded ***\r\n", QSPI_FLASH_CHIP_STRING);
} }

View File

@ -14,6 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
#include "utest/utest.h"
#include "hal/qspi_api.h" #include "hal/qspi_api.h"
#include "qspi_test_utils.h" #include "qspi_test_utils.h"
@ -166,12 +167,12 @@ void log_register(uint32_t cmd, uint32_t reg_size, Qspi &qspi)
ret = read_register(cmd, reg, reg_size, qspi); ret = read_register(cmd, reg, reg_size, qspi);
TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret); TEST_ASSERT_EQUAL(QSPI_STATUS_OK, ret);
for (int j = 0; j < reg_size; j++) { for (uint32_t j = 0; j < reg_size; j++) {
printf("register byte %d data: ", j); utest_printf("register byte %u data: ", j);
for(int i = 0; i < 8; i++) { for(int i = 0; i < 8; i++) {
printf("%s ", ((reg[j] & (1 << i)) & 0xFF) == 0 ? "0" : "1"); utest_printf("%s ", ((reg[j] & (1 << i)) & 0xFF) == 0 ? "0" : "1");
} }
printf("\r\n"); utest_printf("\r\n");
} }
} }
@ -183,36 +184,36 @@ qspi_status_t erase(uint32_t erase_cmd, uint32_t flash_addr, Qspi &qspi)
qspi_status_t dual_enable(Qspi &qspi) qspi_status_t dual_enable(Qspi &qspi)
{ {
#ifdef DUAL_ENABLE_IMPLEMENTATION #ifdef DUAL_ENABLE
DUAL_ENABLE_IMPLEMENTATION(); DUAL_ENABLE();
#else #else
QUAD_ENABLE_IMPLEMENTATION(); QUAD_ENABLE();
#endif #endif
} }
qspi_status_t dual_disable(Qspi &qspi) qspi_status_t dual_disable(Qspi &qspi)
{ {
#ifdef DUAL_DISABLE_IMPLEMENTATION #ifdef DUAL_DISABLE
DUAL_DISABLE_IMPLEMENTATION(); DUAL_DISABLE();
#else #else
QUAD_DISABLE_IMPLEMENTATION(); QUAD_DISABLE();
#endif #endif
} }
qspi_status_t quad_enable(Qspi &qspi) qspi_status_t quad_enable(Qspi &qspi)
{ {
QUAD_ENABLE_IMPLEMENTATION(); QUAD_ENABLE();
} }
qspi_status_t quad_disable(Qspi &qspi) qspi_status_t quad_disable(Qspi &qspi)
{ {
QUAD_DISABLE_IMPLEMENTATION(); QUAD_DISABLE();
} }
qspi_status_t fast_mode_enable(Qspi &qspi) qspi_status_t fast_mode_enable(Qspi &qspi)
{ {
FAST_MODE_ENABLE_IMPLEMENTATION(); FAST_MODE_ENABLE();
} }
bool is_dual_cmd(qspi_bus_width_t inst_width, qspi_bus_width_t addr_width, qspi_bus_width_t data_width) bool is_dual_cmd(qspi_bus_width_t inst_width, qspi_bus_width_t addr_width, qspi_bus_width_t data_width)