#!/usr/bin/perl
#
binmode STDOUT;
while ($line = <STDIN>)
{
# comment StatusType OSEK_polyspace_ActivateTask(OSEK_task_polyspace_TaskType TaskID);
$line =~ s/(StatusType\s+OSEK_polyspace_ActivateTask\s*\(.*\)\s*;)/\/\* PS $1 \*\//g;
# Comment StatusType OSEK_get_resource_polyspace_ResourceType ResId();
$line =~ s/(StatusType\s+OSEK_get_resource_polyspace_ResourceType\s+ResId\(\s*\)\s*;)/ \/\* PS $1 \*\//g;
# Replace StatusType OSEK_polyspace_TerminateTask with StatusType OSEK_polyspace_TerminateTask_ps
$line =~ s/$\s*(StatusType\s+OSEK_polyspace_TerminateTask)/ $1_ps/g;
print $line;
}
4. (*Recommended*) The last workaround is to use 'Configure Multitasking manually'.
When launching analysis, and in the log file, you can see the following information below, allowing you to help for configuring tasks manually:
_* Starting parsing of ARXML files.
** Parsing file "C:\myproject\myarxml.arxml".
Remark: Multitasking configuration found in ARXML files
| * TASK (-entry-points) Ts1100ms, Ts210ms, Ts31ms, TsInit
| * ISR (-interrupts) Isr1, Isr2, irq11ms, irqs2
| ...
Then search in your source code the name of function _Ts1100ms and then add its name directly to option -entry-points. Note that function name is not *Ts1100ms *but something like T*ASK(Ts1100ms)* where TASK is a MACRO that changes slightly the name of the function.
For instance, in some OS*.h you will find out MACRO definition like this:
#define TASK(x) Task_##x
It means that you will have to add real name in option like -entry-points Task_Ts1100ms.
That is same for ISR as well.
_
Best Answer