Setup

The user must specify the following settings in the Atmel Configuration. Click on Compiler, and the choose Configure from the drop down menu. The external ram field should be set to its appropriate amount. Set the number of bit variables to 8. If the user uses bit variables as well, enter eight plus the number used by the user.

The COPOS configuration file is called OSparams.h. It includes the following features.

Setting Description
MAX_QUEUE_HP The maximum number of tasks that can be scheduled within a hyperperiod.
MAX_QUEUE_HA,
MAX_QUEUE_SP,
MAX_QUEUE_SA
The maximum number of tasks that can be waiting to be executed at a given time. (There is a separate maximum number for each type).
DSTACK_HP,
DSTACK_HA,
DSTACK_SP,
DSTACK_SA
The allotted data stack size for each type of task.
HSTACK_HP,
HSTACK_HA,
HSTACK_SP,
HSTACK_SA
The allotted hardware stack size for each type of task.
MAX_JOBS The maximum number of hard and soft periodic tasks together that the user can enter.
REMOVE_MISSED_D

 

1: The os will delete a hard aperiodic task from the HA queue if its deadline has already passed.

0: The hard periodic tasks will always eventually be executed.

RESCHED_SP 1: The OS will add a soft periodic task to the SP queue, even if it already exists there (it's still waiting to be executed from the last period).

0: The OS won't add a soft periodic task to SP queue if it already exists.

SAVE_REGS

 

1: Save the registers that are free to the users in a context switch.

0: Don't Save.

REG_ALLOC 1: The compiler allocates registers to global variables, and thus, they need to be saved in a context switch.

2. The compiler doesn't allocate any of the extra registers.

NUM_LOCKS Number of locks the user is implementing.
INIT_SREG Initial SREG register value
INIT_TIMSK Initial TIMSK register value
INIT_MCUCR Initial MCUCR register value
INIT_TCCR0 Initial TCCR0 register value
DEBUG 1: The user can add debugging printf statements to the os functions which will be printed if DEBUG is 1.