MDK-ARMでPSoC開発
坪井義浩
自己紹介
坪井義浩 (つぼいよしひろ) @ytsuboi

薬屋、ときどきスイッチサイエンス

Make:は趣味
2009 2010-
会社紹介
• 株式会社スイッチサイエンス
• 2010年に設立
• 社員15名
• オンラインショップ
https://www.switch-science.com/
@ssci_official
Pt, Ladyada @AdafruitNathan Seidle @Sparkfun
Chris Styles @mbed
Simon Ford @mbed
Toyomasa Watarai @mbed
Eric Pan @Seeed Studio
Chi-Hung Ma @RedBear Lab
I ♥ Cortex-M!!
ふーん←→うっひょー!
※個人の感想です
MDK-ARMって?
• ARM(Keil)の提供する、ARMコアのソフト
ウェア開発環境
• armccというコンパイラが含まれている
• 有償(結構お高い)

32kBまでという制限があるが、MDK-Lite

という無償版が存在する
CoreMarkって
• http://www.eembc.org/coremark/
• Embedded Microprocessor Benchmark
Consortium (EEMBC)が配布しているベンチ
マーク
• 組み込み業界ではデファクトスタンダード
• セミコンが移植していたりする
• 配布に制限がある
CoreMark
http://www.eembc.org/coremark/
Generated Source
Export
PSoC CreatorのProject→Export to IDEでExport可能
MDK(uVision)
Exportといっても、既存のフォルダにMDK
のプロジェクトファイルが追加されるだけ。
MDKでコードを編集
結果
0
10
20
30
40
ARM Compiler 5.05 update 1 (build 106) GCC4.8.4 20140526 (release)
共に-O3でビルド。armccはgccの9.2%高速なバイナリを出力
※時間の計り方に難がありますので、スコアそれ自体は

参照しないでください。
37.362925 34.206746
バイナリのサイズ
0
7500
15000
22500
30000
ARM Compiler 5.05 update 1 (build 106) GCC4.8.4 20140526 (release)
共に-O3でビルド。armccはgccの84.56%のバイナリを出力
16,952 20,048
debug
ハマった点
• MDKでビルドしたバイナリが走らない…

debugしてみたところ、BKPTが実行されてる
• セミホスティング

http://infocenter.arm.com/help/index.jsp?topic=/
com.arm.doc.dui0205gj/Bgbjjgij.html
• CoreMarkのコードは移植性を高めるため、printf()を使
用可能かどうか設定できた

→TrueのままだったのでFalseに変更
まとめ
• PSoC 4/5LPの開発ではMDK-ARMも選択可
• armccの生成するバイナリはチート級

実行速度で約1割Up、サイズは約85%に
• MDKでコードを書いても、PSoC Creatorに

戻って開発が可能
• MDKのデバッグ超便利(PSoC Creatorのステップ

実行は遅かった気がする…
PSoCちょっとここが…
• PSoC 4/5LPのモジュールのバージョン変わり
すぎ
• モジュールのドキュメントに書いてある情報
が少なめな印象
• Cortex-Mコアを使うための情報が少なめ
ちょっと変わったことをしようとすると
ハマるのが惜しいなぁ…

MDK-ARMでPSoC開発