36
mbedの互換機を作ってみた Yoshihiro TSUBOI @ytsuboi

mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

  • Upload
    votu

  • View
    259

  • Download
    4

Embed Size (px)

Citation preview

Page 1: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

mbedの互換機を作ってみたYoshihiro TSUBOI

@ytsuboi

Page 2: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

自己紹介

@ytsuboi主にTwitter界隈をうろうろ

2009 2010- 2012-

Page 3: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

主な活動

Page 4: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

主な活動

Massimo Banzi @Arduino Eric Pan @Seeed Studio

Pt, Ladyada @AdafruitNathan Seidle @Sparkfun

Page 5: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

みなさんmbedしてますか!?

Page 6: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

mbedは素晴らしい!!

TQFP100(0.5mmピッチ)のLPC1768をDIPで。ユニバーサル基板でCortex-M3が使える。

Page 7: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

mbed便利

Page 8: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

私もGPSロガーを作ったり。

Page 9: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

AVRライタを作ったり。

Page 10: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

でも秋月でも5,200円…

Page 11: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

mbedのコンパイラはRVDS

To perform the actual compilation the mbed Compiler uses the industry standard ARM RVDS 4.1 compiler engine, in the default configuration, to give excellent code size and performance.

http://mbed.org/handbook/mbed-Compiler

Page 12: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

RVDSは凄いとあるコードをコンパイルすると、mbed(RVDS)…31KBLPCXpresso(gcc)…100KB

CoreMarkを実行すると、

LPCXpresso LPC1769でCoreMarkを動かす - PS3とLinux、電子工作もhttp://todotani.cocolog-nifty.com/blog/2011/04/lpcxpresso-lp-1.html

Page 13: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

mbedのバイナリの流用

There are no limitations on code size (apart from the limits of the device itself!), and the generated code can be used freely for commercial and non-commercial use.

http://mbed.org/handbook/mbed-Compiler

ARMさん太っ腹!

Page 14: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

バイナリはLPCXpressoでも

LPCXpresso NXP LPC1769なら秋月で2,500円デバッガも付いてる!(mbedじゃ使えません。詳しくは次のプレゼンを!)

EthernetのPHYの石が異なるのでTCP/IPはダメです。なによりもサイズが違うので置き換えもできません。

Page 15: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

オフィシャルにも互換機の…

Prototype to hardware - mbedhttp://mbed.org/users/chris/notebook/prototype-to-hardware/

中の人(Chris Stylesさん)が互換機の作り方を解説してくれています。

Page 16: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

既に有る互換機

http://mbed.org/users/franzachatz/notebook/reference-design/

Galileo7 LPC1769http://mbed.org/users/okini3939/notebook/g7lpc1769/

Page 17: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

僕も作った

通称 pati-bed (compati-mbed)

Page 18: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

特徴

・そのままリプレイス可能(だいたい)・mbedチップは無し →マスストレージではなくlpc21ispなどで書く・Ethernet付きと無しの2種類 →もちろん、PHYのチップも同一品・だいたいmbedの半額 →mbed組込の作品をそのまま置いておける

Page 19: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

ステータス

・量産がめんどくさい… →実装やさんに頼むしかないかな・今までISP(UART)を使って書き込む前提で 進めていたがSWD使えるようにしたく なってきた。

Page 20: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

他にも作ってる

Page 21: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

LPC1768

ISP用UART

USB Host

ArduinoとはSPIで通信LPCは5Vトレラントで素晴らしい

Page 22: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

ステータス

・ハードウェアはできあがったので、 ソフトウェアを開発中 SPIめんどくさい・まずは3Gモデムから →次はBT4LEやろうかな・もちろんOpenSourceにします・USB Hostでこんなの実装したいという旨を 教えてくださったら差し上げるかも。

Page 23: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

思ったこと

・エディタいまいちだよね・VCSはgitとかでアクセスさせて欲しい・デバッガ欲しい printfの時代じゃないよね。コスト高いし。  →ローカル開発がしたくなる   →ムカついてDS-5/RVDS買った。    けど、ぶっちゃけMDKのほうがオススメ

Page 24: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

CMSIS-DAPブーム到来

デバッグアダプタ欲しくて勢いでつくった。

Page 25: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

でも、MDKってお高いんでしょ?

Page 26: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

32KBまでならタダ!

→黄色は美味しくいただけます!

Page 27: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

最近のmbedすげぇ

GDBを使ったデバッグが進捗中なんかOpenOCDサポートも来るらしい

Page 28: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

ARM面白い、mbed面白い・mbedのオンラインコンパイラは便利・ペリフェラルの初期化とか楽ちん →ローカルでもそのまま使える・回路図公開されているので自作のCortex基板の ファームをmbedでチョロ書きとかできる・この類の環境にデバッガは無かったけれども、 デバッガ環境も整いつつある・次のステップはNXPのペリフェラルドライバ →nxp-lpc.comとか超便利

Page 29: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

ところで

Page 30: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

1%1%

98%

mbedを始めた理由

ボタンがカッコイイARMだからクラウドだから ※調査方法: 私のイメージ

Page 31: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

100%

開梱したときの第一印象

ボタンが普通※調査方法: 私のイメージ

Page 32: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

これは無いでしょ!!!

Page 33: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

超探した

Page 34: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

KEILの評価ボード

ボタン欲しさに引っぺがす事案まで発生

Page 35: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

でも僕はKEILのボード持ってない…

Page 36: mbedの互換機を作ってみた€¦ · ユニバーサル基板でCortex-M3 ... Compiler uses the industry standard ARM RVDS ... LPCXpresso(gcc)…100KB

見つけた!