Real Time Kernel Awareness

Task Description Language

187

Microcontrollers Debugger Manual

Assignment = Ident ':=' Expression.
ErrorMsg = 'MSG' ':=' String.
IfStatemen = 'IF' BoolExpr 'THEN' StatSequence {ELSIFPart} [ELSEPart]
'END'.
ELSIFPart = 'ELSIF' BoolExpr 'THEN' StatSequence.
ELSEPart = 'ELSE' StatSequence.
String = '"' {char} '"'.
BoolExpr = Expression RelOp Expression.
Expression = Term {Op Term}.
Term = Ident | Function | Number.
Ident = 'a'..'z' | 'R00'..'R31' | 'DL' | 'SP' | 'SR' | 'PC' | 'STATUS'
| 'B'.
Function = ('MB' | 'MW' | 'MD' | 'MA') '[' Expression ']'.
RelOp = '#' | '<' | '<=' | '=' | '>=' | '>'.
Op = '+' | '-'.
The terminal symbols have the following meaning:
B – is the given reference to the task descriptor (initialized upon start).
a–z – are variables for intermediate storage.
MB – gets value of memory BYTE at given address.
MW – gets value of memory WORD at given address.
MD – gets value of DOUBLE WORD at given address.
MA – gets value at given address interpreted as DOUBLE WORD.
PC – is the program counter to be set.
SP – is the stack pointer to be set.
SR – is the status register value to be set.
DL – is the dynamic link (data base) to be set (if not available, same as SP).
STATUS – is the error number to be set (refer to manual).
Rnn – processor registers to be set (mapping to CPU registers; see manual).
MSG – is the error message (must be specified if N >= 1000).
On activation of the task debugging command, the file OSPARAM.PRM is opened and the
selected address is stored in variable 'B'. Then the commands in the file are interpreted.
The CPU context of the task is then expected in the variables PC, SP, SR, DL, Rnn and
EN. EN describes the status of the task. If 'EN' is bigger than 1000 the status is expected in
the string MSG.