STM32ディスカバリーボードを持っていますが、Linuxでプログラムできます。
これを行う最も簡単な方法は何ですか?
STM32ディスカバリーボードを持っていますが、Linuxでプログラムできます。
これを行う最も簡単な方法は何ですか?
回答:
STM32 Discoveryボード(またはST-Linkプログラマーを使用するSTM32)をプログラムおよびデバッグする簡単な方法は、「stlink」プロジェクトhttps://github.com/texane/stlinkを使用することです(ただしOpenOCDも人気があるようです)
また、ST NucleoボードはUSBフラッシュデバイスとして表示されるためstlink
、ファイルをコピーするだけで十分です。
http://gpio.kaltpost.de/?page_id=131や http://torrentula.to.funpic.de/2012/03/22/など、LinuxでのSTM32ディスカバリーの開発方法に関する優れたページがいくつかあります。setting-up-the-stm32f4-arm-development-toolchain /およびhttp://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
しかし、最後のリンクが最も有用であることがわかりました。STのSTM32プロジェクトをそのままビルドする方法を示します-唯一の変更は、Makefileを追加することです。これは完璧なソリューションのようです。
Ubuntuの最近のバージョンには、ARMコンパイラを含むインストール可能なパッケージがあります。
sudo apt-get install gcc-arm-none-eabi
プロセッサはすべて少し異なっていることに注意してください。STM32F0..4にはすべて異なるコンパイラフラグが必要であり、リンカースクリプトはそれぞれわずかに異なります(ただし、実際に変更されたのはRAMとフラッシュのサイズのみです)。
編集:すぐに開始したい場合は、http://www.espruino.comもご覧ください。これはSTM32自体で実行されるJavaScriptインタープリターなので、ボードにフラッシュできる「stlink」をインストールしたら、そのサイトからイメージをダウンロードしてフラッシュし、ターミナルアプリケーションに接続して、プログラミングを開始します。
GUIを使用する代わりに、テキストエディタとMakefileにもっと興味がある場合は、次のようにできます。
プロジェクトを取締役会に提出してください。どちらかを使用する
テキストエディタでコーディングし、コマンドラインツールを使用します。このチュートリアルでは、多くのヒントを提供します。
楽しい
Eclipse、GCC、およびOpenOCDは1つのツールチェーンです。EMCU-ITによって推奨されており、ここに追加情報があります。これらのページでは、FreeRTOS.orgのようなRTOSの使用を推奨していますが、それはあなた次第です。
LinuxでのSTM32のサンプルのコンパイルについては、こちらをご覧ください。このリンクは、次のコマンドで呼び出すことができるサンプルのメイクファイルを指します
git clone git://github.com/snowcap-electronics/stm32-examples.git
cd stm32-examples
wget http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip
unzip stm32_f105-07_f2xx_usb-host-device_lib.zip
いくつかのマイナーなコード修正も文書化されていますが、プロジェクトのほとんどは
make CROSS_COMPILE=/path/to/arm-2011.03/bin/arm-none-eabi-
https://github.com/JorgeAparicio/bareCortexMで成功しました(リンクされているブログ記事も参照してください)。デバッグステートメントをコードに挿入したり、チップ内で何が起こっているかを推測したりする代わりに、コードをシングルステップで実行したり、デバイスメモリを参照したりすることができます。
bareCortexMプロジェクトは、OSなしのC ++でCortex Mシリーズ、特にSTM32を使用して開発するためのEclipseテンプレートです。openocd、gccを使用するように構成されており、検出ボードの一部を含む複数のターゲットに対してフラッシュおよびデバッグするスクリプトがあります。指示に従い、推奨されるEclipseプラグインをインストールすることで、UbuntuでSTM32VLDISCOVERYを使用することができました。
推奨されるように、私はeclipseテンプレートを同じ著者のSTM32ハードウェア用のlibstm32pp C ++テンプレートライブラリと組み合わせました。libstm32ppはCMSISのための驚くほど完全な代替を提供し、多くの場合、あなたはのようなものを言うことができますプログラミングモデルでSTM32のドライバーを批判PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
し、PINB::setLow()
またはPINB::setHigh()
起因するC ++テンプレートにほとんどコンパイルインラインすべてを。セットアップはとてもいいです。
たぶんそれは誰かに役立つでしょう:私の短い記事(ロシア語)とシンプルなプロジェクト。すべてLinuxで、Eclipseなどの不要なものはありません。
ライブラリは、インターネットの多くのGPLの例の1つから、STのWebサイトmakefileから取得されました。
Linuxまたはその他のOSでSTM32F0 Discoveryボードを使用してクイックスタートを行うための、小さくても革新的なテンプレートプロジェクトを次に示します。
https://github.com/dobromyslov/stm32f0-chibios-template
このプロジェクトでは、無料でオープンソースのリアルタイムオペレーティングシステムであるChibiOSを使用しているため、まったく最初から実装されているわけではありません。
platformioを検討してください。コマンドラインにまったく慣れている場合は、platformioを使用すると開発プロセスが大幅に簡単になります。pio init
プロジェクトのセットアップに使用できます。pio run
ツールチェーンを活用してコンパイルします。pio run --target upload
コードをデバイスに送信します。Platformioは、必要に応じてツールチェーンコンポーネント、ライブラリなどのダウンロードを処理します。