GadgetSeed  0.9.6
task.h
[詳解]
1 /** @file
2  @brief タスク制御
3 
4  GadgetSeed のタスク制御
5 
6  @date 2017.09.03
7  @date 2011.02.27
8  @author Takashi SHUDO
9 */
10 
11 #ifndef TASK_H
12 #define TASK_H
13 
14 #include "asm.h"
15 #include "tcb.h"
16 
17 #ifndef GSC_KERNEL_MAX_TASK_PRIORITY
18 #define GSC_KERNEL_MAX_TASK_PRIORITY 4 ///< $gsc カーネルタスクプライオリティ段階数
19 #endif
20 
21 // プロセッサ依存関数
22 void setup_task(void *sp, int stack_size, void (* task)(void), struct st_tcb *tcb);
23 void disp_debug_info(void);
24 void disp_regs(void *sp);
25 void dispatch(struct st_tcb *otcb, struct st_tcb *tcb);
26 
27 // プロセッサ非依存関数
28 void task_add_ISR(task_func func, char *name, int priority, struct st_tcb *tcb, void *stack, int stack_size, char *arg);
29 void task_exec_ISR(task_func func, char *name, int priority, struct st_tcb *tcb, void *stack, int stack_size, char *arg);
30 void task_exit_ISR(void *sp);
31 void task_kill_id_ISR(void *sp, int id);
32 void task_wakeup_id_ISR(void *sp, int id);
33 void task_pause_ISR(void *sp);
34 void task_sleep_ISR(void *sp, unsigned int sleep_time);
35 
36 struct st_task_info {
37  int id; ///< タスクID
38  char name[TASK_NAME_LEN + 1];///< タスク名文字列
39  int priority; ///< タスクプライオリティ
40  int status; ///< タスク状態(PSTAT_*)
41  unsigned int run_time; ///< タスク実行時間
42 }; ///< タスク情報
43 
44 int get_tasks_info(struct st_task_info *ti, int count);
45 
46 void print_task(void);
47 void print_queues(void);
48 void print_stack(void);
49 void task_print_task_queue(void);
50 void disp_task_info(void);
51 
52 #endif // TASK_H
タスク情報
Definition: task.h:36
タスクコンテキストブロック
void task_exec_ISR(task_func func, char *name, int priority, struct st_tcb *tcb, void *stack, int stack_size, char *arg)
タスクを実行する
Definition: task.c:515
int priority
タスクプライオリティ
Definition: task.h:39
#define TASK_NAME_LEN
最大タスク名長
Definition: tcb.h:15
int get_tasks_info(struct st_task_info *ti, int count)
タスク情報を取得する
Definition: task.c:175
int status
タスク状態(PSTAT_*)
Definition: task.h:40
int(* task_func)(char *arg)
タスク関数
Definition: tcb.h:25
Cortex-M4
int id
タスクID
Definition: task.h:37
void task_add_ISR(task_func func, char *name, int priority, struct st_tcb *tcb, void *stack, int stack_size, char *arg)
タスクを追加する
Definition: task.c:541
void task_wakeup_id_ISR(void *sp, int id)
idタスクを実行する
Definition: task.c:662
char name[TASK_NAME_LEN+1]
タスク名文字列
Definition: task.h:38
タスクコンテキスト
Definition: tcb.h:32
unsigned int run_time
タスク実行時間
Definition: task.h:41