スキップしてメイン コンテンツに移動

投稿

1月, 2021の投稿を表示しています

CUBE-IDEにてCMSIS-DAPアダプター化したBluePill(STM32F103C8T6)を使いSTM32をデバッグ

ST社のCubeIDEのデバッグプローブはSTLINKとJLINKには対応していますがそのままではCMSIS-DAPプローブでデバッグすることができません。しかし、CubeIDE自体はEclipseをベースにしているので、Eclipseのプラグインはインストールできます。そこで、gnu-mcu-eclipseプラグインをインストールし、CMSIS-DAPデバッグプローブをCubeIDEにて使えるようにしてみました。( BluePillをCMSIS-DAPプローブにして接続。 ) まず、CubeIDEを起動します。続いて、Help -> Install new software...を選択し、以下のURLでインストールを開始します。 http://gnu-mcu-eclipse.netlify.com/v4-neon-updates/ なお、openocd.exeとarm-none-eabi-gdb.exeは既にC:\Devz以下にwindowsにインストール済みの前提です。 OpenOCD: C:\Devz\OCD toolchain: C:\Devz\ARM\gnu make.exe: C:\Devz\ARM\gnu\bin オプションを選択したら、次へをクリックします。ライセンスを確認し、さらに進むとプラグインのインストールが開始され、ウィンドウの右下にインストールの進捗が表示されます。その後、再起動するか聞いてきますので、OKをクリックしてください。 プラグインのインストールが済んだら、プロジェクトを作成してください。もちろん、既存のプロジェクトを開いてもかまいません。つづいてCMSIS-DAPアダプタをつかえるように、メニューの"RUN-Debug Configurations..."をクリックしてデバッグの構成を行います。 Debug Configurationsのウィンドが開くので、ここで"GDB OpenOCD Debugging"の項目をダブルクリック(ないしは、選択してから左上の"New Launch Configuration"をクリック)します。そうすると以下の様になります。 次は、OpenOCDの設定を以下の様にします。前述しましたがOp

Blue Pill (stm32f103c8t6)をVCOM付のCMSIS-DAP SWD/JTAG デバッグプローブにする

STLinkV2やFTDI232Hのデバッグプルーブは、STLINKV2_1とは異なり、VCOMがついていません。しかし、Blue Pillの場合、VCOM付のCMSIS-DAP SWD/JTAG プローブにすることができるようなのでやってみました。別途シリアル変換ケーブルなどを用意する必要がなく便利なので本稿を上げた次第です。 まず、CMSIS-DAPプローブにするためのバイナリーをダウンロードします。 #remap版 wget https://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO/blob/master/build/F103-DAP-SWO-CDC-BLUEPILL-SWD_REMAP.hex #pb8pb9版 wget https://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO/blob/master/build/F103-DAP-SWO-CDC-BLUEPILL-SWD_PB8PB9.hex 続いて、ダウンロードしたバイナリーをBluePillに焼き込みますが、Windows環境下では方法として以下の様にいくつかあります。 1. 別にあるSTLINKを使う場合(Cube Programmer(STLink mode)/STLINK utility/Openocd経由) 2. 別にあるFT232Hを使う場合(OpenOCD経由もしくはCube Programmer(UART mode)経由/Flash Loader Demonstrator経由) 3. シリアルポート接続し、Flash Loader Demonstrator経由/Cube Programmer(UART mode)経由 4. FT232Rを使い、OpenOCD(注4)もしくはFlash Loader Demonstrator経由/Cube Programmer(UART mode)経由 注4. OpenOCDはビルドが必要な場合が多く、Windowsでつかう場合はzadigでドライバをWINUSBにする必要がある。 また、FT232RはzadigでドライバをWinUSBにするとシリアルポートとしてつかえなくなる。 追記:2021/02/20 

NuttX on ESP32: wapiを使ってみる (as of Jan/2021)

注意:2021/03/29現在、wapi scan などが動作するようになっています。また、ビルド時点で esp32に書き込みできるnuttx.binが生成されますので、ご注意ください。 ビルドしてみてわかったことですが、2021年1月時点では、esp32向けのwifiはまだ初期段階の様子でwapiコマンドもクライアントモードで一部動作するもののステーションモード・APモードでは動作確認ができませんでした。また、どこかでスリープが入るのか、長時間のwifi接続の確認ができていません。とはいえ、wifiがやっと動作するようになりつつあるので、今回はwapiの設定をしてみることにしました。 ところで、wapiとは何かというと、ローレベルのwifiルーチン群でifconfigやwlconfigに対してインターフェースを提供するCのルーチン群だということだそうですが、nuttxのesp32ではコマンドラインにも対応しているので、以下、早速設定していきたいと思います。 なお、レポジトリやビルド環境のセットアップは 前回 と同じく、masterをクローンしてビルドしていますので、参考にしてください。 まず初めにコンフィグを読み込みます。 cd /usr/src/nuttx-master/nuttx tools/configure.sh esp32-devkitc/wapi 追記: 2021/03/29現在、renewコマンドはwapiコンフィグに既に含まれているので、以下不要です。 つづいて、設定を一部変更します。まず初めに、dhcpc renewコマンド(renew)をビルドするようにしておきます。 make menuconfig # /を入力してサーチモードに入り、以下を検索してenalbeしてください。 CONFIG_SYSTEM_DHCPC_RENEW 基本的にwapiのコンフィグはこれだけです。つづいて 前回( https://benedicam-te.blogspot.com/2021/01/nuttx-on-esp32-board-build-environment.html ) と同じように以下の様にします。 make -jX # 2021/03/29追記: nuttx.binはbuild時点でesp32に書き込まれる状態で生成

Nuttx on ESP32 board : build environment setup for linux and build nsh for esp32

Nuttx master repositoryにesp32のwifi関係がやっと入ったので、まずは、ESP32をビルドする環境をLinux(Debian 11)上で整え、nshをビルドして見ました。それでは早速設定していきます。 #nuttx用のツール類のインストール sudo apt-get install kconfig-frontends #esp32 idf用のツール類のインストール sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools \ python3-serial python3-click python3-cryptography python3-future python3-pyparsing \ python3-pyelftools python3-libusb1 cmake ninja-build ccache #python3をデフォルトにしておく。 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 nuttxのソースをクローンし、esp32の開発環境を読み込むようにしておきます。 cd /usr/src sudo mkdir /usr/src/nuttx-master sudo chown -R YourUseName nuttx-master cd nuttx-master git clone https://github.com/apache/incubator-nuttx nuttx git clone https://github.com/apache/incubator-nuttx-apps apps cd nuttx make -C tools/esp32 ${HOME}/esp/esp-idf #ツール類のダウンロードが行われ、数分かかります。 #続いて ~/.bashrc を編集し、ログイン時にesp32のidf環境を読み込むようにしておきます。 . ${HOME}/esp/esp-idf/export.sh ここで一旦ログアウトして、再度ログインしてください。 S