This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

OMF records

I am trying to import object files created by KEIL C51 compiler by my own pascal compiler. There are a lot of records not documented in the OMF51 documentation like 07, 09, 0F, 17, 19, 20, 23, 24, etc. Where can I get documentation for these records?

Parents
  • I am already aware of this specification and records described in it are already supported. But I tried to compile one simple program with C51 and I get test.OBJ. Fine, but when I'm importing it I get the following records:

         OBJECT FILE: test.OBJ
    
            70: UNKNOWN
            02: Module Header
            0F: UNKNOWN
            19: UNKNOWN
            17: UNKNOWN
            10: Debug
            24: UNKNOWN
            23: UNKNOWN
            20: UNKNOWN
            23: UNKNOWN
            10: Debug
            10: Debug
            23: UNKNOWN
            07: UNKNOWN
            09: UNKNOWN
            10: Debug
            07: UNKNOWN
            23: UNKNOWN
            10: Debug
            10: Debug
            72: UNKNOWN
            04: Module End
    

    Most of records are undocumented. Of course, I can ignore them but where is actual data? I am missing segment definitions, external definitions, public definitions, content, fixup records, etc...

    All I am trying to do is to add support for object files created by KEIL compiler. Is there any secret in these records?

    In worst case I will be forced to do reverse engineering. This works 100% but takes time. I don't believe this is what KEIL wants.

    All I am asking is some documentation on these records - how to import them. Of course, I can also just forget about importing object files generated by KEIL tools. There are other 8051 C compilers.

Reply
  • I am already aware of this specification and records described in it are already supported. But I tried to compile one simple program with C51 and I get test.OBJ. Fine, but when I'm importing it I get the following records:

         OBJECT FILE: test.OBJ
    
            70: UNKNOWN
            02: Module Header
            0F: UNKNOWN
            19: UNKNOWN
            17: UNKNOWN
            10: Debug
            24: UNKNOWN
            23: UNKNOWN
            20: UNKNOWN
            23: UNKNOWN
            10: Debug
            10: Debug
            23: UNKNOWN
            07: UNKNOWN
            09: UNKNOWN
            10: Debug
            07: UNKNOWN
            23: UNKNOWN
            10: Debug
            10: Debug
            72: UNKNOWN
            04: Module End
    

    Most of records are undocumented. Of course, I can ignore them but where is actual data? I am missing segment definitions, external definitions, public definitions, content, fixup records, etc...

    All I am trying to do is to add support for object files created by KEIL compiler. Is there any secret in these records?

    In worst case I will be forced to do reverse engineering. This works 100% but takes time. I don't believe this is what KEIL wants.

    All I am asking is some documentation on these records - how to import them. Of course, I can also just forget about importing object files generated by KEIL tools. There are other 8051 C compilers.

Children