STM32/MacでOpenOCDを使う

今回は OpenOCD(Open On-Chip Debugger) のインストール・設定手順について記述します。
Macユーザーなら Homebrew — The missing package manager for OS X をインストールしている方も多いと思います。このツールを使用すれば、OpenOCDのインストールは簡単です。

Homebrewをインストールしていない方でOpenOCDを使いたいと考えている方は、Homebrewをインストールしましょう。ターミナルから以下のコマンドを入力すれば良いです。


/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

詳細は、WEBページを検索してみてください。

OpenOCDのインストール

以下のとおりコマンドを入力すれば良いです。


brew install openocd --enable_ft2232_libftdi --enable_stlink

上記のコマンドラインの内容から察することができると思いますが、ST-LINKとFTDI社のFT2232を使用したデバッガ(JTAGKey clone)の使用を想定しています。

OpenOCDをST-LINKで使用する

環境構築

まずはST-LINKを入手しましょう。STM32 Discovery / Nucleoシリーズを購入するのが安上がり。安いものだと1500円くらいからあり、STM32シリーズのCPUとST-LINKがついてきます。商品によっては周辺機器が付属するものもあります。

Nucleoシリーズの場合、ST-LINKと本体を分離することが容易になっています。なかには NucleoとかいうST-LinkをFRISKケースに入れる - STM32 – Tokoro’s Tech-Note のように、分離してFRISKケースに入れる方もいます。

OpenOCDとST-LINK、そしてCPU(簡単なのは、Discovery / Nucleo)の準備ができたら、OpenOCDの設定ファイルを作成しましょう。CPUにより若干異なってきますので、CPUに合わせて設定しましょう。代表的な環境に対する設定ファイルは /usr/local/share/openocd/scripts/ 配下にあるので、一度参照してみると良いと思います。

当方はWEBページなどを参考にしながら、以下のようなものを用意しました。

  • stm32f3discovery.cfg

Script for connecting with the STM32F3DISCOVERY board

source [find interface/stlink-v2.cfg]
source [find target/stm32f3x_stlink.cfg]
reset_config srst_only srst_nogate

  • stm32f4nucleo.cfg

Script for connecting with the STM32F4NCLEO board

source [find interface/stlink-v2-1.cfg]

SRAM 96KB version chip

set WORKAREASIZE 0x18000
source [find target/stm32f4x_stlink.cfg]
reset_config srst_only srst_nogate

  • stm32f0discovery.cfg

This is an STM32F0 discovery board with a single STM32F051R8T6 chip.

http://www.st.com/internet/evalboard/product/253215.jsp

source [find interface/stlink-v2.cfg]
transport select hla_swd
set WORKAREASIZE 0x2000
source [find target/stm32f0x.cfg]
reset_config srst_only

動作確認

ターミナルから実行してみる。うまく動作すれば以下のとおり表示される。


$ openocd -f stm32f0discovery.cfg
:
Info : This adapter doesnt support configurable speed
Info : STLINK v2 JTAG v16 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : Target voltage: 2.892453
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints

Eclipseから実行できるようにする

Eclipseを起動ししたら、 Run >> External Tools >> External Tools Configuration を選択します。

External Tools Configuration

上記の画像を参考にしながら、それぞれの環境に合わせて記述しましょう。その後、 Run >> External Tools から実行してみましょう。正しく動作すれば、Eclipseの Console タブに先ほどターミナルから起動した場合と同様のログが出力されます。

ここまでできれば、後はサンプルプロジェクトを作り確認するのみ。あと少しです!

STM32/MacでStandard Peripheral Libraryを使用する

これまで電子工作ではArduinoを使用してきましたが、幾つかの要因が相まってARMマイコンを使用することにしました。電子工作で使用できそうなARMマイコンもいくつもあり迷ったのですが、STM32を使用することにしました。厳密に比較したわけではないですが、CPU種類がいくつもあり用途により選択の幅が広いこと。

当方はMacを使用しているのですが、Macでの環境構築を行っているとの情報が少ないために結構苦労しました。そこで自分自身の備忘録の意味合いも込め、ここにMacにおける環境構築手順を記載します。

なお、STM32の環境は、Standard Peripheral Libraryが過去に使われていたものの、最近はSTM32CubeMXを使用した環境に置きかわりつつあります。ここでは、そのどちらもインストールします。

参考文献

STM32F3DISCOVERY on Mac OS X using Eclipse, GCC ARM and OpenOCD | David Rojas

Standard Peripheral Library / STM32CubeMX共通の対応

Eclipse本体のダウンロード

Eclipse Downloads から、 Eclipse IDE for C/C++ Developers をダウンロードします。

Eclipse IDE for C/C++ Developers

Eclipseプラグインのインストール

Eclipse CDT

Eclipseを起動し、 Help >> Install New Software… からCDT関連のツールをインストールします。

