From eefaedd59cccaeddcde8f54f89c98a26cc570e82 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Wed, 7 May 2014 10:44:43 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6920 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- testhal/STM32F4xx/SDC/main.c | 223 ------------------------------------------- 1 file changed, 223 deletions(-) delete mode 100644 testhal/STM32F4xx/SDC/main.c (limited to 'testhal/STM32F4xx/SDC/main.c') diff --git a/testhal/STM32F4xx/SDC/main.c b/testhal/STM32F4xx/SDC/main.c deleted file mode 100644 index 264f31133..000000000 --- a/testhal/STM32F4xx/SDC/main.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#include - -#include "ch.h" -#include "hal.h" - -#include "chprintf.h" -#include "shell.h" - -/* - * SDIO configuration. - */ -static const SDCConfig sdccfg = { - 0 -}; - -/* - * LED blinker thread, times are in milliseconds. - */ -static THD_WORKING_AREA(waThread1, 128); -static msg_t Thread1(void *arg) { - - (void)arg; - chRegSetThreadName("blinker"); - while (TRUE) { - palSetPad(GPIOC, GPIOC_LED); - chThdSleepMilliseconds(500); - palClearPad(GPIOC, GPIOC_LED); - chThdSleepMilliseconds(500); - } -} - -/*===========================================================================*/ -/* Command line related. */ -/*===========================================================================*/ - -#define SHELL_WA_SIZE THD_WORKING_AREA_SIZE(2048) - -#define SDC_BURST_SIZE 16 - -/* Buffer for block read/write operations, note that an extra byte is - allocated in order to support unaligned operations.*/ -static uint8_t buf[MMCSD_BLOCK_SIZE * SDC_BURST_SIZE + 1]; - -void cmd_sdc(BaseSequentialStream *chp, int argc, char *argv[]) { - static const char *mode[] = {"SDV11", "SDV20", "MMC", NULL}; - systime_t start, end; - uint32_t n, startblk; - - if (argc != 1) { - chprintf(chp, "Usage: sdiotest read|write|all\r\n"); - return; - } - - /* Card presence check.*/ - if (!blkIsInserted(&SDCD1)) { - chprintf(chp, "Card not inserted, aborting.\r\n"); - return; - } - - /* Connection to the card.*/ - chprintf(chp, "Connecting... "); - if (sdcConnect(&SDCD1)) { - chprintf(chp, "failed\r\n"); - return; - } - chprintf(chp, "OK\r\n\r\nCard Info\r\n"); - chprintf(chp, "CSD : %08X %8X %08X %08X \r\n", - SDCD1.csd[3], SDCD1.csd[2], SDCD1.csd[1], SDCD1.csd[0]); - chprintf(chp, "CID : %08X %8X %08X %08X \r\n", - SDCD1.cid[3], SDCD1.cid[2], SDCD1.cid[1], SDCD1.cid[0]); - chprintf(chp, "Mode : %s\r\n", mode[SDCD1.cardmode]); - chprintf(chp, "Capacity : %DMB\r\n", SDCD1.capacity / 2048); - - /* The test is performed in the middle of the flash area.*/ - startblk = (SDCD1.capacity / MMCSD_BLOCK_SIZE) / 2; - - if ((strcmp(argv[0], "read") == 0) || - (strcmp(argv[0], "all") == 0)) { - - /* Single block read performance, aligned.*/ - chprintf(chp, "Single block aligned read performance: "); - start = chVTGetSystemTime(); - end = start + MS2ST(1000); - n = 0; - do { - if (blkRead(&SDCD1, startblk, buf, 1)) { - chprintf(chp, "failed\r\n"); - goto exittest; - } - n++; - } while (chVTIsSystemTimeWithin(start, end)); - chprintf(chp, "%D blocks/S, %D bytes/S\r\n", n, n * MMCSD_BLOCK_SIZE); - - /* Multiple sequential blocks read performance, aligned.*/ - chprintf(chp, "16 sequential blocks aligned read performance: "); - start = chVTGetSystemTime(); - end = start + MS2ST(1000); - n = 0; - do { - if (blkRead(&SDCD1, startblk, buf, SDC_BURST_SIZE)) { - chprintf(chp, "failed\r\n"); - goto exittest; - } - n += SDC_BURST_SIZE; - } while (chVTIsSystemTimeWithin(start, end)); - chprintf(chp, "%D blocks/S, %D bytes/S\r\n", n, n * MMCSD_BLOCK_SIZE); - -#if STM32_SDC_SDIO_UNALIGNED_SUPPORT - /* Single block read performance, unaligned.*/ - chprintf(chp, "Single block unaligned read performance: "); - start = chVTGetSystemTime(); - end = start + MS2ST(1000); - n = 0; - do { - if (blkRead(&SDCD1, startblk, buf + 1, 1)) { - chprintf(chp, "failed\r\n"); - goto exittest; - } - n++; - } while (chVTIsSystemTimeWithin(start, end)); - chprintf(chp, "%D blocks/S, %D bytes/S\r\n", n, n * MMCSD_BLOCK_SIZE); - - /* Multiple sequential blocks read performance, unaligned.*/ - chprintf(chp, "16 sequential blocks unaligned read performance: "); - start = chVTGetSystemTime(); - end = start + MS2ST(1000); - n = 0; - do { - if (blkRead(&SDCD1, startblk, buf + 1, SDC_BURST_SIZE)) { - chprintf(chp, "failed\r\n"); - goto exittest; - } - n += SDC_BURST_SIZE; - } while (chVTIsSystemTimeWithin(start, end)); - chprintf(chp, "%D blocks/S, %D bytes/S\r\n", n, n * MMCSD_BLOCK_SIZE); -#endif /* STM32_SDC_SDIO_UNALIGNED_SUPPORT */ - } - - if ((strcmp(argv[0], "write") == 0) || - (strcmp(argv[0], "all") == 0)) { - - } - - /* Card disconnect and command end.*/ -exittest: - sdcDisconnect(&SDCD1); -} - -static const ShellCommand commands[] = { - {"sdc", cmd_sdc}, - {NULL, NULL} -}; - -static const ShellConfig shell_cfg1 = { - (BaseSequentialStream *)&SD6, - commands -}; - -/* - * Application entry point. - */ -int main(void) { - thread_t *shelltp = NULL; - - /* - * System initializations. - * - HAL initialization, this also initializes the configured device drivers - * and performs the board-specific initializations. - * - Kernel initialization, the main() function becomes a thread and the - * RTOS is active. - */ - halInit(); - chSysInit(); - - /* - * Shell manager initialization. - */ - shellInit(); - - /* - * Activates the serial driver 6 using the driver default configuration. - */ - sdStart(&SD6, NULL); - - /* - * Initializes the SDIO drivers. - */ - sdcStart(&SDCD1, &sdccfg); - - /* - * Creates the blinker thread. - */ - chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); - - /* - * Normal main() thread activity, in this demo it does nothing. - */ - while (TRUE) { - if (!shelltp) - shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); - else if (chThdTerminatedX(shelltp)) { - chThdRelease(shelltp); /* Recovers memory of the previous shell. */ - shelltp = NULL; /* Triggers spawning of a new shell. */ - } - chThdSleepMilliseconds(1000); - } -} -- cgit v1.2.3