We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.
"The Keil tools also support the 64KB "full bank" scheme, where the entire address space is switched. This requires replicating common code (constants, interrupt handlers) in each bank" True - I did over-simplify. But this still has the same effect of a single common bank and two "switched" banks. ie, the two 64K "full banks" only give you a total of 3x32K CODE space - not 2x64K
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.
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).