CDT

  • Autotools support
  • Autotools support Source
  • C/C++ C99 LR Parser
  • C/C++ GDB Hardware Debugging
  • C/C++ Memory View Enhancements
  • C/C++ Memory View Enhancements Source
  • C/C++ Unit Testing Support
  • C/C++ Unit Testing Support Sourde

Zylin embedded CDT

Work with:Zylin Embedded CDT Plugin – http://opensource.zylin.com/zylincdt と入力し、Zylin Embedded CDT を選択します。

Standard Peripheral Library特有の設定

Eclipseプラグインのインストール

GNU ARM

Work with:CDT GNU ARM – http://sourceforge.net/projects/gnuarmeclipse/files/Eclipse/updates と入力し、 GNU ARM C/C++ Cross Development Tools を選択します。

CDT GNU ARM

Toolchain

GCC ARM Embedded project files : GCC ARM Embedded からMac向けのtoolchainをダウンロードします。当方がインストールする際 gcc-arm-none-eabi-5_2-2015q4-20151219-mac.tar.bz2 が最新であり、こちらをインストールしました。gccはバージョン5となっておりましたが、特に問題ありませんでした。ダウンロードしたら、任意のディレクトリに展開します。当方は、 ${HOME}/opt ディレクトリを作成し、こちらに展開しました。

GCC ARM Embedded project files

STM32CubeMX向けの環境を構築する

Eclipseプラグイン

STM32CubeMX

STSW-STM32095 STM32CubeMX Eclipse plug in for STM32 configuration and initialization C code generation – STMicroelectronics から サンプル&購入 にある Download ボタンを押下してダウンロードします。

STSW-STM32095 STM32CubeMX Eclipse plug in for STM32 configuration and initialization C code generation

Eclipseを起動し、 Help >> Install New Software… からダウンロードしたファイルをインストールします。

Install STM32CubeMX Eclipse

SW4STM32 System Workbench for STM32

SW4STM32 System Workbench for STM32: free IDE on Windows and Linux – STMicroelectronics にある ソフトウェアの取得 から Go to Site ボタンを押下します。
こちらにEclipseプラグインのインストール手順が記載されています。

Work with:OpenSTM32 – http://www.ac6-tools.com/Eclipse-updates/org.openstm32.system-workbench.site と入力します。

  • ARM Compiler for MCU(for Mac OSX 64 bits)
  • OpenSTM32 IDE
  • OpenSTM32 Linker Script editor

をインストールします。

OpenSTM32

ここまでで、ひとまずEclipseでビルドまでできるようになります。その手順は後日紹介したいと思います。

iPad Proで映像を堪能する

iPad Proを購入してから約1ヶ月が経過しました。なかにはiPad Proをこき下ろす人もいるようですが、当方としては便利に使用しています。どんな感じです使用しているかについて、少しずつ書いていきたいと思います。もちろん、iPad AirやiPad miniユーザにも参考になる点もあろうかと思います。

まずは「VLC」をインストール

動画再生ソフトは色々ありますが、当方は「VLC」というアプリを使用しています。理由は簡単。WindowsやMacで使用していて、使い勝手が分かっているからという点と、無料で使用できるという2点に尽きます。また、どうしても使いたい機能として、可変速度の再生があります。録画した番組を、番組によっては1.5倍速で再生したかったため。当倍速での再生なら標準でインストールされている「ビデオ」を使えばいいんだけどね。

もうひとつ重要な点としてtsファイルの再生に対応しているということ。これにより、比較的手軽にテレビ番組のリアルタイム視聴ができます。素晴らしい!

VLCに動画ファイルを転送する

転送する方法はいくつかありますが、最もお手軽と思われるのはiTunesから転送すること。Wi-fi経由での転送が可能なので、ファイルの転送を開始したら電波の届く範囲で持ち歩くこともできます。

VLCでテレビを観る

地デジチューナーで「しかるべき」環境を整えていればVLCでテレビを観ることができます。何気に便利です。当方はテレビを持ち合わせていないので、これがないとテレビが観られません。。。この環境については、時間があれば別途解説したいと思います。

お風呂でiPadを使用する

2015/12/30 現在、iPad Pro用の防水ケースがが見当たりません。仕方がないので『ジップロック』を使うことにします。ただ、これもちょっとした問題があります。旭化成から発売されているジップロックではiPad Proが入るサイズがないので海外で販売されているものを購入します。

他に100均で売っているチャック付きの袋を使うことも考えられます。ただ、チャックが一重なのに加えビニールが薄いため、水分が浸入する懸念がより高まります。よって、個人的にはジップロックを使うことにしています。

当方の場合、念には念を入れて100均のA4サイズのチャック付きの袋に入れ、更にジップロックに入れています。今のところジップロックから水分が浸入したことはありませんが、念のためです。

重宝する機能

