• 検索結果がありません。

9. デバッグ デバッグの準備 ) ST-Link/V2 と tri-s CPU 基板との接続の様子 ) ST-Link/V2 と tri-s CPU 基板との接続信号 デバッグ ) プログラムの実行

N/A
N/A
Protected

Academic year: 2021

シェア "9. デバッグ デバッグの準備 ) ST-Link/V2 と tri-s CPU 基板との接続の様子 ) ST-Link/V2 と tri-s CPU 基板との接続信号 デバッグ ) プログラムの実行"

Copied!
60
0
0

読み込み中.... (全文を見る)

全文

(1)

1

Windows10における Ac6 System Workbench for STM32のプロジェクト作成方法 V002 2017/06/23 Windows10の PCで Ac6 System Workbench for STM32のプロジェクトを新規に作成する方法について説明します。 tri-S CPU 基板用の LED 点滅プログラムの作成を例に説明します。

目次

1. 新規プロジェクト作成の準備 ...3

2. 新規プロジェクトの作成 ...5

2.1. System Workbench for STM32の起動 ...5

2.2. Workspaceの選択 ...5

2.3. 新規プロジェクトの作成 ...8

2.4. プロジェクト名の設定...9

2.5. マイクロコントローラと基板 および デバッガの選択... 10

2.6. Library使用の選択 ... 13

2.7. プロジェクトの初期画面 ... 16

3. ソースの編集... 17

3.1. ソースファイルを開く ... 17

3.2. ソース・フォルダの追加 ... 18

3.3. ファイルの追加... 21

1) 新規ソースファイルの追加 ... 21

2) 新規ヘッダファイルの追加 ... 24

3.4. 既存のソースフォルダとファイルの追加 ... 27

1) ソースフォルダとファイルの追加 ... 27

2) ソースフォルダの認識... 30

4. パスの設定 ... 32

1) パスの設定画面を開く ... 32

2) パスの追加 ... 35

a) Configurationの選択 ... 35

b) パスの追加 ... 35

5. startupファイルの変更 ... 39

6. 不要なファイルの削除 ... 42

1) 不要なヘッダファイルの削除 ... 42

2) User Manualの削除 ... 43

3) stm32f4xx_hal_msp_template.cの削除... 44

7. プログラムの開始番地を0x08010000に設定する方法 ... 45

7.1. LinkerScript.ld内の ROM(rx)の値の変更... 45

7.2. ファイル stm32f405xx.h内の定義の変更... 46

7.3. Vector tableの設定 ... 47

7.4. りばいぶ のサンプルプログラムの番地割り当てについて ... 47

8. プロジェクトのビルド ... 48

8.1. 内容を変更したファイルの保存 ... 48

8.2. ビルド ... 49

(2)

2

9. デバッグ ... 51

9.1. デバッグの準備 ... 51

1) ST-Link/V2 と tri-S CPU基板との接続の様子 ... 51

2) ST-Link/V2 と tri-S CPU基板との接続信号 ... 51

9.2. デバッグ ... 52

1) プログラムの実行 ... 54

2) プログラム実行の中断 ... 54

3) ブレークポイントの設定 ... 56

4) ブレークポイントの解除 ... 57

10. Ac6 System Workbenchの終了 ... 58

1) 実行の中断とデバッグの終了 ... 58

2) エディット画面に戻る ... 58

(3)

3

1. 新規プロジェクト作成の準備

tri-S CPU基板の LED 点滅プログラムを例に説明します。

新規プロジェクトのためのフォルダを作成して、そこにプロジェクトを作成します。 そのフォルダがWorkspace になります。

[新しいフォルダー] のアイコンをクリックすると、次のように新しいフォルダーが作成されます。

フォルダーの名前を入力します。この例では SfStS_Blink_LED_Status_10K とします。 入力した結果は次ページのようになります。

(4)

4

フォルダ名を入力して、Enter キーを押すか、適当な場所でマウスの左クリックをすると確定します。 この SfStS_Blink_LED_Status_10K がプロジェクトの Workspace になります。

(5)

5

2. 新規プロジェクトの作成

2.1. System Workbench for STM32の起動

スタートメニューの {System Workbench for STM32} をクリックすると次の Workspace 選択のダイアログが開きます。

2.2. Workspace の選択

(6)

6

先ほど作成したフォルダー SfStS_Blink_LED_Status_10K を選択して [OK] ボタンをクリックすると、次のようになります。

(7)

7

フォームを最大化し、Welcome は最小化して、次のようにします。

(8)

8

2.3. 新規プロジェクトの作成

メニューの {File} – {New} – {C Project} をクリックすると次のダイアログが開きます。

(9)

9

2.4. プロジェクト名の設定

Use default location にチェックがついていて Location は選択した Workspace になっています。

Project type にAc6 STM32 MCU Project を選択してProject name にBlink_LED_Status_10K を入力して[Next >] ボタンを クリックすると次のダイアログが開きます。

(10)

10

2.5. マイクロコントローラと基板 および デバッガの選択

使用する MCU と基板を選択します。基板は custom boardsになります。

Show custom boards以外のチェックをはずします。Seriesは STM32F4を選択します。

最初は custom boards がないので[Create a new custom board] ボタンをクリックして作成します。 [Create a new custom board] ボタンをクリックすると次ページのダイアログが開きます。

(11)

11

次のように項目を選択します。

Enter new board name には F405を入力しました。[OK] ボタンをクリックすると F405という名前で custom board が作成されます。

(12)

12

Board のところに F405が表示されました。次からはBoard のところで F405を選択することができます。 [Next >] ボタンをクリックしてさらに設定を行います。[Next >] ボタンをクリックすると次のダイアログが開きます。

(13)

13

2.6. Library使用の選択

Hardware Abstraction Layer (Cube HAL)の Radio Button をクリックすると、次の表示になります。

初めての場合、Target formware has not been found. Please download it.と表示されます。 [Download target firmware] ボタンをクリックしてダウンロードを行います。

(14)

14

I accept the agreement.にチェックを入れて[OK] ボタンをクリックするとダウンロードを開始します。

(15)

15

Download が終了すると Extracting 処理が開始されます。Extracting が終了すると次の表示になります。

万が一、Library のダウンロードに失敗した場合は、Extracting でエラーメッセージが表示されます。

その場合は、表示されているパスを確認して、そのフォルダ内にあるダウンロードされたファイル stm32cube_fw_f4_vxxxx.zip (vxxxxはバージョン) を削除して、再度 [Download target firmware] ボタンをクリックしてダウンロードを行ってください。

(16)

16

Radio Button の As sources in the application project を選択して [Finish] ボタンをクリックします。 プロジェクトが作成されて、次のフォームが表示されます。

(17)

17

3. ソースの編集

3.1. ソースファイルを開く

main.c を開いてみます。 main.c をダブルクリックすると、次のように main.c の内容を表示します。 この状態は、先頭のコメントがたたまれている状態です。先頭の数字3の右横のプラスをクリックすると次ページのように コメント部分が表示されます。

(18)

18

先頭のコメントの部分が表示されました。

3.2. ソース・フォルダの追加

Workspace にソース・フォルダを追加するには以下のようにします。

(19)

19

Blink_LED_Status_10K を選択した状態でメニューの {File} – {New} – {Source Folder} をクリックすると 次の New Source Folder のダイアログが開きます。

(20)

20

Folder name にBlink_LED_Statusと入力して[Finish] ボタンをクリックすると、次のように左側の Project Explorer の Workspace の部分にソースフォルダ Blink_LED_Status が追加されます。

(21)

21

エクスプローラでフォルダを確認すると Blink_LED_Status_10K の下にBlink_LED_Status が作成されています。

3.3. ファイルの追加

1) 新規ソースファイルの追加

ソースフォルダBlink_LED_Status にソースファイル Blink_LED_Status.cを追加する場合について説明します。 ソースフォルダ Blink_LED_Statusをクリックして選択状態にします。

(22)

22

ソースフォルダ Blink_LED_Statusを選択した状態で、{File} – {New} – {Source File} をクリックすると次の New Source File の ダイアログが開きます。

(23)

23

Source file の欄にBlink_LED_Status.c と入力して[Finish] ボタンをクリックします。

(24)

24

2) 新規ヘッダファイルの追加

ソースフォルダBlink_LED_Status にヘッダファイルBlink_LED_Status.h を追加する場合について説明します。

ソースフォルダ Blink_LED_Statusをクリックして選択状態にします。

