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

Runtime / Simulation Specific Code

Hello everyone,

So, I am working with an 8051W core processor (with OTP, once again, that's a whole other discussion) and I'm pretty maxed out on code space and looking to trim it down a bit. I need to check the functionality of some of my interrupts so I've had to create code that looks like this:

void main (void)
{
        DiagMode = 0;

        /* Loop for standard/hardware diagnostics mode */
        if ((DiagMode == 0) || (DiagMode == 2))
        {
                while (1)
                {
                        // Insert code here
                }; /* Loop forever */
        }
        /* Loop for simulation/software diagnostic mode */
        else if (DiagMode == 1)
        {
                while(1)
                {
                        decimator2_ISR();
                        // Insert code here
                };      /* Loop forever */
        }

}

So if I wanted to use the code in simulation mode, I set DiagMode = 1. When I go to burn the chip, I set it equal to 0 (or 2 if I'm doing some hardware diagnostics, I have various case statements throughout the code that run only if DiagMode = 1 or 2).

Currently, if I want to cut down the code I have, I can comment out any unnecessary code portions (anything with DiagMode = 1, etc). I was wondering if there was a way to set my code to build the code differently if it is being used in simulation mode and when I compile it to hex (or set DiagMode to 0), the portions in code with DiagMode set to 1 are not built into the hex code, saving space.

I apologize if what I'm asking for is confusing. Realistically, it probably isn't possible but I figure if anyone would know how to do something along these lines (or has a better alternative), this would be the place to go.

Let me know when you get the chance. Thanks!

0