問題タブ [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.

0 投票する
2 に答える
2371 参照

arm - USB経由でswd出力を読み取るには?

USB 経由でデバイス ( STM32Fx Discovery )で実行されている組み込みアプリケーションから変数を読み取るstmicro STM-STUDIOに似たアプリケーションを作成しようとしています。ボード、できれば C# アプリケーションを使用するアプリからの出力 (変数) を読み取るにはどうすればよいですか?

0 投票する
1 に答える
540 参照

stm32f4discovery - Ubuntu 12.04 で stm32f4discovery Cortex-M4 を使用した eCos

stm32f4discovery Cortex-M4 で eCos 用の簡単なプログラムを作成しました。以下の手順に従います。

$ecosconfig 新しい stm32f4discovery

$configtool

$arm-none-eabi-gcc -o hello.elf hello.c -Lecos_install/lib -I ecos_install/include -mcpu=cortex-m4 -mthumb -g -O2 -ffunction-sections -fdata-sections -Ttarget.ld - nostdlib

$arm-none-eabi-objcopy -O バイナリ -R .sram hello.elf hello.bin

実際、それは成功です。でも、「hello ecos!」の見方がわかりません。

ボーレートとttyをセットアップする必要があると思います。そのため、minicom を使用してこれを行います。残念ながら、私は失敗しました。

0 投票する
1 に答える
13839 参照

interrupt - STM32F4 ボードでの SPI スレーブのセットアップ

マスター & スレーブ構成で SPI を介して 2 つの STM32F4 ディスカバリー ボード間で通信しようとしています。私はすでにマスター用のコードを持っていますが、スレーブ用の SPI 初期化で行う必要がある変更について少し混乱しています。

また、スレーブが常に RXNE レジスタをポーリングするのではなく、マスターがデータを送信するたびに割り込みを実装したいと考えています。ただし、SPI 用の NVIC の正確な構成はわかりません。

以下はマスターの構成コードです

リファレンス マニュアルには、マスターと同じように CPOL および CPHA ビットを構成する必要があると記載されています。これは、MSB/LSB ファースト フレーム フォーマットにも当てはまります。これとは別に、残りの設定方法がわかりません。

0 投票する
7 に答える
39443 参照

stm32 - STM32F4でバックアップSRAMをEEPROMとして使用する方法

STM32F4 で EEPROM をエミュレートするには、次の 2 つの方法があります。

  1. オンチップ 4K バイトのバックアップ SRAM
  2. 特定のソフトウェア アルゴリズムを備えたオンチップ フラッシュ

2 番目のオプションについては、AN3969 で説明しています。

しかし、残念ながら、Google は最初のオプション (4Kb のバックアップ SRAM を EEPROM として使用する) の使用方法に関する情報を提供できませんでした。..

誰でもこのトピックについて助けてもらえますか?

0 投票する
2 に答える
2160 参照

c++ - stm32f4 newlib に関する g++ エラー _kill_r、_kill、_getpid_r、_getpid、

c++ コードを stm32f4 マイクロチップにコンパイルする際に問題が発生しています。

標的

ここでいくつかのことを達成しようとしています:

  1. C++ コードを stm32f4-discovery にコンパイルします (これは、必要最小限のプログラムで [コンストラクターとその他の c++ 固有の機能を実装して] 正常に実行されています)。
  2. ST が提供するペリフェラル ライブラリを使用してコードを記述します (この場合、USART 機能を使用しています)。
  3. GNU ツールを使用して、商用 IDE を使用せずにコードをコンパイルします (これは学習タスクです)。

問題

私は 2 つのプロジェクトをセットアップしています。1 つは ac プロジェクトで、正しくコンパイルされます。このプロジェクトの出力で stm32f4 もフラッシュしましたが、正しく実行されました。2 番目のプロジェクトでは、C++ コンパイラの make ファイルとファイル名に小さな変更を加えた同じコードを使用します (コードに違いはありません)。C プロジェクトは正常にコンパイルされ、C++ プロジェクトはエラーをスローします。

両方のプロジェクトとターミナルでの出力は、https : //dl.dropboxusercontent.com/u/32204435/USART.tar.gz にあります。

設定

Ubuntu 12.04.3 LTS 64 ビットを使用しています。この Web サイトの指示に従って arm-none-eabi ツールチェーンをインストールしました: vedder.se/2012/07/get-started-with-stm32f4-on-ubuntu-linux/

情報と分析

私ができることから、arm-none-eabi-g++ コンパイラでの newlib のサポートにエラーがあります。2 つのプロジェクトにコードの違いがないため、エラーが発生する理由がわかりません。printf などの newlib の関数を使用すると、同様のエラーが発生します。USART の例では、newlib を使用するプロジェクトの可能性を制限しました (唯一の例外はデータ型です)。このエラーは、newlib が原因ではなく、欠落しているハードウェア ヘッダー (または newlib スタブとして知られている) が原因のようです (syscalls.h)。syscalls.h を適用しようとしても失敗しました。

C++ サポートを使用してこのプロジェクトを構築するのを手伝ってくれる人はいますか? エラーなしで newlib のコードを使用するための解決策を提供してくれませんか?

私はまだ学んでいます。私は 17 歳で、教師がいない (自己主導型) ので、経験が浅いように見えるかもしれませんが、私は :) 知識のギャップが予想されます。

