問題タブ [lpc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pointers - アセンブリでの参照渡し
ARM-C インターワーキングを使用して数値の指数を計算するプログラムを作成しようとしています。デバッグには LPC1769(cortex m3) を使用しています。コードは次のとおりです。
これは、上記の C コードを補完するアセンブリ コードです。
ただし、デバッグ セッション中に、「Exponentiatecore(m,n)」の実行で Hardfault エラーが発生します。
デバッグ ウィンドウに表示されます。
アラインメント中にスタックが壊れているのでしょうか、それとも私の解釈に誤りがありますか? 親切に助けてください。前もって感謝します
c - LPC1786とのシリアル通信
シリアルポートを介してLPC1786マイクロコントローラーにいくつかのコマンドを送信します。このタスクを実行するために、このコードを使用してシリアルポートを開きます。
これは、(iMX53)を使用する組み込みLinuxシステム用です。PCでコードをコンパイルして実行するとき。私はこれを手に入れます:
魔女は元気です。クロスコンパイルしてシステムにアップロードすると、これが表示されます。
魔女は私の一日を台無しにします。書き込みと読み取りには、書き込みと読み取りの関数を使用しています。これは私がシリアルポートを開いている方法と関係があるに違いありません。しかし、何が悪いのか。さまざまな設定を試しましたが、ほとんど成功しませんでした。最良の場合、応答として「?????1???」が表示されます。そして、ほとんどの場合、読むべきものは何もありません。
c - ARM-C インターワーキング
ARM-C インターワーキング用の簡単なプログラムを試しています。コードは次のとおりです。
アセンブリファイルは次のようになります-
LPC1769 (エンベデッド アーティスト ボード) でのデバッグ中に、「result=Start()」命令でハードフォールト エラーが発生しました。上記のステートメント (result=Start()) の実行中の lr 値は 0x0000029F で、ここでフォルト命令は、pc 値は 0x0000029E です。これは、r1でフォールト命令を取得した方法です
誰かが私がどこで間違っているのか説明してもらえますか? どんな解決策でも大歓迎です。前もって感謝します。
私はcortex-m3の初心者で、Code_Redを搭載したNXP LPCXpresso IDEを使用しています。これが私のコードの分解です。
Dwelch さんのアドバイスに従って、r10 を r3 に変更しました。
gcc - カスタム SRAM セクションでの Thumb アセンブラ割り込み
LPC1768 の SRAM に割り込みルーチンが必要です。Yagarto に似た GCC ツールチェーンを使用しています。現在、Cから次のことができます:
...それから私のアセンブリファイルで:
これで問題なく動作します。「interruptTest」関数へのポインタは奇数です。ただし、「.section .fastcode」ビットを有効にすると、割り込みへのポインターが奇数ではなく偶数になります。
私の質問は、割り込みルーチンを親指関数として正しく認識させるにはどうすればよいですか?
embedded - LPC ディープ スリープ モードの例
まず、私が組み込み技術の初心者であることを明確にします。NXP LPC1769 ボードを使用しています。数日間、ウォッチドッグを使用してディープ スリープ モードから復帰する方法の例を探していましたが、見つかりません。
ウォッチドッグ タイマーについては UM10360 の 21.1 章を、電源制御については 4.8 章を読みました。
ウォッチドッグについては、これを書いてみました:
WDT_IRQn
無限ループでボードの進入を止めますが。
ボードをディープスリープモードに設定するには、次のことを試みます。
i2c - lpc1343 での I2cSlave 読み取りの問題
lpc1343 を i2cslave として使用してデータを送信しようとしています。ボードへの書き込みに問題はなく、希望どおりに動作します。
ただし、ボードから読み取ると問題が発生します。正しいコマンドを送信していますが、データが返されていないようです。デバッグしようとすると、ボードがハングするだけで、ドライバーと PC をリセットして再度実行する必要があります。
また、読み込もうとするたびにLEDをオン/オフするようにしました。これは一度だけ実行され、もう一度実行しようとすると何も起こりません。その時、I2cは停止していると思いますが、その理由はわかりません。
ウェブサイトでサンプルコードを見つけたことがありますが、今はなくなっているようです。誰かが更新された I2cslave コードを持っていますか?
c - LPC1788 で SPI を使用してデータを送受信する方法
LPC1788 マイクロコントローラーを使用してプログラムを作成しようとしていますが、SPI プロトコルを使用して UFDC (ユニバーサル周波数からデジタルへのコンバーター) にデータを送受信する必要があります。このデータシートはこちらにあります。私のマイクロコントローラーの SSP コントローラーはマスターとして設定されており、UFDC はおそらくスレーブになります。MOSI ラインを介して情報を送信し、データがオシロスコープに表示されるのを見ることができます。しかし、MISO ラインでデータを受信しようとすると、MOSI に送信したものしか返されません。
私が書いたコードの関連部分は以下のとおりです。
これから得られる出力は次のとおりです。
編集:SPIコントローラーで「ループバック有効」を設定して、MOSIがMISOから入力を読み取ったり、その逆を行うことができます。ただし、関連するレジスタを確認したところ、これは無効になっています。