NUCLEO-F401RE の TrueSTUDIO プロジェクト構築方法 V001 2014/09/24 Atollic TrueSTUDIO for ARM Lite を使用して NUCLEO-F401RE のプロジェクトを新規に作成する方法について説明します また ビルドとデバッグについても説明しています 目次 1. 新規プロジェクト作成の準備... 2 2. 新規プロジェクトの作成... 3 2.1. ワークスペースの選択... 3 2.2. 新規プロジェクトの作成... 6 2.3. プロジェクト名の設定... 7 2.4. マイクロコントローラの選択... 8 2.5. Library 使用の選択... 9 2.6. デバッグプローブの選択... 10 2.7. プロジェクトの初期画面... 11 2.8. 不正文字の削除... 11 3. 内部クロック HSI の設定... 13 3.1. HSI クロック設定モジュール... 13 3.2. HSI クロック設定モジュールの使用例... 13 4. ソース フォルダとソース ファイル ソース ヘッダの追加... 14 4.1. ソース フォルダの追加... 14 4.2. ファイルの追加... 16 1) 新規ソース ファイルの追加... 16 2) 新規ヘッダ ファイルの追加... 18 4.3. 既存のソース フォルダとファイルの追加... 20 1) ソースフォルダの追加... 20 2) ファイルの追加... 21 3) ソースフォルダの認識... 21 5. パスの設定... 24 1) パスの設定画面を開く... 24 2) パスの追加... 25 6. ビルド... 28 7. デバッグ... 29 1) プログラムの実行... 30 2) プログラムの中断... 31 3) ブレークポイントの設定... 32 4) ブレークポイントの解除... 33 1
1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_BlinkLD2 がワークスペースになります 2
2. 新規プロジェクトの作成 2.1. ワークスペースの選択 Atollic TrueSTUDIO for ARM Lite を起動すると次のワークスペースの選択のダイアログが開きます [ 参照 (B) ] ボタンをクリックすると次のワークスペース ディレクトリーの選択のダイアログが開きます 先に作成したフォルダ TrST_F401N_BlinkLD2 を選択して [ OK ] ボタンをクリックすると次のようになります [ OK ] ボタンをクリックすると次ページのようになります 3
この画面が少しの間 表示された後 次のダイアログが表示されます [ ウィンドウを閉じてください ] ボタンをクリックすると次ページの起動画面が表示されます 4
このフォームを最大化します Information Center は最小化して次のようにしてください 次ページに続く 5
2.2. 新規プロジェクトの作成 メニューの { ファイル (F) } { 新規 (N) } { C プロジェクト } をクリックすると次のダイアログが開きます 次ページに続く 6
2.3. プロジェクト名の設定デフォルト ロケーションは選択したフォルダになっています プロジェクト名を入力してプロジェクトの種類に Embedded c Project を選択して [ 次へ (N) > ] ボタンをクリックすると次のダイアログになります この例ではプロジェクト名を F401N_Blink_LD2 にしました マイクロコントローラに STM32F401RE を選択して次ページのようにします 7
2.4. マイクロコントローラの選択 マイクロコントローラに STM32F401RE を選択して [ 次へ (N) > ] ボタンをクリックすると次のダイアログになります 次ページに続く 8
2.5. Library 使用の選択 tiny printf/sprint/fprintf を使用する ( スモールコードサイズ ) のチェックをどうするか決定します 自分の場合は使用しないのでチェックを外して [ 次へ (N) > ] ボタンをクリックしました 次のダイアログになります 次ページに続く 9
2.6. デバッグプローブの選択 STM32F401 Nucleo の場合 基板に ST-LINK の回路が組み込まれているので ST-LINK を選択します デバッグプローブに ST-LINK を選択して [ 次へ (N) ] ボタンをクリックします [ 終了 (E) ] ボタンをクリックします 次ページに続く 10
プロジェクトのビルド中のダイアログが表示されます ビルドが終了すると次ページのようにプロジェクトの初期画面が表示されます 2.7. プロジェクトの初期画面プロジェクトが作成されて左側のプロジェクト エクスプローラには F401N_BlinkLD2 のワークスペースが表示されています エディタには main.c が表示されています 2.8. 不正文字の削除 main.c と stm32f4xx_it.h にエディタが処理できない文字が含まれています その文字を含んだままファイルの内容を変更してビルドするとエラーメッセージが表示されます ( なぜ含まれているのかはわかりません ) 次に示す それぞれのファイルの 13 行目の ** Distribution: The file is distributed 殿 s is, without any warranty の中の 殿 s is, without の部分です 殿と を削除してください ( 殿の方はエラーにならないかもしれませんが変な感じなので削除します ) 11
不正文字を削除した画面を以下に示します ビルドのアイコンをクリックしてビルドを行いエラーが出なければ OK です ビルドに成功すると ビルドが完了しました とメッセージが表示されます 12
3. 内部クロック HSI の設定プロジェクトを作成した時点では 外部クロック HSE を周波数 25MHz で使用する設定になっています NUCLEO-F401RE では HSE 用の外部 Xtal は実装されていません 内部クロック HSI( 周波数 16MHz) を使用するように設定しなおす必要があります HIS を入力クロックとして PLL により SYSCLK を 84MHz に設定するためのモジュールを作成しました 3.1. HSI クロック設定モジュールソースフォルダ Handles 内の HanleCLK.c に //---------------------------------------------------------------------------------- // HSI を選択して PLL Clock を System Clock として使用する : SYSCLK = 84MHz //---------------------------------------------------------------------------------- void SetHSICLK84MHz(void); があります このモジュールを main.c の先頭で呼び出して SYSCLK の設定を行います 3.2. HSI クロック設定モジュールの使用例 main.c の先頭で次のように読み出します int main(void) { //---------------------------------------------------------- //Set the Vector Table base address at 0x080x0000 //---------------------------------------------------------- NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); //----------------------------------------- // CPU 動作クロック周波数初期化 //----------------------------------------- // HSI : 16MHz // System Clock : 84MHz //----------------------------------------- //---------------------------------------------------------------------------------- // HSI を選択して PLL Clock を System Clock として使用する : SYSCLK = 84MHz //---------------------------------------------------------------------------------- SetHSICLK84MHz(); このように ベクターテーブルのベースアドレスを設定したあとで HIS クロック設定モジュール SetHSICLK84MHz(); を呼び出しています 13
4. ソース フォルダとソース ファイル ソース ヘッダの追加 4.1. ソース フォルダの追加ワークスペースにソース フォルダを追加したい場合次のようにします ここでは F401N_BlinkLD2 の下に追加したいのでプロジェクト エクスプローラーの F401N_BlinkLD2 をクリックして選択した状態にします F401N_BlinkLD2 を選択した状態でメニューの { ファイル (F) } { 新規 (N) } { ソース フォルダ } をクリックすると次ページの新規ソース フォルダのダイアログが開きます 14
ここでは Handles と入力して [ 終了 (E) ] ボタンをクリックします 次のように左側のプロジェクト エクスプローラーのワークスペースの部分に Handles が追加されます Handles が追加されています 15
ここでエクスプローラでフォルダ TrST_F401N_BlinkLD2/F401N_BlinkLD2 を見てみると Handles が作成されています 4.2. ファイルの追加ワークスペースにファイルを追加したい場合次のようにします 1) 新規ソース ファイルの追加 ソース ファイルを追加したいソース フォルダを選択した状態でメニューの { ファイル (F) } { 新規 (N) } { ソース ファイル } をクリックすると次ページの新規ソース ファイルのダイアログが開きます 16
この例ではソース ファイルの欄に HandleCLK.c と入力して [ 終了 (E) ] ボタンをクリックします ソース フォルダ Handles の下に HandleCLK.c が作成されて エディタの欄には内容が表示されます 17
2) 新規ヘッダ ファイルの追加 ヘッダ ファイルを追加したいソース フォルダを選択した状態でメニューの { ファイル (F) } { 新規 (N) } { ヘッダー ファイル } をクリックすると次の新規ヘッダー ファイルのダイアログが開きます 次ページに続く 18
この例ではヘッダーファイルの欄に HandleCLK.h と入力して [ 終了 (E) ] ボタンをクリックします ソース フォルダ Handles の下に HandleCLK.h が作成されて エディタの欄には内容が表示されます 次ページに続く 19
エクスプローラでフォルダ TrST_F401N_BlinkLD2/F401N_BlinkLD2/Handles を見てみるとファイル HandleCLK.c と HandleCLK.h が作成されています 4.3. 既存のソース フォルダとファイルの追加 1) ソースフォルダの追加エクスプローラでフォルダ TrST_F401N_BlinkLD2/F401N_BlinkLD2 の下にソースフォルダ UserPrograms をコピーしてみます 20
2) ファイルの追加フォルダの下にファイルがある場合は自動的にワークスペースに表示されます ソースフォルダ UserPrograms の下にはファイル UserProgram.c と UserProgram.h が格納されています Atollic TrueSTUDIO を見てみるとフォルダ UserProgram とファイル UserProgram.c および UserProgram.h がワークスペースに追加されています 3) ソースフォルダの認識このままでは 追加したフォルダはワークスペースに含まれずビルドの対象になりません フォルダ UserPrograms をワークスペースに含めてソース フォルダとして認識させるには次のようにします フォルダ UserPrograms を選択した状態でメニューの { ファイル (F) } { 新規 (N) } { ソース フォルダ } をクリックすると次ページの新規ソース フォルダのダイアログが開きます 21
[ 参照 (O) ] ボタンをクリックすると次の既存のフォルダ選択のダイアログが開きます UserPrograms を選択して [ OK ] ボタンをクリックします 次ページに続く 22
フォルダ名のところに 選択した UserPrograms が入力されています [ 終了 (E) ] ボタンをクリックします UserPrograms にソースフォルダのマークがついてソース フォルダになりました 23
5. パスの設定ソース フォルダーとファイルを追加した場合 パスを通す必要があります ファイルが格納されているソースフォルダに対してパスを設定します この設定を行わないとビルドエラーになります パスの設定は次のようにします 1) パスの設定画面を開く メニューの { プロジェクト (P) } { プロパティ (P) } をクリックすると次のダイアログが開きます 次ページに続く 24
C/C++ 一般の下のパスおよびシンボルをクリックすると次のダイアログが開きます 2) パスの追加 [ 追加 ] ボタンをクリックすると次のパスの追加のダイアログが開きます [ ワークスペース ] ボタンをクリックすると次ページのフォルダの選択のダイアログが開きます 25
先に追加した Handles をクリックして選択し [ OK ] ボタンをクリックします ディレクトリーの欄に /F401N_Blink_LD2/Handles が入力されているので [ OK ] ボタンをクリックします 次ページに続く 26
Handles のパスが追加されています UserPrograms についても同様にして追加します [ OK ] ボタンをクリックすると次のメッセージが表示されます [ はい (Y) ] ボタンをクリックします これで パスの設定は終了です 27
6. ビルド Build のアイコンをクリックするとプロジェクトをビルドすることができます ビルド中の表示です プロジェクト エクスプローラーの欄に X マークがなく コンソールの欄にエラーメッセージがなければビルドは成功です 28
7. デバッグ虫のアイコンをクリックするとデバッグを開始します 初めての場合 次のダイアログが表示されます [ OK ] ボタンをクリックすると次ページのようになります 29
基板との接続を開始して以下のダイアログが表示されます 接続が終了するとこのダイアログは閉じて次の画面になります 1) プログラムの実行このサンプルプログラムはタイマ割り込みにより LED を点滅するプログラムです STM32F4 Discovery の LD4( 緑 ) が 1 秒点灯 /2 秒消灯で点滅します プログラムの開始位置が緑のマーカーで示されています 右向き三角の [ 再開 (M) ] のアイコンをクリックすると実行します 実行している様子は次ページのようになります 30
2) プログラムの中断 [ 中断 (S) ] のアイコンをクリックすると中断します 中断した様子を次に示します main 関数の while(1) の永久ループのところで中断しています 次ページに続く 31
3) ブレークポイントの設定 Timer 割り込みのところにブレークポイントを設定してみます プログラム行の左側のここの部分をダブルクリックするとブレークポイントを設定できます また 希望のプログラム行にカーソルを点滅させておいて メニューの { 実行 (R) } { ブレークポイントの切り替え (K) } をクリックしてもブレークポイントを設定できます ブレークポイントが設定されるとブレークポイントのマークが表示されます 次ページに続く 32
ブレークポイントで中断すると以下のように中断して行に緑のマーカーが表示されます 4) ブレークポイントの解除ブレークポイントのマークをダブルクリックするとブレークポイントを解除できます また ブレークポイント行にカーソルを点滅させておいて メニューの { 実行 (R) } { ブレークポイントの切り替え (K) } をクリックしてもブレークポイントを解除できます 上記画面は ブレークポイントを解除して再び実行している様子です 33
改訂履歴 V001 2014/09/24 初版 34