ソースフォルダ Blink_LED_Statusを選択した状態で、{File} – {New} – {Header File} をクリックすると次の New Header File の ダイアログが開きます。

(25)

25

Header file の欄に Blink_LED_Status.h と入力して[Finish] ボタンをクリックします。

(26)

26

ソースフォルダBlink_LED_Status の下にBlink_LED_Status.h が作成されて、Editor には内容が表示されています。

(27)

27

3.4. 既存のソースフォルダとファイルの追加

プロジェクト Blink_LED_Status_10K にソースフォルダ HAL_Handle_F4を追加する場合について説明します。 HAL_Handle_F4には各周辺インターフェースごとの初期化と処理のためのファイルが収められています。 りばいぶ が作成したモジュール群です。

1) ソースフォルダとファイルの追加

エクスプローラを使用してBlink_LED_Status_10K の下にソースフォルダ HAL_Handle_F4をコピーします。 フォルダHAL_Handle_F4の中を見てみると、いろいろな周辺インターフェースのためのファイルが格納されています。 Ac6 System Workbench for STM32の画面に戻って、HAL_Handle_F4を追加します。

(28)

28

Project Explorer の Blink_LED_Status_10K をクリックして選択状態にします。

Blink_LED_Status_10K を選択した状態で右クリックしてポップアップメニューを開き、{Refresh}をクリックすると、 次ページのようになります。

(29)

29

HAL_Handle_F4が追加されました。

(30)

30

2) ソースフォルダの認識

フォルダとして HAL_Handle_F4が追加されましたが、まだ、ソースフォルダとしては認識されていません。 ソースフォルダとして認識させるためには、以下のようにします。

HAL_Handle_F4をクリックして選択状態にし、右クリックにより開くポップアップメニューの{New} – {Source Folder} を クリックすると次の New Source Folder のダイアログが開きます。

(31)

31

HAL_Handle_F4をクリックして選択状態にして、[OK} ボタンをクリックします。

Folder name の欄にHAL_Handle_F4が入力されているので、[Finish] ボタンをクリックします。

(32)

32

HAL_Handle_F4にソースフォルダのマークがついてソースフォルダとして認識されたのがわかります。

4. パスの設定

ソースフォルダを追加した場合、パスの設定を行う必要があります。ヘッダファイルが格納されているフォルダに対して パスの設定を行わないと、ビルドエラーが発生します。

1) パスの設定画面を開く

まず、Blink_LED_Status をクリックして選択状態にします。

(33)

33

Blink_LED_Status を選択した状態で、メニューの {Project} – {Properties} をクリックすると次のダイアログが開きます。

(34)

34

C/C++ General の下の Path and Symbols をクリックすると次の表示になります。

(35)

35

2) パスの追加

a) Configuration の選択

Configuration の選択を[ All configurations ] にすると、Debug と Release の Pathをいっぺんに設定できます。

b) パスの追加

(36)

36

[Workspace...] ボタンをクリックすると次のダイアログが開きます。

(37)

37

Blink_LED_Status_10K を展開して、HAL_Handle_F4をクリックして選択状態にし、[OK] ボタンをクリックします。

Directory に/Blink_LED_Status_10K/HAL_Handle_F4が入力されているので[OK] ボタンをクリックします。

(38)

38

Path and Symbols の GNU_C においてスクロールバーを下にさげると HAL_Handle_F4が追加されているのがわかります。 Blink_LED_Statusと Common_Lib および Initialize_Peripheral も追加したら [OK] ボタンをクリックしてください。

(プロジェクトサンプルとして SfStS_Blink_LED_Status_10K.zip を当サイトからダウンロードできます。)

確認メッセージが表示されるので、[Yes] ボタンをクリックしてください。 これで、パスの設定は終了です。

(39)

39

5. startup ファイルの変更

デフォルトで設定されている startup_stm32.s はペクターが設定されていないので、割り込みなどが正常に動作しません。 エクスプローラでフォルダ startup 内に startup_stm32f405xx.sをコピーします。 startup_stm32f405xx.s は当サイトのプロジェクトサンプルのフォルダ startup 内にあります。 次ページに続く

(40)

40

startupをクリックして選択した状態で、右クリックして開くポップアップメニューの{Refresh}をクリックしてください。

startup_stm32f405xx.s が追加されました。 次に、startup_stm32.sを削除します。

(41)

41

startup_stm32.sをクリックして選択した状態で、右クリックで開くポップアップメニューから {Delete} をクリックします。

[OK] ボタンをクリックします。

(42)

42

startup_stm32f405xx.s だけになりました。

6. 不要なファイルの削除

プロジェクトの容量が非常に大きくなってしまうので不要なファイルを削除します。

1) 不要なヘッダファイルの削除

エクスプローラでフォルダ CMSIS\device を見ると多くの MCU 用の定義ファイルが存在します。 stm32f405xx.h 以外は必要ないので削除します。

(43)

43

stm32f405xx.h だけを残して、他の MCU の定義ファイルは削除しました。

2) User Manual の削除

エクスプローラでフォルダ HAL_Driver をみると User_Manual が多数あります。 必要ないので削除します。

(44)

44

User_Manual のファイルを全て削除しました。

3) stm32f4xx_hal_msp_template.c の削除

HAL_Handle_F4内に stm32f4xx_hal_msp.c が存在するため HAL_Driver 内の stm32f4xx_hal_msp_template.c があると、 同一名のモジュールが存在してビルドエラーが発生します。

stm32f4xx_hal_msp_template.cをクリックして選択した状態で右クリックにより開くポップアップメニューの{Delete} をクリックして 削除してください。

(45)

45

7. プログラムの開始番地を0x08010000に設定する方法

tri-S CPU基板はプログラムの開始番地を0x08010000にしています。

7.1. LinkerScript.ld 内の ROM(rx)の値の変更

/*---*/ /* ROM(rx) : ORIGIN = 0x8000000, LENGTH= 1024K*/

/*---*/ /* 2016.05.30 : Revive*/

ROM (rx) :ORIGIN = 0x08010000,LENGTH= 1024K-0x10000 /*---*/

ROM (rx)の開始番地を0x08010000に変更します。

(46)

46

7.2. ファイル stm32f405xx.h 内の定義の変更

stm32f405xx.h 内の842行目あたりの定義 #define FLASH_BASE の値を次のように変更します。

//--- //#define FLASH_BASE ((uint32_t)0x08000000U)

/*!< FLASH(up to 1 MB) base address in the alias region */ //--- // 2016.05.30 : Revive

#define FLASH_BASE ((uint32_t)0x08010000)

/*!< FLASH(up to 1 MB) base address in the alias region */ //---

FLASH_BASE の定義を ((uint32_t)0x08010000) に変更します。

(47)

47

7.3. Vector table の設定

int main(void)の先頭に以下の Vector 設定を記述します。

//---// Set the Vector Table base address at 0x080x0000

//---SCB->VTOR = FLASH_BASE; // Vector Table Relocation in Internal FLASH

7.4. りばいぶ のサンプルプログラムの番地割り当てについて

a) 0x080010000番地にユーザープログラムを書き込むためのプログラム格納番地 0x08000000 - 0x08007FFF には、更新したプログラムを0x08010000に書き込むためのプログラムが書き込まれています。 b) パラメータの格納番地 また、0x08008000 - 0x0800BFFFは Network 設定パラメータを格納するために使用しています。 0x0800C000 - 0x0800FFFF は、ユーザーが定義したパラメータを設定するためのエリアとして使用します。 c) JIS X 0208 の 16 x 16bit のフォントを格納する番地 0x08080000 – 0x080BFFFF 番地に LCD 接続時に漢字を表示するためのフォントを格納しています。 d) 「飛石伝い」のための振舞い方パラメータを格納する番地 0x080C0000 – 0x080FFFFF 番地に、「飛石伝い」のプログラムを実行する場合の振舞い方パラメータを格納しています。 この番地割り当ては、あくまでも、りばいぶ の使用方法なので、これに従う必要はありません。

(48)

48

8. プロジェクトのビルド

8.1. 内容を変更したファイルの保存

ファイルの内容を変更すると、ファイルの名前の左に * マークが表示されます。 ファイルを保存すると * マークは消えます。

Ac6 System Workbench ではBuild のアイコンをクリックしてビルドを開始するときにファイルが自動的に保存されません。 ファイルを保存しないとファイルの変更結果がビルドにも反映されません。

(49)

49

8.2. ビルド

Build のアイコンをクリックするとプロジェクトのビルドを行います。

ビルド中は上記のダイアログが表示されます。

(50)

50

