Comments
Description
Transcript
AP-RZA-0A RTXサンプルプログラム解説
アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. AP-RZA-0A (RZ/A1H CPU BOARD) RTX サンプルプログラム解説 2版 2015年 10月2日 1. 概要 ...................................................................................................... 2 1.1 概要 .......................................................................................................................... 2 1.2 RTX について .............................................................................................................. 2 1.3 動作モード .................................................................................................................. 2 1.4 開発環境について ......................................................................................................... 6 1.5 ワークスペースについて................................................................................................. 6 2. サンプルプログラムの構成 .......................................................................... 7 2.1 フォルダ構成 ............................................................................................................... 7 2.2 ファイル構成 ............................................................................................................... 8 3. AP-RZA-0A サンプルプログラム................................................................13 3.1 ビルド・デバッグ方法 .................................................................................................. 13 3.1.1 プロジェクトのインポート ...................................................................................... 13 3.1.2 プロジェクトのビルド ............................................................................................ 16 3.1.3 RAM 上でのデバッグ .............................................................................................. 17 3.1.4 ROM 上でのデバッグ ............................................................................................. 22 3.2 動作説明 .................................................................................................................... 27 3.2.1 ブート処理 .......................................................................................................... 27 3.2.2 サンプルプログラム概要 ......................................................................................... 28 3.2.3 モニタプログラム概要 ............................................................................................ 29 3.2.4 モニタプログラムコマンド一覧................................................................................. 30 3.3 RAM 動作時のメモリマップ ........................................................................................... 36 3.4 ROM 動作時のメモリマップ ........................................................................................... 37 1 アプリケーションノート 1. AN1602 ALPHA PROJECT Co.,LTD. 概要 1.1 概要 本アプリケーションノートでは、AP-RZA-0A に付属するサンプルプログラムについて解説します。 本サンプルプログラムの概要を以下に記します。 サンプルプログラム RTX サンプルプログラム 動作内容 ・RTX ・シリアル通信 ・タイマ割り込み ・オーディオ入出力 ・CAN 通信 ・ビデオ入力 ・LCD 出力 1.2 RTX について CMSIS-RTOS RTX は ARMTM 社によって提供される無料の RTOS です。 ロイヤリティフリーであり、BSD ライセンスの下、ソースコードにて提供されるリアルタイムオペレーティングシステムです。 タイマ、セマフォ、シグナル管理、ミューテックス、メモリプール、メールボックスなどの機能を備えています。 CMSIS-RTOS RTX は ARM 純正リファレンスソフトウェア開発環境である ARM Development Studio5TM(DS-5TM) に 付属しています。 1.3 動作モード 本サンプルプログラムは、AP-RZA-0A で動作します。CPU 動作モード、各メモリ設定は下記のようになっています。 モードの設定方法等につきましては、「AP-RZA-0A ハードウェアマニュアル」をご覧下さい。 なお、下記条件以外で動作させる場合には、ソースファイルやコンパイラオプションなどを変更する必要があります。 ブートモード : ブートモード3(シリアルフラッシュブート) SDRAM 設定 : SDRAM を使用する USB1 設定 : USB ホストモード AUDIO 設定 : オーディオを使用する Ethernet 設定 : Ethernet を使用する 2 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. JSW3 JSW4 JP3 JSW1 JP4 SW2 3 JSW2 AN1602 アプリケーションノート ALPHA PROJECT Co.,LTD. CPU ボードの設定を製品出荷時の設定とし、使用方法に合わせて以下の各スイッチの設定を行ってください。 JP3, 4 は短絡されている状態とします。 ・SW2 SW2 O N <SW2 設定> ブートモード : CS3(SPI フラッシュ)ブート 6 5 4 3 2 1 ・JSW1 <JSW1 設定> : 使用する OFF JSW1 ON ボード上の SDRAM ・JSW2 <JSW2 設定> HOST USB1 の動作モード : USB ホストモード FUNC JSW2 ・JSW3 ON OFF <JSW3 設定> Ethernet JSW3 4 : 使用する アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. ・JSW4 <JSW4 設定> AUDIO ON OFF JSW4 5 : 使用する アプリケーションノート 1.4 AN1602 ALPHA PROJECT Co.,LTD. 開発環境について 本サンプルプログラムは総合開発環境 ARM Development Studio 5 (DS-5)を用いて開発されています。 サンプルプログラムに対応する開発環境、コンパイラのバージョンは次のようになります。 開発環境 ARM バージョン 5.19.1 Development コンパイラ名 バージョン ARM 5.04 update 2 備考 DS-5 Renesas RZEdition Compiler Studio 5 1.5 ワークスペースについて 本サンプルプログラムの総合開発環境 ARM Development Studio 5 ワークスペースは次のフォルダに格納されています。 サンプルプログラム RTX サンプルプログラム フォルダ \sample\ap_rza_0a_rtx プロジェクトフォルダ 6 アプリケーションノート 2. AN1602 ALPHA PROJECT Co.,LTD. サンプルプログラムの構成 2.1 フォルダ構成 サンプルプログラムは下記のようなフォルダ構成になっています。 sample ap_rza_0a_rtx RTX サンプルプログラムプロジェクトフォルダ BAT バイナリ生成用バッチファイルフォルダ Debug RAM 動作用ワークフォルダ FW Flash 書き込み用ファイルフォルダ Include RTX インクルードフォルダ Release ROM 動作用ワークフォルダ RTX RTX フォルダ SCAT スキャッタローディングファイルフォルダ SRC ソースファイルフォルダ ap_rza_0a ボード依存部ソースフォルダ audio オーディオドライバフォルダ boot ブート処理フォルダ clkgen クロックジェレネータドライバフォルダ dvdec ビデオデコーダドライバフォルダ eeprom EEPROM ドライバフォルダ gpio GPIO ドライバフォルダ lcdkit LCDKIT ドライバフォルダ monitor モニタ用テストプログラムフォルダ riic RIIC ドライバフォルダ rscan RSCAN ドライバフォルダ rspi RSPI ドライバフォルダ rtc RTC ドライバフォルダ scif SCIF ドライバフォルダ sflash シリアルフラッシュドライバフォルダ ssi SSI ドライバフォルダ vdc5 ビデオディスプレイコントローラドライバ common.h 共通ヘッダファイル main.c メインソースファイル retarget.c 出力再定義ファイル 7 アプリケーションノート 2.2 AN1602 ALPHA PROJECT Co.,LTD. ファイル構成 サンプルプログラムは以下のファイルで構成されています。 <\sample フォルダ内> ap_rza_0a_rtx ・・・ AP-RZA-0ARTX サンプルプログラムプロジェクトフォルダ .cproject ・・・ CPROJECT ファイル .project ・・・ PROJECT ファイル Makefile ・・・ メイクファイル <\sample\ap_rza_0a_rtx フォルダ内> <\sample\ap_rza_0a_rtx\BAT フォルダ内> make_bin.bat ・・・ バイナリファイル生成用バッチファイル <\sample\ap_rza_0a_rtx\Debug フォルダ内> ap_rza_0a_rtx.axf ・・・ サンプルプログラム RAM 動作用オブジェクトファイル コンパイル後は SRC フォルダが生成され、SRC フォルダ下 にオブジェクトファイル等が生成されます。 <\sample\ap_rza_0a_rtx\FW フォルダ内> BIN ・・・ 書き込みバイナリファイル格納フォルダ FlashWriter.ds ・・・ フラッシュ書き込み用デバッグスクリプトファイル <\sample\ap_rza_0a_rtx\FW\BIN フォルダ内> ap_rza_0a_rtx.bin ・・・ 書き込み用バイナリファイル \sample\rza_0a_rtx\Release フォルダ下にある 同一名称のファイルと同じものとなります。 8 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. <\sample\ap_rza_0a_rtx\Include フォルダ内> arm_common_tables.h ・・・ コモンテーブルヘッダファイル arm_math.h ・・・ DSP 共通ヘッダファイル core_ca_mmu.h ・・・ MMU スタートアップファイル core_ca9.h ・・・ ペリフェラルアクセスレイヤヘッダファイル core_caFunc.h ・・・ コアファンクションアクセスヘッダファイル core_caInstr.h ・・・ コアペリフェラルアクセスヘッダファイル core_cm0.h ・・・ Cortex-M0 コアペリフェラルアクセスヘッダファイル core_cm0plus.h ・・・ Cortex-M0+ コアペリフェラルアクセスヘッダファイル core_cm3.h ・・・ Cortex-M3 コアペリフェラルアクセスヘッダファイル core_cm4.h ・・・ Cortex-M4 コアペリフェラルアクセスヘッダファイル core_cm4_simd.h ・・・ Cortex-M4 SIMD ヘッダファイル core_cmFunc.h ・・・ Cortex-M コアファンクションアクセスヘッダファイル core_cmInstr.h ・・・ Cortex-M コア命令アクセスヘッダファイル core_sc000.h ・・・ SC000 コアペリフェラルアクセスレイヤヘッダファイル core_sc300.h ・・・ SC300 コアペリフェラルアクセスレイヤヘッダファイル <\sample\ap_rza_0a_rtx\Release フォルダ内> ap_rza_0a_rtx.axf ・・・ サンプルプログラム ROM 動作用オブジェクトファイル ap_rza_0a_rtx.bin ・・・ サンプルプログラム ROM 動作用バイナリファイル コンパイル後は SRC フォルダが生成され、SRC フォルダ下 にオブジェクトファイル等が生成されます。 <\sample\ap_rza_0a_rtx\RTX フォルダ内> INC ・・・ RTX インクルードフォルダ LIB ・・・ RTX ライブラリフォルダ <\sample\ap_rza_0a_rtx\RTX\INC フォルダ内> cmsis_os.h ・・・ RTX テンプレートヘッダファイル RTX_CM_lib.h ・・・ RTX カーネルコンフィグレーションファイル <\sample\ap_rza_0a_rtx\RTX\LIB フォルダ内> ARM ・・・ ARM 用ライブラリフォルダ <\sample\ap_rza_0a_rtx\RTX\LIB\ARM フォルダ内> RTX_CA9_L.lib ・・・ Cortex-A9 用ライブラリファイル RTX_CM0.lib ・・・ Cortex-M0 用ライブラリファイル RTX_CM0_B.lib ・・・ Cortex-M0 用ライブラリファイル RTX_CM3.lib ・・・ Cortex-M3 用ライブラリファイル RTX_CM3_B.lib ・・・ Cortex-M3 用ライブラリファイル RTX_CM4.lib ・・・ Cortex-M4 用ライブラリファイル RTX_CM4_B.lib ・・・ Cortex-M4 用ライブラリファイル 9 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. <\sample\ap_rza_0a_rtx\SCAT フォルダ内> ap_rza_0a_rtx_ram.scat ・・・ サンプルプログラム RAM 動作用 スキャッタローディングファイル ap_rza_0a_rtx_rom.scat ・・・ サンプルプログラム ROM 動作用 スキャッタローディングファイル <\sample\ap_rza_0a_rtx\RTX\SRC フォルダ内> common.h ・・・ 共通インクルードヘッダファイル main.c ・・・ メイン処理 retarget.c ・・・ C ライブラリ用再実装 <\sample\ap_rza_0a_rtx\RTX\SRC\ap_rza_0a フォルダ内> ARM ・・・ ARM 処理フォルダ iodefine ・・・ RZ 内部レジスタ定義ヘッダファイルフォルダ gic.c ・・・ GIC ファンクション処理 gic.h ・・・ GIC ファンクションヘッダファイル iodefine.h ・・・ 内部レジスタ定義ファイル mmu_Renesas_RZ_A1.c ・・・ MMU スタートアップ処理 pl310.c ・・・ PL310 処理 pl310.h ・・・ PL310 処理ヘッダファイル r_typedefs.h ・・・ 型宣言ファイル Renesas_RZ_A1.h ・・・ ペリフェラルアクセスヘッダファイル RTX_Conf_CM.c ・・・ RTX コンフィグレーションファイル system_Renesas_RZ_A1.c ・・・ RTX デバイス処理 system_Renesas_RZ_A1.h ・・・ RTX デバイス処理ヘッダファイル typedefine.h ・・・ 型宣言ファイル <\sample\ap_rza_0a_rtx\RTX\SRC\audio フォルダ内> max9867.c ・・・ MAX9867 ドライバ max9867.h ・・・ MAX9867 ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\boot フォルダ内> boot.c ・・・ ブート処理 boot.h ・・・ ブート処理ヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\clkgen フォルダ内> cdce913.c ・・・ クロックジェネレータドライバ cdce913.h ・・・ クロックジェネレータドライバヘッダファイル 10 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. <\sample\ap_rza_0a_rtx\RTX\SRC\dvdec フォルダ内> dvdec.c ・・・ ビデオデコーダドライバ dvdec.h ・・・ ビデオデコーダドライバヘッダファイル dvdec_filter.h ・・・ ビデオデコーダフィルタ設定値ヘッダファイル dvdec_param.h ・・・ ビデオデコーダパラメータヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\eeprom フォルダ内> 24lc01b.c ・・・ EEPROM ドライバ 24lc01b.h ・・・ EEPROM ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\gpio フォルダ内> gpio.c ・・・ GPIO ドライバ gpio.h ・・・ GPIO ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\lcdkit フォルダ内> lcdkit_b01 ・・・ LCD-KIT-B01 ドライバフォルダ lcdkit_c01 ・・・ LCD-KIT-C01 ドライバフォルダ lcdkit_d01 ・・・ LCD-KIT-D01 ドライバフォルダ lcdkit.c ・・・ LCD-KIT ドライバファイル lcdkit.h ・・・ LCD-KIT ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\lcdkit\lcdkit_b01 フォルダ内> lcdkit_b01.c ・・・ LCD-KIT-B01 ドライバファイル lcdkit_b01.h ・・・ LCD-KIT-B01 ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\lcdkit\lcdkit_c01 フォルダ内> lcdkit_c01.c ・・・ LCD-KIT-C01 ドライバファイル lcdkit_c01.h ・・・ LCD-KIT-C01 ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\lcdkit\lcdkit_d01 フォルダ内> lcdkit_d01.c ・・・ LCD-KIT-D01 ドライバファイル lcdkit_d01.h ・・・ LCD-KIT-D01 ドライバヘッダファイル 11 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. <\sample\ap_rza_0a_rtx\RTX\SRC\monitor フォルダ内> ascii.h ・・・ アスキーコード定義ファイル mon_audio.c ・・・ オーディオサンプル処理 mon_audio.h ・・・ オーディオサンプル処理ヘッダファイル mon_can.c ・・・ CAN サンプル処理 mon_can.h ・・・ CAN サンプル処理ヘッダファイル mon_eeprom.c ・・・ EEPROM サンプル処理 mon_eeprom.h ・・・ EEPROM サンプル処理ヘッダファイル mon_serial.c ・・・ シリアルサンプル処理 mon_serial.h ・・・ シリアルサンプル処理ヘッダファイル monitor.c ・・・ サンプルメイン処理 monitor.h ・・・ サンプルメイン処理ヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\riic フォルダ内> riic.c ・・・ RIIC ドライバ riic.h ・・・ RIIC ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\rscan フォルダ内> rscan.c ・・・ RSCAN ドライバ rscan.h ・・・ RSCAN ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\rspi フォルダ内> rspi.c ・・・ RSPI ドライバ rspi.h ・・・ RSPI ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\s35390a フォルダ内> s35390a.c ・・・ S35390A ドライバ s35390a.h ・・・ S35390A ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\scif フォルダ内> scif.c ・・・ シリアル通信ドライバ scif.h ・・・ シリアル通信ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\sflash フォルダ内> sflash.c ・・・ シリアル FlashROM ドライバファイル sflash.h ・・・ シリアル FlashROM ヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\ssi フォルダ内> ssi.c ・・・ SSI ドライバ ssi.h ・・・ SSI ドライバヘッダファイル <\sample\ap_rza_0a_rtx\RTX\SRC\vdc5 フォルダ内> vdc5.c ・・・ ビデオディスプレイコントローラドライバファイル vdc5.h ・・・ ビデオディスプレイコントローラドライバヘッダファイル 12 アプリケーションノート 3. AN1602 ALPHA PROJECT Co.,LTD. AP-RZA-0A サンプルプログラム 3.1 ビルド・デバッグ方法 3.1.1 プロジェクトのインポート ① DS-5 を起動し、メニューバーの [ファイル]→ [インポート]を選択します。 ② [既存のプロジェクトをワークスペースへ]を選択し [次へ]を選択します。 13 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. ③ [ルート・ディレクトリーの選択]を選択し、[参照]からサンプルプログラムのフォルダを選択します。 ④ [終了]を選択します。 14 アプリケーションノート ⑤ AN1602 ALPHA PROJECT Co.,LTD. ナビゲータウィンドウにサンプルプログラムのプロジェクトが追加されていることを確認します。 15 アプリケーションノート 3.1.2 AN1602 ALPHA PROJECT Co.,LTD. プロジェクトのビルド メニューの「ビルド」アイコンを選択します。 構成が Debug の場合、\Debug ワークフォルダに RAM 動作用のオブジェクトファイルが、Release の場合、 \Release ワークフォルダ内に ROM 動作用のオブジェクトファイルが生成されます。 DS-5 の詳細な使用方法に関しては DS-5 のマニュアルを参照してください。 16 アプリケーションノート 3.1.3 AN1602 ALPHA PROJECT Co.,LTD. RAM 上でのデバッグ ① 「「DS-5 デバッグ」 パースペクティブ」をクリックし、DS-5 のデバッグ画面へ移行します。 ② 「実行」→「デバッグコンフィグレーション」を選択します。 17 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. ③ 「DS-5 デバッガ」を選択し、[新規の起動構成]を選択します。 ④ 「名前(N)」に「ap_rza_0a_rtx_ram_sample」と入力し、ターゲットに「Renesas」→ 「RZ/A1H R7S721001」→「BereMetal Debug」→「Debug Cortex-A9」を選択します。 18 アプリケーションノート ⑤ AN1602 ALPHA PROJECT Co.,LTD. 「ターゲット接続」を「ULINK2」に設定し、「接続」の「参照...」を選択して ホスト PC に接続しているデバッガ(ULINK2)を選択します。 19 アプリケーションノート ⑥ AN1602 ALPHA PROJECT Co.,LTD. 「ファイル」タブを開き、「ワークスペース」から RAM デバッグ用にビルドしたオブジェクトファイル(ap_rza_0a_rtx.axf)を選択します。 20 アプリケーションノート ⑦ AN1602 ALPHA PROJECT Co.,LTD. 「OS の認識機能」タブを開き、プルダウンメニューから「Keil CMSIS-RTOS RTX」を選択し、 「適用」を選択し、「閉じる」を選択します。 ⑧ 「ターゲットに接続」アイコンを選択します。 ⑨ デバッガがターゲットに接続された後、デバッグを行います。 21 アプリケーションノート 3.1.4 AN1602 ALPHA PROJECT Co.,LTD. ROM 上でのデバッグ ROM デバッグを行う際には、事前にアプリケーションノート 「AN1604 AP-RZA-0A (RZ/A1H CPU BOARD) シリアル FlashROM の書き込み方法」を参考に、 ボード上のシリアルフラッシュにサンプルプログラム ROM 動作用バイナリファイルを書き込む必要がございます。 ① 「「DS-5 デバッグ」 パースペクティブ」をクリックし、DS-5 のデバッグ画面へ移行します。 ② 「実行」→「デバッグコンフィグレーション」を選択します。 22 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. ③ 「DS-5 デバッガ」を選択し、[新規の起動構成]を選択します。 ④ 「名前(N)」に「ap_rza_0a_rtx_rom_sample」と入力し、ターゲットに「Renesas」→ 「RZ/A1H R7S721001」→「BereMetal Debug」→「Debug Cortex-A9」を選択します。 23 アプリケーションノート ⑤ AN1602 ALPHA PROJECT Co.,LTD. 「ターゲット接続」を「ULINK2」に設定し、「接続」の「参照...」を選択して ホスト PC に接続しているデバッガ(ULINK2)を選択します。 24 アプリケーションノート ⑥ AN1602 ALPHA PROJECT Co.,LTD. 「ファイル」タブを開き、「ワークスペース」から ROM デバッグ用にビルドしたオブジェクトファイル(ap_rza_0a_rtx.axf)を選択します。 25 アプリケーションノート ⑦ AN1602 ALPHA PROJECT Co.,LTD. 「OS の認識機能」タブを開き、プルダウンメニューから「Keil CMSIS-RTOS RTX」を選択し、 「適用」を選択し、「閉じる」を選択します。 ⑧ 「ターゲットに接続」アイコンを選択します。 ⑨ デバッガがターゲットに接続された後、デバッグを行います。 26 アプリケーションノート 3.2 AN1602 ALPHA PROJECT Co.,LTD. 動作説明 3.2.1 ブート処理 AP-RZA-0A のブートモードがブートモード3(シリアルフラッシュブート)に設定されている場合、パワーオンリセット 解除後に CPU は 0xFFFF0000(内蔵 ROM)に格納されているブートプログラムを実行します。 このブートプログラムにより、SPI マルチ I/O バスコントローラが外部アドレス空間リードモードに設定され、基板上に 実装されたシリアルフラッシュに対し直接データの読み出しが可能になります(SPI マルチ I/O バス空間:0x18000000~)。 ブートプログラムの終了後、CPU は 0x18000000 に分岐します。 そのため、本サンプルプログラムでは例外処理ベクタテーブルを 0x18000000 に配置しブートプログラムの終了後に リセットハンドラ処理に分岐するようにしています。 リセットハンドラ処理ではベクタベースアドレスの設定、スタックの初期化、内臓 RAM 書き込みの許可、 MMU・キャッシュの初期化、クロック周波数の設定やボードの初期化を行い、 最後に ARM 統合開発環境 DS-5 のコンパイラツールチェーンによって提供されるC標準ライブラリ関数__main に分岐します。 __main 関数内ではスキャッタローディングファイルを利用したセクションの初期化やデータのコピーなどが行われ、 $Sub$main 関数を経た上で$Super$main 関数がコールされ main 関数に分岐します。 CPU のブートモードとブートモードに依存するそれぞれのブート処理に関しての詳細は下記資料を参考にしてください。 ・ 「RZ/A1H グループ ユーザーズマニュアル ハードウェア編」 ・ 「RZ/A1H グループ 初期設定例」 これらの資料は下記 URL から入手が可能です。 http://japan.renesas.com/products/mpumcu/rz/Documentation.jsp http://japan.renesas.com/products/mpumcu/rz/Application_Notes.jsp 27 アプリケーションノート 3.2.2 AN1602 ALPHA PROJECT Co.,LTD. サンプルプログラム概要 サンプルプログラムは、下記の動作を行います。 ● SCIF4 でエコーバックを行います。(送受信割り込み使用) SCIF4 から受信した値をそのまま、SCIF4 へ送信します。 COM ポートの設定は、115200bps、ビット長 8、パリティなし、ストップビット1、フロー制御なしです。 動作確認は、ホスト PC 上のターミナルソフト(ハイパーターミナルなど)を使用して行って下さい。 起動後、サンプルプログラムはこの動作を行います。このとき、SCIF から EXT コード(0x03)を受信した 場合、後述するモニタプログラムが動作します。 ● LD1(緑の LED)を 500msec 間隔で ON/OFF します。(RTX OS タイマ使用) ● 拡張 I/O ポートより方形波を出力します。周期とピン番号を下記の表に示します。 タイミングの生成は RTXOS のタイマ機能を使用します。 ● 上記を実行するためのスレッドとタイマを作成します。 各スレッド、タイマの設定については下記を参照してください。 方形波出力端子一覧 ピン番号 ピン名 周期 CN1.5 P5_8/LCD0_EXTCLK/IRQ0/DV1_CLK/DV0_CLK/CS2 10msec CN1.14 P7_8/RD/SSISCK3/CRx0/TIOC3A/IRQ1 10msec CN2.48 P5_10/WE3/DQMUU/AH/DV0_HSYNC/CTx1/ 10msec 備考 IETxD/LCD1_DATA17 信号名に#がついているものは負論理を表します。 RTXOS スレッド・タイマ一覧 種類 内容 優先度 スレッド メインスレッド。RTXOS の初期化にて生成。 Normal 通常の main()のように扱われる。 スレッド LED 点滅用スレッド。LED の点滅管理を行う。 Normal スレッド モニタスレッド。モニタプログラムの実行を行う。 Normal タイマ 1 ミリ秒タイマ。 Normal 28 備考 アプリケーションノート 3.2.3 AN1602 ALPHA PROJECT Co.,LTD. モニタプログラム概要 モニタプログラムは、シリアルコンソールを使用して AP-RZA-0A の動作を制御するプログラムです。 モニタプログラムはシリアルコンソールから別途定められたコマンドを受信することで動作を行います。 AP-RZA-0A とホスト PC モニタプログラム間の接続とコマンドのフォーマットを以下に記します。 USB ポートに接続 DC+5V USB ケーブル CN10 ホストコンピュータ 機種:PC/AT 互換機 OS :WindowsVista Windows7 Windows8 PC-USB-04 など RS232 レベル変換 アダプタ AP-RZA-0A MONITOR_CMD (ARG0) ARG1...<CR><LF> ● MONITOR_CMD はコマンドを示します。 ● (ARG0) ARG1...はコマンドの引数を示します。コマンドによって有効な引数の数は変化します。 複数の引数を指定する場合はそれぞれの引数を半角スペースで区切ってください。 (ARG0)のように括弧で囲われている場合、その引数は省略することが可能です。 ● <CR><LF>はコマンドの終端を通知します。この 2byte の受信を待ってモニタプログラムは1つの コマンドと認識します。 また、モニタプログラムにはディレクトリの概念が存在します。 全てのコマンドが常に実行可能ではなく、それぞれの機能を動作させるコマンドを実行するには 該当するディレクトリに移動する必要があります。 モニタプログラムが動作を開始した際、ディレクトリは最上位(root)に位置します。 29 アプリケーションノート 3.2.4 AN1602 ALPHA PROJECT Co.,LTD. モニタプログラムコマンド一覧 モニタプログラムで使用可能なコマンドの一覧を以下に記します。 3.2.4.1 root ディレクトリコマンド一覧 コマンド AUDIO<CR><LF> 説明 root ディレクトリから AUDIO ディレクトリに移動するコマンドで す。 コマンド CAN<CR><LF> 説明 root ディレクトリから CAN ディレクトリに移動するコマンドです。 コマンド EEPROM<CR><LF> 説明 root ディレクトリから EEPROM ディレクトリに移動する コマンドです。 コマンド SERIAL<CR><LF> 説明 root ディレクトリから SERIAL ディレクトリに移動する コマンドです。 root ディレクトリからのみ実行可能です。 コマンド実行後、モニタプログラムはシリアルエコーバック動作を 行います。終了する場合、シリアルコンソールから EXT コード (0x03)を送信してください。 コマンド VIDEO<CR><LF> 説明 root ディレクトリから VIDEO ディレクトリに移動する コマンドです。 コマンド RTCGET<CR><LF> 説明 RTC の値を読み出しシリアルコンソールに表示するコマンドです。 コマンド RTCSET (YYYY/MM/DD) hh:mm:ss<CR><LF> 説明 RTC に時刻を設定するコマンドです。 YYYY/MM/DD : 年月日の設定となります。 hh:mm:ss : 時分秒の設定となります。 30 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. 3.2.4.2 AUDIO ディレクトリコマンド一覧 AUDIO ディレクトリ内でのみ実行可能なコマンドを以下に記します。 コマンド PLAY<CR><LF> 説明 RECORD コマンドで録音した音データを再生するコマンドです。 コマンド RECORD SRC<CR><LF> 説明 AUDIO 入力端子からの入力音データを録音するコマンドです。 PLAY コマンドで録音したデータの再生が可能です。 SRC は録音データの種類を指定します。 3.2.4.3 LINE : ライン入力データを録音します。 MIC : マイクロフォン入力データを録音します。 コマンド REGREAD<CR><LF> 説明 外部サウンドデバイス IC のレジスタの値を読み出すコマンドです。 CAN ディレクトリコマンド一覧 CAN ディレクトリ内でのみ実行可能なコマンドを以下に記します。 CAN の通信ボーレートは 500kbps です。 コマンド ECHO<CR><LF> 説明 受信した CAN のデータを同 ID・同データで送信するコマンドです。 コマンド実行後、シリアルコンソールから EXT コード(0x03)を 送信することでコマンド処理を終了します。 コマンド LOG<CR><LF> 説明 受信した CAN のデータをシリアルコンソールに表示する コマンドです。 コマンド実行後、シリアルコンソールから EXT コード(0x03)を 送信することでコマンド処理を終了します。 3.2.4.4 EEPROM ディレクトリコマンド一覧 EEPROM ディレクトリ内でのみ実行可能なコマンドを以下に記します。 コマンド READ ADDR SIZE<CR><LF> 説明 EEPROM のデータを読み出しシリアルコンソールに表示する コマンドです。 ADDR は読み出し開始アドレスを数値で指定します。 SIZE は読み出しデータサイズを数値で指定します。 31 アプリケーションノート 3.2.4.5 AN1602 ALPHA PROJECT Co.,LTD. VIDEO ディレクトリコマンド一覧 ※VIDEO コマンドディレクトリ内でのコマンドの実行には、 LCD-KIT-B01、LCD-KIT-C01、LCD-KIT-D01 いずれかの LCD-KIT が必要です。 ※サンプルプログラムはデフォルトで LCD-KIT-B01 上で動作するように設定されております。 LCD-KIT-C01、あるいは、LCD-KIT-D01 上で動作を確認したい場合は、 下記ソースコードの赤字で示したマクロをそれぞれ「LCD_KIT_C01」あるいは「LCD_KIT_D01」に変更してください。 その後、DS-5 上で [プロジェクトをクリーンにする]を選択してから [プロジェクトのビルド]を選択して、 必ずプロジェクトの再ビルドを行ってください。 \sample\ap_rza_0a_rtx\SRC\monitor\mon_video.h(20 行目) /* 対応 LCD */ #define LCD_KIT_DEFAULT_SELECT LCD_KIT_B01 /* デフォルトでは LCD-KIT-B01 を設定 */ AP-RZA-0A と接続した LCD-KIT と、プロジェクトで設定した使用 LCD-KIT に相違がないように マクロの変更とビルドには十分ご注意ください。 32 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. VIDEO ディレクトリ内でのみ実行可能なコマンドを以下に記します。 コマンド BACKLIGHT LX<CR><LF> 説明 LCD-KIT のバックライトを調整するコマンドです。 LX には明るさを 0 から 100 の値で指定します。 デフォルトの設定値は 100 となっています。 0 に近づけるほど画面は暗くなり、100 に近づけるほど画面は 明るくなります。 100 より大きい値を設定した場合、100 として実行されます。 コマンド INPUT CH<CR><LF> 説明 ビデオ入力のチャンネルを指定します。 CH には 0 から 3 の値を指定します。 デフォルトの設定値は 0 となっており、CN7-1 の入力が LCD に 出力されます。 値を 1, 2, 3 と設定するとそれぞれ入力元が CN7-2, CN7-3, CN7-4 に設定されます。 33 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. コマンド TOUCH<CR><LF> 説明 LCD-KIT のタッチパネルを使用した動作を行います。 LCD をなぞるとその軌跡に線が引かれます。 LCD を一度タップすると、次から描く線の色が変わります。 LCD を二度続けてタップすると、現在描かれている線が全て 消去されます。 LCD を右あるいは左に弾くように擦る(フリックする)と、ビデオ 入力のチャンネルが変化します。 動作を終了するにはシリアルコンソールから 0x03(ETX)を 送信します。 ※LCD-KIT-C01 で TOUCH コマンドを使用する時、キャリブレーション処理を行います。 LCD-KIT-C01 は、抵抗膜式タッチパネル付き LCD ボードです。 静電容量式の LCD-KIT-B01、LCD-KIT-D01 とは異なり、キャリブレーション処理を行う必要があります。 LCD-KIT-C01 使用時に TOUCH コマンドを実行すると、画面左上に赤色のポインタが表示されます。 ユーザはそのポインタに対してタッチ&リリースをしてください。 その後も順に右上、左下、右下の順にポインタが表示されますので、 同様にユーザは各ポインタに対してタッチ&リリースをしてください。 LCD-KIT-C01 ① ② ③ ④ 画面に対して四回タッチ&リリースをするとキャリブレーション処理は終了です。 その後の動作は LCD-KIT-B01、LCD-KIT-D01 と同様です。 ・キャリブレーション処理の補正は、リリースする直前のタッチ情報を基に計算されます。 TOUCH コマンド実行中に再度キャリブレーション処理を行いたい場合は、 シリアルコンソールから 0x01(SOH)を送信してください。 ・TOUCH コマンドの動作を終了する際は、必ずキャリブレーション処理を終えてから 0x03(ETX)を 送信するようにしてください。 ・LCD-KIT-C01 はマルチタッチに対応していません。同時に複数箇所に触れると誤動作する場合があります。 34 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. 接続の例として、AP-RZA-0A にビデオカメラと LCD-KIT-B01 を接続した場合、下図のような構成となります。 LCD-KIT-B01 ビデオ入力(NTSC) CN12(背面) CN7 LCD-KIT-B01 とボードの接続図 3.2.4.6 共通コマンド一覧 全てのディレクトリで実行可能なコマンドの一覧を以下に記します。 コマンド ..<CR><LF> 説明 1つ上位のディレクトリに移動するコマンドです。 全てのディレクトリから実行可能です。 root ディレクトリから実行した場合、何も行いません。 コマンド HELP<CR><LF> 説明 現在のディレクトリで実行可能なコマンドの一覧をシリアル コンソールに表示するコマンドです。 35 アプリケーションノート 3.3 AN1602 ALPHA PROJECT Co.,LTD. RAM 動作時のメモリマップ メモリマップを以下に示します。 36 アプリケーションノート 3.4 AN1602 ALPHA PROJECT Co.,LTD. ROM 動作時のメモリマップ メモリマップを以下に示します。 37 アプリケーションノート AN1602 ALPHA PROJECT Co.,LTD. ご注意 ・本文書の著作権は(株)アルファプロジェクトが保有します。 ・本文書の内容を無断で転載することは一切禁止します。 ・本文書に記載されている内容についての質問等のサポートは一切受け付けておりませんのでご了承ください。 ・本文書の内容については、万全を期して作成いたしましたが、万一ご不審な点、誤りなどお気付きの点がありましたら弊社までご連絡 下さい。 ・本サンプルプログラムに関して、ARM 社およびルネサスエレクトロニクス社への問い合わせはご遠慮ください。 ・本文書の内容に基づき、アプリケーションを運用した結果、万一損害が発生しても、弊社では一切責任を負いませんのでご了承下さい。 ・本文書の内容は、将来予告なしに変更されることがあります。 商標について ・ARM Development Studio 5TM (DS-5TM) は ARM 社の登録商標、商標または商品名称です。 ・RZ および RZ/A1H は、ルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です ・その他の会社名、製品名は、各社の登録商標または商標です。 ALPHA PROJECT Co.,LTD. 株式会社アルファプロジェクト 〒431-3114 静岡県浜松市東区積志町834 http://www.apnet.co.jp E-MAIL : [email protected] 38