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

Code Banking

I'm working with a 32K microcontroller using external code banking. The external bank area is in address 0x8000- 0xFFFF and I have 16 banks of 32K.

If I configure a function in bank 0 I see that its code is in address 0x8000, but if I configure this function in bank 1 I see that code is in 0x18000.

I think if the size of the banks is 32K, if I choose Bank 1 for this function I should see the code of this fcn. in address 0x10000.

Parents
  • True enough -- unless you can shrink the size of the common bank.

    I suppose the main use for the 64KB scheme is highly segmented code that can run in distinct "phases", or perhaps code that just can't stand the bank switch thunk penalty.

    The original point is well taken, though -- if you expect to need 512KB of code, you should probably start asking whether the classic 8051 is really the right processor architecture.

Reply
  • True enough -- unless you can shrink the size of the common bank.

    I suppose the main use for the 64KB scheme is highly segmented code that can run in distinct "phases", or perhaps code that just can't stand the bank switch thunk penalty.

    The original point is well taken, though -- if you expect to need 512KB of code, you should probably start asking whether the classic 8051 is really the right processor architecture.

Children
  • I heard lot of theories for code banking but yet dont know how to practically implement it using 8051 hardware & keil software?
    My code banking concept is not clear, can anyone pls explain me in very simple & prctical terms aided with clear hardware schematic & software code examples?
    I want to interface 512KB of non-volatile Data RAM / EEPROM / Flash to Philips P89C668 (8051 core). Does anyone know good links to the same? What extra coding logic is required with Keil C code?
    -Meghal.

  • Meghal Vasa,

    As this is not specifically related to the foregoing discussion, you should start a new Thread for your topic.

    You are actually asking about Data banking, not code banking - they are somewhat difrerent!

    If you want to refer to this or other existing Threads, do so by posting a link in your new thread (just copy & paste from your browser's address bar).