• 検索結果がありません。

TMSx70 MCU の RTI(リアルタイム割り込み)を使用してオペレーティングシステムの Tick を発生させる方法

N/A
N/A
Protected

Academic year: 2021

シェア "TMSx70 MCU の RTI(リアルタイム割り込み)を使用してオペレーティングシステムの Tick を発生させる方法"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

Application Report

JAJA237

この資料は、Texas Instruments Incorporated(TI)が英文で記述した資料 を、皆様のご理解の一助として頂くために日本テキサス・インスツルメンツ (日本TI)が英文から和文へ翻訳して作成したものです。 資料によっては正規英語版資料の更新に対応していないものがあります。 日本TIによる和文資料は、あくまでもTI正規英語版をご理解頂くための補 助的参考資料としてご使用下さい。 製品のご検討およびご採用にあたりましては必ず正規英語版の最新資料を ご確認下さい。 TIおよび日本TIは、正規英語版にて更新の情報を提供しているにもかかわ

TMSx70 MCUのRTI(リアルタイム割り込み)を使用して

オペレーティングシステムのTickを発生させる方法

参 考 資 料

このアプリケーションノートの目的は、T M Sx70シリーズ MCUのRTIモジュールの設定方法の一助となることである。 TIのTMSx70ファミリーのMCUはローパワー32ビットRISC MCUファミリーの一員で先進的なアーキテクチャ、豊富な周辺 セットを備えている。 Hari Udayakumar

要 約

SPNA123 翻訳版 最新の英語版資料 http://www.ti.com/lit/spna123 内 容 1. イントロダクション ...2 2. OSのためのティック生成 ...3

3. Appendix A Software Listing ...7

説明図 図1. RTI Module Block Diagram ...2

図2. RTI Counter Block (x) Diagram ...3

図3. Operating System Tick Generation Block Diagram...3

図4. RTI Clock Source Selection and Pre-Scaling ...4

図5. Operating System Tick Output Waveform...5

図6. Software Flow Diagram ...6

(2)

2

1 イントロダクション

1.1 リアルタイム割り込み

RTIモジュールはOSのためのタイマー機能やコードのベンチ マークに必要なタイマー機能を提供する。このモジュールはマ ルチプルカウンターを備えており、このマルチプルカウンターは OSのスケジューリングに必要なタイムベースを定義する。 このアプリケーションノートはTMSx70 RTI ユーザーガイドと 併用して参照されるものである。 主な特長  • 2つの独立したカウンターブロックで構成(異なったタイム ベースを生成)それぞれのブロックは次のもので構成され ている - 32ビット プリスケール・カウンタ - 32ビット フリーラン・カウンタ  • システムあるいは周辺割り込みのために、2つまでのタイ ムスタンプ(キャプチャ)。それぞれのカウンタブロックに対 して1つ  • フリーラン・カウンタ0は、内部プリスケール・カウンタあるい は外部イベントによりインクリメント可能 (クロック監視を含むFlexRayネットワークでのアプリケー ションの同期のため)  • 外部クロックが予め定義されたウィンドウの中でインクリ メントされ故障と判断された場合は、オプショナルの外部 クロック監視回路によって内部のプリスケール・カウンタ0 に切り替え可能  • OS用のティックやDMAリクエストのための4つのコンフィ ギュアブル・コンペアレジスタ それぞれのイベントはカウンタブロック0あるいはカウンタ ブロック1でドライブされる  • 全てのコンペアレジスタの自動アップデート(コンペアマッ チで周期割り込みを発生させるとき)  • 割り込みの高速なイネーブル/ディスエーブル  • どのようなクロックソースから生成されたRTIクロック入力 でも、システムモジュールの中で選択可能

Counter Block 0

64 bit

incl Flex Ray Feature

Capture Feature

Event0

VIM REQ[2]

DMA REQ[12]

Event2

VIM REQ[4]

