問題タブ [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.
arm - STM32F4Discovery:CANメッセージを受信しています
STM32F4DiscoveryでCANメッセージを受信する方法がわかりません。Silent_Loopbackモードになっています。つまり、送信されたすべてのメッセージはCANコントローラー自体に到着する必要があります。メッセージを送信するとTransmit_OKステータスが表示されますが、FIFOメールボックスに何も表示されません。すべてのメッセージを受信し、それらのいずれもフィルターで除外しないために、CANフィルター構成をスキップしました。私は何が間違っているのですか?
eclipse - STM32F4Discovery ボードで動作するように Eclipse、GCC、および OpenOCD を構成するにはどうすればよいですか?
私は STM32F4 マイクロコントローラと ST-LINKv2 デバッガ インターフェイスの両方を含む STM32F4Discovery ボードを所有しています。このセットアップで簡単な C プログラミングを行いたいと考えており、自由に利用できるツールを使用してそれを行いたいと考えています。
私が知っていることは次のとおりです。
- Eclipse は、YAGARTO などのさまざまなツールチェーンを使用して、さまざまな ARM ターゲット用にクロスコンパイルするように構成できます。
- Eclipse は GDB を使用してリモート デバッグを実行できます。
- OpenOCD は GDB サーバーを提供します。
- OpenOCD (最新バージョン) は、ST-LINKv2 と STM32F4Discovery ボードの両方をサポートしています (このボード用のスクリプトが含まれています)。
これが私が知らないことです:これらの断片を首尾一貫した全体にまとめる方法. 必要な可動部分は揃っていると思いますが、組み立て方に困っています。多くの場合、「Eclipse Indigo をインストールする」などで始まります。簡単なチュートリアル、手順のリスト、またはチェックする項目はありますか?
usb - ChibiOS で USB to Serial ライブラリを正常に使用した人はいますか?
ChibiOS/RTオペレーティング システムを使用して、 USB からシリアルへのライブラリを動作させようとしています。すべてのファイルをリンクすることができ、Yagarto で実行できました。しかし、USB to Serial libの開始機能すら使用できないようです。
STM32F4 Discovery を使用しており、その USB を PC への接続として使用したいと考えています。私は IAR で CDC クラスを使用してそれを行いましたが、このプロジェクトに ChibiOS を使用したかったのですが、すべてが複雑すぎるようです。(私は ChibiOS を使用しましたが、UART といくつかのポート トグル LED などのみを使用しました)。
USBを起動するサンプルコードを教えてください。私は何も見つけることができませんでした。
linker - IAR リンカが .a ライブラリを認識しない
ARM Cortex-M4F コアを搭載した ST の STM32F4-Discovery 開発キット用のアプリケーションを開発しています。
アプリケーションで FreeRTOS を使用しています。これは、ボードのマイクとスピーカー出力を使用することを目的としています。
マイク用の I2S インターフェイスを設定する例として、ST のオーディオ再生と録音デモを使用しようとしています。しかし、この例の PDM フィルタ ライブラリには本当に苦労しています。このライブラリは.a
ファイルとして提供されており、プロジェクトにコピーしようとすると、リンク中に次のメッセージが表示されます。
Fatal Error[Li004]: ファイル "C:\Users\Daniel\Desktop\FreeRTOSV7.3.0\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK\libPDMFilter_IAR.a" はオブジェクトまたはアーカイブ ファイルではありません
リンカー オプションをいじって、このライブラリを手動で追加するように言ってみました。しかし、結果はありません。.a
IAR でライブラリをリンクする方法を知っている人はいますか?
arm - プロジェクトを TrueSTUDIO から CrossWorks に切り替えたときの memcpy でのハード フォールト
残念ながら、STM32F4 開発ボードの開発に CrossWorks を使用する必要があり、CrossWorks を使用してプロジェクトをビルドおよび実行する場合にのみ発生する問題に直面しています。
LwIP を使用して UDP サーバーを作成していますが、TrueSTUDIO を使用すると問題なく動作しています。ただし、CrossWorks で実行すると、ethernetif_input() にハード フォールトが発生します。これは、パケットの読み取り準備が整ったときに呼び出されます。失敗する特定のポイントは、パケット バッファ間でパケット情報を移動中に memcpy() を呼び出したときです。
何が変わったのかわかりません。まったく同じコードで、同じターゲット向けにビルドされており、CrossWorks では壊れています。誰かがこの問題のどの部分についても洞察を持っていることを願っています...これに関して何か考えがあれば、それは素晴らしいことです.
ありがとうございます。詳細が必要な場合はお知らせください。
eclipse - stm32f3ディスカバリーgcc-armeclipse
STM32 F3ディスカバリーボード用のオープンソース環境が機能している人はいますか?STM32 F4 / F0からF3ディスカバリーに簡単に移植できるチュートリアルを持っている人はいますか?
gcc - CooCox を使用した STM32F4-Discovery での CHIBIOS のコンパイル
私は ARM 用のコンパイルに関してかなりの初心者です。
私はCooCoxを使い始めました。プロジェクトを作成した後、すべての CHIBIOS インクルード パスをプロジェクトに追加しました。私のコード自体は、stm32F4 ディスカバリーのデフォルトの Chibios サンプル コードです。
コンパイルすると、何も含まれていない出力ファイルが得られます。
ただし、リンク構成で「未使用のセクションを破棄する」の選択を解除すると、次のようになります。
GCC HOME: C:\CooCox\CoIDE\GCC\bin
compile:
[mkdir] Skipping C:\CooCox\Code\Test3\test3_Flash\Debug\bin because it already exists.
[mkdir] Skipping C:\CooCox\Code\Test3\test3_Flash\Debug\obj because it already exists.
[cc] 2 total files to be compiled.
[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F407VG -DSTM32F4XX -IC:\CooCox\Code\Test3 -IC:\CooCox\Code\chibitest\chibios_2.4.2\boards\st_stm32f4_discovery -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\common\armcmx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\src -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\various -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\kernel\src -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx\stm32f4xx\ld -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32 -IC:\CooCox\Code\chibitest\chibios_2.4.2\demos\armcm4-stm32f407-discovery -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\rtcv1 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\include -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx\stm32f4xx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\usbv1 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32f4xx -IC:\CooCox\Code\chibitest\chibios_2.4.2\test -IC:\CooCox\Code\chibitest\chibios_2.4.2 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\common\armcmx\cmsis\include -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\gpiov2 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\kernel\include C:\CooCox\Code\Test3\main.c C:\CooCox\Code\Test3\syscalls\syscalls.c
[cc] In file included from C:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\include/hal.h:39:0,
[cc] from C:\CooCox\Code\Test3\main.c:29:
[cc] C:\CooCox\Code\chibitest\chibios_2.4.2\boards\st_stm32f4_discovery/board.h:57:0: warning: "STM32F4XX" redefined [enabled by default]
[cc] <command-line>:0:0: note: this is the location of the previous definition
[cc] C:\CooCox\Code\Test3\main.c: In function 'Thread1':
[cc] C:\CooCox\Code\Test3\main.c:189:1: warning: no return statement in function returning non-void [-Wreturn-type]
[cc] Starting link
[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles -g -Wl,-Map=test3_Flash.map -O0 -lgcc -lc -lm -lnosys -LC:\CooCox\CoIDE\workspace\test3_Flash -Wl,-TC:\CooCox\CoIDE\workspace\test3_Flash/arm-gcc-link.ld -g -o test3_Flash.elf ..\obj\main.o ..\obj\syscalls.o
[cc] ..\obj\main.o: In function
pwmpcb':
最後の行の後、ファイル内のほぼすべての変数が同じようにリストされます。
問題がリンカーに関連していることはわかっていますが、どこで修正すればよいかわかりません。
おそらく私はそれに別の方法でアプローチする必要がありますか?上記の 2 つの警告を修正 (それぞれコメントとリターンの追加) しても、問題は修正されません。
ちょっとした背景として、stm32F4に接続されたカメラやその他のデバイスを駆動するためにChibiosを使用しようとしています。CooCox が単に苦痛であることが判明した場合は、よりメイクファイルに適したものに切り替えることができます (メイクファイルをインポートする方法はありません!)。
よろしくお願いします
c - STM32F4 の Makefile コンパイル エラー
私はまだMakefileにかなり慣れていないので、これには少し問題があります。STM32F4 用のコードをコンパイルしようとしています。この Makefile.common を STM32F3 用に取得し、開発に使用するものを反映するようにツール チェーンとディレクトリを変更しました。残念ながら、このコンパイル エラーが発生しています。広範囲にグーグルで調べてみましたが、解決に役立つものは何もありませんでした。
これが私が得ているエラーです
make: execvp: /home/wilfred/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin: 許可が拒否されました make: * [startup_stm32f4xx.o] エラー 127
これが私の Makefile.common のコードです。ありがとう!
microcontroller - EEPROM エミュレーション STM32F4 用のフラッシュ ロケーションの予約
セクタ 2 と 3 で EEPROM をエミュレートして、消去時間を短く保ちたい (小さな 16kb セクタ)。私の質問は、コンパイラがこれらのセクターにプログラム コードを配置するのを防ぐために、このフラッシュ スペースを予約する方法です。
これまでのところ、意味のあるものは何も見つかりませんでした。
ありがとう
gcc - gccを使用したSTM32F4でのFreeRTOSスタックの破損
stm32f4discoveryボードでFreeRTOSを実行しようとしています。summon-arm-toolchainをインストールし、コードをコンパイルするためのMakefileを作成しました。Makefileは次のとおりです。
FreeRTOSデモプロジェクトのフォルダCORTEX_M4F_STM32F407ZG-SKのプロジェクトを変更しました(既存のタスクを削除して独自のタスクを作成します)。主な機能は次のとおりです。
FreeRTOSConfig.hでconfigMINIMAL_STACK_SIZEを4096として構成しましたが、タスクスケジューラが起動し、SampleTask0関数が呼び出されると、コードは正常に機能します。タスクコードは次のとおりです。
タスク1の機能は、異なる情報を出力することを除いて、タスク0とほとんど同じです。これらのコードはコンパイルされ、バイナリをボードに書き込んだ後、SampleTask0が期待どおりに機能しません。USART3を介して文字を送信するDebugPrintf関数は、「Tas」のみを出力し、その後すべてが停止します。gdbを使用してコードをトレースし、コードを段階的に実行すると、「Task 0 running」が出力されましたが、タスク関数に戻ると( "while(delay){delay--;}"の前に)エラーが発生しました。
アドレス0xa5a5a5a5のメモリにアクセスできません
main.c.のSampleTask0(pvParameters = 0x0)。
FreeRTOSドキュメントによると、各タスクのスタックは作成時に0xa5バイトで埋められます。スタックに何か問題があるのではないかと思います。configCHECK_FOR_STACK_OVERFLOWを2に設定してスタックオーバーフローの検出を有効にしましたが、これが発生したときにフック関数が呼び出されていませんでした。
CORTEX_M4F_STM32F407ZG-SKのstartup_stm32f4xx.sは、EWARMツールチェーン用に作成され、STWebサイトからダウンロードしたSTM32F4-Discovery_FW_V1.1.0のスタートアップファイルに置き換えました。したがって、スタックが破損する可能性がありますが、これについてはよくわかりません。誰かがこれについてアイデアを持っていますか?