重宝しているのは主に以下に記載した2つの機能です。たったこれだけと言われるかもしれませんが、はい、そうです。2つだけなんです。MacやWindowsで勝手を知っているのですっかりVLCに落ち着いています。ちなみにMacやWindowsではデコーダの性能が良く、他のソフトではカクツク映像でもVLCならスムーズに再生できました。そのような経験もあり、VLCを信頼しています。

再生速度の変更

普段テレビを観る時間が取りづらい、でもテレビっ子なのです。こんな時、再生速度を1.7倍くらいにして再生しています。ドラマ等だと味気ないことになるかもしれませんし、お笑い番組だと芸人の間を完全に無視することになりますが、、、ニュース等だとばっちり再生時間の短縮ができます。無料で再生速度の変更ができるアプリは意外と少ないです。VLCなら広告も入らないので気が散ることなく再生できます。

ストリーミング再生

この機能を使えばテレビチューナーからの映像を観ることができます。当方が構築した環境ではHTTPで映像が配信されるのてすが、VLCなら再生できます。

改善してほしいこと

VLCには改善してほしいこともあります。当方にとっては2つだけ。

「Slide Over」「Split Over」「Picture in Picture」への対応

iPadではiOS9にて「Slide Over」「Split Over」「Picture in Picture」という機能が追加されました。
それぞれ、「画面をスライドして2つ目のアプリを表示・操作する」、「画面を分割して2つ目のアプリを同時表示・操作する」、「画面を小さくして他のアプリを操作する」機能です。VLCでは本稿執筆時点ではサポートしていません。従って、映像を楽しみながらWEBページを閲覧したりできないのです。具体的には「Slide Over」「Split Over」においては音声は再生され続けるものの、映像が停止してしまいます。「Picture in Picture」においては全くサポートしていないようです。

バグフィクス

2015/12/31時点でリリースされているのはバージョン2.7.1なのですが、これが色々とバグを持っているみたい。2.6の頃はまだ目立ったバグは少なかったのですが、2.7.0になった途端基本的な機能にまでバグが混入される状態です。2.7.1になってバグは大分取れたようですが…
バグをそれと認識して使用できる方にとっては戸惑いは少ないかもしれませんが、そうでなければ混乱しそうです。
※それでもVLCを重宝しているんだけど。

iPad Proを購入

IMG_0662
iPad Proを購入して約1ヶ月が経過した。Webには否定的な意見も多々あるようだが、当方にとっては必要不可欠なデバイスとなっている。

■手持ちのデバイスたち

どれだけ重宝するか?については手持ちののデバイスが何であるかにもよると思う。当方では、iPad Proの他にiPhone, MacBook Proを持っている。iPhoneは電車の中で使っていることが多い。そのサイズから、立っていても無理なく扱える。MacBookは自宅でメインで使っている。購入当初は旅行のお供としても想定していたけど、カメラ関連などの荷物が重たいこともあり、出番は減っている。

そうそう、8インチのWindowsタブレットも持っている。こちらはもっぱらお風呂で貯め込んだビデオを観るのに使っていた。また、旅先でのRAW現像でも活躍していた。ただ、EOS 5Ds Rの画像は大きくメモリ不足により現像できずJPEGファイルのリサイズだけでもとんでもなく時間がかかるため、iPad Pro購入を契機にお役御免の方向。

■そして、iPad Pro登場

iPad ProはApple Pencil, キーボードと共に購入した。

○映像を見る

「VLC」が非常に便利。無料で使用でき、可変速の再生に対応している数少ないアプリであると同時にMacやWindowsでも使用しており安心感がある。8インチのWindowsタブレットではファイル選択

ダイアログが使いにくいこともあり、iPad Proに移行。

iPad Proはパワフルで、tsの再生もこなしてくれる。Raspberry-piで番組の視聴・録画を行っているのだが、ATOM搭載のWindowsタブレットでは時折発生していた音途切れもなく快適。お風呂でもテレビがちゃんとみられるのはありがたい。

○電子書籍やPDFファイルの閲覧

iPad Proの画面はA4サイズ近くあり、A4サイズの書籍が縮小されることなく表示できる。また、横方向(Landscape)にすることで2ページの表示も無理なく行うことができる。

○簡単なRAW現像

Photogeneというソフトを使用すれば、写真の簡単な調整が可能。SNSには早く、よりイメージに近い写真をアップロードしたい場合に有効。EOS 5Ds RのRAWもメモリ不足に陥ることなく現像できた。
他のiOS搭載デバイスでも現像可能な可能性はあるが、確認していない。iPad Proは4GB搭載しているのだが、その半分である2GB搭載デバイスであるWindowsタブレットではメモリ不足のため現像できなかった。OSもプラットフォームも異なるために単純な比較は出来ないが、他のiOSデバイスではメモリ不足に陥る可能性がある。何より処理速度の点でiPad Proは満足出来る。思考の妨げになることやストレスは感じられない。

○外部モニタとして

iPad向けに外部モニタとして使用できるアプリが公開されている。iPad miniやiPad Airよりも大きな画面で外部モニタとして使用することができる。