Suppressing integral promotion in the Crossware 8051 C Compiler

by Crossware 22. February 2012 09:09

We have recently been asked how to put the /Op option on the command line of the Crossware 8051 C Compiler when building from within the Embedded Development Studio IDE.

We do not recommend that the /Op option is applied from the command line.  It can lead to unpredictable results and applying it across a whole module or a whole project can potentially lead to hard to track down faults.

Instead we recommend that it is applied to specific functions using the optimize pragma.

Here is the html version manual page for the /Op option:

http://www.crossware.com/smanuals/c8051/suppress.html

At the bottom of that page is a link to the page for the optimize pragma:

http://www.crossware.com/smanuals/c8051/optimize.html

So you would do something like this:

unsigned char a, b, c, d;

#pragma optimize("p", on)

func()
{
    a = (b + c) / d;
}

#pragma optimize( "", on )

In this example, only the expressions in the function func() will have integral promotion suppressed.


Nevertheless, it is possible to apply command line options that are not specifically supported by the IDE by using the CCommandLine entry in a target.ini file.  See this page:

http://www.crossware.com/smanuals/estudio/_t117.html

Tags:

Blog

Web and mail server downtime

by Crossware 15. February 2012 17:40

The Crossware web and mail servers went offline on Friday due to a failure of our Internet connection. We relocated the servers when it was clear that the issue would take some time to solve and the servers were operational in their new location by Monday afternoon. 

The Internet connection fault is now fixed and everything should now be back to normal.

Tags:

Blog

About this blog

This is where you will find topical information that we think might be useful to you.

Month List