メリークリスマス!

0 投票する
1 に答える
3840 参照

c++ - stm32f4 ディスカバリーと g++ のリンカーをセットアップする

stm32f4 ディスカバリーのために、printf() などの USART および std 関数を使用するコードをコンパイルしようとしています。まず、g++ を使用してすべてのコード ファイルをオブジェクト ファイルにコンパイルしますが、リンカーを使用して実行可能ファイルを作成すると、リンカーは startup_stm32f4xx.s アセンブリ ファイルに実装されている関数が見つからないことを示すエラーをスローします。

すべてのソースをオブジェクト ファイルにコンパイルし、それを *.elf 実行可能ファイルにリンクする Makefile テンプレート フォームを作成できますか?

また、ソース コードで printf() を使用できるように、newlib_stubs.c を参照するようにリンカーを設定するにはどうすればよいでしょうか。

0 投票する
1 に答える
3169 参照

c++ - arm-none-eabi-g++ は、式 stm32f4 の無効な文字「#」を無視します

stm32f4 マイクロコントローラ用のメイクファイルを作成しています。これには、すべての周辺ライブラリが含まれ、printf() を uart にリダイレクトするシステムコール (名前は newlib_stubs.cpp) が含まれています。すべてのソースを独自のオブジェクト ファイルにビルドして実行可能ファイルにリンクする前に、すべてのソースが 1 回のヒットでコンパイルされるようにメイクファイルを作成し、この段階でメイクファイルが機能することを証明しましたが、機能しませんでした。これはメイクファイルです:

このプロジェクトのソースは、https ://dl.dropboxusercontent.com/u/32204435/stm324f-discovery_template_28Dec2013.zip にあります。

これは、コンパイラから受け取った出力です。

main.cpp 行 0 から 30:

エラーの発生元と思われる main.cpp ファイル内でエラーを特定できません。

このエラーの原因は何ですか?どうすれば修正できますか?

0 投票する
1 に答える
1137 参照

udp - Lwip は MTU より大きい udp パケットを送信しますが、私の PC はそれらを再構築できません

lwip-1.4.1 と stm32f407 を使用しています。
lwip は udp パケットを pc に送信できますが、udp パケットが MTU より大きい場合、pc は再構築に失敗します。
これらのパケット コンテキストを確認するために Wireshark を使用していますが、lwip からのフラグメント化された udp パケットは、通常のフラグメント化された udp パケットと同じように見えます。

次のリンクは、wireshark からの記録です:
https://dl.dropboxusercontent.com/u/1321251/test.pcapng

ありがとう

0 投票する
2 に答える
2219 参照

c++ - C++ での関数への未定義参照

私は検索を行いましたが、私が見ているものを実際に説明した回答はありませんでした。

正しくコンパイルされたファイルがあり、新しいインクルードを追加しました。

もう一度コンパイルしてください。次に、関数を追加します。

今私は得る:

usart.h ファイルは次のとおりです。

行をコメントアウトするとvoid usart_set_baudrate(u32 usart, u32 baud);、追加の警告が表示されます。

したがって、少なくとも何らかの方法で機能を取得しているようです。C ++にはやや新しいので、他に何を試すことができるかわかりません。ポインタはありますか?

メイクファイル: