Windows10 のプロジェクト作成方法 2017/06/23...
Transcript of Windows10 のプロジェクト作成方法 2017/06/23...
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
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) Ac6 System Workbenchの終了 ................................................................................................................................................................................. 59
3
1. 新規プロジェクト作成の準備
tri-S CPU基板のLED点滅プログラムを例に説明します。
新規プロジェクトのためのフォルダを作成して、そこにプロジェクトを作成します。
そのフォルダがWorkspaceになります。
[新しいフォルダー] のアイコンをクリックすると、次のように新しいフォルダーが作成されます。
フォルダーの名前を入力します。この例では SfStS_Blink_LED_Status_10K とします。
入力した結果は次ページのようになります。
4
フォルダ名を入力して、Enterキーを押すか、適当な場所でマウスの左クリックをすると確定します。
この SfStS_Blink_LED_Status_10K がプロジェクトのWorkspaceになります。
5
2. 新規プロジェクトの作成
2.1. System Workbench for STM32の起動
スタートメニューの {System Workbench for STM32} をクリックすると次のWorkspace選択のダイアログが開きます。
2.2. Workspaceの選択
[Browse...] ボタンをクリックして次の Select Workspace Directory ダイアログを開きます。
6
先ほど作成したフォルダー SfStS_Blink_LED_Status_10K を選択して [OK] ボタンをクリックすると、次のようになります。
[OK] ボタンをクリックすると次ページのフォームが表示されます。
7
フォームを最大化し、Welcomeは最小化して、次のようにします。
次ページに続く
8
2.3. 新規プロジェクトの作成
メニューの {File} – {New} – {C Project} をクリックすると次のダイアログが開きます。
次ページに続く
9
2.4. プロジェクト名の設定
Use default locationにチェックがついていてLocationは選択したWorkspaceになっています。
Project typeにAc6 STM32 MCU Projectを選択してProject nameにBlink_LED_Status_10Kを入力して[Next >] ボタンを
クリックすると次のダイアログが開きます。
[Next >] ボタンをクリックすると次ページの表示になります。
10
2.5. マイクロコントローラと基板 および デバッガの選択
使用するMCUと基板を選択します。基板はcustom boardsになります。
Show custom boards以外のチェックをはずします。SeriesはSTM32F4を選択します。
最初はcustom boardsがないので[Create a new custom board] ボタンをクリックして作成します。
[Create a new custom board] ボタンをクリックすると次ページのダイアログが開きます。
11
次のように項目を選択します。
Enter new board nameにはF405を入力しました。[OK] ボタンをクリックすると F405という名前で custom boardが作成されます。
次ページに続く
12
BoardのところにF405が表示されました。次からはBoardのところでF405を選択することができます。
[Next >] ボタンをクリックしてさらに設定を行います。[Next >] ボタンをクリックすると次のダイアログが開きます。
次ページに続く
13
2.6. Library使用の選択
Hardware Abstraction Layer (Cube HAL)のRadio Buttonをクリックすると、次の表示になります。
初めての場合、Target formware has not been found. Please download it.と表示されます。
[Download target firmware] ボタンをクリックしてダウンロードを行います。
[Download target firmware] ボタンをクリックすると次ページの License Agreementのダイアログが表示されます。
14
I accept the agreement.にチェックを入れて[OK] ボタンをクリックするとダウンロードを開始します。
ダウンロードにはかなり時間がかかるので、ゆっくり待ちましょう。
15
Downloadが終了するとExtracting処理が開始されます。Extractingが終了すると次の表示になります。
万が一、Libraryのダウンロードに失敗した場合は、Extractingでエラーメッセージが表示されます。
その場合は、表示されているパスを確認して、そのフォルダ内にあるダウンロードされたファイル stm32cube_fw_f4_vxxxx.zip
(vxxxxはバージョン) を削除して、再度 [Download target firmware] ボタンをクリックしてダウンロードを行ってください。
16
Radio ButtonのAs sources in the application projectを選択して [Finish] ボタンをクリックします。
プロジェクトが作成されて、次のフォームが表示されます。
2.7. プロジェクトの初期画面
17
3. ソースの編集
3.1. ソースファイルを開く
main.cを開いてみます。
main.cをダブルクリックすると、次のように main.cの内容を表示します。
この状態は、先頭のコメントがたたまれている状態です。先頭の数字3の右横のプラスをクリックすると次ページのように
コメント部分が表示されます。
18
先頭のコメントの部分が表示されました。
3.2. ソース・フォルダの追加
Workspaceにソース・フォルダを追加するには以下のようにします。
Blink_LED_Status_10Kの下に追加したいのでProject ExplorerのBlink_LED_Status_10Kをクリックして選択状態にします。
19
Blink_LED_Status_10Kを選択した状態でメニューの {File} – {New} – {Source Folder} をクリックすると
次のNew Source Folderのダイアログが開きます。
次ページに続く
20
Folder nameにBlink_LED_Statusと入力して[Finish] ボタンをクリックすると、次のように左側のProject Explorerの
Workspaceの部分にソースフォルダBlink_LED_Statusが追加されます。
21
エクスプローラでフォルダを確認するとBlink_LED_Status_10Kの下にBlink_LED_Statusが作成されています。
3.3. ファイルの追加
1) 新規ソースファイルの追加
ソースフォルダBlink_LED_StatusにソースファイルBlink_LED_Status.cを追加する場合について説明します。
ソースフォルダBlink_LED_Statusをクリックして選択状態にします。
22
ソースフォルダBlink_LED_Statusを選択した状態で、{File} – {New} – {Source File} をクリックすると次のNew Source Fileの
ダイアログが開きます。
次ページに続く
23
Source fileの欄にBlink_LED_Status.cと入力して[Finish] ボタンをクリックします。
ソースフォルダBlink_LED_Statusの下にBlink_LED_Status.cが作成されて、Editorには内容が表示されています。
24
2) 新規ヘッダファイルの追加
ソースフォルダBlink_LED_StatusにヘッダファイルBlink_LED_Status.hを追加する場合について説明します。
ソースフォルダBlink_LED_Statusをクリックして選択状態にします。
ソースフォルダBlink_LED_Statusを選択した状態で、{File} – {New} – {Header File} をクリックすると次のNew Header Fileの
ダイアログが開きます。
25
Header fileの欄にBlink_LED_Status.hと入力して[Finish] ボタンをクリックします。
次ページに続く
26
ソースフォルダBlink_LED_Statusの下にBlink_LED_Status.hが作成されて、Editorには内容が表示されています。
エクスプローラでフォルダBlink_LED_Statusを見てみるとBlink_LED_Status.cとBlink_LED_Status.hが作成されています。
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
Project ExplorerのBlink_LED_Status_10Kをクリックして選択状態にします。
Blink_LED_Status_10Kを選択した状態で右クリックしてポップアップメニューを開き、{Refresh}をクリックすると、
次ページのようになります。
29
HAL_Handle_F4が追加されました。
HAL_Handle_F4を展開すると、各周辺インターフェースのためのファイルが格納されています。
30
2) ソースフォルダの認識
フォルダとしてHAL_Handle_F4が追加されましたが、まだ、ソースフォルダとしては認識されていません。
ソースフォルダとして認識させるためには、以下のようにします。
HAL_Handle_F4をクリックして選択状態にし、右クリックにより開くポップアップメニューの{New} – {Source Folder} を
クリックすると次のNew Source Folderのダイアログが開きます。
Folder nameの [Browse...] ボタンをクリックすると次ページのExisting Folder Selectorのダイアログが開きます。
31
HAL_Handle_F4をクリックして選択状態にして、[OK} ボタンをクリックします。
Folder nameの欄にHAL_Handle_F4が入力されているので、[Finish] ボタンをクリックします。
次ページに続く
32
HAL_Handle_F4にソースフォルダのマークがついてソースフォルダとして認識されたのがわかります。
4. パスの設定
ソースフォルダを追加した場合、パスの設定を行う必要があります。ヘッダファイルが格納されているフォルダに対して
パスの設定を行わないと、ビルドエラーが発生します。
1) パスの設定画面を開く
まず、Blink_LED_Statusをクリックして選択状態にします。
33
Blink_LED_Statusを選択した状態で、メニューの {Project} – {Properties} をクリックすると次のダイアログが開きます。
次ページに続く
34
C/C++ Generalの下の Path and Symbolsをクリックすると次の表示になります。
次ページに続く
35
2) パスの追加
a) Configurationの選択
Configurationの選択を[ All configurations ] にすると、Debug と Release のPathをいっぺんに設定できます。
b) パスの追加
GNU Cをクリックして選択状態にし、[Add...] ボタンをクリックすると次のダイアログが開きます。
36
[Workspace...] ボタンをクリックすると次のダイアログが開きます。
次ページに続く
37
Blink_LED_Status_10Kを展開して、HAL_Handle_F4をクリックして選択状態にし、[OK] ボタンをクリックします。
Directoryに/Blink_LED_Status_10K/HAL_Handle_F4が入力されているので[OK] ボタンをクリックします。
次ページに続く
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
5. startupファイルの変更
デフォルトで設定されている startup_stm32.sはペクターが設定されていないので、割り込みなどが正常に動作しません。
エクスプローラでフォルダstartup内に startup_stm32f405xx.sをコピーします。
startup_stm32f405xx.sは当サイトのプロジェクトサンプルのフォルダstartup内にあります。
次ページに続く
40
startupをクリックして選択した状態で、右クリックして開くポップアップメニューの{Refresh}をクリックしてください。
startup_stm32f405xx.sが追加されました。
次に、startup_stm32.sを削除します。
41
startup_stm32.sをクリックして選択した状態で、右クリックで開くポップアップメニューから {Delete} をクリックします。
[OK] ボタンをクリックします。
次ページに続く
42
startup_stm32f405xx.sだけになりました。
6. 不要なファイルの削除
プロジェクトの容量が非常に大きくなってしまうので不要なファイルを削除します。
1) 不要なヘッダファイルの削除
エクスプローラでフォルダCMSIS\deviceを見ると多くのMCU用の定義ファイルが存在します。
stm32f405xx.h以外は必要ないので削除します。
43
stm32f405xx.hだけを残して、他のMCUの定義ファイルは削除しました。
2) User Manualの削除
エクスプローラでフォルダHAL_DriverをみるとUser_Manualが多数あります。
必要ないので削除します。
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
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
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
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
8. プロジェクトのビルド
8.1. 内容を変更したファイルの保存
ファイルの内容を変更すると、ファイルの名前の左に * マークが表示されます。
ファイルを保存すると * マークは消えます。
Ac6 System WorkbenchではBuildのアイコンをクリックしてビルドを開始するときにファイルが自動的に保存されません。
ファイルを保存しないとファイルの変更結果がビルドにも反映されません。
メニューの{File} – {Save All} をクリックして、ファイルを全て保存してからビルドを行わなければなりません。
49
8.2. ビルド
Buildのアイコンをクリックするとプロジェクトのビルドを行います。
ビルド中は上記のダイアログが表示されます。
最初のビルドの場合、数分かかります。ゆっくり待ちましょう。
50
エラーがあるとBlink_LED_Status_10Kの左にエラーマークが表示されます。
また、フォームの下部のProblemsにはエラー内容が表示されます。ファイル内容の表示画面のエラーの箇所にもエラーマークが
表示されます。
ビルドがOKになると、それぞれのエラー表示はなくなります。
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 黄
CN3-15 NRST P4-5 NRST 青
52
9.2. デバッグ
虫のアイコンをクリックするとデバッグを開始します。
初めてDebugのアイコン(虫のアイコン)をクリックした場合、次のダイアログが表示されます。
次ページに続く
53
Ac6 STM32 C/C++ Applicationを選択して[OK] ボタンをクリックします。
この例ではデバッグ情報をロード中のダイアログが表示されませんでしたが通常、次のようなダイアログが表示されます。
このメッセージが表示されたら、[Yes] ボタンをクリックします。
54
1) プログラムの実行
プログラムの開始位置が緑のマーカーで示されています。
右向きの三角 [Resume] のアイコンをクリックするとプログラムを実行します。
2) プログラム実行の中断
[Suspend]のアイコンをクリックするとプログラムの実行を中断します。
55
この例では、Blink_LED_Status.c内の関数Blink_LED_Statusのなかで中断しました。
次ページに続く
56
3) ブレークポイントの設定
Timer割り込みのところにブレークポイントを設定してみます。
プログラム行の左側の行番号の左側をダブルクリックするとブレークポイントを設定できます。
また、ブレークポイントを設定したい行をクリックして、その行でカーソルが点滅している状態で
メニューの {Run} – {Toggle Line Breakpoint} をクリックしてもブレークポイントを設定できます。
ブレークポイントが設定されるとブレークポイントのマークが表示されます。
この状態で、プログラムを実行すると次のようにブレークポイントのところでブレークします。
57
ブレークポイントを設定した箇所でブレークしました。
4) ブレークポイントの解除
ブレークポイントのマークをダブルクリックするとブレークポイントを解除できます。
また、ブレークポイントが設定されている行にカーソルを点滅させている状態でメニューの
{Run} – {Toggle Line Breakpoint} をダブルクリックすることによってもブレークポイントを解除できます。
上記画面はブレークポイントを解除して、再びプログラムを実行している状態です。
58
10. Ac6 System Workbenchの終了
1) 実行の中断とデバッグの終了
[Suspend]のアイコンをクリックすると実行が中断されます。
この状態で、[Terminate]のアイコンをクリックすると、デバッグ状態を終了して次のようになります。
2) エディット画面に戻る
C/C++のタブをクリックするとプログラム作成のエディットの画面に戻ります。
59
3) Ac6 System Workbenchの終了
[X] ボタンをクリックすると次のメッセージが表示されます。
[OK] ボタンをクリックするとAc6 System Workbenchが終了します。
60
有限会社りばいぶ
電子工作のための「飛石伝い」
改訂履歴
V002 2017/06/23
1) 誤記訂正 : 7. プログラムの開始番地を0x08010000に設定する方法 の
ユーザーが定義したパラメータを設定するためのエリア の番地を訂正
2) 番地割り当てについての説明を追加
V001 2016/06/01 初版