|
TNeoKernel
v1.0
|
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
1.8.8