Keil Logo

MCB2300: DMA Fails on SD/MMC Interface


Information in this article applies to:

  • MCB2300 Evaluation Board
  • NXP LPC2300 Devices
  • NXP LPC2400 Devices
  • Real-Time Library (RL-ARM) Version 3.10

QUESTION

I have problems to implement an SD/MMC interface using the MCI protocol. I have used the driver files from the Real-Time Library for the LPC2368 or LPC2378 device. The code initializes the MMC/SD card and calculates the available memory, but any data read/write fails. It looks like a problem with the DMA.

Is there a known issue?

ANSWER

The DMA transfer only works to the USB RAM. Therefore it is required that you explicitly specify the memory region for the MMC buffers so that they are located to this specific memory space.

The following steps explain the configuration in µVision:

  1. Ensure that the USB RAM space is correctly specified in IRAM2 under Project — Options — Target — IRAM2
      Start: 0x7FD00000, Size: 0x2000
    .
  2. In the Project Workspace, right-click with the mouse on the file RTLFS.lib (implements the data transfer buffers) and open the Options — Properties dialog.
  3. For the Zero Initialized Data select IRAM2 so that all data transfer buffers are located to this memory space.

This configuration ensures that the DMA transfer buffers are located to USB RAM.

MORE INFORMATION

  • NXP LPC2364/66/68/78 User's Manual

SEE ALSO

Last Reviewed: Tuesday, December 22, 2020


Did this article provide the answer you needed?
 
Yes
No
Not Sure
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.