45
April 2015 IAR Systems K.K FAE Team. STM32 M3&M4 ソフトウェア開発⼊⾨

STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

  • Upload
    vananh

  • View
    236

  • Download
    4

Embed Size (px)

Citation preview

Page 1: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

April 2015IAR Systems K.KFAE Team.

STM32 M3&M4ソフトウェア開発⼊⾨

Page 2: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

本ドキュメントについて

2

⽬的 ARM⽤統合開発環境であるARM⽤IAR Embedded Workbench(EWARM)

とSTマイクロエレクトニクス社(ST社)提供のサンプルプロジェクト、および設計⽀援ツールを使⽤して、ST社評価ボード⽤のソフトウェアを実際にビルド・デバッグする⼿順を紹介します。

内容 STM32 M3/M4評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実⾏ EWARMのデバッグ機能⼀部紹介 STM32CubeMXのプロジェクト設定⽅法 STM32CubeMX⽣成プロジェクトをEWARMで実装してデバッグ

※本ドキュメントは、2015年4⽉現在のIARシステムズWebサイト、およびEWARMバージョン7.40.2を基に作成しています。

Page 3: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

168 Employees with HQ in Uppsala, Sweden

Listed in Stockholm/Nasdaq

R&D investment 32% of revenue

32 years in the industry

UppsalaMunichSao PauloTokyoSeoulShanghai

LondonParisSan FranciscoDallasBostonLos Angeles

+Distributor representation in

43 countries

24 hour technical support in

13 languages

0

5

10

15

20

0

5

10

15

20

2010 2011 2012 2013License # Operating Margin

Licenses# (000’s)

Operating Margin %

2010 - 2013

Stability and growth

IAR SYSTEMS— A LEADING GLOBAL VENDOR

Page 4: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32 M3/M4評価ボードラインナップ

Page 5: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32F4DISCOVERY F4 STM32F407VGT6 M4 100 168 1024 192STM32F3DISCOVERY F3 STM32F303VCT6 M4 100 72 256 48NUCLEO-F401RE F4 STM32F401RET6 M4 64 85 512 96NUCLEO-F302R8 F3 STM32F334R8T6 M4 64 72 64 16NUCLEO-F302R8 F3 STM32F302R8T6 M4 64 72 64 16STM32VLDISCOVERY F1 STM32F100RB M3 64 24 128 832L152CDISCOVERY L1 STM32L152RCT6 M3 64 32 256 32NUCLEO-F103RB F1 STM32F103RBT6 M3 64 72 128 20NUCLEO-L152RE L1 STM32L152RET6 M3 64 72 512 80

STM32F1(M3)/L1(M3)/F3(M4)/F4(M4)

5

STM32F4DISCOVERY (F4)を例に記載他のボードはシリーズを置き換えて読むことで対応可能

F3シリーズ⽤ボードプロジェクト

Page 6: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeLx/Fx同梱サンプルプロジェクトのビルド

Page 7: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

EWARMを起動

7

スタートメニューから起動

すべてのプログラム > IAR Systems > IAR Embedded Workbench for ARM 7.xx.x >IAR Embedded Workbench

Page 8: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeF4のサンプルを起動

8

GPIO_EXTIプロジェクトを開く

Project.ewwを選択して、[開く]

[ファイル] > [開く] > [ワークスペース]

STM32Cube_FW_F4_V1.5.0¥Projects¥STM32F4-Discovery¥Examples¥GPIO¥GPIO_EXTI¥EWARM

Page 9: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeF4のサンプルをビルド

9

ソースコードを表⽰Example > User > main.c をダブルクリック

Page 10: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeF4のサンプルをビルド

10

⾏番号を表⽰するツール>オプション エディタ > [⾏番号の表⽰]にチェック

⾏番号が表⽰される

Page 11: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeF4のサンプルをビルド

11

メイクを実⾏する

エラーが0なら成功

ツール > オプション メッセージ > ビルドメッセージの表⽰ > [全て]に変更することで詳細ビルド情報を表⽰

Page 12: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

サンプルプロジェクトを実ボードでデバッグ実⾏

Page 13: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

ST-LINKの接続

13

ST-LINKとPCの接続 > デバイスドライバインストール

デバッグ⽤オンボードST-LINK

メインMCU

初回のみデバイスドライバのインストールが実⾏

USBミニケーブル

http://www.st.com/web/jp/catalog/tools/PF254044 2015年4⽉1⽇ ST社Webサイトより抜粋

