問題タブ [stm32]
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.
eclipse - Eclipse: プログラム「cs-make」を実行できません: 起動に失敗しました
この 1 週間、私は FreeRTOS でサポートされている STM32F1xx 用の無料の開発環境を探していました。そして、まだ成功していません:( .
今、私はこれを見つけました: http://www.stf12.org/developers/ODeV.html
これは、STM32 のコンパイルとデバッグ用の Eclipse 構成であり、FreeRTOS デモもあります。完全!
そこで、事前に構成されたバージョンの Eclipse をダウンロードし、デモ プロジェクトをコンパイルしてこのエラーを取得しようとしました。
憂鬱。助けてください、私はIDE、コンパイラ、リンカの設定が非常に苦手なので、これは初心者に優しいものでなければなりません:)
memory - FreeRTOS 組み込みシステムに適した MCU の選択
STM32 MCU を多数のセンサー (加速度計、ジャイロスコープなど) と接続するプロジェクトが進行中です。ダウンロードしたセンサー データを計算し、6 つの PWM に適切な出力を生成します。これに加えて、アクティブなワイヤレス通信モジュールと、おそらく小さな LCD 画面 (派手なものは何もありません) を用意します。さらに、いくつかのマイナーな追加機能。
システムの制御に FreeRTOS を使用する予定ですが、やり過ぎかどうか判断できません。代わりに小さな共同スケジューラを使用する必要がありますか?
STM32F100RB で 8kB の RAM と 128kB のフラッシュを搭載した FreeRTOS システムを稼働させていますが、FreeRTOS を実行するシステムに十分なメモリがあるかどうか判断できません。..
c++ - cortex m3、stm32L1XX ビットバンディング
micromouseonline で提供されているガイドに従っています。com/2010/07/14/bit-banding-in-the-stm32 . と を使用IAR EWARM
してCortex M3
います。すべて正常に動作しますが、特定のアドレスにビットを設定できません。私はコンパイラを使用しSTM32L151xD
ています。IAR EWARM
これは、彼らが関数を定義する方法です
呼び出しは次のとおりです。
ただし、デバッガーを使用している場合、フラグのビット 1 は常に 0 です。flags は、最初は 0 であると見なされます。したがって、フラグのすべてのビットは 0 になります。ただし、varSetBit(flags,1) を使用すると、ビット 1 の答えは再び 0 になります。私は何か間違ったことをしているとは思わない。コンパイラの問題ですか?いくつかの設定がありませんか?どんな助けでも大歓迎です。
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 です。
誰かがここで私を助けてくれることを本当に願っています!
c++ - ハードウェア レジスタに基づく型のないテンプレート パラメーター
STM32 のハードウェア タイマーを使用して、多数の光学式エンコーダと接続しています。ハードウェア タイマーとやり取りするための便利なインターフェイスを提供する、テンプレート化されたクラスを作成したいと考えています。タイマー レジスタはメモリ マップされており、そのアドレスは、デバイスのデータシートと一致するメーカー提供のヘッダーで定義されています。テンプレート パラメータは、事実上、タイマー ペリフェラルのベース メモリ アドレスになります。以下は、私が現在やろうとしていることの最小限の実例です。
ただし、コンパイルすると、g++-4.7.2 -std=c++11 で次のエラーが発生します。
エラー| テンプレート引数 '1073742848u' を 'timer_peripheral*' に変換できませんでした</p>
エラー| 「t」は変数のアドレスではなく変数であるため、「t」は有効なテンプレート引数ではありません
非型テンプレート パラメーターについて読んだ後でも、問題を解決する方法と、自分が考えている方法でテンプレートを使用できるかどうかはまだわかりません。オプション 1 で static_cast と reinterpret_cast を試しましたが、違いはないようです。
assembly - STM32L152 で GPIO ピンを設定する方法は?
stm32l152rb マイクロプロセッサを搭載した STM32L ディスカバリ ボードを入手しました。ライブラリをまったく使用せずに、アセンブリでそのボードをプログラムしようとしています。これまでのところ、リンカー スクリプトと、.data セクションを RAM にコピーし、bss セクションをゼロにする基本的なルーチンを作成することに成功しました。しかし、それとは別に、私は少し迷っています。
GPIo の構成方法を理解するための小さな実験として、GPIO ポート B のピン 7 に接続された緑色の LED を点灯させるボードのプログラムを作成したいと思います。データシートを読んで、次の 2 つのことを行う必要があると結論付けました。
- GPIO ポート B、ピン 7 を出力ピンとして構成する
- 上記のピンを高く設定します
しかし、この場所では、比喩的に、木を見て森を見ていません。使用可能な複数の IO モードのどれを選択すればよいかわかりません。これらすべての頭字語が私を混乱させます。これを行う方法に関する詳細な情報、指示、および場合によってはアセンブリの例を提供してくれる人に本当に感謝しています。