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

More Pointer Problems

Here's another good one. Again, works fine on simulator/debugger, but not on the target hardware.

If I do this:

BYTE process_Help(char *cmdBuffer) reentrant
{
cmdBuffer[0] = '\0';
printf( "Help Message");
return TRUE;
}

everything works fine. But if I do this:

BYTE process_Help(char *cmdBuffer) reentrant
{
char *strHelp = "Help Message";
cmdBuffer[0] = '\0';
printf(strHelp);
return TRUE;
}

it works fine on the simulator/debugger, but nothing is displayed when executed on the target hardware.

Any/All help welcome and appreciated.

Thanks,
Chris Beattie

Parents
  • You should only remove the reentrant spec if you are sure that function
    will not be called from separate tasks (if you're using an RTOS) or from
    both a main loop and an interrupt handler. Otherwise having more than
    one context modifying data will cause corruption and unpredictable
    results.

Reply
  • You should only remove the reentrant spec if you are sure that function
    will not be called from separate tasks (if you're using an RTOS) or from
    both a main loop and an interrupt handler. Otherwise having more than
    one context modifying data will cause corruption and unpredictable
    results.

Children
No data