Keil Logo

BL51: FATAL ERROR L220 (INVALID INPUT MODULE) W/TRISCEND E5


Information in this article applies to:

  • C51 Version 6.23

QUESTION

I'm developing a code banking application for the Triscend E5 and am using Triscend's special L51_BANK.A51 file that comes with Triscend FastChip 2.3.0.

When I use the Triscend L51_BANK.A51file, the BL51 linker generates the following Fatal Error.:

FATAL ERROR L220: INVALID INPUT MODULE
MODULE:  C:\KEIL\C51\LIB\C51L.LIB (-----)

Consequently, my target can't be created. What do I need to do in order to eliminate this Fatal Error?

ANSWER

The Triscend's L51_BANK.A51 code banking file defines the wrong ?B_MODE value (Bank Mode). In the Triscend-supplied file, it is defined as 4 (user-provided bank switch code) but it should be defined as 1 since it is a variation of the XDATA-based banking mode.

When ?B_MODE is defined as 4, the linker makes assumptions about segment names and combines the JMP TABLE with a different segment which causes the AJMP instructions that are generated in the JMP TABLE to be out of place. This causes the linker error you received.

RESOLUTION

You may download the corrected L51_BANK.A51 from the attachments section or you may manually change the ?B_MODE definition value to 1.

MORE INFORMATION

SEE ALSO

ATTACHED FILES

Request the files attached to this knowledgebase article.

Last Reviewed: Monday, October 23, 2006


Did this article provide the answer you needed?
 
Yes
No
Not Sure
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.