posted May 16, 2003 13:50
Applies ToMPLAB-C18 v2.20.
Description of Problem
MPLAB-C18's new procedural abstraction optimization causes run-time problems in Salvo tasks.
Specifically, an task with two or more context switches (OS_Xyz()) will fail to execute properly. Run-time behavior is therefore unknown.
The root of the problem is the procedural abstraction optimization introduced in MPLAB-C18 v2.2, and the method whereby functions that are procedurally abstracted are called through an intermediate / extra call...return stack level.
Suggested Workaround
Disable procedural abstraction optimizations (which are enabled by default) by applying the -Opa- command-line switch to every source-code module that contains Salvo tasks.
Fixed In
This is an MPLAB-C18 issue for which there does not appear to be a workaround except for disabling procedural optimizations on a per-module basis. Whether a more elegant solution will be presented is unknown.
------------------
--------
Salvo Technical Support
Please request all tech support through the Forums.