erika aurix
Posted: Tue Nov 06, 2018 10:59 am
hi,
I'm new to Erika version 2. I'm using it for Infineon AURIX TC267D and having issue regarding the timer.
1) there are various tasks in my OSTask.c like ostask_5ms(), ostask_10ms(), ostask_20ms(), etc. and it is expected that they should be called within mentioned time i.e ostask_5ms() in 5 milliseconds .
But it is observed that all these tasks are being called after 42 to 45 sec.
There is no function of 42sec or 45 sec.
can anyone help me out where the problem would possibly be?
****************************
my software framework tool is:
Release version: 3.1
*************************************oil file*****************************
CPU TC26X {
OS IFX_TRICORE {
MCU_DATA = TRICORE {
MODEL = TC26x;
};
CPU_DATA = TRICORE {
CPU_CLOCK = 200.0;
COMPILER_TYPE = GNU;
MULTI_STACK = TRUE {
IRQ_STACK = TRUE {
SYS_SIZE = 256;
};
};
};
STATUS = EXTENDED;
PRETASKHOOK = FALSE;
POSTTASKHOOK = FALSE;
USERESSCHEDULER = FALSE;
KERNEL_TYPE = ECC2;
};
APPMODE TRICORE_CPU {
EVENT = IFX_OSCFG_EVENT1;
EVENT = IFX_OSCFG_EVENT2;
EVENT = IFX_OSCFG_EVENT3;
TASK = IFX_OSTASK_EVENT1;
TASK = IFX_OSTASK_EVENT2;
TASK = IFX_OSTASK_EVENT3;
TASK = IFX_OSTASK_1MS;
TASK = IFX_OSTASK_5MS;
TASK = IFX_OSTASK_10MS;
TASK = IFX_OSTASK_20MS;
TASK = IFX_OSTASK_50MS;
TASK = IFX_OSTASK_100MS;
TASK = IFX_OSTASK_BACKGROUND;
TASK = IFX_OSTASK_INIT;
COUNTER = HW_COUNTER;
ALARM = IFX_OSTASK_ALARM_1MS;
ALARM = IFX_OSTASK_ALARM_5MS;
ALARM = IFX_OSTASK_ALARM_10MS;
ALARM = IFX_OSTASK_ALARM_20MS;
ALARM = IFX_OSTASK_ALARM_50MS;
ALARM = IFX_OSTASK_ALARM_100MS;
};
EVENT IFX_OSCFG_EVENT1 {
MASK = 0x01;
};
EVENT IFX_OSCFG_EVENT2 {
MASK = 0x02;
};
EVENT IFX_OSCFG_EVENT3 {
MASK = 0x04;
};
TASK IFX_OSTASK_EVENT1{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
EVENT = IFX_OSCFG_EVENT1;
SCHEDULE = FULL;
STACK = PRIVATE {
SYS_SIZE = 256;
};
};
TASK IFX_OSTASK_EVENT2{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
EVENT = IFX_OSCFG_EVENT2;
SCHEDULE = FULL;
STACK = PRIVATE {
SYS_SIZE = 256;
};
};
TASK IFX_OSTASK_EVENT3{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
EVENT = IFX_OSCFG_EVENT3;
SCHEDULE = FULL;
STACK = PRIVATE {
SYS_SIZE = 256;
};
};
TASK IFX_OSTASK_1MS{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_5MS{
PRIORITY = 32;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_10MS{
PRIORITY = 16;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_20MS{
PRIORITY = 8;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_50MS{
PRIORITY = 4;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_100MS{
PRIORITY = 2;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_BACKGROUND{
PRIORITY = 1;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_INIT{
PRIORITY = 2;
ACTIVATION = 1;
AUTOSTART = TRUE { APPMODE = TRICORE_CPU; };
SCHEDULE = FULL;
STACK = SHARED;
};
COUNTER IFX_OSTASK_COUNTER
{
MINCYCLE = 5;
MAXALLOWEDVALUE = 10000;
TICKSPERBASE = 1;
};
ALARM IFX_OSTASK_ALARM_1MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_1MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_5MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_5MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_10MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_10MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_20MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_20MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_50MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_50MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_100MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_100MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
};
I'm new to Erika version 2. I'm using it for Infineon AURIX TC267D and having issue regarding the timer.
1) there are various tasks in my OSTask.c like ostask_5ms(), ostask_10ms(), ostask_20ms(), etc. and it is expected that they should be called within mentioned time i.e ostask_5ms() in 5 milliseconds .
But it is observed that all these tasks are being called after 42 to 45 sec.
There is no function of 42sec or 45 sec.
can anyone help me out where the problem would possibly be?
****************************
my software framework tool is:
Release version: 3.1
*************************************oil file*****************************
CPU TC26X {
OS IFX_TRICORE {
MCU_DATA = TRICORE {
MODEL = TC26x;
};
CPU_DATA = TRICORE {
CPU_CLOCK = 200.0;
COMPILER_TYPE = GNU;
MULTI_STACK = TRUE {
IRQ_STACK = TRUE {
SYS_SIZE = 256;
};
};
};
STATUS = EXTENDED;
PRETASKHOOK = FALSE;
POSTTASKHOOK = FALSE;
USERESSCHEDULER = FALSE;
KERNEL_TYPE = ECC2;
};
APPMODE TRICORE_CPU {
EVENT = IFX_OSCFG_EVENT1;
EVENT = IFX_OSCFG_EVENT2;
EVENT = IFX_OSCFG_EVENT3;
TASK = IFX_OSTASK_EVENT1;
TASK = IFX_OSTASK_EVENT2;
TASK = IFX_OSTASK_EVENT3;
TASK = IFX_OSTASK_1MS;
TASK = IFX_OSTASK_5MS;
TASK = IFX_OSTASK_10MS;
TASK = IFX_OSTASK_20MS;
TASK = IFX_OSTASK_50MS;
TASK = IFX_OSTASK_100MS;
TASK = IFX_OSTASK_BACKGROUND;
TASK = IFX_OSTASK_INIT;
COUNTER = HW_COUNTER;
ALARM = IFX_OSTASK_ALARM_1MS;
ALARM = IFX_OSTASK_ALARM_5MS;
ALARM = IFX_OSTASK_ALARM_10MS;
ALARM = IFX_OSTASK_ALARM_20MS;
ALARM = IFX_OSTASK_ALARM_50MS;
ALARM = IFX_OSTASK_ALARM_100MS;
};
EVENT IFX_OSCFG_EVENT1 {
MASK = 0x01;
};
EVENT IFX_OSCFG_EVENT2 {
MASK = 0x02;
};
EVENT IFX_OSCFG_EVENT3 {
MASK = 0x04;
};
TASK IFX_OSTASK_EVENT1{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
EVENT = IFX_OSCFG_EVENT1;
SCHEDULE = FULL;
STACK = PRIVATE {
SYS_SIZE = 256;
};
};
TASK IFX_OSTASK_EVENT2{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
EVENT = IFX_OSCFG_EVENT2;
SCHEDULE = FULL;
STACK = PRIVATE {
SYS_SIZE = 256;
};
};
TASK IFX_OSTASK_EVENT3{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
EVENT = IFX_OSCFG_EVENT3;
SCHEDULE = FULL;
STACK = PRIVATE {
SYS_SIZE = 256;
};
};
TASK IFX_OSTASK_1MS{
PRIORITY = 64;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_5MS{
PRIORITY = 32;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_10MS{
PRIORITY = 16;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_20MS{
PRIORITY = 8;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_50MS{
PRIORITY = 4;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_100MS{
PRIORITY = 2;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_BACKGROUND{
PRIORITY = 1;
ACTIVATION = 1;
AUTOSTART = FALSE;
SCHEDULE = FULL;
STACK = SHARED;
};
TASK IFX_OSTASK_INIT{
PRIORITY = 2;
ACTIVATION = 1;
AUTOSTART = TRUE { APPMODE = TRICORE_CPU; };
SCHEDULE = FULL;
STACK = SHARED;
};
COUNTER IFX_OSTASK_COUNTER
{
MINCYCLE = 5;
MAXALLOWEDVALUE = 10000;
TICKSPERBASE = 1;
};
ALARM IFX_OSTASK_ALARM_1MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_1MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_5MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_5MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_10MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_10MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_20MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_20MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_50MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_50MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
ALARM IFX_OSTASK_ALARM_100MS
{
ACTION = ACTIVATETASK
{
TASK = IFX_OSTASK_100MS;
};
COUNTER = IFX_OSTASK_COUNTER;
/* AUTOSTART = TRUE { APPMODE = TRICORE_CPU; CYCLETIME = 10;}; */
};
};