電子工学部のブログ

京都教育大学附属高校、電子工学部のブログです。 電子工学部では、ロボカップジュニア サッカーBやWROなどの、ロボットの大会に出場しています。
ホームページはこちら

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

STbee Mini、Macでの開発環境の構築(Xcode,DFU)

Macでの、開発環境の構築は大変なものです。構築方法についても、ネット上での情報も少なかったり、古かったりと、これだ!みたいなものが無いのが現状です。僕も、この方法に到達するまでに、何週間もかかってやっと出来ました。(これだけで、かなりMacやXcodeの内部構造について知れたような気がします。)
なお、この方法がうまくいくことは、僕自身が成功したことで証明しますが、バージョンなどの 環境や、その他の原因でうまくいかない場合もあると思います。また、僕の日本語や用語、具体的な方法が分からない場合もあると思いますので、全く遠慮なくコメント欄で質問や異議の申し立てをして下さい。出来る限り対応したいと思います。
ちなみに、この開発環境はOS X Lionのときに作成して正常に動き、Mountain Lionでも正常に動いています。


STbee Mini、Macでの開発環境の構築(Xcode,DFU)

*STbeeでも、おそらく同じ手順でいけます。(未確認)(ダウンロードするStrawberry-Linuxからのサンプルプロジェクト(mini-demo)は、STbee用のもの(http://strawberry-linux.com/pub/stb-led.zip)に置き換えた方が良いかも知れません。その場合、ファイル名が変わるので注意!)
*たぶん、STM32単体の場合でも似たような手順でいけると思います。(未確認)(コンパイラーはARM用のものを使用しているので、ARMのコアを使用していれば、STM32に限らずコンパイルはできるはずです。ただし、Makefileは使用できるかも知れませんが、おそらくライブラリとかは別のものが必要だと思います。)(DFUやDFUSEなど、dfu-utilが対応しているプログラムのダウンロードの方式なら、書き込みコマンドを変えれば書き込めるはずです。)
*つまり、ある程度は応用が効く開発環境だと思います。(未確認)


前提条件
・Xcodeがインストールされている
・MacPortsがインストールされている
*この条件に満たない場合は、Xcode、MacPorts(PATHの通し忘れの無いように注意して下さい)をインストールして下さい。(開発をターミナルで行うとしても必要です。




Xcodeでのコンパイル

1、yagartoをダウンロード(http://sourceforge.net/projects/yagarto/files/latest/download?source=files

2、ダウンロードされたzipファイルを展開して、その中にあるアプリケーションを、デスクトップに移動して、実行する。

3、デスクトップ上に現れるyagarto-4.7.1を/usr/localに移動する。(バージョンによって微妙に名前が違うかも)

4、mini-demoをダウンロード(http://strawberry-linux.com/pub/mini-demo.zip)

5、XcodeでExternal Build toolプロジェクトを作って、その中に、mini-demoの中身を全部プロジェクトに追加する。(必要でないものも有りますが・・・)

6、Makefileの
CC = arm-none-eabi-gcc
LD = arm-none-eabi-ld
AS = arm-none-eabi-as
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
SIZE = arm-none-eabi-size
NM = arm-none-eabi-nm
  を
CC = /usr/local/yagarto-4.7.1/bin/arm-none-eabi-gcc
LD = /usr/local/yagarto-4.7.1/bin/arm-none-eabi-ld
AS = /usr/local/yagarto-4.7.1/bin/arm-none-eabi-as
OBJCOPY = /usr/local/yagarto-4.7.1/bin/arm-none-eabi-objcopy
OBJDUMP = /usr/local/yagarto-4.7.1/bin/arm-none-eabi-objdump
SIZE = /usr/local/yagarto-4.7.1/bin/arm-none-eabi-size
NM = /usr/local/yagarto-4.7.1/bin/arm-none-eabi-nm

  に書き換える

(環境の構築完了)

A、main.cの中身を好きなように書き換える。

B、Xcodeでビルドする。

完成!



Xcodeからの書き込み

1、ターミナルで
  sudo port install libusb libusb-compat git-core
  cd /Users/(ユーザー名)/Desktop
  git clone git://git.openezx.org/dfu-util.git
  cd dfu-util
  ./autogen.sh
  ./configure --libdir=/opt/local/lib --includedir=/opt/local/include
  make
  を一文ずつ実行する

2、デスクトップに生成される、dfuse-dfu-utilを/usr/localに移動する

3、Xcodeでのコンパイル が終わった状態までにはしておく。

4、Makefileの313行目くらいに
   program:
$(OBJCOPY) -O binary $(TARGET).elf $(TARGET).bin
/usr/local/dfuse-dfu-util/src/dfu-util -a 0 -d 0x0483:0xdf11 --dfuse 0x08003000 -D $(TARGET).bin
  と書き加える。

7、XcodeのBuild Toolの、Argumentsのパラメーターを$(ACTION)からall programに変更する。



(環境の構築完了)

A、main.cの中身を好きなように書き換える。

B、STbee MiniをDFUモードにする。

C、Xcodeで、ビルドを実行する。

*プログラムのビルドと書き込みが両方行われる。
*次のようなエラーが出て、実行に失敗した場合は、ほとんどの確率でMac側でSTbeeを認識していない場合に起こります。何回か接続のやり直しをすると直ることがほとんどです。それでも直らない場合は、何か別の問題があります。
 /usr/local/yagarto-4.7.1/bin/arm-none-eabi-objcopy -O binary mini-demo.elf mini-demo.bin
 /usr/local/dfuse-dfu-util/src/dfu-util -a 0 -d 0x0483:0xdf11 --dfuse 0x08003000 -D mini-demo.bin
 No DFU capable USB device found
 dfu-util - (C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
  (C) 2010 Tormod Volden (experimental DfuSe support)
 This program is Free Software and has ABSOLUTELY NO WARRANTY

 dfu-util does currently only support DFU version 1.0

 make: *** [program] Error 1
 Command /usr/bin/make failed with exit code 2


*全てが成功した場合、次のような画面を表示させることが出来ます。



D、STbee Miniをリセットする。

完成!


これが、僕がうまくいったXcodeプロジェクトです。
STbee_Mini_Xcode_Test

最後に。
これらの設定を毎回やり直すのはめんどくさいので、一発で全てが設定できる(ソフトのインストールなどは終わった状態から)Xcodeテンプレートを作成しようとしましたが、あと一歩というところまでは行ったのですが、なぜかlibフォルダの追加がうまくいかず、それだけは手動でやらなければならない、というようなものしか出来ませんでした。誰か解決策を見つけた人はコメント欄にて教えてくださると嬉しいです。
ちなみに、僕が作ったテンプレートはこれです。STbee_Mini_Xcode_Template。/Users/ユーザー名/Library/Developer/Xcode/Templatesに置いて使用します。α版なので、よく分からない人は使用しないで下さい。 続きを読む
スポンサーサイト
  1. 2012/08/07(火) 01:19:10|
  2. STM32
  3. | トラックバック:0
  4. | コメント:2

プロフィール

Takuji Matsumoto

Author:Takuji Matsumoto
FC2ブログへようこそ!

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (10)
PSoC (1)
STM32 (1)
ロボット (4)
ロボット センサー (2)
本日の活動内容 (3)
電子工学部 (3)
Mac (1)
Arduino (1)
ロボカップジュニア (0)
ブログ (3)
大学 (2)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。