This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Trying to get RL-FlashFS working on LPC2300

I'm building some code to read the SD Card on an MCB2300.   I'm using the RL-FlashFS library.

I have configured CCLK to 48MHZ and PCLK_MCI to CCLK, and changed the #defines in MCI_LPC23xx.c to read:

#define __MCLK    48000000
#define __CPUCLK  48000000

My code to initialise the card reads:

	uint32_t retv = finit(NULL);

The SD LED on the MCB2300 board comes on when the call is made and then there's a *long* pause and eventually the function returns a value of 2.

I'm using 4.74 of the library and uVision 5

Help please, I am totally baffled.

Thanks, David

Parents
  • I ran a manual flash of the build and was able to get into the debugger.

    I had changed this code to let me debug the finit call:

    static void init_card (void) {
      U32 retv = finit (NULL);
            char buffer[16] = {0};
        
        if (0== retv) return;
        else
        {
            sprintf(buffer, "%d", retv);
        }
    }


    When I debugged through that I got retv of 2 as previously.

    For the avoidance of doubt I am trying to build/use the sample from directory:

    C:\Keil_v5\ARM\Boards\Keil\MCB2300\RL\FlashFS\SD_File

    that was installed by MDK79525.   This has version V4.51 of MCI_LPC23xx.c and File_Config.c as distinct from the version in the downloadable sample which is V3.21.

    Of course the V3.21 code won't compile:

    *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
    Build target 'MCB2300'
    compiling File_Config.c...
    File_Config.c(150): error:  #77-D: this declaration has no storage class or type specifier
       DEVCONF const FlashDev [1] = {0,0};
    File_Config.c(150): error:  #65: expected a ";"
       DEVCONF const FlashDev [1] = {0,0};
    File_Config.c(169): error:  #77-D: this declaration has no storage class or type specifier
       DEVCONF const SpiDev [1] = {0,0};
    File_Config.c(169): error:  #65: expected a ";"
       DEVCONF const SpiDev [1] = {0,0};
    File_Config.c(211): error:  #77-D: this declaration has no storage class or type specifier
       DEVCONF const RamDev [1] = {0,0};
    File_Config.c(211): error:  #65: expected a ";"
       DEVCONF const RamDev [1] = {0,0};
    File_Config.c: 0 warnings, 6 errors
    compiling Getline.c...
    compiling Serial.c...
    compiling MCI_LPC23xx.c...
    MCI_LPC23xx.c(96): error:  #20: identifier "CARD_NONE" is undefined
         CardType = CARD_NONE;
    MCI_LPC23xx.c(101): error:  #20: identifier "CARD_MMC" is undefined
               CardType = CARD_MMC;
    MCI_LPC23xx.c(115): error:  #20: identifier "CARD_SD" is undefined
                     CardType = CARD_SD;
    MCI_LPC23xx.c(135): error:  #20: identifier "CARD_MMC" is undefined
         if (CardType == CARD_MMC) {
    MCI_LPC23xx.c(146): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(211): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(230): error:  #20: identifier "CARD_MMC" is undefined
         if (CardType == CARD_MMC) {
    MCI_LPC23xx.c(257): error:  #20: identifier "CARD_SD" is undefined
               if (CardType == CARD_SD) {
    MCI_LPC23xx.c(280): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(388): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(654): error:  #20: identifier "MMCFG" is undefined
      BOOL mci_read_config (MMCFG *cfg) {
    MCI_LPC23xx.c(669): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c: 0 warnings, 12 errors

    David

Reply
  • I ran a manual flash of the build and was able to get into the debugger.

    I had changed this code to let me debug the finit call:

    static void init_card (void) {
      U32 retv = finit (NULL);
            char buffer[16] = {0};
        
        if (0== retv) return;
        else
        {
            sprintf(buffer, "%d", retv);
        }
    }


    When I debugged through that I got retv of 2 as previously.

    For the avoidance of doubt I am trying to build/use the sample from directory:

    C:\Keil_v5\ARM\Boards\Keil\MCB2300\RL\FlashFS\SD_File

    that was installed by MDK79525.   This has version V4.51 of MCI_LPC23xx.c and File_Config.c as distinct from the version in the downloadable sample which is V3.21.

    Of course the V3.21 code won't compile:

    *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
    Build target 'MCB2300'
    compiling File_Config.c...
    File_Config.c(150): error:  #77-D: this declaration has no storage class or type specifier
       DEVCONF const FlashDev [1] = {0,0};
    File_Config.c(150): error:  #65: expected a ";"
       DEVCONF const FlashDev [1] = {0,0};
    File_Config.c(169): error:  #77-D: this declaration has no storage class or type specifier
       DEVCONF const SpiDev [1] = {0,0};
    File_Config.c(169): error:  #65: expected a ";"
       DEVCONF const SpiDev [1] = {0,0};
    File_Config.c(211): error:  #77-D: this declaration has no storage class or type specifier
       DEVCONF const RamDev [1] = {0,0};
    File_Config.c(211): error:  #65: expected a ";"
       DEVCONF const RamDev [1] = {0,0};
    File_Config.c: 0 warnings, 6 errors
    compiling Getline.c...
    compiling Serial.c...
    compiling MCI_LPC23xx.c...
    MCI_LPC23xx.c(96): error:  #20: identifier "CARD_NONE" is undefined
         CardType = CARD_NONE;
    MCI_LPC23xx.c(101): error:  #20: identifier "CARD_MMC" is undefined
               CardType = CARD_MMC;
    MCI_LPC23xx.c(115): error:  #20: identifier "CARD_SD" is undefined
                     CardType = CARD_SD;
    MCI_LPC23xx.c(135): error:  #20: identifier "CARD_MMC" is undefined
         if (CardType == CARD_MMC) {
    MCI_LPC23xx.c(146): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(211): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(230): error:  #20: identifier "CARD_MMC" is undefined
         if (CardType == CARD_MMC) {
    MCI_LPC23xx.c(257): error:  #20: identifier "CARD_SD" is undefined
               if (CardType == CARD_SD) {
    MCI_LPC23xx.c(280): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(388): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c(654): error:  #20: identifier "MMCFG" is undefined
      BOOL mci_read_config (MMCFG *cfg) {
    MCI_LPC23xx.c(669): error:  #20: identifier "CARD_SD" is undefined
         if (CardType == CARD_SD) {
    MCI_LPC23xx.c: 0 warnings, 12 errors

    David

Children
No data