ラベル EmBitz の投稿を表示しています。 すべての投稿を表示
ラベル EmBitz の投稿を表示しています。 すべての投稿を表示

2015年9月4日金曜日

EmBitzでC++11を使う

EmBitz では メニューProject - Build options - compiler settings - C++ Flags - Languate standardで
GNU++ 98 から GNU++ 11 へチェックボタンを切り替えます。

プログラムからは 定義済みマクロの __cplusplus の値を見てC++のバージョンを区別出来ます。
ARM C++コンパイラ __cplusplus=1
GCCのC++98 __cplusplus=199711
GCCのC++11 __cplusplus=201103

例えばC++11以前のバージョンを弾くには次のように記述します。
#if __cplusplus < 201103
#error "not C++11."
#endif

参考:
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング

(2015/9/3)
---


2015年8月14日金曜日

EmBitzでmbed LPC1768のデバッグ設定(暫定)

MDKのようなソースコードレベルでのデバッグはまだ出来ていませんが、
pyOCDバイナリ版のpyOCD_Winを使えばフラッシュ書込み、アセンブラレベルでのステップ実行くらいならできるようになったので設定方法です。

pyocd_win.exe を次のサイトからダウンロードします。
https://launchpad.net/gcc-arm-embedded-misc/pyocd-binary/

EmBitzのメニューDebug - interfacesでGDBサーバとしてpyOCDを設定します。
Generic
IP address: localhost
port: 3333
Executable: pyocd_win.exe
Pathはpyocd_win.exeをBrowse入力すると自動で設定されます。


メニューDebug - start sessionでデバッグを開始すると初回のみセキュリティ確認がでますが、
pyOCDが実行されてmbed LPC1768のデバッグが出来るようになります。


ただし、ソースコードレベルでブレークポイントで止めたりステップ実行は出来ない。
ディスアセンブル表示の中ではブレークポイント、ステップ実行は効きます。
EmBitz側で設定しなければならないところがあるのだろうと思います。

pyOCDなのでCMSIS-DAPのmbedなら同様にデバッグ出来そうだが未確認です。

参考:
pyOCD Binary Version
https://developer.mbed.org/blog/entry/pyOCD-Binary-Version/

(2015/8/14)
---

STM32 ST-LINK Utilityでフラッシュ書込み

NUCLEO-L152REはmbedインターフェースのドラッグ・アンド・ドロップでもフラッシュ書込みが出来るのだが、
EmBitzのメニューからSTM32 ST-LINK Utilityを使えるようにします。

インストール
次のサイトから STSW-LINK004 stsw-link004.zip をダウンロードします。
http://www.st-japan.co.jp/web/jp/catalog/tools/PF258168
zipファイルを展開すると STM32 ST-LINK Utility_v3.7.0.exe が出来るので実行してインストールします。

STM32 ST-LINK Utilityを起動してNUCLEO-L152REが認識するのを確認します。
左から3個目のアイコンまたはメニューのTarget-ConnectでボードのMCUの情報が読み取れます。


EmBitzの設定
EmBitzでhexファイルを作成するように
メニューのProject-Properties-Build TargetsでGenerate Hex fileのチェックを入れます。


EmBitzのメニューのTools-Configure tools-Addで
次のようにコマンドライン版のST-LINK_CLI.exeを設定します。
parameters: -P ${TARGET_OUTPUT_DIR}${TARGET_OUTPUT_BASENAME}.hex -Rst
-P オプションはフラッシュ書込み、 -Rst オプションはリセットの意味です。


フラッシュ書込み
EmBitzのメニューのTools - STM32 ST-LINK Utilityでフラッシュ書込みが出来るようになります。

(2015/8/14)
---

2015年5月21日木曜日

mbedオフライン環境にEmBitz beta 0.31を試す(Nucleo F411RE編)

インストール

EmBitz beta 0.31をダウンロードする。
EmBitz_Beta 0.31.7z
http://www.emblocks.org/forum/viewtopic.php?f=1&t=595
7zipで展開、EmBitz_Beta 0.31.exeを実行してインストールする。

プログラムのエクスポート

オンラインコンパイラからmbed_blinky_emblocks_nucleo_f411re.zipを保存する。展開する。


プログラムのインポート

EmBitzでmbed_blinky.eixを開く。


ビルドするとmain.cppで使っているmbedライブラリのwait関数が他のライブラリのと衝突する。


wait関数を使わない(例えば、代わりにwait_msを使う)か、次のようにmbedライブラリを最初にリンクするように変更する。


ビルドは成功する。


実行・デバッグ

デバッカを起動して実行ファイルをNucleo F411REに書込む。


デバッカでステップ実行も出来ます。


バイナリーファイルの作成

mbedに書込むだけならバイナリーファイル形式が便利なので、EmBitzのToolsメニューにELFファイルからの変換を追加します。

メニューのTools - Configure tools… - Add - Edit tool で以下のように設定します。


(2015/5/23)
---