kernel_8hpp.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.18.0"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>tinykernel: C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp File Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="codefolding.js"></script>
  11. <script type="text/javascript" src="clipboard.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="navtreedata.js"></script>
  14. <script type="text/javascript" src="navtree.js"></script>
  15. <script type="text/javascript" src="cookie.js"></script>
  16. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  17. <script type="text/javascript" src="search/searchdata.js"></script>
  18. <script type="text/javascript" src="search/search.js"></script>
  19. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  20. </head>
  21. <body>
  22. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  23. <div id="titlearea">
  24. <table cellspacing="0" cellpadding="0">
  25. <tbody>
  26. <tr id="projectrow">
  27. <td id="projectalign">
  28. <div id="projectname">tinykernel
  29. </div>
  30. </td>
  31. </tr>
  32. </tbody>
  33. </table>
  34. </div>
  35. <!-- end header part -->
  36. <!-- Generated by Doxygen 1.18.0 -->
  37. <script type="text/javascript">
  38. let searchBox = new SearchBox("searchBox", "search/",'.html');
  39. </script>
  40. <script type="text/javascript">
  41. document.addEventListener('DOMContentLoaded', codefold.init);
  42. </script>
  43. <script type="application/json" id="doxygen-config">
  44. {
  45. "relPath": "",
  46. "generateTreeView": true,
  47. "searchEngine": true,
  48. "serverBasedSearch": false,
  49. "disableIndex": false,
  50. "dynamicMenus": true,
  51. "fullSidebar": false
  52. }
  53. </script>
  54. <script type="text/javascript" src="menudata.js"></script>
  55. <script type="text/javascript" src="menu.js"></script>
  56. <div id="main-nav-mobile">
  57. <div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>
  58. <label class="main-menu-btn" for="main-menu-state">
  59. <span class="main-menu-btn-icon"></span> Toggle main menu visibility</label>
  60. <span id="searchBoxPos1"></span>
  61. </div>
  62. </div><!-- main-nav-mobile -->
  63. <div id="main-nav">
  64. <ul class="sm sm-dox" id="main-menu">
  65. <li id="searchBoxPos2">
  66. <div id="MSearchBox" class="MSearchBoxInactive">
  67. <span class="left">
  68. <span id="MSearchSelect" class="search-icon"><span class="search-icon-dropdown"></span></span>
  69. <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"/>
  70. </span><span class="right">
  71. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><div id="MSearchCloseImg" class="close-icon"></div></a>
  72. </span>
  73. </div>
  74. </li>
  75. </ul>
  76. </div><!-- main-nav -->
  77. </div><!-- top -->
  78. <div id="side-nav" class="ui-resizable side-nav-resizable">
  79. <div id="nav-tree">
  80. <div id="nav-tree-contents">
  81. <div id="nav-sync" class="sync"></div>
  82. </div>
  83. </div>
  84. <div id="splitbar" class="ui-resizable-handle">
  85. </div>
  86. </div>
  87. <script type="text/javascript">
  88. document.addEventListener('DOMContentLoaded',() => { initNavTree('kernel_8hpp.html','',''); });
  89. </script>
  90. <div id="container">
  91. <div id="doc-content">
  92. <!-- window showing the filter options -->
  93. <div id="MSearchSelectWindow">
  94. </div>
  95. <!-- iframe showing the search results (closed by default) -->
  96. <div id="MSearchResultsWindow">
  97. <div id="MSearchResults">
  98. <div class="SRPage">
  99. <div id="SRIndex">
  100. <div id="SRResults"></div>
  101. <div class="SRStatus" id="Loading">Loading...</div>
  102. <div class="SRStatus" id="Searching">Searching...</div>
  103. <div class="SRStatus" id="NoMatches">No Matches</div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="header">
  109. <div class="headertitle"><div class="title">kernel.hpp File Reference</div></div>
  110. </div><!--header-->
  111. <div class="contents">
  112. <div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
  113. <code>#include &lt;stddef.h&gt;</code><br />
  114. <code>#include &quot;pico/runtime.h&quot;</code><br />
  115. </div>
  116. <p><a href="kernel_8hpp_source.html">Go to the source code of this file.</a></p>
  117. <table class="memberdecls">
  118. <tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
  119. Classes</h2></td></tr>
  120. <tr class="memitem:tk_3A_3ATaskHandle" id="r_tk_3A_3ATaskHandle"><td class="memItemLeft">struct &#160;</td><td class="memItemRight"><a class="el" href="structtk_1_1_task_handle.html">tk::TaskHandle</a></td></tr>
  121. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">タスクの識別ハンドル <a href="structtk_1_1_task_handle.html#details">More...</a><br /></td></tr>
  122. <tr class="memitem:tk_3A_3APreemptGuard" id="r_tk_3A_3APreemptGuard"><td class="memItemLeft">class &#160;</td><td class="memItemRight"><a class="el" href="classtk_1_1_preempt_guard.html">tk::PreemptGuard</a></td></tr>
  123. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">プリエンプション禁止をスコープ単位で安全に管理する RAII クラス <a href="classtk_1_1_preempt_guard.html#details">More...</a><br /></td></tr>
  124. </table><table class="memberdecls">
  125. <tr class="heading"><td colspan="2"><h2 id="header-namespaces" class="groupheader"><a id="namespaces" name="namespaces"></a>
  126. Namespaces</h2></td></tr>
  127. <tr class="memitem:tk" id="r_tk"><td class="memItemLeft">namespace &#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html">tk</a></td></tr>
  128. <tr class="memitem:tk_3A_3Adetail" id="r_tk_3A_3Adetail"><td class="memItemLeft">namespace &#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html">tk::detail</a></td></tr>
  129. </table><table class="memberdecls">
  130. <tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
  131. Macros</h2></td></tr>
  132. <tr class="memitem:a5c791131c5ad22ed87a8d3ca2cd57d33" id="r_a5c791131c5ad22ed87a8d3ca2cd57d33"><td class="memItemLeft">#define&#160;</td><td class="memItemRight"><a class="el" href="#a5c791131c5ad22ed87a8d3ca2cd57d33">TK_TICKS_PER_SEC</a>&#160;&#160;&#160;1000u</td></tr>
  133. <tr class="memitem:af32989639aecb5479b4239639fd133f7" id="r_af32989639aecb5479b4239639fd133f7"><td class="memItemLeft">#define&#160;</td><td class="memItemRight"><a class="el" href="#af32989639aecb5479b4239639fd133f7">TK_TIME_SLICE_MS</a>&#160;&#160;&#160;10u</td></tr>
  134. <tr class="memitem:a22e1d9f532aa297014c125110226443c" id="r_a22e1d9f532aa297014c125110226443c"><td class="memItemLeft">#define&#160;</td><td class="memItemRight"><a class="el" href="#a22e1d9f532aa297014c125110226443c">TK_MAX_TASKS</a>&#160;&#160;&#160;32u</td></tr>
  135. <tr class="memitem:afde197f9493ef5bdb5b715ce8b52148d" id="r_afde197f9493ef5bdb5b715ce8b52148d"><td class="memItemLeft">#define&#160;</td><td class="memItemRight"><a class="el" href="#afde197f9493ef5bdb5b715ce8b52148d">TK_DEFAULT_STACK_SIZE</a>&#160;&#160;&#160;(4 * 1024)</td></tr>
  136. <tr class="memitem:af57e92069cc01608150a45032c5ad473" id="r_af57e92069cc01608150a45032c5ad473"><td class="memItemLeft">#define&#160;</td><td class="memItemRight"><a class="el" href="#af57e92069cc01608150a45032c5ad473">TK_TASK</a>(fn, prio)</td></tr>
  137. <tr class="memdesc:af57e92069cc01608150a45032c5ad473"><td class="mdescLeft">&#160;</td><td class="mdescRight">リンク時にタスクを自動登録するマクロ (静的タスク登録) <br /></td></tr>
  138. </table><table class="memberdecls">
  139. <tr class="heading"><td colspan="2"><h2 id="header-typedef-members" class="groupheader"><a id="typedef-members" name="typedef-members"></a>
  140. Typedefs</h2></td></tr>
  141. <tr class="memitem:a8908cf1e54cdc4e14ac3003126722cfc" id="r_a8908cf1e54cdc4e14ac3003126722cfc"><td class="memItemLeft">using&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a8908cf1e54cdc4e14ac3003126722cfc">tk::TaskFn</a> = void (*)(void* arg)</td></tr>
  142. <tr class="memitem:add371a241ec6c1695ef4e67935317edd" id="r_add371a241ec6c1695ef4e67935317edd"><td class="memItemLeft">using&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#add371a241ec6c1695ef4e67935317edd">tk::task_mask_t</a> = uint32_t</td></tr>
  143. </table><table class="memberdecls">
  144. <tr class="heading"><td colspan="2"><h2 id="header-enum-members" class="groupheader"><a id="enum-members" name="enum-members"></a>
  145. Enumerations</h2></td></tr>
  146. <tr class="memitem:a3d47fbd63b95ed3b46bed70c2fa1e50e" id="r_a3d47fbd63b95ed3b46bed70c2fa1e50e"><td class="memItemLeft">enum &#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50e">tk::Prio</a> : uint32_t { <a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50eabbefd771d1fb2ac0708c1bd5371e5a75">tk::PRIO_REALTIME</a> = 1
  147. , <a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50ea614240a3a3fc1094c6daa0fdca92ba37">tk::PRIO_HIGH</a> = 5
  148. , <a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca">tk::PRIO_NORMAL</a> = 9
  149. , <a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50eacf084edcfe985b77c205a37c3bd60519">tk::PRIO_LOW</a> = 13
  150. }</td></tr>
  151. <tr class="memdesc:a3d47fbd63b95ed3b46bed70c2fa1e50e"><td class="mdescLeft">&#160;</td><td class="mdescRight">タスクの優先度レベル <a href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50e">More...</a><br /></td></tr>
  152. </table><table class="memberdecls">
  153. <tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
  154. Functions</h2></td></tr>
  155. <tr class="memitem:a6e721332f5a7d85998345ed218de7394" id="r_a6e721332f5a7d85998345ed218de7394"><td class="memItemLeft"><a class="el" href="structtk_1_1_task_handle.html">TaskHandle</a>&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a6e721332f5a7d85998345ed218de7394">tk::create</a> (<a class="el" href="namespacetk.html#a8908cf1e54cdc4e14ac3003126722cfc">TaskFn</a> fn, void *arg=nullptr, uint32_t prio=<a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca">PRIO_NORMAL</a>)</td></tr>
  156. <tr class="memdesc:a6e721332f5a7d85998345ed218de7394"><td class="mdescLeft">&#160;</td><td class="mdescRight">タスクを生成・登録します <br /></td></tr>
  157. <tr class="memitem:a675f1829b87e2a43239b6f80a526d0ed" id="r_a675f1829b87e2a43239b6f80a526d0ed"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a675f1829b87e2a43239b6f80a526d0ed">tk::start</a> ()</td></tr>
  158. <tr class="memdesc:a675f1829b87e2a43239b6f80a526d0ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">tinykernel スケジューラを起動します <br /></td></tr>
  159. <tr class="memitem:a8081956b0a19b87d5b7c81b772373397" id="r_a8081956b0a19b87d5b7c81b772373397"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a8081956b0a19b87d5b7c81b772373397">tk::yield</a> ()</td></tr>
  160. <tr class="memdesc:a8081956b0a19b87d5b7c81b772373397"><td class="mdescLeft">&#160;</td><td class="mdescRight">現在実行中のタスクを一時中断し、同優先度の他のタスクへ CPU を譲渡します <br /></td></tr>
  161. <tr class="memitem:aae83f84121085578a7568437a8dc2447" id="r_aae83f84121085578a7568437a8dc2447"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#aae83f84121085578a7568437a8dc2447">tk::sleep_ms</a> (uint32_t ms)</td></tr>
  162. <tr class="memdesc:aae83f84121085578a7568437a8dc2447"><td class="mdescLeft">&#160;</td><td class="mdescRight">現在のタスクを指定時間スリープさせます <br /></td></tr>
  163. <tr class="memitem:aba50cfc62cb8be71cf96df7f495a7a3d" id="r_aba50cfc62cb8be71cf96df7f495a7a3d"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#aba50cfc62cb8be71cf96df7f495a7a3d">tk::exit</a> (int code=0)</td></tr>
  164. <tr class="memdesc:aba50cfc62cb8be71cf96df7f495a7a3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">現在のタスクを終了・破棄します <br /></td></tr>
  165. <tr class="memitem:a46e15375fba47cbd1a93278f17e77848" id="r_a46e15375fba47cbd1a93278f17e77848"><td class="memItemLeft">uint64_t&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a46e15375fba47cbd1a93278f17e77848">tk::now_ms</a> ()</td></tr>
  166. <tr class="memdesc:a46e15375fba47cbd1a93278f17e77848"><td class="mdescLeft">&#160;</td><td class="mdescRight">システム起動時からの経過時間をミリ秒単位で取得します <br /></td></tr>
  167. <tr class="memitem:a6540aa25eb8562f6d6c8b37977d6cfe8" id="r_a6540aa25eb8562f6d6c8b37977d6cfe8"><td class="memItemLeft">bool&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a6540aa25eb8562f6d6c8b37977d6cfe8">tk::lock</a> ()</td></tr>
  168. <tr class="memdesc:a6540aa25eb8562f6d6c8b37977d6cfe8"><td class="mdescLeft">&#160;</td><td class="mdescRight">ハードウェアスピンロックと全割り込み禁止によるクリティカルセクションに入ります <br /></td></tr>
  169. <tr class="memitem:a752b12f6862815c94a52347af52578b7" id="r_a752b12f6862815c94a52347af52578b7"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a752b12f6862815c94a52347af52578b7">tk::unlock</a> (bool was_enabled)</td></tr>
  170. <tr class="memdesc:a752b12f6862815c94a52347af52578b7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="namespacetk.html#a6540aa25eb8562f6d6c8b37977d6cfe8" title="ハードウェアスピンロックと全割り込み禁止によるクリティカルセクションに入ります">tk::lock()</a> で入ったクリティカルセクションを抜けます <br /></td></tr>
  171. <tr class="memitem:a3254a7e2a9f5ed3abe44e8cf62a8dcfe" id="r_a3254a7e2a9f5ed3abe44e8cf62a8dcfe"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a3254a7e2a9f5ed3abe44e8cf62a8dcfe">tk::preempt_disable</a> ()</td></tr>
  172. <tr class="memdesc:a3254a7e2a9f5ed3abe44e8cf62a8dcfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">自コアのタスクスイッチ (プリエンプション) を一時的に禁止します <br /></td></tr>
  173. <tr class="memitem:a70e6ee5f456e67a24ce13ff0fd04e4d9" id="r_a70e6ee5f456e67a24ce13ff0fd04e4d9"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk.html#a70e6ee5f456e67a24ce13ff0fd04e4d9">tk::preempt_enable</a> ()</td></tr>
  174. <tr class="memdesc:a70e6ee5f456e67a24ce13ff0fd04e4d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">自コアのタスクスイッチ (プリエンプション) を再開します <br /></td></tr>
  175. <tr class="memitem:a447e4ec89b3f2748451891219b7e3738" id="r_a447e4ec89b3f2748451891219b7e3738"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html#a447e4ec89b3f2748451891219b7e3738">tk::detail::static_register</a> (const char *name, <a class="el" href="namespacetk.html#a8908cf1e54cdc4e14ac3003126722cfc">TaskFn</a> fn, uint32_t prio)</td></tr>
  176. <tr class="memitem:a5b8fa6406a867edf8c4410fcb03c6523" id="r_a5b8fa6406a867edf8c4410fcb03c6523"><td class="memItemLeft">uint32_t&#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html#a5b8fa6406a867edf8c4410fcb03c6523">tk::detail::sched_lock</a> ()</td></tr>
  177. <tr class="memitem:a80be9b2429346faf161eab01f595684b" id="r_a80be9b2429346faf161eab01f595684b"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html#a80be9b2429346faf161eab01f595684b">tk::detail::sched_unlock</a> (uint32_t save)</td></tr>
  178. <tr class="memitem:a400363f36b5fb5dfc8aec11334471d0d" id="r_a400363f36b5fb5dfc8aec11334471d0d"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html#a400363f36b5fb5dfc8aec11334471d0d">tk::detail::block_current_task_locked</a> ()</td></tr>
  179. <tr class="memitem:ab19385598f18560cb574cc86174ececa" id="r_ab19385598f18560cb574cc86174ececa"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html#ab19385598f18560cb574cc86174ececa">tk::detail::wake_task_locked</a> (<a class="el" href="structtk_1_1_task_handle.html">TaskHandle</a> handle)</td></tr>
  180. <tr class="memitem:a73a80d92a172d565201f99e8f31278e4" id="r_a73a80d92a172d565201f99e8f31278e4"><td class="memItemLeft">uint8_t&#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html#a73a80d92a172d565201f99e8f31278e4">tk::detail::current_task_slot</a> ()</td></tr>
  181. <tr class="memitem:a70ba35e0daee086ad86770f1e39c9b35" id="r_a70ba35e0daee086ad86770f1e39c9b35"><td class="memItemLeft">uint8_t&#160;</td><td class="memItemRight"><a class="el" href="namespacetk_1_1detail.html#a70ba35e0daee086ad86770f1e39c9b35">tk::detail::find_highest_prio_waiter</a> (<a class="el" href="namespacetk.html#add371a241ec6c1695ef4e67935317edd">task_mask_t</a> wait_mask)</td></tr>
  182. </table>
  183. <a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
  184. <a id="afde197f9493ef5bdb5b715ce8b52148d" name="afde197f9493ef5bdb5b715ce8b52148d"></a>
  185. <h2 class="memtitle"><span class="permalink"><a href="#afde197f9493ef5bdb5b715ce8b52148d">&#9670;&#160;</a></span>TK_DEFAULT_STACK_SIZE</h2>
  186. <div class="memitem">
  187. <div class="memproto">
  188. <table class="memname">
  189. <tr>
  190. <td class="memname">#define TK_DEFAULT_STACK_SIZE&#160;&#160;&#160;(4 * 1024)</td>
  191. </tr>
  192. </table>
  193. </div><div class="memdoc">
  194. <p>1タスクあたりのスタックサイズ (バイト) </p>
  195. </div>
  196. </div>
  197. <a id="a22e1d9f532aa297014c125110226443c" name="a22e1d9f532aa297014c125110226443c"></a>
  198. <h2 class="memtitle"><span class="permalink"><a href="#a22e1d9f532aa297014c125110226443c">&#9670;&#160;</a></span>TK_MAX_TASKS</h2>
  199. <div class="memitem">
  200. <div class="memproto">
  201. <table class="memname">
  202. <tr>
  203. <td class="memname">#define TK_MAX_TASKS&#160;&#160;&#160;32u</td>
  204. </tr>
  205. </table>
  206. </div><div class="memdoc">
  207. <p>最大タスク数 (スロット0はCore0アイドル、スロット1はCore1アイドル専用) </p>
  208. </div>
  209. </div>
  210. <a id="af57e92069cc01608150a45032c5ad473" name="af57e92069cc01608150a45032c5ad473"></a>
  211. <h2 class="memtitle"><span class="permalink"><a href="#af57e92069cc01608150a45032c5ad473">&#9670;&#160;</a></span>TK_TASK</h2>
  212. <div class="memitem">
  213. <div class="memproto">
  214. <table class="memname">
  215. <tr>
  216. <td class="memname">#define TK_TASK</td>
  217. <td>(</td>
  218. <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>fn</em></span>, </td>
  219. </tr>
  220. <tr>
  221. <td class="paramkey"></td>
  222. <td></td>
  223. <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>prio</em></span>&#160;)</td>
  224. </tr>
  225. </table>
  226. </div><div class="memdoc">
  227. <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> tk_register_##fn(<span class="keywordtype">void</span>) { \</div>
  228. <div class="line"> ::tk::detail::static_register(#fn, fn, (prio)); \</div>
  229. <div class="line">} \</div>
  230. <div class="line">PICO_RUNTIME_INIT_FUNC(tk_register_##fn, <span class="stringliteral">&quot;ZZ900&quot;</span>);</div>
  231. </div><!-- fragment -->
  232. <p>リンク時にタスクを自動登録するマクロ (静的タスク登録) </p>
  233. <p>main() の開始前に Pico SDK のランタイムイニシャライザを利用してタスクを登録します。</p>
  234. <dl class="params"><dt>Parameters</dt><dd>
  235. <table class="params">
  236. <tr><td class="paramname">fn</td><td>タスク関数名 (void fn(void* arg)) </td></tr>
  237. <tr><td class="paramname">prio</td><td>タスク優先度 (例: <a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca" title="通常優先度 (デフォルト)">tk::PRIO_NORMAL</a>) </td></tr>
  238. </table>
  239. </dd>
  240. </dl>
  241. </div>
  242. </div>
  243. <a id="a5c791131c5ad22ed87a8d3ca2cd57d33" name="a5c791131c5ad22ed87a8d3ca2cd57d33"></a>
  244. <h2 class="memtitle"><span class="permalink"><a href="#a5c791131c5ad22ed87a8d3ca2cd57d33">&#9670;&#160;</a></span>TK_TICKS_PER_SEC</h2>
  245. <div class="memitem">
  246. <div class="memproto">
  247. <table class="memname">
  248. <tr>
  249. <td class="memname">#define TK_TICKS_PER_SEC&#160;&#160;&#160;1000u</td>
  250. </tr>
  251. </table>
  252. </div><div class="memdoc">
  253. <p>1秒あたりのタイマースケジューラtick数 (Hz) </p>
  254. </div>
  255. </div>
  256. <a id="af32989639aecb5479b4239639fd133f7" name="af32989639aecb5479b4239639fd133f7"></a>
  257. <h2 class="memtitle"><span class="permalink"><a href="#af32989639aecb5479b4239639fd133f7">&#9670;&#160;</a></span>TK_TIME_SLICE_MS</h2>
  258. <div class="memitem">
  259. <div class="memproto">
  260. <table class="memname">
  261. <tr>
  262. <td class="memname">#define TK_TIME_SLICE_MS&#160;&#160;&#160;10u</td>
  263. </tr>
  264. </table>
  265. </div><div class="memdoc">
  266. <p>同一優先度タスク間のタイムスライス時間 (ミリ秒) </p>
  267. </div>
  268. </div>
  269. </div><!-- contents -->
  270. </div><!-- doc-content -->
  271. <div id="page-nav" class="page-nav-panel">
  272. <div id="page-nav-resize-handle"></div>
  273. <div id="page-nav-tree">
  274. <div id="page-nav-contents">
  275. </div><!-- page-nav-contents -->
  276. </div><!-- page-nav-tree -->
  277. </div><!-- page-nav -->
  278. </div><!-- container -->
  279. <!-- start footer part -->
  280. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  281. <ul>
  282. <li class="navelem"><a href="dir_9b10c2ff4e034627dc7271865b055c64.html">Pico_Projects</a></li><li class="navelem"><a href="dir_01f710e8c634e538c6d9f00c5eaf4f2e.html">tinykernel</a></li><li class="navelem"><a href="dir_065670814960ad9cf60e14e38242ec92.html">tinykernel</a></li><li class="navelem"><a href="dir_34ae86e414c9a960c5c39d1d6b15c7a8.html">include</a></li><li class="navelem"><a href="dir_91e9b2eecded889eb8782a5ba7843b6a.html">tinykernel</a></li><li class="navelem"><a href="kernel_8hpp.html">kernel.hpp</a></li>
  283. <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.18.0 </li>
  284. </ul>
  285. </div>
  286. </body>
  287. </html>