⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task.h

📁 嵌入式系统开发 TOPPERS and JSP Kernel Release 1.3 TOPPERS = Toyohashi Open Platform for Embedded Real-Tim
💻 H
📖 第 1 页 / 共 2 页
字号:
	UINT	tstat : TBIT_TCB_TSTAT;		/* タスク觉轮∈柒婶山附∷*/	UINT	priority : TBIT_TCB_PRIORITY;	/* 附哼の庭黎刨∈柒婶山附∷*/	BOOL	actcnt : 1;			/* 弹瓢妥滇キュ〖イング */	BOOL	wupcnt : 1;			/* 弹静妥滇キュ〖イング */	BOOL	enatex : 1;			/* タスク毋嘲借妄钓材觉轮 */	TEXPTN	texptn;		/* 瘦伪毋嘲妥傍 */	WINFO	*winfo;		/* 略ち攫鼠ブロックへのポインタ */	CTXB	tskctxb;	/* タスクコンテキストブロック */} TCB;/* *  悸乖觉轮のタスク * *  悸乖觉轮のタスク∈♂プロセッサがコンテキストを积っているタスク∷の *  TCB を回すポインタˉ悸乖觉轮のタスクがない眷圭は NULL にするˉ *  サ〖ビスコ〖ルの借妄面で·极タスク∈サ〖ビスコ〖ルを钙び叫したタス *  ク∷に簇する攫鼠を徊救する眷圭は runtsk を蝗うˉruntsk を今き垂え *  るのは·ディスパッチャ∈と介袋步借妄∷のみであるˉ */extern TCB	*runtsk;/* *  呵光庭黎界疤のタスク * *  悸乖できるタスクの面で呵光庭黎界疤のタスクの TCB を回すポインタˉ悸 *  乖できるタスクがない眷圭は NULL にするˉ *  ディスパッチ敦贿觉轮など·ディスパッチが瘦伪されている粗は·runtsk *  と办米しているとは嘎らないˉ */extern TCB	*schedtsk;/* *  ディスパッチ】タスク毋嘲借妄ル〖チン弹瓢妥滇フラグ * *  充哈みハンドラ】CPU毋嘲ハンドラの叫庚借妄に·ディスパッチまたは *  タスク毋嘲借妄ル〖チンの弹瓢を妥滇することを绩すフラグˉ */extern BOOL	reqflg;/* *  ディスパッチ钓材觉轮 * *  ディスパッチ钓材觉轮である∈すなわち·ディスパッチ敦贿觉轮でない∷ *  ことを绩すフラグˉ */extern BOOL	enadsp;/* *  タスクIDの呵络猛∈kernel_cfg.c∷ */extern const ID	tmax_tskid;/* *  タスク介袋步ブロックのエリア∈kernel_cfg.c∷ */extern const TINIB	tinib_table[];/* *  TCBのエリア∈kernel_cfg.c∷ */extern TCB	tcb_table[];/* *  タスクIDからTCBを艰り叫すためのマクロ */#define INDEX_TSK(tskid)	((tskid) - TMIN_TSKID)#define get_tcb(tskid)		(&(tcb_table[INDEX_TSK(tskid)]))#define get_tcb_self(tskid)	((tskid) == TSK_SELF ? runtsk : get_tcb(tskid))/* *  TCBからタスクIDを艰り叫すためのマクロ */#define	TSKID(tcb)	(((tcb) - tcb_table) + TMIN_TSKID)/* *  タスク瓷妄モジュ〖ルの介袋步 */extern void	task_initialize(void);/* *  悸乖できる觉轮への败乖 * *  tcb で回年されるタスクの觉轮を悸乖できる觉轮とし·レディキュ〖に赁 *  掐するˉ悸乖できる觉轮になったタスクの庭黎刨が·呵光庭黎界疤のタス *  クの庭黎刨よりも光い眷圭は·呵光庭黎界疤のタスクを构糠し·ディスパッ *  チ钓材觉轮であれば TRUE を手すˉそうでない眷圭は FALSE を手すˉ */extern BOOL	make_runnable(TCB *tcb);/* *  悸乖できる觉轮から戮の觉轮への败乖 * *  tcb で回年されるタスクをレディキュ〖から猴近するˉtcb で回年したタ *  スクが呵光庭黎界疤のタスクであった眷圭には·呵光庭黎界疤のタスクを *  肋年しなおし·ディスパッチ钓材觉轮であれば TRUE を手すˉそうでない *  眷圭は FALSE を手すˉタスクの觉轮は构糠しないˉ */extern BOOL	make_non_runnable(TCB *tcb);/* *  蒂贿觉轮への败乖 * *  tcb で回年されるタスクの觉轮を蒂贿觉轮とするˉまた·タスクの弹瓢箕 *  に介袋步すべき恃眶の介袋步と·タスク弹瓢のためのコンテキストを肋年 *  するˉ */extern void	make_dormant(TCB *tcb);/* *  蒂贿觉轮から悸乖できる觉轮への败乖 * *  tcb で回年されるタスクの觉轮を蒂贿觉轮から悸乖できる觉轮とするˉ悸 *  乖できる觉轮に败乖したタスクへのディスパッチが涩妥な眷圭は TRUE· *  そうでない眷圭は FALSE を手すˉ */extern BOOL	make_active(TCB *tcb);/* *  悸乖觉轮のタスクの姜位 * *  exit_task を ext_tsk に虽め哈まずに侍の簇眶にしているのは· *  create_context と activate_context が极タスクの姜位借妄で蝗脱する *  スタックを撬蝉しないようにするための滦忽の办茨であるˉext_tsk とは *  侍簇眶にしておくことで·ロ〖カル恃眶も崔めて·蝗脱するスタック挝拌 *  が脚ならないようにできるˉまた·コンパイラが极瓢弄にインライン鸥倡 *  するのを闰けるために·ext_tsk とは侍のファイルに掐れているˉ */extern void	exit_task(void);/* *  レディキュ〖面のタスクの庭黎刨の恃构 * *  tcb で回年されるレディキュ〖面のタスクの庭黎刨を newpri∈柒婶山附∷ *  に恃构するˉまた·涩妥な眷圭には呵光庭黎界疤のタスクを构糠し·ディ *  スパッチ钓材觉轮であれば TRUE を手すˉそうでない眷圭は FALSE を手 *  すˉ */extern BOOL	change_priority(TCB *tcb, UINT newpri);/* *  レディキュ〖の搀啪 * *  レディキュ〖面の·pri で回年される庭黎刨のタスクキュ〖を搀啪させるˉ *  また·涩妥な眷圭には呵光庭黎界疤のタスクを恃构し·ディスパッチが瘦 *  伪されていなければ TRUE を手すˉそうでない眷圭は FALSE を手すˉ */extern BOOL	rotate_ready_queue(UINT pri);/* *  タスク毋嘲借妄ル〖チンの钙叫し * *  タスク毋嘲借妄ル〖チンを钙び叫すˉ钙び叫す涟に·悸乖觉轮のタスクの *  瘦伪毋嘲妥傍をクリアし·タスク毋嘲借妄敦贿觉轮にし·CPUロックを豺 *  近するˉ *  タスク毋嘲借妄ル〖チンから提ると·まずCPUロック觉轮に提し·その粗 *  に瘦伪毋嘲妥傍が 0 でなくなっていれば·浩びタスク毋嘲借妄ル〖チン *  を钙び叫すˉ瘦伪毋嘲妥傍が 0 の眷圭には·毋嘲借妄钓材觉轮にして簇 *  眶からリタ〖ンするˉ *  この簇眶は·悸乖觉轮のタスクが·タスク毋嘲借妄钓材觉轮∈enatex が  *  TRUE∷で·瘦伪毋嘲妥傍が 0 でない∈texptn が 0 でない∷眷圭に钙び *  叫すことを鳞年しているˉこの簇眶は·CPUロック觉轮で钙び叫さなけれ *  ばならないˉ */extern void	call_texrtn(void);/* *  タスク毋嘲借妄ル〖チンの弹瓢 * *  悸乖觉轮のタスクがタスク毋嘲借妄ル〖チンの弹瓢掘凤を塔たしていれば· *  タスク毋嘲借妄ル〖チンを钙び叫すˉCPU毋嘲借妄ル〖チンを钙び叫す箕 *  は·办箕弄にCPUロックを豺近するˉ *  この簇眶は·ディスパッチャや充哈みハンドラ】CPU毋嘲ハンドラの叫庚 *  借妄から钙び叫されることを鳞年しているが·票霹の借妄をタ〖ゲット巴 *  赂婶で淡揭してもよいˉその眷圭には·OMIT_CALLTEX をマクロ年盗すれ *  ばよいˉ */extern void	calltex(void);#endif /* _TASK_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -