Keil™, An ARM® Company

Technical Support

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