問題タブ [stm32f4discovery]
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.
embedded - stm32とインターフェースするウェブカメラ
STM32F4 マイクロコントローラを使用してビデオ ストリームを受信し、rtsp プロトコルを使用してイーサネット経由でストリーミングしたいと考えています。
STM32 とのインターフェースに最適な回路を教えてください。
USB OTG を介して Web カメラを STM32 に接続できますか? (USB プロトコルに関する基本的な考えはありますが、問題は、私が持っている Web カメラが Linux でサポートされていないため、ドライバーのコード ソースがないため、エンドポイントの参照がないことです ...)
USB トラフィックをデバッグすることで、ビデオの一括転送 (ストリーミング) をトリガーするエンドポイントとベンダー固有のコマンドを定義することはできますか?
または、STM32 とのインターフェイスが簡単なビデオ ストリームを提供する別の回路をお勧めしますか。
私はこれがちょっとクレイジーなことだと知っていますが、それがどれほど難しいかを尋ねています.
このプロジェクトについてどう思うか教えてください。
PS: プロジェクトの rtsp 部分は、このトピックの目的ではありません。
前もって感謝します。
uart - stm32f4 uart ボーレート設定?
これで stm32f4-discovery ができました。stm32f4 を接続する uart の max232 を作成します。そして、usb-rs232 を使用して max232 に接続します。stm32f4 と PC を uart で通信できればと思います。そして、Linux でパテを開きます。しかし、uart ボーレートの設定には大きな問題があります。同じボーレートを設定すると、正しいメッセージを受信できません。私はオシロスコープの観測を使用しています。最後に、7680(stm32f4) と 3200(putty) を設定します。それから私は正しいメッセージを得ることができます。しかし、なぜ異なるボーレートで動作するのかわかりません。誰でも理由を教えてもらえますか? そして、それは私のコードです、thx https://gitcafe.com/ctc8631/stm32f4-test-uart
operating-system - ラウンドロビン スケジュールでタスクが正しく動作しない
STM32F4DISCOVERY ボードで FreeRTOS を実行しており、次のコードがあります。
ここで、vTask1 は次の関数です。
vTask2 のコードはほぼ同じです。
プログラムを実行すると、LED0 と LED3 が常にオンになっていることがわかり (それらの切り替えは私の目には速すぎますが、これは問題ありません)、「共有リソース」である LED2 が非常に速く点滅しています。問題は次のとおりです。呼び出しの順序を逆にするとxTaskCreate
、同じ状況になり、LED2 の点滅動作が大幅に遅くなります。タスクは同じ優先度を持つ必要があり、したがってラウンド ロビン スケジュールに従う必要があるため、なぜこのようなことが起こるのでしょうか? 彼らは同じ時間を得るべきではありませんか?異なる順序で作成しただけで動作が変わるのはなぜですか?
前もって感謝します。
c - FreeRTOS - STM32F4 でのスタックの破損
現在、STM32F407 ターゲットで FreeRTOS を実行しているときに、構成エラーによるスタック破損と思われる問題が発生しています。
gcc を使用して STM32F4でのFreeRTOS スタックの破損を確認しましたが、解決策はありませんでした。
アプリケーションは 2 つのタスクを実行し、1 つの CAN 割り込みに依存します。ワークフローは次のとおりです。
- 2 つのタスク network_task と app_task が、2 つのキュー raw_msg_queue と app_msg_queue と共に作成されます。CAN 割り込みも設定されています。
- network_task は最高の優先度を持ち、raw_msg_queue で無期限に待機を開始します。
- 次に app_task があり、app_msg_queue で待機を開始します。
- その後、CAN メッセージが raw_msg_queue に追加され、外部イベントによって CAN 割り込みがトリガーされます。
- network_task が起動し、メッセージを処理し、処理されたメッセージを app_msg_queue に追加してから、raw_msg_queue で待機を続けます。
- app_task が起動し、ハード フォールトが発生します。
問題は、エンド ユーザーの利便性と移植性のために、app_task が xQueueReceive に対して行う呼び出しを 2 つのステップでラップしたことです。app_task の合計関数チェーンは、network_receive(..) -> os_queue_receive(..) -> xQueueReceive(..) を呼び出すことです。これはうまく機能しますが、xQueueReceive(..) から戻ると、一見ランダムなメモリ位置に戻る前に os_queue_receive(..) に戻るだけで、ハード フォールトが発生します。
スタック サイズは適切である必要があり、両方とも 2048 に設定されています。すべての大きなデータ構造はポインターとして渡されます。
2 つの STM32F407 でコードを実行しています。FreeRTOS は、執筆時点で最新のバージョン 7.4.2 です。
誰かがここで私を助けてくれることを本当に願っています!
stm32 - Stm32f4discovery - OpenOCD - telnet アップロードのデモ プログラム
デモ プログラムを新しい stm32f4discovery ボードにアップロードしようとして問題が発生しました。
- ボードをコンピュータに接続する
- openocd -f ボード/stm32f4discovery.cfg
telnet ローカルホスト 4444
私は何を間違っていますか?フラッシュ プロテクト、stm32f2x ロック解除を試みましたが、応答は同じです:「フラッシュ メモリの書き込みが保護されています」。「Project/Demonstration/Binary」の「STM32F4-Discovery_FW_V1.1.0」パッケージの st.com のコンパイル済みデモ プログラムを使用しています。
c - STM32の単一操作時間は何ですか
私は単純な遅延機能を作りました:
そして、ある値で単一実行の時間を予測したいと思います。悪い考えだとはわかっていますが、正確な時間は必要ありませんし、中断されることもありません。
STM32F405 @ 168 MHz と 8 MHz の外部水晶振動子を使用しています。
これまでのところ、0x80 0000 で呼び出すと約 0.5 秒の遅延が発生することに気付きました。
build - STM32F4-Discovery 用の avconv/ffmpeg のスリム バージョンのコンパイルとビルド - armv7 サム 1/2 アーキテクチャ
これは、スタック オーバーフローにヘルプを投稿する最初の試みです。
私のプロジェクト: STM32F407VGT6 チップを搭載した STM32F4-Discovery と FPv4-SP およびカメラ/LCD 周辺機器のセットアップを使用して、QVGA でビデオを録画し、少なくとも 25:1 の比率で圧縮された MPEG-4 形式に出力する必要があります。
必要なコーデック ライブラリ (avconv、ffmpeg の方が使いやすいことが証明されない限り) を特定し、ANSI-C のチップ上で実行できる軽量バージョンを提供するコンパイラ オプションを構築しようとしています。および Thumb アーキテクチャ。
このボードのスペースは非常に限られており (192KB の SRAM と 1MB のフラッシュ - 拡張の可能性はありますが、私が持っているものだけを使用することをお勧めします)、現在どちらのライブラリの「メイン」実行可能ファイルも 1MB を超えています。
私が試したさまざまなソリューションの出力から判断すると、多くのコンパイラ オプションがビルドに正常に適用されているようには見えません。だから私の質問は:
1) rawvideo デコーダ、mpeg4 エンコーダ、および可能な限り最も基本的なユーティリティのみを使用して、いずれかのライブラリを必要なスペースにコンパイルすることさえ可能ですか? そうでない場合、どれくらい必要になるかについての推測はありますか?
2) 私はインターネットを何時間もかけて調べましたが、誰もこれを試みたようには見えません。そうでないことを教えてくれる人はいますか?
基本的なものを見落としていないかどうかを確認したい人のために、configure/build スクリプトを用意しています。聞いてみてください。私はそれを電子メールで送信します。一見冗長な審問がすでに持っている以上にスレッドを混乱させたくありません。
どちらのライブラリも壊れている可能性は低いと思います。Ubuntu 12.04 32ビットでこれを試みています。
私はソフトウェアのインターンであり、利用可能なヘルプに非常に感謝しています.
最後の質問です。私の解決策がうまくいかない場合、組み込み ARMv7E-M/Thumb セット アーキテクチャ用に簡単にコンパイルできるオープンソースの mpeg4 圧縮ライブラリは他にありますか?
編集: 以前は含まれていなかったビルド コマンドを次に示します。
これは私が入手して修正したスクリプトです。ARMv7e-m チップ (ディスカバリー ボード) では実行されない ARMv7-a 用に最初に正常にビルドされました。