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

共通処理手順

ドキュメント内 SH7786 DMAC転送例:アプリケーションノート (ページ 43-51)

5. 参考プログラムの処理手順

5.1 共通処理手順

5.1.2

端子機能初期化(pfc_init)

5.1.2

端子機能初期化フロー

5.1.3

転送元,転送先アドレスの初期化

(memory_init)

5.1.3

転送先アドレスの初期化フロー

端子機能初期化 (pfc_init)

SCIF使用端子を設定 (PHCR)

END

PHCRにH’FFF0 を設定

転送元,転送先アドレスの初期化 (memory_init)

キャッシュ可能領域の初期化

キャッシュ不可領域の初期化

コマンドチェーン格納領域の初期化

END

5.1.4

転送結果データ表示(print_result,print_result_multi,print_result_hpb)

5.1.4

転送結果 データ表示フロー

転送結果 データ表示 (***)

NO

YES

表示データが残っているか?

NO

YES

表示データ(1行分)が 残っているか?

NO

YES

表示する端数 データが存在するか?

NO

YES

表示する端数データが 残っているか?

xxxには

・転送結果 データ表示 = “1バイト (16進数)”

・転送結果 データ表示(ストライド&Gather) = “2文字(ASCIIコード)”

・転送結果 (HPB)“1文字(ASCIIコード)”

が入ります xxxをSCIFに出力

(printf)

xxxをSCIFに出力 (printf)

END

xxxには

・転送結果 データ表示 = “1バイト (16進数)

・転送結果 データ表示(ストライド&Gather) = “2文字(ASCIIコード)”

・転送結果 (HPB)“1文字(ASCIIコード)”

が入ります

***には

print_result:転送結果 データ表示

print_result_multi:転送結果 データ表示(ストライド&Gather) print_result_hpb:転送結果(HPB)

が入ります

5.1.5 SCIF初期化(scif_init)

5.1.5 SCIF

初期化フロー

SCIF初期化 (scif_init)

シリアルコントロールレジスタ (SCSCR)のクリア

FIFOコントロールレジスタ (SCFCR)の設定

シリアルステータスレジスタ (SCFSR)の設定

ラインステータスレジスタ (SCLSR)の設定

ビットレートレジスタ (SCBRR)の設定

NO

YES

1ビット期間経過した?

シリアルコントロールレジスタ (SCSCR)の設定

TIE,RIE,REを0クリア

TX,RXのFIFOクリア

BRK,DR,TRを0クリア

ORERを0クリア

ソースクロックをPφに設定 シリアルコントロールレジスタ

(SCSCR)の設定

115200bpsに設定

レシーブFIFOデータ数トリガ:1に設定 トランスミットFIFOデータ数トリガ:32に設定 TX, RXのFIFOをクリアしない設定

FIFOコントロールレジスタ (SCFCR)の設定

トランスミットイネーブル:1に設定 レシーブイネーブル:1に設定

END

5.1.6 SCIFデータ送信(scif_transmit_data)

5.1.6 SCIF

データ送信フロー

SCIFデータ送信 (scif_transmit_data)

転送データをSCFTDRに設定

TDFE,TENDを0クリア トランスミットFIFO データレジスタ

(SCFTDR)設定

NO

YES

SCFSR.TDFE = 1?

送信データ参照位置更新

NO

YES

SCFSR.TEND = 1?

シリアルステータスレジスタ (SCFSR)の設定

NO

YES

転送データが残っているか?

END

5.1.7 SCIF1

バイトデータ送信(scif_transmit_data_byte)

5.1.7 SCIF1

バイトデータ送信フロー

SCIF1バイトデータ送信 (scif_transmit_data_byte)

転送データをSCFTDRに設定

TDFE,TENDを0クリア トランスミットFIFO データレジスタ

(SCFTDR)設定

NO

YES

SCFSR.TDFE = 1?

NO

YES

SCFSR.TEND = 1?

シリアルステータスレジスタ (SCFSR)の設定

END

5.1.8 SCIF printf(scif_printf)

5.1.8 SCIF printf

フロー

printf (scif_printf)

※vastart,vsprintf,va_endはライブラリ関数です。

詳細は「SuperH™ RISC engine C/C++コンパイラ,アセンブラ,最適化リンケージエディタ コンパイラパッケージV.9.01 ユーザーズマニュアル」をご参照下さい

NO

YES

表示データは1kバイトより 大きいか?

END

可変個引数の初期処理 (va_start)

可変個引数の文字列処理 (vsprintf)

可変個引数の終了処理 (va_end)

SCIFデータ送信 (scif_transmit_data)

END

5.1.9 SCIF1

バイトデータ受信(scif_recieve_data_byte)

5.1.9 SCIF1

バイトデータ受信フロー

SCIF1バイトデータ受信 (scif_receive_data_byte)

RDF,DRを0クリア NO

YES

SCFSR.ER = 1? or SCFSR.BRK = 1? or

SCFSR.DR = 1?

レシーブFIFOデータレジスタ (SCFRDR)をダミーリード

シリアルステータスレジスタ (SCFSR)を0クリア

ラインステータスレジスタ (SCLSR)を0クリア

NO

YES

SCFSR.RDF = 1?

受信バッファにレシーブFIFO データレジスタ(SCFRDR)のデータをリード

シリアルステータスレジスタ (SCFSR)を設定

END

ドキュメント内 SH7786 DMAC転送例:アプリケーションノート (ページ 43-51)

関連したドキュメント