Category:STM32

出典: Wikimura

STMicroelectronics社のARMマイコンSTM32を使用するために学んだことをまとめました。 ここでは、各ページの簡単な説明と案内をします。新しいページについては説明がまだの場合があります。 なお、STM32に関する全てのページは、ページ下部のリストにあります。

目次

開発環境作りに関する資料

まず、マイコンを使うには開発環境が必要です。 ここでは、ARMをEclipse上で開発し、JTAGを使ってプログラムの書き込みとデバッグを行うための環境を構築する方法について取り扱っています。

開発環境を構築するには、まず「ARM開発環境構築手順」を読んでください。

OpenOCD関連がやたら多いですが...設定が正しくないとJTAGが繋がらないので、色々調べた過程で増えてしまいました。


ARM開発環境構築手順

このページでは、開発環境を構築するための作業を説明しています。 開発環境をこれから作る人は参考にしてください。 各工程でチェックポイントを設けているので、1つ1つ確認しながら進めてください。

各ソフトウェアの設定などの細かい部分についてはあまり触れませんが、別の資料ページへのリンクを用意しました。 問題解決のヒントとして役立つと思います。

ARM開発環境と書いたとおり、STM32に限らずARMマイコンなら大体適用できるはずです。


OpenOCDが動くまで

ここでは、OpenOCDのインストールから設定までを取り扱っています。というより、動くようになるまでの経過かもしれません...

また、OpenOCDをSTM32マイコンにつなぐときに必要な設定ファイルの作り方について取り扱っています。 設定ファイルを正しく作らないと、OpenOCDがターゲットマイコンを認識できません。 そのため、設定ファイル作りはJTAGデバッグをするにあたって避けては通れない作業となっています。 このページでは、既に用意されたテンプレートを活用し、ターゲット用にカスタマイズ方法を説明します。

STM32以外のARMマイコンを開発したい場合でも、ここで書かれていることが適用できます。


Stm32.cfgを読む

OpenOCDの設定ファイルは、JTAGコネクタドライバ設定とターゲット設定について記述しなくてはなりません。 ありがたいことに、デフォルトである程度(と言うかほとんど)の設定ファイルのパーツは用意されています。 ユーザは、これらのパーツを組み合わせ、少し手を加えるだけで必要な設定ファイルが作れるようになっています。

ここでは、OpenOCDをインストールすると付いてくるStm32.cfgを読み、STM32マイコン用の設定ファイルを作る方法を説明します。


ARM-USB-TINY+STM32-P/H103用OpenOCD設定ファイル

Olimex社のJTAGケーブルである「ARM-USB-TINY」で、STM32マイコンボードである「STM32-P103」及び「STM32-H103」開発するためのOpenOCD設定ファイルです。「Stm32.cfgを読む」の内容を基に作りました。 このファイルがあれば、難しいことは考えずに上記の構成で開発を行えます。

とりあえず開発環境を用意したい人向けのページ...というか設定ファイルです。


OpenOCDのTcl

OpenOCDの設定ファイルには、Tclと呼ばれる言語(のサブセット)が使われています。 このページは、OpenOCDのTcl解説ページを和訳したものです。「Stm32.cfgを読む」で役に立ちます。

和訳と言っても...ジョークとか分からない部分は平気で飛ばしています。英語ができる方は本家を参照してください。


ハードウェアとソフトウェアの境界

マイコン上で動くのはソフトウェアですが、実際に動かすにはハードウェアに近い部分を知らなくてはなりません。また、マイコンに搭載されている周辺回路を操作する方法も知らなくてはなりません。ここでは、STM32マイコンのハードウェアとソフトウェアの境界について取り扱います。

STMicroelectronics社は、ハードウェアとソフトウェアの境界部分をSTM32F10x Standard Peripherals Firmware Libraryとして無償で提供しています。 ここでは主に、このライブラリの資料を紹介します。

スタートアップルーチンやリンカスクリプトなど、C言語が動くための下地を作る部分については、「CMSIS: Cortex Microcontroller Software Interface Standard」と「STM32用リンカスクリプトを書く」を読んでください。

周辺回路の使い方については、「STM32F10x Standard Peripherals Firmware Library: Overview」と「STM32F10x Standard Peripherals Firmware Libraryを使う」を読んでください。


CMSIS: Cortex Microcontroller Software Interface Standard

STM32マイコンのコア「Cortex-M3」とその周辺の割り込みコントローラなどへのアクセスは、CMSISと呼ばれるソフトウェア標準で提供される関数で行えるようになっています。

この資料は、STM32F10x Standard Peripherals Firmware Libraryに付属する、CMSIS 規格についての資料を(適当に)和訳したものです。表がたくさんありますが...線が引けなかったため非常に見づらくなっています。できれば本家を参照してください。


STM32F10x Standard Peripherals Firmware Library: Overview

ライブラリにはヘルプファイルが付いており、詳しい解説が載っています。 中でも、Overviewの部分はライブラリを使うために必要なことが載っています。 このページは、STM32F10x Standard Peripherals Firmware LibraryOverviewを和訳したものです。一部は英語のままですが...

このライブラリは良くできているのですが...正しく使うには、いくつかマクロを定義しなくてはなりません。 ライブラリをはじめて使うとassert_paramが無いとか言われてしまうのですが、これを読めばその理由も分かるはずです。 ライブラリを使うと出るエラーについては、このページが解決のヒントになるかもしれません。


STM32F10x Standard Peripherals Firmware Libraryを使う

実際に動かしたときの資料

外部リンク

STM32マイコン徹底入門

個人用ツール