開発ツールPlatformIOをArchProで使う(mbed版)
2020/5/20+
PlatformIO cli ArchPro
PlatformIO cli ArchPro
概要
開発ツールPlatformIOを以下のArchProで使う(mbed版)。VisualCodeのプラグインとしてPlatformIOを使用することができるが、ここでは、cliとしての使い方について記する。 (ホストPCとしてはubuntuを想定している)
PlatformIOのインストール
python3 -m venv pio_env
source pio_env/bin/activate
pip3 install platformio
インストール後も、本ツールを使用する場合
同じディレクトリで以下を実行する:
source pio_env/bin/activate
# 「source」は、「.」でも良い
準備
以下を実行して、udevのrulesを登録する:
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
sudo udevadm control --reload-rules
sudo usermod -a -G dialout $USER
sudo usermod -a -G plugdev $USER
interface firmwareをアップデートする:
wget https://developer.mbed.org/media/uploads/yihui/lpc11u35_lpc1768_if_mbed_20150128.bin
# ボードのボタンを押しながらホストPCとUSB接続する
#「MBED LOADER」のホルダが現れるので、
# ここに上のダウンロードしたファイルをドラッグ&ドロップする
# ファームウェアの書き込みが開始されるので
# 書き込みが終了するまで待つ
なお、以下のバイナリが最新版のようだが、linuxでエラー(容量不足)になって書き込めなかったので、
上で説明したバイナリを利用した:
https://armmbed.github.io/DAPLink/firmware/0253_lpc11u35_archpro_0x0000.bin
(windowsでは書き込めるのかもしれない)
テスト用プロジェクト blink を作成/実行する
#ターゲットボードのtarget名を検索する
# (ここでは seeedArchPro を検索する)
$ pio boards | grep Arch
#出力例:
seeedArchBLE NRF51822 16MHz 128KB 16KB Seeed Arch BLE
seeedArchLink NRF51822 16MHz 256KB 16KB Seeed Arch Link
seeedArchGPRS LPC11U37 48MHz 128KB 10KB Seeed Arch GPRS V2
seeedArchPro LPC1768 96MHz 512KB 64KB Seeed Arch Pro
seeedArchMax STM32F407VET6 168MHz 512KB 192KB Seeed Arch Max
#target名として「seeedArchPro」が判明した
# プロジェクトblink のディレクトリを作成する
mkdir blink
cd blink
# 以下を実行して必要なファイルを作成する
pio init --board seeedArchPro
nano platformio.ini
# platformio.iniを以下のように編集する:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:seeedArchPro]
platform = nxplpc
board = seeedArchPro
framework = mbed
upload_port = /media/USER/MBED
upload_protocol = mbed
debug_tool = cmsis-dap
「/media/USER/MBED」の部分は、自分の環境に合わせる。
続き:
# テスト用のmain.cppを作成する
nano src/main.cpp
以下の内容に編集する:
#include "mbed.h"
//DigitalOut led1(LED4); // ORANGE
DigitalOut led1(LED3); // BLUE
//DigitalOut led1(LED2); // RED
//DigitalOut led1(LED1); // GREEN
int main() {
while(1) {
led1 = !led1;
wait(0.1);
}
}
続き:
# build
pio run
# ボードをホストPCに接続する
# build&upload(flash)
pio run -t upload
# buildしないで書き込む場合は以下を実行する:
pio run -t nobuild -t upload -v
# -v は、詳細を表示するオプション
# 以上で、基本的な操作としては完了となる
書き込み後、ボード上にある4つのLEDのうちの1つが点滅する。
VScodeにplatformioのプラグインがインストールされているのであれば
code ./blink
でVScodeを起動して、ソース上の行番号の左側をクリックして
ブレークポイントを設定してデバッガができる。
別のサンプル例
#include "mbed.h"
Serial pc(USBTX, USBRX, 115200); // tx, rx
DigitalIn mypin(P0_23); // change this to the button on your board
DigitalOut myled(LED3);
int main()
{
// check mypin object is initialized and connected to a pin
if(mypin.is_connected()) {
pc.printf("mypin is connected and initialized! \n\r");
}
// Optional: set mode as PullUp/PullDown/PullNone/OpenDrain
mypin.mode(PullNone);
// press the button and see the console / led change
while(1) {
pc.printf("mypin has value : %d \n\r", mypin.read());
myled = mypin; // toggle led based on value of button
wait(0.25);
}
}
書き込みが完了すると、以下の動作になる:
P0_23が入力ポートになっているので、このポートをGNDか3V3に接続すると、
値か0か1に変化する。この値が0の場合、青いLED3が光る。入力ポートの
状態は、シリアル(/dev/ttyACM0)出力される。
参考情報
Seeeduino-Arch-Pro mbed
mbed/Platform/ArchPro wiki
以上
| 固定リンク
「linux」カテゴリの記事
- platfomioを使ってnaitive(linux/windows)のプログラムをビルドする方法(2021.03.10)
- micro:bit Yotta開発ツール(linux版)(2021.01.09)
- PlatformIOをRaspberryPi4で動かしてみる(実験)(2020.10.20)
- headless RaspberryPiインストール方法(v2)(2020.10.20)
- wio-terminalのファームウェア・アップデートについて(linux版)(2020.10.15)
「PlatformIO」カテゴリの記事
- NuEVI/NuRADのビルド(2022.08.18)
- Wio_ExtFlashLoad(WriteSampleMenu.ino)スケッチをplatformioでビルドする(2022.02.03)
- uncannyeyesスケッチをplatformioでビルドする(2022.01.31)
- LovyanGFX-Display ライブラリを使用したスケッチをplatformioでビルドする(2022.01.30)
- Wio-Terminal/M5Core2のWiFiAnallyzer(2022.01.24)
「mbed」カテゴリの記事
- micro:bit Yotta開発ツール(linux版)(2021.01.09)
- micro:bit Arduino/MBED開発ツール(v2)(micro:bit-v2対応,linux版)(2021.01.02)
- NUCLEO-F767ZIにMicropythonをインストールする(v2)(2020.05.22)
- 開発ツールPlatformIOをArchProで使う(mbed版)(2020.05.20)
- 開発ツールmbed-cliをインストールする(2020.04.10)
コメント