-
Notifications
You must be signed in to change notification settings - Fork 0
/
LogInterrupt.dita
23 lines (23 loc) · 2.41 KB
/
LogInterrupt.dita
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="concept_bcr_zh2_zh">
<title>全割込みロック状態の管理</title>
<shortdesc></shortdesc>
<conbody>
<p>SILのターゲット依存部では,全割込みロック状態へ遷移する機能と,元の状態 へ戻す機能(元の状態を記憶するために変数を使う)を提供する.全割込みロッ
ク状態であるかを判別する機能は提供する必要がない.</p>
<p>SILの機能は,カーネルを使用しない場合にも使用できる必要がある.そのため, 全割込みロック状態への遷移と元の状態への復帰は,カーネルを用いず,プロ
セッサのリソースを直接操作することによって実現する.また,全割込みロッ ク状態への遷移と元の状態への復帰は,全割込みロック状態やCPUロック状態で も行える必要がある.</p>
<p>保護機能を持ったカーネルでは,ユーザタスクからプロセッサのリソースを直 接操作することができないため,ユーザタスクからはこれらの機能を用いるこ
とができない.用いた場合の振舞いはターゲットプロセッサに依存するが,典 型的には,特権命令違反などのCPU例外が発生することになる.</p>
<p>(4-1-1) SIL_PRE_LOC </p>
<p>全割込みロックフラグの状態を保存するための変数を定義するマクロ.型名の 後に,変数名を続けたものに定義する.変数名は,他の名前と衝突しないよう
に,"TOPPERS_"で始まる名前にする.</p>
<p> (4-1-2) SIL_LOC_INT() </p>
<p>現在の全割込みロックフラグの状態をSIL_PRE_LOCで定義した変数に保存し,全 割込みロック状態に遷移させるマクロ.このマクロを実現する際には,「1.6
クリティカルセクションの出入処理の実現に関する制約」の節に記述されてい る制約に従わなければならない. </p>
<p>(4-1-3) SIL_UNL_INT() </p>
<p>SIL_LOC_INT()によって変数に保存した状態に戻すマクロ.このマクロを実現す る際には,「1.6 クリティカルセクションの出入処理の実現に関する制約」の
節に記述されている制約に従わなければならない.</p>
</conbody>
</concept>