割込みのサンプル(RZ/T1)

返信する
アバター
eForce技術担当
記事: 179
登録日時: 2014年4月24日(木) 14:18

割込みのサンプル(RZ/T1)

投稿記事 by eForce技術担当 » 2016年2月05日(金) 22:58

μC3/Standardで割込みを扱う手順をサンプルコード(添付ファイル RTK7910022C00000BR.CMT.zip)を交えて説明します。

■サンプルコード
RTK7910022C00000BR.CMT.zip
CMT割込みサンプルソースコード(開発ツールEWARM)
(24.47 KiB) ダウンロード数: 317 回
■動作環境
  • CPU Renesas社 RZ/T1
  • ボード Rensas社 RZ/T1評価ボード RTK7910022C00000BR
■サンプルコードの動作

  コンペアマッチタイマ(CMT) ユニット1のチャネル0を使用して1ミリ秒毎にコンペアマッチ割込みを発生させます。
  1000回割込みが発生すると、LED表示を反転させます。
  (1秒毎にLEDの状態が変化します。)
  サンプルコードを動作させる手順はファイル解凍後に生成されるファイル「EWARM\RAM\Readme_EWARM.txt」を参照してください。

■割込みを扱う手順
  1. コンフィグレータを起動し、プロジェクトを開いてください。(または、新規に作成してください)
  2. 割込みサービスルーチンを登録してください。
    割込みサービスルーチンのパラメータの詳細は次のドキュメントを参照してください。
      ・μC3/Standard ユーザーズガイドのcre_isrの説明
      ・μC3/Standardユーザーズガイド プロセッサ依存部 Cortex-R4編
    割込み番号は割込みコントローラのベクタ番号を入力してください。
    ベクタ番号は「RZ/T1グループ ユーザーズマニュアル ハードウェア編」の「12.4.3 ベクタテーブル」を参照してください。
    「RZ/T1グループ ユーザーズマニュアル ハードウェア編」はルネサス社のWebページから入手してください。
    config_isr1.jpg
  3. コンフィグレータからソースコードを生成してください。(メニューの「プロジェクト」→「ソース生成」)
    config_isr2.jpg
  4. ソースコード生成直後は、main.cに登録した割込みサービスルーチンの関数がありますが、中身が実装されていないので、実装してください。
    isr_code.jpg
    ※サンプルコードでは割込みサービスルーチン「CMTSample_isr」を main.c から sample_CMT.c に移動しています。
  5. コンフィグレータで登録したOSリソースはシステム起動時に初期化ハンドラで生成されます。
    ユーザがリソース生成のコードを書く必要はありません。
    下のコードはコンフィグレータが生成したコードになります。(割込みサービスルーチンを生成しています。)
    初期化ハンドラ.jpg
  6. CMT設定、割込みを割込みを許可します。(サンプルコード: sample_CMT.c CMTSampleTask関数)
    ena_int.jpg
  7. 割込みが発生する条件(サンプルコードでは1ミリ秒経過)を満たせば、コンフィグレータで登録した割込みサービスルーチンが実行されます。
■補足

サンプルコードでは割込みサービスルーチンの他に、コンフィグレータにタスクとセマフォも登録しています。
これらのOSリソースは割込みサービスルーチンと同様にコンフィグレータで登録したOSリソースはシステム起動時に初期化ハンドラで生成されるので、
ユーザがリソース生成のコード(acre_xxx関数、cre_xxx関数を実行するコード)を書く必要はありません。
  • タスク
    タスク.jpg
    セマフォ
    セマフォ.jpg

返信する