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 size of my external flash memory banks is 32K. I have 16 banks of 32K. My question is: Can the micro switch the bank per 32K bank? Or the only possible size to switch a bank is 64K?
Being more explicit: The size of the external memory banks can be different to 64K ?
"The size of the external memory banks can be different to 64K ?" I think you need to look-up Keil's description of their code banking in the Manuals! Switching 64K means that you are switching the entire CODE address space of the 8051! Keil's code banking requires a common area that is always present - so, effectively, you cannot have 64K banks.