DMA REQ[18]

Event3

VIM REQ[5]

DMA REQ[19]

Event1

VIM REQ[3]

DMA REQ[13]

Counter Block

64 bit

Capture Feature

1

32 32 32 32 32 32

RTICLK

RTICLK

FlexRay Macrotick (NTU0)

FlexRay Start of Cycle

図 1. RTI Module Block Diagram

(3)

www.tij.co.jp

1.3 RTIカウンタ ブロック

(x)ダイヤグラム

下図(図2)はRTIカウンタブロック(X)の簡略化されたブ ロック図である。 RTICLKは32ビットRTIUPCxカウンタでプリスケールさ れる。 RTIUPCxカウンタはRTICPUCxレジスタの中の比較 値が到達するまでカウントアップする。比較値が一致する と、RTIFRCxカウンタはインクリメントされる。 0 : 32 2 ! 0 : 1 RTICLK If CPUx FRCx RTICLK If CPUx FRCx CPUCx

INT_Req

or

DMA_Req

RTICLK

RTIUPCx

RTICPUCx

RTIFRCx

RTICOMPx

RTI 64-Bit Counter Block (x)

RTICAUCx

RTICAFRCx

(1)

図 2. RTI Counter Block (x) Diagram

図 3. Operating System Tick Generation Block Diagram

GIOA [2] GIOA [1] GIOA [0]

1ms

10ms

5ms

OS

Task 1

control block

Task 2

control block

Task 3

control block

Real Time

Interrupt

2 OSのためのティック生成

この項はある周期(調整可能)でOSティック割り込みを発 生するためのRTIモジュールの使い方を説明する。 必要なOSティックの生成と、それに相当するタスクを実 行するために3つのコンペア割り込みが用いられる。タス 0 : 32 2 ! 0 : 1 RTICLK If CPUx FRCx RTICLK If CPUx FRCx CPUCx

INT_Req

or

DMA_Req

RTICLK

RTIUPCx

RTICPUCx

RTIFRCx

RTICOMPx

RTI 64-Bit Counter Block (x)

RTICAUCx

RTICAFRCx

(1)

図 2. RTI Counter Block (x) Diagram

図 3. Operating System Tick Generation Block Diagram

GIOA [2] GIOA [1] GIOA [0]

1ms

10ms

5ms

OS

Task 1

control block

Task 2

control block

Task 3

control block

Real Time

Interrupt

クコールを解りやすくするために、独立したI/Oピンはサン プルコードの中でトグルされている。 異なったタイムベースを使ってタスクをトリガーするた めに、3つの異なった割り込みをどのように構成するかを、 このアプリケーションノートは示している。(図3を参照)

2.1 フロー図

