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

external memory configuration/support

Hello,

We are using the AT89c51rd2 micro-controller for a mass production product.
We are currently using both external flash and RAM memories(RAM = 64K, Flash = 1MB).
This architecture are working as expected.

We are requested to extend our external RAM memory support to 128KB (additional 64KB are required). For that matter we made a hardware modification to our current hardware by connecting P1.2 GPIO as an additional address line(A16) to a 128KB external memory RAM chip.
In addition we modified the L51_BANK.A51 file, for supporting this hardware modification.
Unfortunately, after modifying the L51_BANK.A51 file, it seems that the application is not started(main function is not called).
The following lines describes the changes which have been made to the L51_BANK.A51 file:

; $NOCOND DEBUGPUBLICS
;------------------------------------------------------------------------------
; This file is part of the BL51 Banked Linker/Locater package
; Copyright KEIL ELEKTRONIK GmbH 1991
; Version 1.2
;------------------------------------------------------------------------------
;************************ Configuration Section *******************************
?B_NBANKS EQU 32 ; Define max. Number of Banks *
; *
?B_MODE EQU 1 ; 0 for Bank-Switching via 8051 Port *
; ; 1 for Bank-Switching via XDATA Port *
; *
IF ?B_MODE = 1; *
;-----------------------------------------------------------------------------*
; if ?BANK?MODE is 1 define the following values *
; For Bank-Switching via XDATA Port define XDATA Port Address / Bits *
?B_XDATAPORT EQU 0FFE5H ; default is XDATA Port Address 0FFFFH *
?B_BANKMASK EQU 0F0H ; the bank mask (4 bits) *
?B_FIRSTBIT EQU 2 ; default is Bit 0 *
?B_BANKS EQU 2 ; *
?B_XDATAIO EQU 1 ; *
?B_PORT EQU P1 ; *
;-----------------------------------------------------------------------------*
ENDIF; *
; *
;******************************************************************************

Please advice,

Avner

Parents Reply Children
  • 1. The main function does not called, in the main i added a toggling of output in order to understand if the application get there, i can see that the output does not toggled.
    2. The Watchdog timeouts are the same, if i change back the L51_BANK.A51 changes, my application runs perfectly.

  • "1. The main function does not called, in the main i added a toggling of output in order to understand if the application get there, i can see that the output does not toggled."

    So take the same approach to see where it's getting "stuck"...

    "2. The Watchdog timeouts are the same"

    But you have doubled the size of the RAM! Are you sure that the timeout is still sufficient for the watchdog not to "fire" during the extra initialisation time...?