Cheddar 1.3p5 FAQ
EA 2215 Team
- Launching Cheddar and XML project I/O
- You get "Can not open file" when loading a XML file into Cheddar : check that the file that you're trying to read contains a number of task/message/processor/resource/buffer less than the number of task/processor/message/buffer/resource the Cheddar's binary you're using can manage. To do this check, have a look on the constants defined in the file config/config.ads of the Cheddar source code.
- You get "Simulation error : Parametric file error, File : foo, Can not open file, Status error". If you want to study an XML project file composed
of an User-defined scheduler, task activation rule or event analyzer,
Cheddar has to be launched from the directory where XML and SC files
are stored.
- Basic Cheddar's services
- You run a scheduling on a processor hosting a Rate Monotonic or a Deadline Monotonic scheduler, but the resulting scheduling does not match task priority that you gave when you defined tasks. With this schedulers, the task priority field is ignored.
The scheduling is computed according to the task period (with Rate Monotonic)
and the task deadline (with Deadline Monotonic). If you want to schedule tasks
according to the task priority, choose instead the "Highest Priority First/POSIX 4" scheduler.
- You get "Task must be periodic : can not apply the selected scheduler with this task set". Some schedulers such as "Rate Monotonic"
or "Deadline Monotonic" require that ALL tasks are periodic.
If you want to study a system composed of non periodic task (poisson task,
aperiodic task, ...) with a fixed priority scheduler, you have to select
the "Hight Priority First/POSIX.4" scheduler when you define your processors.
- User-defined scheduler, task activation rules or event analyzer
- May i define several variables on the same ligne ? No, you can not : each
variable has to be defined on a given ligne of code.
- Why the variable used in a for statement is said to be undeclared ?
Because all variables used in a user-defined piece of code have to be defined, even if the
variable is a part of a for statement.
- You get "Type error : Uncompatible types". The type of a constant
or a variable is not compatible with an other one. Check if elements of
your expressions use compatible types.
- You get "Type error : Table index error". The index on a table
type has a wrong type (not integer).
- You get "Type error : Task activation rule, Uncompatible types".
An expression referenced in a set statement (which defines a task
activation rule) have to be an integer type or integer table type.
- You get "Type error : for expression have to be an integer variable".
In a for, the variable used to scan the TCB table has to be an
integer one.
- You get "Type error : Variables should have the size array size".
In some cases, an expression has to be build with variables which has the same number of item if the variables are arrays. You also can not mix in some cases scalar variables with array variables .
- You get "Type error : invalid return value from return statement".
A return can only return an integer value.
- You get "Parsing error : Integer conversion error". An integer
was expected in a expression but give something else.
- You get "Parsing error : Boolean conversion error". A boolean
was expected in a expression but give something else.
- You get "Parsing error : Double conversion error". A double
was expected in a expression but give something else.
- You get "Parsing error : undeclared identifier". You forgot
to declare something.
- You get "Parsing error : identifier already declared". You
can not use the same identifier (string constant) for 2 variables or activation
rules.
- You get "Parsing error : Random operators can not be used in complex
expressions". Random operators such as exponential or uniform can only
be used to define task activation rule. When they are used, they can not
be in conjonction with others operators.
- You get "Syntax error : " or "Parsing error : ". The
syntax of your parametric scheduler is not correct. Take a look on the
BNF syntax given above.
- You get "Variable error : undeclared identifier". A referenced
variable can not be found : do not forget to declared your variable.
- You get "Variable error : operation not permitted". You try
to apply an operator on a variable and the two are not compatible.
- You get "Statement error : Parametric task only permitted with
parametric scheduler". You can not define a parametric task on a processor
which is not a parametric one.
- You get "Statement error : return statement expected". An
election section must be ended by a return statement.
- You get "Statement error : invalid expression type referenced
in a return statement". A return statement has to use an integer
constant or variable.
- You get "Statement error : invalid min_to_index/max_to_index expression
in return statement ". The variable type in a max_to_index/min_to_index
operator have to be an array of integer type.
- You get "Statement error : invalid range type referenced in
a return statement". The value given in your return statement
is outside the TCB table index range.
- You get "Statement error : ". The statement is forbidden here
(ex : a return statement in a start section).
- You get "Affectation statement : Uncompatible types". The type of
the left operand is not compatible with the type of the right operand.
- You get "syntax error : Variable Declaration Have To Be Done In Start Section. Do not
try to declare variable outside the start section.
- Task dependencies and related services
- Other issues
-
When Cheddar crashs, a file named "cheddar_bug.xml" is created. What it is ? This file contains the project you are editing when the crash occurs.
You can restore your work with this file since it contains all tasks, processors, messages, ... of your project just before the Cheddar bug.
Contact : Frank Singhoff mailto:singhoff@univ-brest.fr
Last update : january the 30th, 2004