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

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

N/A
N/A
Protected

Academic year: 2021

シェア "1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x"

Copied!
13
0
0

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

全文

(1)

1 Base_STM32F4_Discovery の説明 2013/09/05

STM32F4 Discovery 基板の CPU STM32F407VG の FlashMemory 0x08010000 番地に書き込んで実行させる、 ユーザープログラムのためのプロジェクトの雛形です。

本プロジェクトを元にユーザープログラムを作成して、USB 経由で CPU に書き込みます。 USB 経由で CPU にプログラムを書き込むためには Update_STM32F407VG を使用します。

本プロジェクトは、無料の開発ツール Atollic TrueSTUDIO for ARM Lite 4.1.0 を使用しています。

目次

1. 概念 ... 2 2. PC と STM32F4 Discovery 基板との接続 ... 2 3. プログラムの書き込み... 3 3.1. STM32F4 Discovery 基板をプログラム書き込み状態にする。 ... 3 3.2. Base_STM32F4_Discovery プログラムの書き込み ... 3 4. プロジェクト 「 Base_STM32F4_Discovery 」 の構成 ... 7 5. プログラムのデバッグ ... 9 5.1. デバッグの開始 ... 9 5.2. プログラムの実行 ... 9 5.3. プログラムの一時停止 ... 10 5.4. ブレークポイントの設定 ... 11 5.5. デバッグの終了 ... 12

(2)

2 1. 概念

STM32F4 Discovery 基板は、Mini USB を接続して、デバッグやプログラムの書き込みができるようになっています。 通常は、CPU の 0x08000000 番地からプログラムを実行します。

では、なぜ わざわざ このプロジェクトの雛形を使用して、CPU の 0x08010000 番地から実行するのでしょうか。 対象としている、無料の開発ツール Atollic True STUDIO for ARM Lite 4.1.0 はプルグラムのコードサイズが 32Kbyte に 制限されています。

断片的に Peripheral(周辺インターフェース)を試すのには、それでも十分かもしれません。 しかし、グラフィック LCD に日本語文字を表示するため、日本語フォントを使用したいと思っても、

12 x 12 font で約 250Kbyte、16 x 16 font なら約 340Kbyte の領域が必要なりますし、また、大きなテーブルを使用して プログラムを実行したくても、コードサイズ 32Kbyte の制限のため、実現できません。 そこで、CPU の 0x08010000 番地にプログラムを書き込んで実行するための Update_STM32F407VG を作成しました。 この、Update_STM32F407VG は 0x08080000 ~ 0x080BFFFF の 256Kbyte のエリアに日本語フォントなどのデータを 書き込む機能も持っています。(現在は、このエリアに制限していますが、もっと大きなエリアに変更可能です。) これにより、だいぶ自由に実験が行えます。 2. PC と STM32F4 Discovery 基板との接続 PC と STM32F4 Discovery 基板は USB ケーブルで以下のように接続します。 PC A A Mini B Micro B USB ケーブル : 電源供給 および デバッグのため USB ケーブル : プログラム書き込みのため 図2. USB ポート STM32F4 Discovery

(3)

3 3. プログラムの書き込み

Base_STM32F4_Discovery をビルドした結果のファイル Base_STM32F4_Discovery.elf を STM32F4 Discovery 基板の CPU に書き込むには、「飛石伝ひアプリケーション」 を使用します。

また、STM32F4 Discovery 基板の CPU には、Update_STM32F407VG.elf が書き込まれている必要があります。 「 Update_STM32F407VG 」 については、

「 STM32F4 Discovery 基板用 ファームウェアアップデート プログラムソースの説明 」 をご覧ください。

3.1. STM32F4 Discovery 基板をプログラム書き込み状態にする。

基板の電源が ON の状態で、User スイッチと Reset スイッチを同時に押して、Reset スイッチを先に話します。 基板上の LED LD4(緑)が 200mSec 間隔で点滅していれば、CPU の FlashMemory への書き込み状態です。

3.2. Base_STM32F4_Discovery プログラムの書き込み

(4)

4

[はい(Y)] ボタンをクリックすると次のファイル選択のダイアログが開きます。

ダウンロードしたフォルダの

「 Work_Base_STM32F4_Discovery\Base_STM32F4_Discovery\Release\Base_STM32F4_Discovery.elf 」 を選択して [開く(O)] ボタンをクリックすると次のメッセージが表示されます。

(5)

