diff options
author | Fredrik Thulin <fredrik@thulin.net> | 2016-05-24 17:12:42 +0200 |
---|---|---|
committer | Fredrik Thulin <fredrik@thulin.net> | 2016-05-24 17:12:42 +0200 |
commit | 640163be7e90aef968376cb5cdf6ab0b64ff52ef (patch) | |
tree | 1892093040dfdaffeb71ef87bd2b5328e368e2f9 /projects/cli-test/cli-test.c | |
parent | 6265025f7cd7f606b6da62c7add13a6008500cf7 (diff) |
make 'test sdram' take number of iterations as argument
Diffstat (limited to 'projects/cli-test/cli-test.c')
-rw-r--r-- | projects/cli-test/cli-test.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/projects/cli-test/cli-test.c b/projects/cli-test/cli-test.c index dfcf856..41d7365 100644 --- a/projects/cli-test/cli-test.c +++ b/projects/cli-test/cli-test.c @@ -42,6 +42,7 @@ #include "test_sdram.h" #include <string.h> +#include <stdlib.h> extern uint32_t update_crc(uint32_t crc, uint8_t *buf, int len); @@ -184,7 +185,7 @@ int cmd_fpga_bitstream_upload(struct cli_def *cli, const char *command, char *ar /* By initializing buf to the same value that erased flash has (0xff), we don't * have to try and be smart when writing the last page of data to the memory. */ - memset(buf, 0xff, 4096); + memset(buf, 0xff, sizeof(buf)); if (filesize < n) { n = filesize; @@ -284,7 +285,13 @@ int cmd_test_sdram(struct cli_def *cli, const char *command, char *argv[], int a { // run external memory initialization sequence HAL_StatusTypeDef status; - int ok, n = 1, test_completed; + int ok, num_cycles = 1, i, test_completed; + + if (argc == 1) { + num_cycles = strtol(argv[0], NULL, 0); + if (num_cycles > 100) num_cycles = 100; + if (num_cycles < 1) num_cycles = 1; + } cli_print(cli, "Initializing SDRAM"); status = sdram_init(); @@ -293,9 +300,8 @@ int cmd_test_sdram(struct cli_def *cli, const char *command, char *argv[], int a return CLI_OK; } - /* XXX support number of iterations given as argument like 'test sdram 5' */ - while (n--) { - cli_print(cli, "Starting SDRAM test (n = %i)", n); + for (i = 1; i <= num_cycles; i++) { + cli_print(cli, "Starting SDRAM test (%i/%i)", i, num_cycles); test_completed = 0; // set LFSRs to some initial value, LFSRs will produce // pseudo-random 32-bit patterns to test our memories @@ -326,11 +332,11 @@ int cmd_test_sdram(struct cli_def *cli, const char *command, char *argv[], int a led_off(LED_BLUE); test_completed = 1; - cli_print(cli, "SDRAM test (n = %i) completed", n); + cli_print(cli, "SDRAM test (%i/%i) completed\r\n", i, num_cycles); } if (! test_completed) { - cli_print(cli, "SDRAM test failed (n = %i)", n); + cli_print(cli, "SDRAM test failed (%i/%i)", i, num_cycles); } else { cli_print(cli, "SDRAM test completed successfully"); } |