Keil Logo

MCB2300: USING LPC2378 ETHERNET MEMORY AS RAM


Information in this knowledgebase article applies to:

  • MDK-ARM All Versions

QUESTION

My application does not require Ethernet connectivity, and I want to use the additional 16 Mbytes of memory at 0x7FE00000 as data RAM available on the LPC2378 device. I enabled the Ethernet RAM as follows:

    PCONP |= 0x40000000;   /* Enable Ethernet RAM Block */

but when I debug my application. I get Data Abort(DAbt) exceptions that point to the Ethernet RAM.

What can cause this?

ANSWER

You are enabling the Ethernet RAM block in your C code, which means it was not enabled during the application startup initialization code. Because the LPC2378 disables this RAM during a reset, you must enable it in the LPC2300.S startup module. To do this, add the following code to the start of the Reset_Handler routine:

; Reset Handler

                EXPORT  Reset_Handler
Reset_Handler

PCONP           EQU     0xE01FC0C4      ; Power Control for Peripherals
                LDR     R0, =PCONP
                LDR     R1, [R0]
                ORRS    R1, R1, #0x40000000 ; Turn on Ethernet RAM Block
                STR     R1, [R0]
                .
                .
                .

Now the initialization code can access the Ethernet RAM.

MORE INFORMATION

SEE ALSO

Last Reviewed: Saturday, August 16, 2008


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.