TNeoKernel
v1.01
|
Architecture-dependent routines declaration.
Definition in file tn_arch.h.
Go to the source code of this file.
Functions | |
void | tn_arch_int_dis (void) |
Unconditionally disable interrupts. | |
void | tn_arch_int_en (void) |
Unconditionally enable interrupts. | |
unsigned int | tn_arch_sr_save_int_dis (void) |
Disable interrupts and return previous value of status register, atomically. More... | |
void | tn_arch_sr_restore (unsigned int sr) |
Restore previously saved status register. More... | |
TN_UWord * | _tn_arch_stack_start_get (TN_UWord *stack_low_address, int stack_size) |
Should return start stack address, which may be either the lowest address of the stack array or the highest one, depending on the architecture. More... | |
unsigned int * | _tn_arch_stack_init (TN_TaskBody *task_func, TN_UWord *stack_start, void *param) |
Should initialize stack for new task and return current stack pointer. More... | |
int | _tn_arch_inside_isr (void) |
Should return 1 if ISR is currently running, 0 otherwise. | |
void | _tn_arch_context_switch (void) |
Called whenever we need to switch context to other task. More... | |
void | _tn_arch_context_switch_exit (void) |
Called when some task calls tn_task_exit() . More... | |
void | _tn_arch_system_start (void) |
Should perform first context switch (to the task pointed to by tn_next_task_to_run ). More... | |
unsigned int tn_arch_sr_save_int_dis | ( | void | ) |
Disable interrupts and return previous value of status register, atomically.
tn_arch_sr_restore()
void tn_arch_sr_restore | ( | unsigned int | sr | ) |
Restore previously saved status register.
sr | status register value previously from tn_arch_sr_save_int_dis() |
tn_arch_sr_save_int_dis()
Should return start stack address, which may be either the lowest address of the stack array or the highest one, depending on the architecture.
stack_low_address | start address of the stack array. |
stack_size | size of the stack in int -s, not in bytes. |
unsigned int* _tn_arch_stack_init | ( | TN_TaskBody * | task_func, |
TN_UWord * | stack_start, | ||
void * | param | ||
) |
Should initialize stack for new task and return current stack pointer.
task_func | Pointer to task body function. |
stack_start | Start address of the stack, returned by _tn_arch_stack_start_get() . |
param | User-provided parameter for task body function. |
void _tn_arch_context_switch | ( | void | ) |
Called whenever we need to switch context to other task.
Preconditions:
tn_curr_run_task
points to currently running (preempted) task;tn_next_task_to_run
points to new task to run.Actions to perform:
tn_curr_run_task
to tn_next_task_to_run
;tn_curr_run_task
tn_next_task_to_run
void _tn_arch_context_switch_exit | ( | void | ) |
Called when some task calls tn_task_exit()
.
Preconditions:
tn_next_task_to_run
is already set to other task.Actions to perform:
tn_curr_run_task
to tn_next_task_to_run
;tn_curr_run_task
tn_next_task_to_run
void _tn_arch_system_start | ( | void | ) |
Should perform first context switch (to the task pointed to by tn_next_task_to_run
).
Preconditions:
tn_next_task_to_run
is already set to idle task.Actions to perform:
TN_STATE_FLAG__SYS_RUNNING
flag in the tn_sys_state
variable;tn_curr_run_task
to tn_next_task_to_run
;TN_STATE_FLAG__SYS_RUNNING
tn_sys_state
tn_curr_run_task
tn_next_task_to_run