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.
"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." 16 Banks of 32K is a total of 512K. Maybe you have a good reason, but it does seem odd to choose a processor with only 32K of code space when you know that you're going to need an extra 512K!! :-0 http://www.keil.com/forum/docs/thread5739.asp There was a spate of people asking about cramming huge amounts of code into small 8051's recently: http://www.keil.com/forum/docs/thread7324.asp http://www.keil.com/forum/docs/thread7519.asp http://www.keil.com/forum/docs/thread7445.asp Anyhow, you didn't actually ask a question! What is your problem?
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.
There was a spate of people asking about cramming huge amounts of code into small 8051's recently known as "PC thinking" or "having no idea whatsoever" Erik