I Purchased Keil DK51 in 2001 and updated in 2002 to version 7. However, I was given MON51.LIB dated 5/2/2001 and MON51B.LIB dated 6/29/1998. I was able to use MON51.LIB with my code banking code by manually switching bank to load user code. However, when I use banking monitor MON51B.LIB, my code can be be loaded. Does any one have experience of a working MON51B.LIB (6/29/1998). If it does not work, I believe that Keil has the obligation to supply a working MON51B.LIB without me paying the update fee. Thanks. Charles Lee
Reconfigure my software so that there are COMMON code at 8000-CFFF The common area MUST include reset and interrupt vectors. http://www.keil.com/support/docs/158.htm Jon
I checked the Hex files, and I am sure that the C51 duplicated interrupt vectors & all COMMON code on each banks modules. Actually, I specified that the code bank area is from 90H to 7FFFH. C51 automatically duplicates interrupt vectors on all bank object modules. My code banking program works with non-code banking mointor (MON51.LIB), but not the banked monitor (MON51B.LIB). Thanks for your suggestion.
I redo the hardware to change the memory map. COMMON: 0-1FFF; A000-FFFF Bank: 2000-9FFF; Monitor resides at EE00, and a shadow program is used at power-up to jump to Monitor. After making all the changes, I can run MON51 at 57600 Baud. (My CPU is at 3.58MHz with C509L chip). When I switch to MON51B. I can not load my code at 57600 Baud. However, when I reduce the Baud Rate to 28800. I can make it work. Good Luck for people trying code banking. Charles Lee