エラーがあると Blink_LED_Status_10K の左にエラーマークが表示されます。

また、フォームの下部の Problems にはエラー内容が表示されます。ファイル内容の表示画面のエラーの箇所にもエラーマークが 表示されます。

(51)

51

9. デバッグ

9.1. デバッグの準備

tri-S CPU基板に ST-LINK を接続し、CPU基板に電源を供給します。

1) ST-Link/V2 と tri-S CPU 基板との接続の様子

2) ST-Link/V2 と tri-S CPU 基板との接続信号

ST-Link/V2 と tri-S CPU 基板のコネクタ P4 との接続信号を以下に示します。

ST-Link/V2 tri-S CPU 基板 線色

CN3-1 VAPP P4-1 VDD 橙

CN3-9 SWCLK P4-2 SWCLK PA14 緑

CN3-8 GND P4-3 GND 黒

CN3-7 SWDIO P4-4 SWDIO PA13 黄

(52)

52

9.2. デバッグ

虫のアイコンをクリックするとデバッグを開始します。

初めて Debug のアイコン(虫のアイコン)をクリックした場合、次のダイアログが表示されます。

(53)

53

Ac6 STM32 C/C++ Application を選択して[OK] ボタンをクリックします。

この例ではデバッグ情報をロード中のダイアログが表示されませんでしたが通常、次のようなダイアログが表示されます。

(54)

54

1) プログラムの実行

プログラムの開始位置が緑のマーカーで示されています。 右向きの三角 [Resume] のアイコンをクリックするとプログラムを実行します。

2) プログラム実行の中断

[Suspend]のアイコンをクリックするとプログラムの実行を中断します。

(55)

55

この例では、Blink_LED_Status.c 内の関数Blink_LED_Status のなかで中断しました。

(56)

56

3) ブレークポイントの設定

Timer 割り込みのところにブレークポイントを設定してみます。

プログラム行の左側の行番号の左側をダブルクリックするとブレークポイントを設定できます。 また、ブレークポイントを設定したい行をクリックして、その行でカーソルが点滅している状態で

メニューの {Run} – {Toggle Line Breakpoint} をクリックしてもブレークポイントを設定できます。

ブレークポイントが設定されるとブレークポイントのマークが表示されます。

(57)

57

ブレークポイントを設定した箇所でブレークしました。

4) ブレークポイントの解除

ブレークポイントのマークをダブルクリックするとブレークポイントを解除できます。

また、ブレークポイントが設定されている行にカーソルを点滅させている状態でメニューの

{Run} – {Toggle Line Breakpoint} をダブルクリックすることによってもブレークポイントを解除できます。

(58)

58

10. Ac6 System Workbench の終了

1) 実行の中断とデバッグの終了

[Suspend]のアイコンをクリックすると実行が中断されます。

この状態で、[Terminate]のアイコンをクリックすると、デバッグ状態を終了して次のようになります。

2) エディット画面に戻る

(59)

59

3) Ac6 System Workbench の終了

[X] ボタンをクリックすると次のメッセージが表示されます。

(60)

60

有限会社りばいぶ 電子工作のための「飛石伝い」 改訂履歴 V002 2017/06/23 1) 誤記訂正 : 7. プログラムの開始番地を0x08010000に設定する方法 の ユーザーが定義したパラメータを設定するためのエリア の番地を訂正 2) 番地割り当てについての説明を追加 V001 2016/06/01 初版

参照

関連したドキュメント

Q-Flash Plus では、システムの電源が切れているとき(S5シャットダウン状態)に BIOS を更新する ことができます。最新の BIOS を USB

市民的その他のあらゆる分野において、他の 者との平等を基礎として全ての人権及び基本

接続対象計画差対応補給電力量は,30分ごとの接続対象電力量がその 30分における接続対象計画電力量を上回る場合に,30分ごとに,次の式

接続対象計画差対応補給電力量は,30分ごとの接続対象電力量がその 30分における接続対象計画電力量を上回る場合に,30分ごとに,次の式

基準の電力は,原則として次のいずれかを基準として決定するも

□ ゼミに関することですが、ゼ ミシンポの説明ではプレゼ ンの練習を主にするとのこ とで、教授もプレゼンの練習

前ページに示した CO 2 実質ゼロの持続可能なプラスチッ ク利用の姿を 2050 年までに実現することを目指して、これ