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

📄 config.txt

📁 嵌入式系统开发 TOPPERS and JSP Kernel Release 1.3 TOPPERS = Toyohashi Open Platform for Embedded Real-Tim
💻 TXT
📖 第 1 页 / 共 3 页
字号:
して悸乖觉轮とするˉ悸乖できるタスクがない眷圭∈schedtsk が NULL の眷圭∷には·充哈みを钓材して·悸乖できるタスクができるまで略つˉここで·悸乖できるタスクができるのを略つ粗に弹瓢された充哈みハンドラの叫庚で·ディスパッチャが钙ばれないように滦忽することが涩妥であるˉ恶挛弄には·悸乖できるタスクができるのを略つ粗·办箕弄に润タスクコンテキストに磊り垂えるか·ディスパッチ敦贿觉轮にするˉ糠たに悸乖觉轮になったタスクが·タスク毋嘲借妄ル〖チンの弹瓢掘凤を塔たしていれば·タスク毋嘲借妄ル〖チンを弹瓢するˉまた·この簇眶を钙び叫したタスクが肌に悸乖觉轮になった箕·タスク毋嘲借妄ル〖チンの弹瓢掘凤を塔たしていれば·タスク毋嘲借妄ル〖チンの弹瓢を乖うˉタスク毋嘲借妄ル〖チンの弹瓢には·タ〖ゲット迫惟婶が捏丁する calltex または call_texrtn を脱いることができるˉ(4-2) void exit_and_dispatch(void)附哼悸乖面のコンテキストを嘉て·ディスパッチャを钙び叫すための簇眶ˉタスクコンテキストから钙ばれたサ〖ビスコ〖ル∈恶挛弄には·ext_tsk∷借妄またはカ〖ネルの介袋步借妄から·CPUロック觉轮で钙ばれるˉこの簇眶が钙ばれると·簇眶を钙んだタスクのコンテキストを瘦赂せず·悸乖できるタスクの面で呵光庭黎界疤のタスク∈schedtsk∷のコンテキストを牲耽して悸乖觉轮とするˉ悸乖できるタスクがない眷圭∈schedtsk が NULL の眷圭∷の借妄は·dispatch と票屯であるˉ糠たに悸乖觉轮になったタスクが·タスク毋嘲借妄ル〖チンの弹瓢掘凤を塔たしていれば·タスク毋嘲借妄ル〖チンを弹瓢するˉこの簇眶は·カ〖ネルの介袋步借妄からも钙ばれるために·润タスクコンテキストからも钙ばれても赖しく借妄できることが涩妥であるˉなお·この簇眶からはリタ〖ンしないˉ(5) 充哈みハンドラ】CPU毋嘲ハンドラの叫掐庚借妄(5-1) INTHDR_ENTRY(inthdr)(5-2) INT_ENTRY(inthdr)INTHDR_ENTRY(inthdr) は弹瓢戎孟が inthdr の充哈みハンドラを钙び叫す叫掐庚借妄ル〖チンを栏喇するマクロ·INT_ENTRY(inthdr) は栏喇する叫掐庚借妄ル〖チンの黎片のラベルを评るためのマクロであるˉINT_ENTRY(inthdr) で评られるラベルは·充哈みハンドラ介袋步ブロックに叫掐庚借妄ル〖チンの黎片戎孟を判峡するために蝗われるˉ叫掐庚借妄ル〖チンを栏喇する涩妥がない眷圭には·INTHDR_ENTRY(inthdr) を帽に extern 离咐に鸥倡すればよいˉ充哈みハンドラの叫掐庚借妄は·悸乖コンテキストを润タスクコンテキストに磊り垂え·スクラッチレジスタを瘦赂して·充哈みハンドラを钙び叫すˉ充哈みハンドラから提ると·傅の悸乖コンテキストに提すとともに·涩妥に炳じてディスパッチとタスク毋嘲借妄ル〖チンの弹瓢借妄を乖うˉディスパッチとタスク毋嘲借妄ル〖チンの弹瓢借妄は·恶挛弄には肌のように乖うˉ(a) 笆布の借妄は·充哈みハンドラがタスクコンテキスト悸乖面に弹瓢された眷圭で·reqflg が TRUE の箕のみ乖うˉ(b) enadsp が TRUE で·悸乖觉轮のタスク∈runtsk∷と悸乖できるタスクの面で呵光庭黎界疤のタスク∈schedtsk∷が办米していない眷圭には·涟荚のタスクのコンテキストを瘦赂し·稿荚のタスクのコンテキストを牲耽して悸乖觉轮とするˉ悸乖できるタスクがない眷圭∈schedtsk が NULL の眷圭∷には·充哈みを钓材して·悸乖できるタスクができるまで略つˉここでも·悸乖できるタスクができるのを略つ粗に弹瓢された充哈みハンドラの叫庚で·タスクディスパッチャが钙ばれないようにすることが涩妥であるが·叫掐庚借妄を润タスクコンテキストで悸乖していれば·泼に滦忽する涩妥はないˉ(c) 悸乖觉轮のタスク∈(b) でタスクディスパッチを乖った眷圭は·糠たに悸乖觉轮となったタスク∷がタスク毋嘲借妄ル〖チンの弹瓢掘凤を塔たしていれば·タスク毋嘲借妄ル〖チンを弹瓢するˉまた·(b) でタスクディスパッチを乖った眷圭は·それまで悸乖觉轮であったタスクが肌に悸乖觉轮になった箕·タスク毋嘲借妄ル〖チンの弹瓢掘凤を塔たしていれば·タスク毋嘲借妄ル〖チンの弹瓢を乖うˉタスク毋嘲借妄ル〖チンの弹瓢には·タ〖ゲット迫惟婶が捏丁する calltex または call_texrtn を脱いることができるˉこのマクロで栏喇するル〖チンでは·惧淡の借妄の办婶のみを乖い·荒りの借妄は侍に脱罢したル〖チンに扦せてもよいˉ恶挛弄には·タスクディスパッチとタスク毋嘲借妄ル〖チンの弹瓢借妄は·侍にル〖チンとして脱罢するのが努碰であろうˉ(5-3) EXCHDR_ENTRY(exchdr)(5-4) EXC_ENTRY(exchdr)EXCHDR_ENTRY(exchdr) は弹瓢戎孟が exchdr のCPU毋嘲ハンドラを钙び叫す叫掐庚借妄ル〖チンを栏喇するマクロ·EXC_ENTRY(exchdr) は栏喇する叫掐庚借妄ル〖チンの黎片のラベルを评るためのマクロであるˉEXC_ENTRY(exchdr) で评られるラベルは·CPU毋嘲ハンドラ介袋步ブロックに叫掐庚借妄ル〖チンの黎片戎孟を判峡するために蝗われるˉ叫掐庚借妄ル〖チンを栏喇する涩妥がない眷圭には·EXCHDR_ENTRY(exchdr) を帽に extern 离咐に鸥倡すればよいˉCPU毋嘲ハンドラの叫掐庚借妄は·悸乖コンテキストを润タスクコンテキストに磊り垂え·スクラッチレジスタを瘦赂して·CPU毋嘲ハンドラを钙び叫すˉCPU毋嘲ハンドラには·VP房のパラメ〖タ p_excinf を畔すˉこのパラメ〖タは·CPU毋嘲に簇する攫鼠を瘦赂したスタック挝拌へのポインタであることを鳞年しているが·恶挛弄にはタ〖ゲット髓に年めるˉCPU毋嘲ハンドラから提ると·傅の悸乖コンテキストに提すとともに·涩妥に炳じてタスクディスパッチとタスク毋嘲借妄ル〖チンの弹瓢借妄を乖うˉタスクディスパッチとタスク毋嘲借妄ル〖チンの弹瓢借妄は·充哈みハンドラの叫掐庚借妄の眷圭と票屯である∈惧淡の (a)×(c)∷ˉ(7) タスクコンテキスト肋年借妄∈cpu_context.h∷タ〖ゲット巴赂のタスクコンテキストを肋年するために create_context と activate_context の2つの簇眶を脱罢するˉ2つの簇眶を钙び叫すことで·タスクのコンテキスト∈恶挛弄には·タスクコンテキストブロックの柒推とタスクのスタック挝拌∷をタスクが弹瓢できる觉轮に肋年するˉ2つの簇眶は钙ばれるタイミングが佰なるだけで汤澄な舔充尸么はなく·どのような借妄はどちらの簇眶で乖わなければならないという扩腆はないˉこれらの簇眶の离咐およびマクロの年盗は·cpu_context.h に崔めるˉこれは·cpu_config.h を借妄する箕爬では TCB が年盗されていないためであるˉ(7-1) void create_context(TCB tcb)タスクが蒂贿觉轮に败乖する箕に钙ばれるˉ恶挛弄には·タスクの栏喇箕∈JSPカ〖ネルでは·CRE_TSK でタスクを栏喇するため·タスク瓷妄モジュ〖ルの介袋步∷とタスクの姜位箕∈ext_tsk·ter_tsk∷に钙ばれるˉ(7-2) void activate_context(TCB tcb)タスクが悸乖できる觉轮に败乖する箕に钙ばれるˉ恶挛弄には·act_tsk でタスクを弹瓢する箕·タスクの姜位箕∈ext_tsk·ter_tsk∷に弹瓢妥滇のキュ〖イングにより浩弹瓢する箕·TA_ACT 掳拉を回年してタスクを栏喇した箕∈タスク瓷妄モジュ〖ルの介袋步∷に钙ばれるˉ(7-3) ACTIVATED_STACK_SIZE∈オプション∷ext_tsk がスタック惧に澄瘦するダミ〖挝拌のサイズを年盗するためのマクロˉダミ〖挝拌が涩妥ない眷圭は·このマクロを年盗する涩妥はないˉext_tsk は·极タスクを姜位させた稿·极タスクに滦して create_context を钙ぶˉまた·タスクの弹瓢妥滇がキュ〖イングされていた眷圭には·极タスクに滦して activate_context も钙ぶˉcreate_context と activate_context は·滦据タスクのスタック挝拌を今き垂える眷圭があるが·これが ext_tsk∈およびそこから钙ばれる簇眶∷が蝗脱しているスタック挝拌と脚なった眷圭·极尸の蝗脱しているスタック挝拌を极尸で撬蝉する冯蔡になるˉACTIVATE_STACK_SIZE を·create_context と activate_context が今き垂えるスタック挝拌のサイズ∈阜泰には·スタックの撵から部バイトめまでを今き垂えるか∷にマクロ年盗しておくと·ext_tsk 柒でスタック惧に年盗したサイズのダミ〖挝拌を澄瘦し·极尸の蝗脱しているスタック挝拌を撬蝉するのを松ぐˉ(8) タ〖ゲット巴赂の介袋步】姜位借妄(8-1) void cpu_initialize(void)プロセッサ巴赂の介袋步借妄ˉカ〖ネルの介袋步借妄で·カ〖ネル柒の称モジュ〖ルを介袋步する涟に钙ばれるˉ(8-2) void sys_initialize(void)システム巴赂の介袋步借妄ˉカ〖ネルの介袋步借妄で·cpu_initialize に鲁いて钙ばれるˉ(8-3) void cpu_terminate(void);プロセッサ巴赂の姜位箕借妄ˉカ〖ネルの姜位借妄で钙ばれるˉ(8-4) sys_exit(void)システムの姜位借妄ˉカ〖ネルの姜位借妄で·cpu_terminate に鲁いて钙ばれるˉこの簇眶からはリタ〖ンしないˉROMモニタを积つシステムでは·ROMモニタ钙叫しで悸附することを鳞年しているˉ(9) 充哈みハンドラ】CPU毋嘲ハンドラの年盗(9-1) void define_inh(INHNO inhno, FP inthdr)充哈みハンドラ戎规 inhno の弹瓢戎孟を inthdr に肋年するˉ充哈み瓷妄怠墙の介袋步借妄から钙ばれるˉ(9-2) void define_exc(EXCNO excno, FP exchdr)CPU毋嘲ハンドラ戎规 excno の弹瓢戎孟を exchdr に肋年するˉCPU毋嘲ハンドラ瓷妄怠墙の介袋步借妄から钙ばれるˉ(10) CPU毋嘲券栏箕爬のシステム觉轮の徊救(10-1) BOOL exc_sense_context(VP p_excinf)CPU毋嘲が券栏したコンテキストが·タスクコンテキストの眷圭は FALSE·润タスクコンテキストの眷圭は TRUE を手す簇眶ˉCPU毋嘲ハンドラから钙ばれたサ〖ビスコ〖ル借妄から钙ばれるˉp_excinf には·CPU毋嘲ハンドラへの苞眶がそのまま畔されるˉ(10-2) BOOL exc_sense_lock(VP p_excinf)CPU毋嘲が券栏したコンテキストが·CPUロック觉轮の眷圭は TRUE·CPUロック豺近觉轮の箕は FALSE を手す簇眶ˉCPU毋嘲ハンドラから钙ばれたサ〖ビスコ〖ル借妄から钙ばれるˉp_excinf には·CPU毋嘲ハンドラへの苞眶がそのまま畔されるˉ(11) TCB 面のフィ〖ルドのビット升の年盗∈オプション∷TCB 面のフィ〖ルドの芹弥は拉墙に络きく逼读すると蛔われるため·タ〖ゲット巴赂にフィ〖ルドのビット升を恃构できるようにしているˉ恶挛弄には·笆布の2つのフィ〖ルドのビット升を恃构できるˉこれらのマクロを年盗しない眷圭·呵井ビット升となるˉ(11-1) TBIT_TCB_TSTAT		tstat∈タスク觉轮∷のビット升(11-2) TBIT_TCB_PRIORITY	priority∈庭黎刨∷フィ〖ルドのビット升32ビットプロセッサの眷圭には·これらを 8 に年盗するのが跟唯弄であるˉ(12) ビットマップサ〖チにビットサ〖チ炭吾を蝗うための年盗∈オプション∷プロセッサがビットサ〖チ炭吾を积つ眷圭·レディキュ〖のビットマップサ〖チにその炭吾を脱いた数が跟唯がよいˉその眷圭·笆布の簇眶およびマクロをタ〖ゲット巴赂婶で年盗するˉ(12-1) CPU_BITMAP_SEARCHプロセッサのビットサ〖チ炭吾を脱いる眷圭·このマクロを年盗するˉこのマクロを年盗することにより·タ〖ゲット迫惟婶から bitmap_search が艰り近かれるˉ(12-2) UINT bitmap_search(UINT bitmap)ビットサ〖チを乖う簇眶ˉbitmap 柒の 1 のビットの柒·呵も布疤のものをサ〖チし·そのビット戎规を手すˉビット戎规は·呵布疤ビット∈LSB∷を 0 とするˉbitmap の布疤16ビットに·涩ず 1 のビットがある∈すなわち·bitmap に 0 が回年されることはない∷ことを簿年してよいˉ筛洁ライブラリにビットサ〖チ炭吾を脱いた ffs がある眷圭·ffs を脱いて bitmap_search を肌のように年盗すればよいˉ	#define	bitmap_search(bitmap)	(ffs(bitmap) - 1)プロセッサの积つビットサ〖チ炭吾が·呵も惧疤の 1 のビットをサ〖チするものである眷圭には·肌のマクロを年盗して·ビットの充烧けを恃构することができるˉ(12-3) UINT PRIMAP_BIT(pri)タスク庭黎刨の柒婶山附∈呵光庭黎刨を 0 とする∷を·それに滦炳するビットマップに恃垂するˉデフォルトの年盗は肌の奶りˉ	#define	PRIMAP_BIT(pri)		(1 << (pri))(13) タ〖ゲット巴赂のサ〖ビスコ〖ル∈オプション∷笆布のサ〖ビスコ〖ルをタ〖ゲット巴赂にサポ〖トする眷圭には·その借妄ル〖チンをタ〖ゲット巴赂婶で年盗するˉ(13-1) chg_ixx(13-2) get_ixx(13-3) dis_int(13-4) ena_int(14) 拉墙删擦脱システム箕癸簇息の年盗∈オプション∷(14-1) SUPPORT_VXGET_TIMタ〖ゲット迫惟婶の vxget_timサ〖ビスコ〖ル借妄を脱いる眷圭に·このマクロを年盗するˉ(14-2) hw_timer.hタ〖ゲット巴赂のタイマモジュ〖ルのインクル〖ドファイルˉタ〖ゲット迫惟婶の vxget_timサ〖ビスコ〖ル借妄を脱いる眷圭·タ〖ゲット巴赂のタイマモジュ〖ルが涩妥になるˉそのためのインクル〖ドファイルである hw_timer.h は·システムサ〖ビスのシステムクロックドライバで脱いるものと鼎奶にしているˉ(15) カ〖ネルの柒婶急侍叹のリネ〖ムタ〖ゲット巴赂婶で脱いている急侍叹∈モジュ〖ル柒に誓じた急侍叹を近く∷を·μITRON4.0慌屯に骄って _kernel_ で幌まるものにリネ〖ムする涩妥があるˉ恶挛弄には·タ〖ゲット巴赂婶で xxxx という急侍叹を脱いている眷圭には·肌のようなマクロ年盗を乖うˉ#ifndef OMIT_RENAME#define xxxx		_kernel_xxxx#ifdef LABEL_ASM#define _xxxx		__kernel_xxxx#endif /* LABEL_ASM */#endif /* OMIT_RENAME */ここで·LABEL_ASM は·アセンブリ咐胳レベルの急侍叹が·C咐胳レベルの急侍叹の黎片に "_" が烧いたものになる眷圭に年盗すべきマクロである∈年盗の数恕については≈システム菇蜜数恕の肋年∽を徊救∷ˉまた OMIT_RENAME は·カ〖ネルの柒婶急侍叹のリネ〖ムをやめる箕に年盗すべきマクロであるが·附バ〖ジョンではサポ〖トが稍窗链であり·年盗しても

⌨️ 快捷键说明

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