STM32F4 開発環境の構築 (eclipse + CodeSourcery + ST-LINK)
積みハードとなりつつあるすごいロガー(NinjaScan)ですが、ようやく中身のソフトウェアを開発する時間が確保できそうになりました。そこでまずは、NinjaScanに搭載されたSTM32F4の開発環境を整えてみることにしました。ARMを搭載したLinuxは弄ったことがある(Chumby等)のですが、ARM系マイコンを直接触るのははじめてなので、一から調べなおしてみました。
世の中には色々派閥があるようで、中には特定の開発環境を使うと全身から血を吹く奇病に罹っている方もおられる(ねむいさん、いつも大変参考にしております、笑)ようですが、その中から僕はeclipseでコーディング、およびデバッグ環境を整えることにしました。TinyFeatherのDSPを触るときに使っているCode Comoser Studioe (CCS) 5もclipseベースですし、何かとeclipseに統一した方が便利な気がした結果です。
以下、STM32F4-DiscoveryボードでLEDがチカチカするまでに行った作業を列挙します。なお本記事は完全に自分用備忘録で、相当の記述を端折ってあります。万が一参考にされる場合は行間をご自身で補間いただきたくお願いいたします。
- eclipseとCDTの準備をする。この際C/C++ GDB Hardware debuggingを忘れずに入れる。
- Atollic TrueSTUDIOからgdb serverの取り出しをする。最新版(3.2.0)ではなぜかgdb server(1.6.0)がgdbから接続後一瞬で落ちるので、一つ古い3.1.0に同梱される1.5.6を使っている。ファイル名はTrueSTUDIO_for_ARM_Lite_win32_v3.1.0_20120503-1847.exe。ダウンロード後、7-zipでexeファイルの中身をのぞいて、Servers ディレクトリを C:¥Tools¥Embedded¥STM32¥TrueSTUDIO¥Servers に配置した。取り出すテクニックの借用元。
- Sourcery CodeBench Lite 2012.03-56 for ARM EABI のダウンロード、インストール。これも現時点最新版2012.09-63ではgdbが固まるので、一つ古い2012.03-56を使うことにした。C:¥Program Files¥CodeSourcery¥Sourcery_CodeBench_Lite_for_ARM_EABI に配置。
- STM32F4DISCOVERY board firmware package ver.1.1.0のダウンロード、展開。STの当該製品ページの[Design-support]-[Firmware]にある。C:¥Tools¥Embedded¥STM32¥STM32F4-Discovery_FW_V1.1.0 に配置
- 私家製STM32F4テンプレートプロジェクトをダウンロード、適当な場所に展開。DiscoveryボードでLEDチカチカするコードが入っている。元はAfflatus Techtronicsで公開されているもので、プロジェクトのパス調整などをしてある。
- eclipseを起動し前項のプロジェクトをimportする。[ファイル]-[インポート]-[既存プロジェクトをワークスペースへ]で展開した場所を指定して取り込む。
- eclipseを一度終了
- テンプレートプロジェクトの中のmisc/workspace.zipの中身をeclipseのworkspaceディレクトリに展開する。デバッグ(gdb)と外部ツール(ST-LINK gdb serer)の設定を取り込むため。
- eclipse再起動
- (必要に応じてパスの調整、これまでの内容どおりの配置だったら触る必要はない、後述)
- これでビルドとデバッグ環境の完成。eclipse上でプロジェクトを右クリックして、[構成のビルド]-[Build Selected]-[Debug]でビルドできる。デバッグは[実行]-[外部ツール]-[ST-Link GDB Server (SWD)]でgdb serverを起動した後、[実行]-[デバッグの構成]-[STM32F4_Template Debug]でデバッグする。
調整項目は、以下のスクリーンショットをご参考ください。
TrueSTUDIOのgdb serverの配置が異なる場合は、外部ツールのパス調整をします。(SWD)での例ですが、(JTAG)も同様に調整します。
Sourceryの配置が異なる場合には、ビルドとデバッグのパス調整をします。プロジェクトのプロパティ、およびデバッグの構成を編集します。
STM32F4DISCOVERY board firmware packageの配置が異なる場合にはプロジェクトのlibの下にある仮想フォルダのパス調整をします。
さらにもし、テンプレートプロジェクトを別のプロジェクト名で使う場合はおそらくリフレッシュポリシーの変更も必要だと思います。プロジェクトのプロパティにあります。
これでようやく、NinjaScanの開発が始められます。
※次の進捗は、NinjaScan Rev.C基板です。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。
環境構築を追試してみたので,補足というかやってみたメモを残しておきます.
1.eclipseはEclipse IDE for C/C++ Developersをダウンロード.CDT(C/C++ Developers Tool)の更新ために[ヘルプ]→[更新の確認]でCDTを最新のものに更新する.C/C++ GDB Hardware debuggingは[ヘルプ]→[新規ソフトウェアのインストール]から検索してインストール.
2.Atollic TrueSTUDIOからgdb serverを取り出すのに,古い(3.1.0)がなくなっていた(2012-12-12現在)ので,fenrirさんからgdb serverを頂いた.
3.以降は書いてある通りに出来ました.
デバッグ後はフラッシュに書き込まれているので,リセットボタンを押せばマイコンの中身が更新されました.
以上,自分がひっかかったところのメモでした.
Posted by: ina111 : December 12, 2012 08:21 PM