インテルのみ表示可能 — GUID: iga1401398649150
Ixiasoft
インテルのみ表示可能 — GUID: iga1401398649150
Ixiasoft
23.4.3. レジスターマップ
インテルで提供しているHALデバイスドライバーは、デバイスのレジスターに直接アクセスします。デバイスドライバーを作成しており、HALドライバーが同じデバイスに対してアクティブな場合は、ドライバーが競合し、作成したドライバーは正しく動作しません。
次の表に、32ビット・タイマーのレジスターマップを示します。インターバル・タイマー・コアは、ネイティブ・アドレス・アライメントを使用します。例えば、controlレジスターの値にアクセスする場合は、オフセット0x4を使用します。
オフセット | 名称 | R/W | ビットの説明 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
15 | ... | 4 | 3 | 2 | 1 | 0 | |||||
0 | status | RW | (1) | RUN | TO | ||||||
1 | control | RW | (1) | STOP | START | CONT | ITO | ||||
2 | periodl | RW | Timeout Period – 1 (bits [15:0]) | ||||||||
3 | periodh | RW | Timeout Period – 1 (bits [31:16]) | ||||||||
4 | snapl | RW | Counter Snapshot (bits [15:0]) | ||||||||
5 | snaph | RW | Counter Snapshot (bits [31:16]) | ||||||||
注意
|
ネイティブ・アドレス・アライメントに関しては、System Interconnect Fabric for Memory-Mapped Interfacesを参照してください。
オフセット | 名称 | R/W | ビットの説明 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
15 | ... | 4 | 3 | 2 | 1 | 0 | |||||
0 | status | RW | (1) | RUN | TO | ||||||
1 | control | RW | (1) | STOP | START | CONT | ITO | ||||
2 | period_0 | RW | Timeout Period – 1 (bits [15:0]) | ||||||||
3 | period_1 | RW | Timeout Period – 1 (bits [31:16]) | ||||||||
4 | period_2 | RW | Timeout Period – 1 (bits [47:32]) | ||||||||
5 | period_3 | RW | Timeout Period – 1 (bits [63:48]) | ||||||||
6 | snap_0 | RW | Counter Snapshot (bits [15:0]) | ||||||||
7 | snap_1 | RW | Counter Snapshot (bits [31:16]) | ||||||||
8 | snap_2 | RW | Counter Snapshot (bits [47:32]) | ||||||||
9 | snap_3 | RW | Counter Snapshot (bits [63:48]) | ||||||||
注意
|
statusレジスター
statusレジスターでは、2つのビットが定義されています。
ビット | 名称 | R/W/C | 説明 |
---|---|---|---|
0 | TO | R/WC | TO (タイムアウト) ビットは、内部カウンターが0に達すると1に設定されます。タイムアウト・イベントによって設定されると、TOビットは、マスター・ペリフェラルによって明示的にクリアされるまで設定された状態で維持されます。statusレジスターに0または1を書き込み、TOビットをクリアします。 |
1 | RUN | R | RUNビットは、内部カウンターが実行されている際は1として読み取られます。それ以外の場合、このビットは0として読み取られます。RUNビットは、statusレジスターへの書き込み操作では変化しません。 |
controlレジスター
controlレジスターでは、4つのビットが定義されています。
ビット | 名称 | R/W/C | 説明 |
---|---|---|---|
0 | ITO | RW | ITOビットが1の場合、インターバル・タイマー・コアは、statusレジスターのTOビットが1になるとIRQを生成します。ITOビットが0の場合、タイマーはIRQを生成しません。 |
1 | CONT | RW | CONT (連続) ビットは、内部カウンターが0に達した際の動作を決定します。CONTビットが1の場合、カウンターはSTOPビットによって停止されるまで継続的に実行されます。CONTが0の場合、カウンターは0に達すると停止します。カウンターが0に達すると、CONTビットに関係なく、周期レジスターに格納されている値がリロードされます。 |
2 | START (1) | W | STARTビットに1を書き込むと、内部カウンターは動作 (カウントダウン) を開始します。STARTビットはイベントビットであり、書き込み操作が実行された際にカウンターを有効にします。タイマーが停止している場合は、STARTビットに1を書き込むことで、タイマーは現在カウンターに格納されている数からカウントを再開します。タイマーがすでに動作している場合は、STARTへの1の書き込みは無効です。STARTビットに0を書き込むことは無効です。 |
3 | STOP (1) | W | STOPビットに1を書き込むと、内部カウンターは停止します。STOPビットはイベントビットであり、書き込み操作が実行された際にカウンターを停止します。タイマーがすでに停止している場合、STOPへの1の書き込みは無効です。ストップビットに0を書き込むことは無効です。 Start/Stop control bitsをオフにしてタイマーのハードウェアをコンフィグレーションしている場合、STOPビットの書き込みは無効です。 |
注意
|
period_nレジスター
period_nレジスターはともに、タイムアウト周期の値を格納します。次のいずれかが発生すると、内部カウンターにはこれらのレジスターに格納されている値がロードされます。
- period_nレジスターのいずれかへの書き込み操作
- 内部カウンターが0になる
タイマーの実際の周期は、period_nレジスターに格納されている値よりも1サイクル大きくなります。これは、カウンターが値0を1クロックサイクルに想定しているためです。
period_nレジスターのいずれかに書き込みを行うと、ハードウェアがStart/Stop control bitsをオフにしてコンフィグレーションされている場合を除き、内部カウンターが停止します。Start/Stop control bitsがオフの場合は、レジスターの1つに書き込みを行ってもカウンターは停止しません。ハードウェアがWriteable periodを無効にしてコンフィグレーションされている場合、period_nレジスターの1つに書き込みを行うと、カウンターはシステム生成時に指定されている固定Timeout Periodにリセットされます。
snap_nレジスター
マスター・ペリフェラルでは、現在の内部カウンターの一貫したスナップショットを要求することができます。これは、snap_nレジスターの1つに書き込み操作を実行することにより行います (書き込みデータは無視されます)。書き込みが発生すると、カウンターの値がsnap_nレジスターにコピーされます。スナップショットは、カウンターが実行されているかいないかにかかわらず発生します。スナップショットを要求しても、内部カウンターの動作は変わりません。