GadgetSeed  0.9.6
task.h ファイル

タスク制御 [詳解]

#include "asm.h"
#include "tcb.h"
task.h の依存先関係図:
被依存関係図:

[ソースコード]

データ構造

struct  st_task_info
 タスク情報 [詳解]
 

マクロ定義

#define GSC_KERNEL_MAX_TASK_PRIORITY   4
 $gsc カーネルタスクプライオリティ段階数
 

関数

void setup_task (void *sp, int stack_size, void(*task)(void), struct st_tcb *tcb)
 
void disp_debug_info (void)
 
void disp_regs (void *sp)
 
void dispatch (struct st_tcb *otcb, struct st_tcb *tcb)
 
void task_add_ISR (task_func func, char *name, int priority, struct st_tcb *tcb, void *stack, int stack_size, char *arg)
 タスクを追加する [詳解]
 
void task_exec_ISR (task_func func, char *name, int priority, struct st_tcb *tcb, void *stack, int stack_size, char *arg)
 タスクを実行する [詳解]
 
void task_exit_ISR (void *sp)
 
void task_kill_id_ISR (void *sp, int id)
 
void task_wakeup_id_ISR (void *sp, int id)
 idタスクを実行する [詳解]
 
void task_pause_ISR (void *sp)
 
void task_sleep_ISR (void *sp, unsigned int sleep_time)
 
int get_tasks_info (struct st_task_info *ti, int count)
 タスク情報を取得する [詳解]
 
void print_task (void)
 
void print_queues (void)
 
void print_stack (void)
 
void task_print_task_queue (void)
 
void disp_task_info (void)
 

詳解

タスク制御

GadgetSeed のタスク制御

日付
2017.09.03
2011.02.27
著者
Takashi SHUDO

task.h に定義があります。

関数詳解

◆ get_tasks_info()

int get_tasks_info ( struct st_task_info ti,
int  count 
)

タスク情報を取得する

引数
[out]tiタスク情報
[in]count取得する最大タスク数
戻り値
取得したタスク数
注意
tiのサイズはcount数分確保していなければならない

task.c175 行目に定義があります。

◆ task_add_ISR()

void task_add_ISR ( task_func  func,
char *  name,
int  priority,
struct st_tcb tcb,
void *  stack,
int  stack_size,
char *  arg 
)

タスクを追加する

引数
[in]funcタスク関数
[in]nameタスク名文字列ポインタ
[in]priorityタスク優先度
[in]tcbタスクコンテキストポインタ
[in]stackタスクスタックポインタ
[in]stack_sizeタスクスタックサイズ
[in]argタスク実行時引数文字列ポインタ
注釈
割り込みハンドラからのみ実行可能

task.c541 行目に定義があります。

◆ task_exec_ISR()

void task_exec_ISR ( task_func  func,
char *  name,
int  priority,
struct st_tcb tcb,
void *  stack,
int  stack_size,
char *  arg 
)

タスクを実行する

引数
[in]funcタスク関数
[in]nameタスク名文字列ポインタ
[in]priorityタスク優先度
[in]tcbタスクコンテキストポインタ
[in]stackタスクスタックポインタ
[in]stack_sizeタスクスタックサイズ
[in]argタスク実行時引数文字列ポインタ
注釈
割り込みハンドラからのみ実行可能

task.c515 行目に定義があります。

◆ task_wakeup_id_ISR()

void task_wakeup_id_ISR ( void *  sp,
int  id 
)

idタスクを実行する

引数
[in]spスタックポインタ
[in]idタスクID
注釈
割り込みハンドラからのみ実行可能

task.c662 行目に定義があります。