aboutsummaryrefslogtreecommitdiffstats
path: root/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c
diff options
context:
space:
mode:
authorbarthess <barthess@yandex.ru>2015-08-04 13:30:01 +0300
committerbarthess <barthess@yandex.ru>2015-08-04 13:30:01 +0300
commite7a3df6c18173ad12750faa56cb8a8f6c68874cb (patch)
treef3bcdf0ff5bca120e42cd9f534a5d1d5518eb88a /testhal/STM32/STM32F4xx/FSMC_SRAM/main.c
parent8c8c0a0be4dc937c36bac5c5f29a1974e5a1e0ec (diff)
downloadChibiOS-Contrib-e7a3df6c18173ad12750faa56cb8a8f6c68874cb.tar.gz
ChibiOS-Contrib-e7a3df6c18173ad12750faa56cb8a8f6c68874cb.tar.bz2
ChibiOS-Contrib-e7a3df6c18173ad12750faa56cb8a8f6c68874cb.zip
Improved FSMC.
SRAM configuration is much more flexible now.
Diffstat (limited to 'testhal/STM32/STM32F4xx/FSMC_SRAM/main.c')
-rw-r--r--testhal/STM32/STM32F4xx/FSMC_SRAM/main.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c b/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c
index 03d7f1d..604591d 100644
--- a/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c
+++ b/testhal/STM32/STM32F4xx/FSMC_SRAM/main.c
@@ -19,7 +19,7 @@
#include "fsmc_sram.h"
#include "membench.h"
-#include "memtest.hpp"
+#include "memtest.h"
/*
******************************************************************************
@@ -41,7 +41,8 @@
******************************************************************************
*/
-static void mem_error_cb(memtest_t *memp, testtype e, size_t address);
+static void mem_error_cb(memtest_t *memp, testtype type, size_t index,
+ size_t width, uint32_t got, uint32_t expect);
/*
******************************************************************************
@@ -60,7 +61,9 @@ static uint8_t int_buf[64*1024];
* SRAM driver configuration structure.
*/
static const SRAMConfig sram_cfg = {
- (0 << 16) | (2 << 8) | (1 << 0)
+ .bcr = (FSMC_BCR_MWID_16 | FSMC_BCR_MTYP_SRAM | FSMC_BCR_WREN),
+ .btr = (0 << 16) | (2 << 8) | (1 << 0),
+ .bwtr = (0 << 16) | (2 << 8) | (1 << 0)
};
/*
@@ -69,9 +72,8 @@ static const SRAMConfig sram_cfg = {
static memtest_t memtest_struct = {
SRAM_START,
SRAM_SIZE,
- MEMTEST_WIDTH_16,
- mem_error_cb,
- 42
+ MEMTEST_WIDTH_32,
+ mem_error_cb
};
/*
@@ -110,10 +112,14 @@ static inline void green_led_on(void) {palSetPad(GPIOI, GPIOI_LED_G);}
static inline void green_led_off(void) {palClearPad(GPIOI, GPIOI_LED_G);}
static inline void green_led_toggle(void) {palTogglePad(GPIOI, GPIOI_LED_G);}
-void mem_error_cb(memtest_t *memp, testtype e, size_t address) {
+static void mem_error_cb(memtest_t *memp, testtype type, size_t index,
+ size_t width, uint32_t got, uint32_t expect) {
(void)memp;
- (void)e;
- (void)address;
+ (void)type;
+ (void)index;
+ (void)width;
+ (void)got;
+ (void)expect;
green_led_off();
red_led_on();
@@ -130,7 +136,6 @@ static void memtest(void) {
red_led_off();
while (true) {
- memtest_struct.rand_seed = chSysGetRealtimeCounterX();
memtest_run(&memtest_struct, MEMTEST_RUN_ALL);
green_led_toggle();
}