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

Tasking Keil compiler conversions

Hi,

I've some questions about the Cx51 keil development:

I've one c-file which must be converted from Tasking compiler to the keil compiler

_sfrbyte x _at(y) (Tasking Compiler) -> Sfr(x, y) (Keil compiler)?????

Are these conversions are correct?

_xdat (Tasking compiler) --> xdata (Keil compiler)

_data (Tasking compiler) --> data (Keil compiler)

REENTRANT void function() (Tasking Compiler) --> void function() REENTRANT; (Keil Compiler)

Moreover do you know which controller I've to add to the keil project if the "Intel MCS 51 family" is required?

best regards
Jens

Parents
  • they use the Tasking Compiler, but the free version has some code size restrictions so that I couldn't use it.
    then I hope you have a full Keil

    typedef void (*pCALL)() REENTRANT;
    
    void function()
    {
      pCALL    pFunction;
      void  *pPara;
    //some code
      pFunction( pPara );      //????
    }
    

    do not change, get rid of. It uses just about anything that should be avoided when working with the '51. It is an unfortunate fact that many that do not have even an inkling of the differences between a PC and a '51 get published.

    Erik

Reply
  • they use the Tasking Compiler, but the free version has some code size restrictions so that I couldn't use it.
    then I hope you have a full Keil

    typedef void (*pCALL)() REENTRANT;
    
    void function()
    {
      pCALL    pFunction;
      void  *pPara;
    //some code
      pFunction( pPara );      //????
    }
    

    do not change, get rid of. It uses just about anything that should be avoided when working with the '51. It is an unfortunate fact that many that do not have even an inkling of the differences between a PC and a '51 get published.

    Erik

Children
  • they use the Tasking Compiler, but the free version has some code size restrictions so that I couldn't use it.
    then I hope you have a full Keil

    We only have the ARM version of the MDK. Do you know a free 8051 compiler where I can run the code for the TUSB6250?

    do not change, get rid of.
    Do you think that this code isn't needed or better said must be updated so that it works?

    best regards
    Jens

  • We only have the ARM version of the MDK. Do you know a free 8051 compiler where I can run the code for the TUSB6250?
    I do not know, maybe SDCC
    the keil eval is a)not for commercial purposes, b) linkes at 4k-up and c)limited to 2k

    do not change, get rid of.
    Do you think that this code isn't needed or better said must be updated so that it works?

    I, obviously, have no idea if it is 'needed, but it should be eliminated not "so that it works" but "so that the compiler has a chance to generate good code"

    Erik

  • A compiler doesn't run code - it just translates it.

    So, as long as this "TUSB6250" thing uses the standard 8051 instruction set (which it almost certainly does), you can use any compiler that generates standard 8051 output - that is the beauty of a standard architecture like the 8051 (or ARM)!

    When you select a target device in uVision, that is just configuring the tools for the "peripheral" features of the specific chip - SFRs, memory sizes, etc - it makes no difference to the basic instruction set!