Page 14: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeF4のサンプルをデバッグ

14

デバッグモードに移動実⾏ファイルのフラッシュ書き込み、デバッグセッション初期化

デバッグモード開始

Page 15: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeF4のサンプルをデバッグ

15

実⾏の制御

実⾏

ステップアウトステップイン

ステップオーバブレーク

リセット

次のステートメントカーソルまで実⾏

デバッグの終了

Page 16: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeF4のサンプルをデバッグ

16

実機でデバッグ実⾏

ユーザボタンを押すと4つのLEDが同時にトグル

main.c GPIO割り込みハンドラ内にブレークポイント

⾏番号の左をシングルクリック※もう⼀度クリックで解除

ステップ実⾏で、コードの動作を追う

※サンプル動作はボードにより異なる

Page 17: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

EWARMのデバッグ機能⼀部紹介

Page 18: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

EWARMの豊富なデバッグ表⽰

18

表⽰メニュー概要

各種ブレークポイント情報

逆アセンブリ画⾯

メモリ表⽰

CPUレジスタ、周辺レジスタ表⽰

変数ウォッチ

Printf出⼒表⽰

静的変数リアルタイムウォッチ

Page 19: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

EWARMのデバッグ機能:レジスタ

19

GPIO変化をレジスタウィンドウで⾒てみる表⽰ > レジスタ 現在のCPUレジスタ > GPIOD

LED変更コードを通るとレジスタの変化箇所が⾚く変わる

Page 20: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

EWARMのデバッグ機能:ターミナルI/O

20

ソースコードを編集し、EWARM内でprintfを表⽰する#include “stdio.h”を追記

printf(“Hello!World¥n”);を追記

[メイク] [ダウンロードしてデバッグ]

表⽰ > ターミナルI/O printfの実⾏結果がターミナルI/Oに表⽰される

Page 21: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

EWARMのデバッグ機能:ライブウォッチ

21

ソースコードを編集し、定期的にカウントアップされる静的変数を表⽰割込み関数に[static int count = 0;]を追記[count++;]を追記 [メイク] [ダウンロードしてデバッグ]

表⽰ > ライブウォッチ [式]をクリックしcountを登録 CPUを停めずに変数の値を取得

※静的変数のみ登録可能

Page 22: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXのプロジェクト設定⽅法

Page 23: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXを起動

23

スタートメニューから起動

すべてのプログラム > STMicroelectronics> STM32Cube > STM32CubeMX

[New Project]を選択

Page 24: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

24

デバイスをベースとするか、評価ボードをベースとするか選択

タブクリックで切り替える

評価ボードをベースとすると基本的なピン配置は設定済みで開始できる

Page 25: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

25

DISCOVERYボードをベースとする

Discovery

STM32F4

STM32F4DISCOVERY

Page 26: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

26

ピン配置および周辺機能の使⽤を選択

LED(LD3)は設定済み

TIM2のClock Sourceを[Disable]から[Internal Clock]に変更

Page 27: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

27

Clock Configurationで各ブロックへの供給クロックを設定PLL168 MHz からHSI 16MHzに変更する

クロック源

システムクロック選択※PLLCLK > HSIに変更

CPUメインクロック

Page 28: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

28

各周辺機能の設定Configurationタブからボタンクリックで設定

点滅⽤TIM2を設定ボタン、LED⽤GPIO設定

Page 29: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

29

TIM2モジュールの設定

プリスケーラ16000

リロードカウント1000

TIM2global interrupt[Enabled]にチェック

16,000サイクルごとに1カウントアップし、1,000カウントごとに割り込みが発⽣。※16,000×1,000 = 16M => 1秒に1回割り込み

Page 30: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

30

GPIO設定評価ボード選択で、必要箇所は設定済み

LED3はGPIODの13Pin

Page 31: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト設定

31

コード⽣成オプションの設定

ドライバ⽤のSTM32CubeF4をWebからダウンロード

Project > Settings

プロジェクトファイル名※LED_Blink

プロジェクト保存場所プロジェクト保存場所※C:¥STM32_workspace¥STM32F4DISCOVERY

数分から⼗数分かかる

Page 32: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMX⽣成プロジェクトをEWARMで実装してデバッグ

Page 33: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト⽣成

33

ソースコードとEWARM⽤プロジェクトファイルを出⼒

