RZ/A2M のDMACについて教えてください

はじめまして、JiGoRoです。

RZ/A2M Application Package v2 リリースありがとうございます。

FreeRTOSを使う上で、ペリフェラル、特に通信における割り込み発生頻度を下げたいので、DMAとの組み合わせを考えてます。

(現在、ハードウェアを開発中で、並行してソフト構想設計を行っております)

RX系マイコンは良く使っているのですが、RZマイコンは初めてなので、質問させてください(初歩的な質問で申し訳ございません)。

 

DMAの転送トリガーをSCI(SCIFAではない方です)の送信割り込みとした場合、

① DMAの指定回数の転送中は、SCIの送信完了割り込みは発生しない、という認識で正しいでしょうか?

② DMAの指定回数転送完了後、最後の1バイトを送信し終わったタイミングでは、SCIの転送完了割り込みは発生する、という認識で正しいでしょうか?

 

想定アプリは、半2重式のUART伝送を行うものです。 転送終了後、受信体制で待たせたい、と考えてます。

そのため、DMA転送中、後の送信完了割り込みの考え方を整理しておきたいと思いまして、質問させて頂きました。

 

よろしくお願い致します。

 

Parents
  • わわいです
    送信割り込み:送信バッファ、FIFOの空きができたら発生する割り込み
    送信終了割り込み:送信バッファ、FIFO内の全データの送信が完了し、最後のデータのストップビットが送出済みとなったときに発生する割り込み
    という前提で説明しますと、

    送信割り込みでDMA起動するという設定にすると、送信中は送信終了割り込みはかかりません
    送信バッファに空きが発生した時点で次のデータがDMAによって書き込まれるので、送信データの切れ目がなく、送信終了にはならないから、です。
    ということで、1、2、ともその回答はYESとなりますね
  • わわいです
    ましかし、あらゆる場面で送信中に終了割り込みはかからないのか?
    と考えると、、、
    送信データのDMAよりも優先度の高いDMAチャンネルで、ブロック転送などを実行し、その実行時間が送信バッファ分のデータの送信時間を超えた場合、などを考えると、ないとは言えない、ということになってしまいますね

    ということで、上記のような事態にならないためには、送信開始時には送信終了割り込みはディセーブルにしておき、DMAの実行終了割り込みによって、送信終了割り込みをイネーブルにする、ということをする必要があります
  • わわいさん、ありがとうございます。
    コメント頂きました方法で実装してみたいと思います。
  • JiGoRoさん、こんにちは。NoMaYと申します。#RZ/A2Mの使用経験はありませんが、、、

    >DMAの実行終了割り込みによって、送信終了割り込みをイネーブルにする

    これは、もし他の割り込みで処理時間の長い(ハードウェアマニュアルによるとRZ/A2Mに搭載されているのはSCIgでダブルバッファ構造なので例えば2バイト送信時間よりも長く掛かるといった)割り込みがあるのであれば、そしてもしその割り込みとDMA実行終了割り込みのタイミングがバッティングしてDMA実行終了割り込みの方が負けて長時間保留される可能性があるなら、DMA実行終了割り込み処理が実行されるタイミングが送信終了後になってしまう可能性がゼロではなくて、もしそういう事態が起きたら処理が破綻してしまうように思います。JiGoRoさんの他の割り込み処理次第では、何か対処が必要になるかも知れないような気がします、、、

    なお、これは、RZ/A2Mに特有なのでは無く、RXマイコンでも同じことで、きっと知っている人は知っている的な手があるに違いない、と思ったりしていますが私は知らなくて、、、

Reply
  • JiGoRoさん、こんにちは。NoMaYと申します。#RZ/A2Mの使用経験はありませんが、、、

    >DMAの実行終了割り込みによって、送信終了割り込みをイネーブルにする

    これは、もし他の割り込みで処理時間の長い(ハードウェアマニュアルによるとRZ/A2Mに搭載されているのはSCIgでダブルバッファ構造なので例えば2バイト送信時間よりも長く掛かるといった)割り込みがあるのであれば、そしてもしその割り込みとDMA実行終了割り込みのタイミングがバッティングしてDMA実行終了割り込みの方が負けて長時間保留される可能性があるなら、DMA実行終了割り込み処理が実行されるタイミングが送信終了後になってしまう可能性がゼロではなくて、もしそういう事態が起きたら処理が破綻してしまうように思います。JiGoRoさんの他の割り込み処理次第では、何か対処が必要になるかも知れないような気がします、、、

    なお、これは、RZ/A2Mに特有なのでは無く、RXマイコンでも同じことで、きっと知っている人は知っている的な手があるに違いない、と思ったりしていますが私は知らなくて、、、

Children
No Data