From: SourceForge.net <no...@so...> - 2008-09-23 06:18:54
|
Bugs item #2115959, was opened at 2008-09-17 12:57 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2115959&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: mcs51(8051) target Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Zoran (d_storm) Assigned to: Nobody/Anonymous (nobody) Summary: Compiler uses cjne (which is out of range, 130+ bytes jump) Initial Comment: In some cases the compiler uses cjne but it has to jump to a 130+ bytes,which cjne doesn't support, but the compiler has used cjne instead of ljmp... The error is: "?ASxxxx-Error-<a> in line 1786 of Source\code\command_mode.asm removing Source\code\command_mode.rel <a> machine specific addressing or addressing mode error" ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2008-09-23 08:18 Message: Then what is in the other 8 header files? ---------------------------------------------------------------------- Comment By: Zoran (d_storm) Date: 2008-09-23 08:02 Message: I'm really sorry. It's just I am currently involved in 3 prototype projects and the deadline is very close... So I can't think strait. The header file has only this definitions: #ifdef COMMAND_MODE unsigned char cmd_buff[64]; #else extern unsigned char chk_cmd(unsigned int timeout); extern void command_mode(void); extern BOOL refresh_param(unsigned char *param, unsigned int len, unsigned int ee_adresa, char hard_switch); #endif ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2008-09-22 20:22 Message: Without the needed header files I cannot recompile this, now can I? ---------------------------------------------------------------------- Comment By: Zoran (d_storm) Date: 2008-09-22 08:53 Message: Here you go. The error happens on line 234 in .C source. I solved the bug of compiler not using ljmp by putting "printf("\r");" in front of the code that is supposed to do something, so the assembly code lengthens and the compiler is forced to use ljmp. The "printf" does not have any actual implication, it is only a fix... Compiler switches are: "SDCC --debug -c --model-large File Added: command_mode.c ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2008-09-19 20:14 Message: Can you please upload either the source and explain the compiler switches you used? It would also help to reproduce the asm with --verbose-asm so we can examine what the compiler did. Maarten ---------------------------------------------------------------------- Comment By: Zoran (d_storm) Date: 2008-09-18 08:48 Message: No, there isn't any inline assembler in this file... SDCC version 2.8.0.0. ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2008-09-17 20:15 Message: Are you using any inline assembler? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2115959&group_id=599 |