Production Test Program (PTP) for the LPC4088 Experiment Base Board

Dependencies:   EALib I2S LM75B SDFileSystem mbed

Committer:
embeddedartists
Date:
Mon Sep 08 11:34:53 2014 +0000
Revision:
3:7ef908e84ae1
Parent:
2:2f4b7535ceb3
Added audio test. Shortened RGB LED startup sequence and added message for user when uSD card not inserted to explain the long delay.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embeddedartists 2:2f4b7535ceb3 1 /*
embeddedartists 2:2f4b7535ceb3 2 * Copyright 2013 Embedded Artists AB
embeddedartists 2:2f4b7535ceb3 3 *
embeddedartists 2:2f4b7535ceb3 4 * Licensed under the Apache License, Version 2.0 (the "License");
embeddedartists 2:2f4b7535ceb3 5 * you may not use this file except in compliance with the License.
embeddedartists 2:2f4b7535ceb3 6 * You may obtain a copy of the License at
embeddedartists 2:2f4b7535ceb3 7 *
embeddedartists 2:2f4b7535ceb3 8 * http://www.apache.org/licenses/LICENSE-2.0
embeddedartists 2:2f4b7535ceb3 9 *
embeddedartists 2:2f4b7535ceb3 10 * Unless required by applicable law or agreed to in writing, software
embeddedartists 2:2f4b7535ceb3 11 * distributed under the License is distributed on an "AS IS" BASIS,
embeddedartists 2:2f4b7535ceb3 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
embeddedartists 2:2f4b7535ceb3 13 * See the License for the specific language governing permissions and
embeddedartists 2:2f4b7535ceb3 14 * limitations under the License.
embeddedartists 2:2f4b7535ceb3 15 */
embeddedartists 2:2f4b7535ceb3 16
embeddedartists 2:2f4b7535ceb3 17 /******************************************************************************
embeddedartists 2:2f4b7535ceb3 18 * Includes
embeddedartists 2:2f4b7535ceb3 19 *****************************************************************************/
embeddedartists 2:2f4b7535ceb3 20
embeddedartists 2:2f4b7535ceb3 21 #include "mbed.h"
embeddedartists 2:2f4b7535ceb3 22 #include "TestFileSystemMCI.h"
embeddedartists 2:2f4b7535ceb3 23 #include "MCIFileSystem.h"
embeddedartists 2:2f4b7535ceb3 24
embeddedartists 2:2f4b7535ceb3 25 /******************************************************************************
embeddedartists 2:2f4b7535ceb3 26 * Defines and typedefs
embeddedartists 2:2f4b7535ceb3 27 *****************************************************************************/
embeddedartists 2:2f4b7535ceb3 28
embeddedartists 2:2f4b7535ceb3 29
embeddedartists 2:2f4b7535ceb3 30 /******************************************************************************
embeddedartists 2:2f4b7535ceb3 31 * Public Functions
embeddedartists 2:2f4b7535ceb3 32 *****************************************************************************/
embeddedartists 2:2f4b7535ceb3 33
embeddedartists 2:2f4b7535ceb3 34 /*
embeddedartists 2:2f4b7535ceb3 35 Prerequisites:
embeddedartists 2:2f4b7535ceb3 36
embeddedartists 2:2f4b7535ceb3 37 - For this test to work jumpers JP1..JP6 on the LPC4088 Experiment Base Board
embeddedartists 2:2f4b7535ceb3 38 must all be in positions 1-2, that is closest to the center of the board.
embeddedartists 2:2f4b7535ceb3 39
embeddedartists 2:2f4b7535ceb3 40 - The uSD card must be formatted as FAT or FAT32, NTFS will not work.
embeddedartists 2:2f4b7535ceb3 41
embeddedartists 2:2f4b7535ceb3 42 - This test expects a file with the name message.txt to exist in the
embeddedartists 2:2f4b7535ceb3 43 root folder on the uSD card. The file must be at least 10 bytes in
embeddedartists 2:2f4b7535ceb3 44 size and the first bytes must be eatest2014
embeddedartists 2:2f4b7535ceb3 45 */
embeddedartists 2:2f4b7535ceb3 46
embeddedartists 2:2f4b7535ceb3 47 bool TestFileSystemMCI::runTest() {
embeddedartists 3:7ef908e84ae1 48 printf("Testing MCI file system. If this test takes a lot of time make sure that\n"
embeddedartists 3:7ef908e84ae1 49 "there is a uSD card inserted and that the jumpers are inserted according\n"
embeddedartists 3:7ef908e84ae1 50 "to the instructions!\n");
embeddedartists 3:7ef908e84ae1 51
embeddedartists 2:2f4b7535ceb3 52 // The LPC4088 Experiment Base Board does not have the CardDetect signal
embeddedartists 2:2f4b7535ceb3 53 // available so it must be set to NC here to work.
embeddedartists 2:2f4b7535ceb3 54 MCIFileSystem mcifs("mci", NC);
embeddedartists 2:2f4b7535ceb3 55
embeddedartists 2:2f4b7535ceb3 56 FILE* fp = fopen("/mci/message.txt", "r");
embeddedartists 2:2f4b7535ceb3 57 if (fp != NULL) {
embeddedartists 2:2f4b7535ceb3 58 char buf[20];
embeddedartists 2:2f4b7535ceb3 59 int num = fread(buf, 1, sizeof(buf), fp);
embeddedartists 2:2f4b7535ceb3 60 if (num >= 10) {
embeddedartists 2:2f4b7535ceb3 61 buf[10] = '\0';
embeddedartists 2:2f4b7535ceb3 62 if (strcmp(buf, "eatest2014") == 0) {
embeddedartists 2:2f4b7535ceb3 63 printf("MCI SD Card works!\n");
embeddedartists 2:2f4b7535ceb3 64 fclose(fp);
embeddedartists 2:2f4b7535ceb3 65 return true;
embeddedartists 2:2f4b7535ceb3 66 }
embeddedartists 2:2f4b7535ceb3 67 printf("Invalid data read from /mci/message.txt\n");
embeddedartists 2:2f4b7535ceb3 68 }
embeddedartists 2:2f4b7535ceb3 69 printf("Failed to read >= 10 bytes from /mci/message.txt\n");
embeddedartists 2:2f4b7535ceb3 70 }
embeddedartists 2:2f4b7535ceb3 71 printf("Failed to open /mci/message.txt\n");
embeddedartists 2:2f4b7535ceb3 72 return false;
embeddedartists 2:2f4b7535ceb3 73 }
embeddedartists 2:2f4b7535ceb3 74
embeddedartists 2:2f4b7535ceb3 75