ホーム フォーラム Texas Instruments プロセッサー Sitara(AM335x、AM437x) Sitara AM3352にてUART割り込みがかからない

このトピックには3件の返信が含まれ、2人の参加者がいます。5 年前クライフ クライフ さんが最後の更新を行いました。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #8187 返信

    purpose
    参加者

    Sitara AM3352にてUART割り込みがかからない

    デバイス型番:AM3352

    スターターキット(AM335X_StarterWare_02_00_01_01)のC:\ti\AM335X_StarterWare_02_00_01_01\examples\evmAM335x\uart/uartEcho.cを使ってプロジェクトをビルドしました。
    WindowsPC上でTeraTermを起動させてシルアル通信の確認を行っているが
    「Success! Passed with status code S_PASS」のメッセージをTeraTermで表示するが、TeraTerm側からデータを送ってもUARTIrq割り込みに来ない(割り込みが発生していない?)
    メイン処理にきた時点でIRQフラグ=1になっているが、初期化処理を見てもIQRフラグを0にしている箇所が見当たりません。
    uartEcho.cに手を加える必要があるのでしょうか?

    #8239 返信
    クライフ
    クライフ
    従業員

    purpose様

    開発環境はCCS(Code Composer Studio)を使用しておりますでしょうか。
    プロジェクトを作成される際、CCSより”New”->”CCS Project”からプロジェクトを生成後にuartEcho.cをプロジェクトにコピーしておりますでしょうか。

    StarterWareにはCCS向けにサンプルプロジェクトが下記階層にございます。
    こちらをCCSで”File”->”Import”より下記プロジェクトを指定して、CCSにサンプルプロジェクトをインポートすることができます。
    C:\ti\AM335X_StarterWare_02_00_01_01\build\armv7a\cgt_ccs\am335x\evmAM335x\uart

    上記でプロジェクトをインポートの上、ビルドしていただき、Teratermからの入力で割り込みが行われるかご確認いただけますようお願いいただけますでしょうか。

    またご注意としまして、メーカーよりStarterWareはソフトウェアの更新がない旨下記HPに記載がございます。
    後継のSDKとして、Processor-SDKが用意されておりますので、合わせてこちらのサンプルプロジェクトをご参考にしていただくことをお勧めいたします。

    StarterWare : http://www.tij.co.jp/tool/jp/STARTERWARE-SITARA
    Processor-SDK-AM335X : http://www.tij.co.jp/tool/jp/PROCESSOR-SDK-AM335X

    よろしくお願いいたします。
    クライフ

    #8255 返信

    purpose
    参加者

    クライフ様
    対応ありがとうございます。
    現在使っているプロジェクトはご指摘どおりの方法で作成しました。
    ソースコードで腑に落ちないのはuartEcho.cにあるmain()内にて
    IntMasterIRQenable() → CPUirqe()と呼び出されCPUirqe()内でCPSRを書きえてIフラグを落としてます。
    しかし、XDS110にてステップ実行にてIフラグを確認してもCPUirqe()実行後もIフラグは1のままです。
    確認方法に問題があるのでしょうか?XDS110もAM3352も今回初めてで難儀してます。

    #8314 返信
    クライフ
    クライフ
    従業員

    Purpose様

    CPSR.Iフラグが1のままであった場合、割り込み処理が実行中であることを示します。
    Technical Reference Manual(P.534 6.2.2 INTC Processing Sequence)より、ISR処理後、CPSRはIRQアサート前の状態にレストアされ、Iビットも0となります。

    そのため、Iフラグが1のままの場合は、ステップ実行によって止めた瞬間ではまだ割り込みイベントが実行中である可能性があります。

    ステップ実行のほか、main文while処理内のUARTIntEnable()処理の直前にBreakPointを設置するなども動作検証いただくのはいかがでしょうか。

    以上、よろしくお願いいたします。
    クライフ

4件の投稿を表示中 - 1 - 4件目 (全4件中)