5 [はい(Y)] ボタンをクリックするとファームウェアの書き込みが開始されます。 書き込みが終了すると、このメッセージが表示されます。 「 CPU 基板の時計が初期化されました。日付・時刻を設定してください。 」 とありますが、これは「飛石伝ひ CPU 基板」に ファームウェア 「 tri_S_STM32F405VG_Vxxx 」 を書き込んだ場合のものです。 [ Base_STM32F4_Discovery.elf 」 を書き込んだ場合は、無視してください。 [OK] ボタンをクリックしてください。書き込みはこれで終了です。 次ページのように「飛石伝ひアプリケーション」の画面にメッセージが表示されています。

(6)

6

[ Base_STM32F4_Discovery.elf 」 を書き込んだ場合はプログラムが小さいので、Access Count は 15 ぐらいです。

STM32F4 Discovery 基板上の LED LD5(緑が) 1秒点灯、2秒消灯を繰り返しているはずです。 プログラム [ Base_STM32F4_Discovery.elf 」 がタイマ割り込みを使用して LED 点滅を行っています。

(7)

7 4. プロジェクト 「 Base_STM32F4_Discovery 」 の構成

プロジェクト 「 Base_STM32F4_Discovery 」 を開いて、project Explorer の各フォルダを開いた状態を以下に示します。

Project Explorer を拡大したものを以下に示します。また、ユーザーが記述するためのファイルの簡単な説明を 記します。 Handles と UserPrograms は独自に追加したフォルダです。それ以外はプロジェクト作成時に自動的に構築されます。 Handles のフォルダに Peripheral 設定のためのファイルを追加してください。 HandleTimer2 : タイマ割り込みのための Timer2 の初期化 UserPrograms : ユーザーのプログラムを作成するフォルダ main.c : main()モジュールがある。 stm32f4xx_it : 割り込み処理を記述するファイル

(8)

8 以下に、ユーザーが処理を追加する主なフォルダの簡単な説明を記します。 1) src 自動で作成されるフォルダです。 a) main.c main()のモジュールがあります。 プログラムはこの main()から開始されます。 b) stm32f4xx_it.h 割り込み処理のヘッダファイルです。 c) stm32f4xx_it.c 割り込み処理を記述するソースファイルです。 2) Libraries 自動で作成されるフォルダです。 CPU STM32F407VG が持つ、周辺インターフェースの設定および入出力のモジュール群です。 3) Handles 独自に追加したフォルダです。 各周辺インターフェースの初期化および周辺インターフェースをアクセスするための処理を記述します。 このプロジェクト Base_STM32F4_Discovery では、タイマ割り込みのための Timer2 のモジュールのみを記述してあります。 ファイルを追加して、ユーザー用のモジュールを追加してください。 4) UserPrograms 独自に追加したフォルダです。 ユーザーが作成するプログラムを記述します。 このプロジェクト Base_STM32F4_Discovery では、ステータス LED の点滅処理を記述してあります。 ファイルを追加して、ユーザー用のモジュールを追加してください。

(9)

9 5. プログラムのデバッグ 5.1. デバッグの開始 左側の虫のアイコンをクリックするか、 または、メニューの {Run} -> {Debug} をクリックします。 Debugが起動して、プログラムコードのロードが終了すると次のような画面になります。 5.2. プログラムの実行 三角のアイコンをクリックするか、メニューの {Run} -> {Resume} をクリックするとプログラムを実行します。

(10)

10 5.3. プログラムの一時停止

実行中は以下の画面になります。

Suspend のアイコンをクリックするか、メニューの {Run} -> {Suspend} をクリックすると一時停止します。

(11)

11 5.4. ブレークポイントの設定

ブレークポイントを設定したい行をクリックしてその行でカーソルが点滅している状態で メニューの {Run} -> {Toggle Breakpoint} をクリックします。

指定した行番号の左横にブレークポイントのマークが表示されます。

(12)

12 ブレークポイントでプログラムが停止した状態は次の画面のようになります。 ブレークポイントを指定した行でプログラムが一時停止しています。 5.5. デバッグの終了 赤い四角のアイコンをクリックするか、または、メニューの {Run} -> {Terminate} をクリックするとデバッグが終了して、 次ページのようにエディットの画面に戻ります。

(13)

参照

関連したドキュメント

えて リア 会を設 したのです そして、 リア で 会を開 して、そこに 者を 込 ような仕 けをしました そして 会を必 開 して、オブザーバーにも必 の けをし ます

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

AC100Vの供給開始/供給停止を行います。 動作の緊急停止を行います。

手動のレバーを押して津波がどのようにして起きるかを観察 することができます。シミュレーターの前には、 「地図で見る日本

子どもたちは、全5回のプログラムで学習したこと を思い出しながら、 「昔の人は霧ヶ峰に何をしにきてい

本プログラム受講生が新しい価値観を持つことができ、自身の今後進むべき道の一助になることを心から願って

となってしまうが故に︑

ƒ 、または Arduinoのリセットボタン”oƒ、2 }~x してか らコマンド @2 しま Q*した Arduino す。 プログラムを Arduino に…き:む Äsについては「