LED_Blink以下にプロジェクトファイルとドライバなどが⽣成される

Project.ewwをダブルクリック

Page 34: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXでプロジェクト⽣成

34

初期化コードを含んだプロジェクトが⽣成される

ユーザコードは/* USER CODE BEGIN x *//* USER CODE END x */

の間に記述する

HAL_xxx()はSTM32CubeL0の提供するドライバAPI関数

MX_xxx()はSTM32CubeMXが⽣成した初期化関数

Page 35: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

アプリケーションコードを記述

35

タイマー開始関数と、タイマー割り込みでLEDトグル関数を追加

main関数内、初期化処理とwhileループの間にHAL_TIM_Base_Start_IT(&htim2);

を追加

main関数終了後にvoid HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){

if(htim ->Instance == htim2.Instance){

HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_13);}

}を追加

※有効化関数や、データ⼊⼒関数はSTM32CubeF4のExampleコードを参照する

Page 36: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

プロジェクトの実⾏

36

メイク後、ダウンロードしてデバッグ

実⾏

ステップアウトステップイン

ステップオーバブレーク

リセット

次のステートメントカーソルまで実⾏

デバッグの終了

Page 37: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

プロジェクトのデバッグ

37

ブレークポイントを設置し、コードの流れを解析追加した割り込みハンドラ内にブレークポイントを設定

表⽰>コールスタック

現在のコードが、どの関数から呼ばれているか確認可能

Page 38: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

STM32CubeMXで設定変更

38

クロック設定を変更し、プロジェクト再⽣成

EWARMのデバッグを中⽌

System Clock MuxSystem Clock MuxをPLLCLKに変更

CPUクロック168MHz

コード⽣成

Page 39: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

EWARMでプロジェクト再読み込み

39

プロジェクトを読み込んで、再ビルドソースコードの変更が通知されるので、[すべてはい]を選択

クロック設定コードが変更されている

システムクロックが16Mから168Mになったので1秒から100m秒弱にLEDトグルに変更

Page 40: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

まとめ

Page 41: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

まとめ (1/2)

41

STM32Cube Lx/Fx同梱のサンプルプロジェクトを使うことで、豊富な周辺機能を実機で、すぐに試すことができる。

EWARMのデバッグ機能を使うことで、変数やメモリ、レジスタなどの値を確認し、状態把握や問題の特定を効率よく⾏うことができる。

Page 42: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

まとめ (2/2)

42

STM32CubeMXを使⽤することで、初期化設定をグラフィカルに⾏うことができる。

⽣成されたEWARM⽤プロジェクトで、すぐにビルドしデバッグを試すことができる。

STM32CubeMXのルールに従ってユーザコードを記述することで、何度でも初期化設定をやり直すことができる。

Page 43: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

本資料について

Page 44: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

本資料取り扱い上の注意

44

本資料は2015年4⽉1⽇時点の情報を基に作成されており、将来変更の可能性のあるものです。あわせてご紹介する設定や機能に関連して、動作保証をお約束するものではございませんので、ご了承ください

本資料で提供している情報は、ご利⽤されている⽅のご判断・責任においてご使⽤ください。提供した情報に関連して、ご利⽤される⽅が不利益等を被る事態が⽣じたとしても、弊社及び執筆者は⼀切の責任を負いかねますので、ご了承ください。

本資料の内容に関する弊社または各社へのお問合せはご遠慮ください。

本資料及びデータの再配布・無断転⽤・転載等はご遠慮ください。

Page 45: STM32 M3&M4 ソフトウェア開発⼊⾨ M3/M4 評価ボードラインナップ STM32CubeLx/Fx同梱サンプルプロジェクトのビルド サンプルプロジェクトを実ボードでデバッグ実

商標について

45

• IAR Systems, IAR Embedded Workbench, C-SPY, C-RUN, C-STAT, visualSTATE, Focus on Your Code, IAR KickStart Kit, I-jet, I-scope, IAR, および IAR Systems のロゴタイプはIAR Systems ABが所有する商標または登録商標です。

• ARMおよびCortexは、ARM Limited(またはその⼦会社)のEUまたはその他の国における登録商標です。CoreSightは、ARM Limited(またはその⼦会社)のEUまたはその他の国における商標です。 All rights reserved.

• STM32は、STマイクロエレクトロニクスの登録商標です。

• その他、本資料中の製品名やサービス名は全てそれぞれの所有者に属する商標または登録商標です。