We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
1. When I update my version of C51 Keil in version 6.20c , I tried to compile an old project. The Ohx51(V1.21j) create a hex file with 0 bytes lenght. When I try with V1.21c (included in V6.14) the hex file was OK. What's wrong with this converter ? 2. When compile with directive VARBANKING(1) I see in LST file that ?C?XPAGE1SFR register is pushed on stack begore PSW register. On exit first is poped ?C?XPAGE1SFR and this I think is wrong! Thanx Franc C51 COMPILER V6.20c MAIN 10/24/2001 11:38:35 PAGE 1 C51 COMPILER V6.20c, COMPILATION OF MODULE MAIN OBJECT MODULE PLACED IN MAIN.OBJ COMPILER INVOKED BY: D:\KEIL620\C51\BIN\C51.EXE MAIN.C OMF251 VARBANKING(1) DEBUG CODE stmt level source 1 2 void TestInt (void) interrupt 1 using 2 3 { 4 1 unsigned char xdata a; 5 1 a += 2; 6 1 } 7 C51 COMPILER V6.20c MAIN 10/24/2001 11:38:35 PAGE 2 ASSEMBLY LISTING OF GENERATED OBJECT CODE ; FUNCTION TestInt (BEGIN) 0000 C0E0 PUSH ACC 0002 C083 PUSH DPH 0004 C082 PUSH DPL 0006 C000 E PUSH ?C?XPAGE1SFR 0008 750000 E MOV ?C?XPAGE1SFR,#?C?XPAGE1RST 000B C0D0 PUSH PSW ; SOURCE LINE # 2 ; SOURCE LINE # 5 000D 900000 R MOV DPTR,#a 0010 E0 MOVX A,@DPTR 0011 2402 ADD A,#02H 0013 F0 MOVX @DPTR,A ; SOURCE LINE # 6 0014 D000 E POP ?C?XPAGE1SFR 0016 D0D0 POP PSW 0018 D082 POP DPL 001A D083 POP DPH 001C D0E0 POP ACC 001E 32 RETI ; FUNCTION TestInt (END)
We cannot duplicate the problem that you describe under 1., but we have solved the problem 2 that you have documented. Please send an example project along with you address and serial number to email: support.intl@keil.com. We will then provide you with a work-arround.
Search back through this forum a couple of months - someone else recently had a problem with the object-to-hex conversion failing after upgrading to (I think) v6.20. I think Keil did something to the Object file format (to do with long symbol names?), and that was at the root of the problem?
Yes Andrew, I got a problem with the object-to-hex conversion. Keil send me a new OH51.EXE file (v2.6). My problem was due to long name statement in my project. Now, this new version correct this problem. Send an E-Mail to Keil support and describe your problem. They will you answer quickly !