STM32開発環境構築 > プロジェクトの作成


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

新規プロジェクトの作成

  • eclipse.exeを起動する。(説明どおりに操作してきたなら、"C:\stm32\eclipse\"にあるはず。)
  • ワークスペース選択ウィンドウが出たら、Eclipseのインストールで設定したものと同じ、"C:\stm32\project"を指定。
  • ツールバーの[File]-[New]-[C Project]を選択。
  • Project nameを入力。ここでは、"blink_led"とする。
  • Project typeで、[ARM Cross Target Application]-[Empty Project]を選択。
  • Toolchainsで、"ARM Windows GCC (Sourcery G++ Lite)"を選択。
  • "Next"ボタンを押し、"Finish"ボタンを押す。
  • これで新規プロジェクトが作成される。
  • Project Explorerでプロジェクト内に"Includes"フォルダが自動で作成されていることを確認する。
以下、ビルドに必要な下準備

ソースコード用フォルダの作成

  • Project Explorerのプロジェクトフォルダ(ここでは"blink_led")を右クリックし、[New]-[Source Folder]を選択。
  • 出てきた"New Source Folder"ウィンドウの"Folder name"テキストボックスに"src"と入力し、"Finish"ボタンを押す。

ソースコードをプロジェクトに追加

  • ライブラリの入手で保存したディスカバーリーボード用ファームウェアパッケージのフォルダを開く。
  • サンプルプロジェクト(Examples)のGPIOToggleまで進む。
    どのマイコンボードのファームウェアパッケージかによって名前が若干変わる。説明のとおりにやった場合は、下記のディレクトリを参考に開くこと。
    • STM32VLD:"C:\stm32\library\stm32vldiscovery_package\Project\Examples\GPIOToggle"
    • STM32LD:
    • STM32F4D:
  • 下記に示す必要なソースファイルをEclipseのProject Explorerの"src"フォルダにドラッグ&ドロップ
    • STM32VLD:main.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h
    • STM32LD:
    • STM32F4D:
  • 出てくる"File Operation"ウィンドウで、"Copy files"にチェックをし、"OK"ボタンを押す。

ライブラリをプロジェクトに追加

  • ライブラリの入手で保存したStandard peripheral firmwareの中にある"Library"フォルダをEclipseのProject Explorerのプロジェクトフォルダにドラッグ&ドロップして、プロジェクトに追加する。
    説明の通りやった場合は、下記のフォルダをプロジェクトフォルダにドラッグアンドドロップする。
    • STM32VLD:"C:\stm32\library\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries"
    • STM32LD:
    • STM32F4D:
  • 出てくる"File Operation"ウィンドウで、"Copy files"にチェックをし、"OK"ボタンを押す。

ディスカバリーボード用ソースコードをプロジェクトに追加

  • ライブラリの入手で保存したディスカバーリーボード用ファームウェアパッケージのフォルダを開く。説明の通りにやった場合は下記のディレクトリを開く。
    • STM32VLD:"C:\stm32\library\stm32vldiscovery_package"
    • STM32LD:
    • STM32F4D:
  • 開いたディレクトリに"Utilities"フォルダがあるので、それをライブラリと同じく、Project Explorerのプロジェクトフォルダにドラッグ&ドロップする。
  • 出てくる"File Operation"ウィンドウで、"Copy files"にチェックをし、"OK"ボタンを押す。

リンカスクリプトをプロジェクトに追加

  • リンカスクリプトの入手で作成したリンカスクリプト"stm32_flash.ld"(STM32F4Dは"stm32f4_flash.ld")を"src"フォルダにドラッグアンドドロップする。
  • 出てくる"File Operation"ウィンドウで、"Copy files"にチェックをし、"OK"ボタンを押す。

ビルド用設定

  • プロジェクトフォルダを右クリックし、"Properties"を選択する。
  • 出てきたウィンドウの左側メニューで[C/C++ Build]-[Settings]を選択。
  • ウィンドウ上側の"Configuration"プルダウンで、[ All configurations ]を選択。
  • 指示があるまで、このウィンドウは閉じないこと。

プロセッサ設定

  • "Tool Settings"タブの"Target Processor"を選択。
  • "Processor"プルダウンで使用するマイコンに合わせて下記の通り選択する。
    • STM32VLD:cortex-m3
    • STM32LD:cortex-m3
    • STM32F4D:cortex-m4
  • "Apply"ボタンを押す。

リンカ設定

  • 同じく"Tool Settings"タブの"ARM Sourcery Windows GCC C Linker"-"General"を選択。
  • "Script file"テキストボックスに下記の文をコピー
    • STM32VLD:"${ProjDirPath}/src/stm32_flash.ld"
    • STM32LD:"${ProjDirPath}/src/stm32_flash.ld"
    • STM32F4D:"${ProjDirPath}/src/stm32f4_flash.ld"
  • "Do not use standard start files"チェックボックスのチェックを外す。
  • "Remove unused sectors"チェックボックスにチェックを入れる。
  • "Apply"ボタンを押す。

Includesフォルダ設定

  • 左メニューで[C/C++ General]-[Paths and Symbols]を選択。
  • "Includes"タブを開く。
  • 以下の表の項目を"Add"ボタンで追加する。なお、ディレクトリパス追加ウィンドウの"Is a workspace path"はチェックを外すこと。
STM32VLD ${ProjDirPath}/src
${ProjDirPath}/Libraries/CMSIS/CM3/CoreSupport
${ProjDirPath}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
${ProjDirPath}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO
${ProjDirPath}/Libraries/STM32F10x_StdPeriph_Driver/inc
${ProjDirPath}/Utilities
STM32LD
STM32F4D
  • "Apply"ボタンを押す。

Symbols設定

  • "Symbols"タブを開く。
  • 以下の表の項目を"Add"ボタンで追加する。(空白は何も入力しなくて良い)
使用ボード Symbol Value 概要
STM32VLD HSE_VALUE 8000000 使用する外部発振子の周波数を指定する
STM32F10X_MD_VL stm32f10x.hで使用するマイコンに合わせて設定されるようにする
USE_STDPERIPH_DRIVER stm32f10x.hでstm32f10x_conf.hをインクルードするようにする
USE_STM32_DISCOVERY 不要かも
STM32LD
STM32F4D
  • "Apply"ボタンを押す。
  • "OK"ボタンを押してPropertiesウィンドウを閉じる。

スタートアップルーチンのファイル名を変更

  • "Project Explorer"で、下記のフォルダの中にあるファイルの拡張子を小文字の's'から、大文字の'S'に変更する。(ファイル名を変更するには、ファイルを選択してF2キーを押す)
    • STM32VLD:"Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO"
    • STM32LD:"Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\TrueSTUDIO"
    • STM32F4D:"Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\TrueSTUDIO"

コンパイル時不具合を修正

  • コンパイル時、「registers may not be the same -- `strexb r0,r0,[r1]'」や「registers may not be the same -- `strexh r0,r0,[r1]'」などのエラーが出てコンパイルできないことがある。その回避をするため、ライブラリに修正を加える。
  • CMSISのバージョンが1.xの場合、"core_cm*.c"、2.xの場合"core_cmInstr.h"を開く。(下記参照)
    • STM32VLD:"Libraries/CMSIS/CM3/CoreSupport/core_cm3.c"
    • STM32LD:"Libraries/CMSIS/Include/core_cmInstr.h"
    • STM32F4D:"Libraries/CMSIS/Include/core_cmInstr.h"
  • 開いたファイルの「__ASM volatile ("strexb」で始まる行と、「__ASM volatile ("strexh」で始まる行の"=r"を"=&r"に変更する。
  • ファイルを上書き保存する。

ビルド

  • プロジェクトフォルダをクリックで選択し、ツールバーの[Project]-[Build All](またはショートカットキーctrl+B)でビルドする。
  • ビルドがエラーや警告が出ず通れば、"Binaries"フォルダの中にELFファイルが生成されているはずです。


ToDo

  • プロジェクトに追加するソースコード、ライブラリファイルのパス・ファイル名を調べて追記する。