第3図は割り込みを用いて、異なる時間間隔でタスクを起動 するRTIモジュールの使い方を示します。

 • Compare 0 Interrupt – Task1 (GIO- PortA [0] Pin

Toggle) - 10mS.

 • Compare 1 Interrupt – Task2 (GIO- PortA [1] Pin

Toggle) - 5mS.

 • Compare 2 Interrupt – Task3 (GIO- PortA [2] Pin

(4)

4 www.tij.co.jp

2.2 周波数とTカウントの計算について

カウンタブロックへのRTICLKはアプリケーションの要 求にしたがって、システムモジュールの中のRTICLKSRC レジスタをプログラム可能である。もし、RTICLK源が VCLKだけの場合、RTICLK源はVCLKよりも少なくとも 3倍遅くなくてはならない。これはRTICLKSRCレジスタ のRTIxDIVビットをコンフィグすることによって可能。 図4はRTICLKSRCレジスタとRTICPUCxレジスタを使用 してRTICLKの選択とプリスケールを設定することを現し ている。 RTICPUCxレジスタを設定してRTICLKを2分の1にプリス ケールします。セクション1.3を参照してください。

2.3 カウント値の比較の計算法

周期的なOSのティックのためのコンペアレジスタのカ ウ ン ト 値 は T カ ウ ン ト 周 期 か ら 計 算 で 求 め ら れ る 。 RTICLKはUPカウンタ(x)でプリスケールされ、それぞれの フリーラン(x)カウンタに供給される。 8 • 8 • 0 0 1 1 1 4 1 1 • 0 4 0.25 RITCLK VCLK MHz RTICLK MHz FRC CLK CPUC MHz Tcount FRC CLK MHz s

Compare Count Value Task0 ( 1)

1 10 40000

0.25

T period ms Tcount s

Compare Count Value Task1 ( 2)

2 5 20000

0.25

T period ms Tcount S

Compare Count Value Task2 ( 3)

3 1 4000 0.25 T period ms Tcount S (2)

• Task1 = T1period = 10ms

• Task2 = T2period = 5ms

• Task3 = T3period = 1ms

(3) RTICLK RTIx SRC [3:0] RTICLKSRC Reg

RTIxDIV [3:0] RTIUPCx RTIFRCx

RTICPUC DiffClk

Sources

図 4. RTI Clock Source Selection and Pre-Scaling

8 • 8 • 0 0 1 1 1 4 1 1 • 0 4 0.25 RITCLK VCLK MHz RTICLK MHz FRC CLK CPUC MHz Tcount FRC CLK MHz s

Compare Count Value Task0 ( 1)

1 10 40000

0.25

T period ms Tcount s

Compare Count Value Task1 ( 2)

2 5 20000

0.25

T period ms Tcount S

Compare Count Value Task2 ( 3)

3 1 4000 0.25 T period ms Tcount S (2)

• Task1 = T1period = 10ms

• Task2 = T2period = 5ms

• Task3 = T3period = 1ms

(3) RTICLK RTIx SRC [3:0] RTICLKSRC Reg

RTIxDIV [3:0] RTIUPCx RTIFRCx

RTICPUC DiffClk

Sources

図 4. RTI Clock Source Selection and Pre-Scaling

8 • 8 • 0 4 0 1 1 1 1 1 • 0 4 0.25 RITCLK VCLK MHz RTICLK MHz FRC CLK MHz CPUC Tcount FRC CLK MHz s

Compare Count Value Task0 ( 1)

1 10 40000

0.25

T period ms Tcount s

Compare Count Value Task1 ( 2)

2 5 20000

0.25

T period ms Tcount S

Compare Count Value Task2 ( 3)

3 1 4000 0.25 T period ms Tcount S (2)

• Task1 = T1period = 10ms

• Task2 = T2period = 5ms

• Task3 = T3period = 1ms

(3) RTIx SRC [3:0] RTICLKSRC Reg

RTIxDIV [3:0] RTIUPCx RTIFRCx

RTICPUC DiffClk

Sources

図 4. RTI Clock Source Selection and Pre-Scaling

このように、INT0、INT1、INT2の割り込みのために周 期的なティックを発生することができる。 8 • 8 • 0 0 1 1 1 4 1 1 • 0 4 0.25 RITCLK VCLK MHz RTICLK MHz FRC CLK CPUC MHz Tcount FRC CLK MHz s

Compare Count Value Task0 ( 1)

1 10 40000

0.25

T period ms Tcount s

Compare Count Value Task1 ( 2)

2 5 20000

0.25

T period ms Tcount S

Compare Count Value Task2 ( 3)

3 1 4000 0.25 T period ms Tcount S (2)

• Task1 = T1period = 10ms

• Task2 = T2period = 5ms

• Task3 = T3period = 1ms

(3) RTICLK RTIx SRC [3:0] RTICLKSRC Reg

RTIxDIV [3:0] RTIUPCx RTIFRCx

RTICPUC DiffClk

Sources

(5)

5 www.tij.co.jp 図 5. OSティック出力波形

2.4 OSティック出力波形

2.5 OSティック生成のためのコンフィグ

レーション(手順)

 • システムモジュールの中のRTICLKSRCレジスタを使 用して、VCLKを選択する  • 次のクロック設定を選択: 2 HCLK OSCIN HCLK VCLK RTICLK VCLK (4) Start Select RTI CLK source Configure UCx, CPUCx, FRCx Configure GIOA, COMPx Reg and UDCOMPx Reg Enable the interrupt

Enable RTI Counter Block Check for Interrupt

Task 1 ISR Task 2 ISR Task 3 ISR

Clear INT0

interrupt Clear INT1interrupt Clear INT2interrupt

Toggle GIOA

[0] Toggle GIOA[1] Toggle GIOA[2]

 • RTICOMP(x)レジスタとそれぞれのRTIUDCP(x)レ ジスタを(x)カウント値を初期化するために設定  • GIOポートAを出力に設定  • RTIモジュール割り込みを設定 例:RTISETINTとステータスレジスタ   例:RTIINTFLAG - 割り込みのペンディングをクリア - コンペア0, 1, 2割り込みをイネーブル  • コンペア0割り込みサービスルーチンは次のことを行 うように設定: - Comp0割り込みフラグはRTIINTFLAGレジスタ のINT0ビットに1を書き込みことによってクリ アされる - GIO ポートA - ピン0をトグル  • コンペア1割り込みサービスルーチンは次のことを行 うように設定: - Comp1割り込みフラグはRTIINTFLAGレジスタ のINT1ビットに1を書き込みことによってクリ アされる - GIO ポートA - ピン1をトグル  • コンペア2割り込みサービスルーチンは次のことを行う ように設定: - Comp2割り込みフラグはRTIINTFLAGレジスタ のINT2ビットに1を書き込みことによってクリ アされる - GIO ポートA - ピン2をトグル

(6)

6 www.tij.co.jp 2 HCLK VCLK RTICLK VCLK (4)

図 6. Software Flow Diagram Start Select RTI CLK source Configure UCx, CPUCx, FRCx Configure GIOA, COMPx Reg and UDCOMPx Reg Enable the interrupt

Enable RTI Counter Block Check for Interrupt

Task 1 ISR Task 2 ISR Task 3 ISR

Clear INT0

interrupt Clear INT1interrupt Clear INT2interrupt

Toggle GIOA

[0] Toggle GIOA[1] Toggle GIOA[2]

2.6 Software Flow

図 7. Output Waveform

(7)

www.tij.co.jp

(8)

図 1. RTI Module Block Diagram
図 3. Operating System Tick Generation Block Diagram
図 4. RTI Clock Source Selection and Pre-Scaling
図 6. Software Flow DiagramStartSelect RTI CLKsourceConfigure UCx,CPUCx, FRCxConfigure GIOA,COMPx Reg andUDCOMPx RegEnable the interrupt

参照

関連したドキュメント

CN 割り込みが発生した場合、ユーザーは CN ピンに対応する PORT レジスタを読み出す

重要な変調周波数バンド のみ通過させ認識性能を向 上させる方法として RASTA が知られている. RASTA では IIR フィルタを用いて約 1 〜 12 Hz

YouTube では、パソコンの Chrome、Firefox、MS Edge、Opera ブラウザを使った 360° 動画の取り込みと 再生をサポートしています。また、YouTube アプリと YouTube Gaming

 TV会議やハンズフリー電話においては、音声のスピーカからマイク

12,000 円割引 + 500 円割引 = 12,500 インターネットからの 新規お申込みだと 円割引 ※1. 初度登録から

IDLE 、 STOP1 、 STOP2 モードを解除可能な割り込みは、 INTIF を経由し INTIF 内の割り. 込み制御レジスター A で制御され CPU へ通知されます。

【ご注意点】 ・カタログの中からお好みの商品を1点お 選びいただき、同封のハガキに記載のお

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot