Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Empty ihx Hex file

Help
OLM
2008-05-16
2013-03-12
  • OLM
    OLM
    2008-05-16

    I have a project I'm building using SDCC and UltraEdit.  The project builds and my .rel files have info in them, however my .ihx and .hex files have just one line
    :00000001FF

    I get a few warnings, for unused variables in functions, but no other warnings or errors.  Any idea what could be going on?

     
    • Raphael Neider
      Raphael Neider
      2008-05-19

      We could use a tiny bit of information about
      * the source
      * the compiler version
      * target processor
      * environment (OS (Windows I guess), IDE (UltraEdit?), linker/assembler versions)
      * command lines
      * exact warnings/errors/output

      > Any idea what could be going on?

      It seems not to work.

       
    • OLM
      OLM
      2008-05-30

      I'm using the windows version of the compiler 2.8.0.  The target processor is the Zilog Z180.  The OS is Windows XP, the IDE is UltraEdit.  I'm using the built in build commands from Ultra Edit for SDCC.  And I'm using the ASXXXX assembler.

      The only warnings I get are about a few unused variables that I have in the code.

       
    • OLM
      OLM
      2008-05-30

      Here's the command line build:

      --------------------Configuration: RBVRM C - Release--------------------
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o executive.rel ..\executive.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o dsphndlr.rel ..\dsphndlr.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o cal_check.rel ..\cal_check.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o inp_stat.rel ..\inp_stat.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o keyhndlr.rel ..\keyhndlr.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o msghndlr.rel ..\msghndlr.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o param_key.rel ..\param_key.c
      ..\\param_key.c:970: warning 84: 'auto' variable 'select_chan' may be used before initialization
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o rqsthndlr.rel ..\rqsthndlr.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o self_test.rel ..\self_test.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o set_param.rel ..\set_param.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o softkeys.rel ..\softkeys.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o stat_keep.rel ..\stat_keep.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o trip_stat.rel ..\trip_stat.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o trip_test.rel ..\trip_test.c
      ..\\trip_test.c:232: warning 85: in function next_mr_hr_digit unreferenced function argument : 'pos'
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o util.rel ..\util.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o calibrate.rel ..\calibrate.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o bargraph.rel ..\bargraph.c
      ..\\bargraph.c:237: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
      ..\\bargraph.c:390: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
      ..\\bargraph.c:418: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
      ..\\bargraph.c:541: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
      ..\\bargraph.c:541: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o asm_functions.rel ..\asm_functions.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o arm_comm.rel ..\arm_comm.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o arm_bios.rel ..\arm_bios.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o arm_dios.rel ..\arm_dios.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o armdef_sv.rel ..\armdef_sv.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o manager.rel ..\manager.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o prn_scr.rel ..\prn_scr.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o text_msv.rel ..\text_msv.c
      SDCC --use-stdout --portmode=z180 --asm=asxxxx -S -mz80 -c -o texthndlr.rel ..\texthndlr.c
      SDCC --use-stdout --no-std-crt0 -mz80 --out-fmt-ihx executive.rel dsphndlr.rel cal_check.rel inp_stat.rel keyhndlr.rel msghndlr.rel param_key.rel rqsthndlr.rel self_test.rel set_param.rel softkeys.rel stat_keep.rel trip_stat.rel trip_test.rel util.rel calibrate.rel bargraph.rel asm_functions.rel arm_comm.rel arm_bios.rel arm_dios.rel armdef_sv.rel manager.rel prn_scr.rel text_msv.rel texthndlr.rel
      REN *.ihx RBVRM_C.hex
      RBVRM_C.hex - 0 error(s), 7 warning(s)

      And here's the contents of the hex file:
      :00000001FF

       
    • Med
      Med
      2008-05-30

      I don't know very much of this, but in my makefile the last line is something like this

      sdcc main.c all.rel all1.rel ... -o final.ihx
      cp final.ihx final.hex

      Hope will help

       
    • Maarten Brock
      Maarten Brock
      2008-06-02

      Could it be it that SDCC expects .o objects for the z80-like targets? Can you try again with .o instead of .rel objects?

       
    • OLM
      OLM
      2008-06-02

      It was the -S option.  It created the assembly file but did not assemble it.  For some reason, the assembly command is failing.  I was able to manually assembly the files and build a Hex file.  Thanks for the Help

       
    • Maarten Brock
      Maarten Brock
      2008-06-03

      Ok, I missed the -S option.

      Explanation from the manual for -S :

      Stop after the stage of compilation proper; do not assemble. The output is an assembler code file for
      the input file specified.

      This means that the assembler will NOT be called. So why do you use it? And I assume that the assembly output was stored in the .rel file as you requested with the -o option. The linker of course cannot link assembly listings, only object files.