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

interrupt functions in banked program.

My code grows over 64k boundary and now I rewriting my program to use code banks switching technique. I have C8051F120 MCU
with the following memory layout:

0xffff
...... bank1, bank2 and bank3
0x8000
- - - - - - - - - - - - - - - -
0x7fff
...... COMMON section (bank0)
0x0000

I put different modules of my code in different banks with COMMON {file.obj, file.obj...} and BANKx {file.obj...} instructions to BL51 linker.

And I got the following error messages:

*** WARNING L17: INTERRUPT FUNCTION IN BANKS NOT ALLOWED

I have several modules, most of these modules have one or two interrupt funcions.
All modules, which uses interrupt functions,
can't be placed in COMMON section because of their size.

The question is: how can I put whole object file in specified bank, but only interrupt function from this object file (module) to COMMON section?

BL51 doesn't allow me multiple COMMON directives in command line (one for module name, an one for interrupt function name).