ホーム › フォーラム › Texas Instruments › プロセッサー › Sitara(AM335x、AM437x) › Sitara AM3352にてUART割り込みがかからない
このトピックには3件の返信が含まれ、2人の参加者がいます。5 年、 1 ヶ月前に クライフ さんが最後の更新を行いました。
-
投稿者投稿
-
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に手を加える必要があるのでしょうか?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よろしくお願いいたします。
クライフクライフ様
対応ありがとうございます。
現在使っているプロジェクトはご指摘どおりの方法で作成しました。
ソースコードで腑に落ちないのはuartEcho.cにあるmain()内にて
IntMasterIRQenable() → CPUirqe()と呼び出されCPUirqe()内でCPSRを書きえてIフラグを落としてます。
しかし、XDS110にてステップ実行にてIフラグを確認してもCPUirqe()実行後もIフラグは1のままです。
確認方法に問題があるのでしょうか?XDS110もAM3352も今回初めてで難儀してます。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を設置するなども動作検証いただくのはいかがでしょうか。
以上、よろしくお願いいたします。
クライフ -
投稿者投稿