STM32L Discovery
= ( TrueSTDUIO IDE ) | ( Eclipse own IDE )
IMAGE12.GIF - 2,801BYTES

2012年5月13日 追加情報
2012年3月4日 FreeRTOS
2012年1月1日 新規作成

STM32L152に関してはここに追加情報を記載しました(2012/8/19)
1 はじめに
2 開発環境の構築
2.1 TrueSTUDIO for STMicroelectronics STM32 Lite 2.2.0
2.2 Sourcery G++ Lite for ARM EABI
+Eclipse IDE for C/C++ Developers Helios Service Release 2
3 サンプルプログラムの動作確認
3.1 on TrueSTUDIO (w/ arm-atollic-eabi-gcc)
3.2 on Eclipse (w/ arm-none-eabi-gcc)
4 FreeRTOS on STM32L-Discovery
4.1 on TrueSTUDIO (w/ arm-atollic-eabi-gcc)
4.2 on Eclipse (w/ arm-none-eabi-gcc)
5 気付いたこと



1 はじめに
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

<心変わり>
2010年3月からLPC1768を使用し始めて、ARM Coretex-M3の世界に足を踏み入れました。
一年もたたない2011年年初からは、MSP430を使用再開し省電力タイプの魅力にハマりました。
しかしながら、MSP430には色々と苦労の連続でした。
一番の問題は、ROM/RAMサイズを気にしながらの開発を強いられる点でした。
I/Oも多くの制限で、やりたいことへ専念出来ず、どうやるかを考えなくてはならない時間が段々増えてしまいました。
やるべきことは途中のままで残っていますし、下記は何とかしたいと思います。。

  1. GPSデータロガー
  2. DDS-VFO

でも、いつもの悪い癖で年の変わり目の心変わりを止めることが出来ません。

<ARM again>
LPC1768に戻ろうとしたのですが、mbedLPCXpressoも1年以上のブランクで皆さんの進歩についていけそうにありません。
そこでたどり着いたのがSTM32シリーズでした。
(でも、STM32はLPCシリーズより入手出来る情報が多いかもしれませんが・・・)
手始めに、いつものDigi-Keyで

を発注し、先ずはSTM32L-Discoveryを入手しました。STM32F4Discoveryは、在庫なしで1月中旬納入とのことです1月下旬に入手しましたが、まだ何もしていません(3月4日更新)
(2012年5月13日追加)
STM32F4Discoveryも、このページのGCC環境で開発を開始しました。


秋月やストロベリーリナックスでも入手できます。

<何故STM32?>
深い意味はないのですが、ねむいさんのぶろぐで紹介された、かなり高性能のような(まだ何も判りませんが)STM32F4と、MSP430より使いやすいそうな(まだ結論は出ていません)省電力タイプのSTM32Lの二つを同時に使えるところが気に入りました。
先ずは、STM32L-Discoveryに集中します。

LCDより左側はPCとのインターフェイスを受け持つST-Link/V2 デバッグ部分
LCDを含む右側部分は、STM32L152RBとその周辺回路
32KHzのXtalやスイッチ、LEDなどが接続され、右端はタッチセンサーとなっている


MSP430FG4618 VS STM32L152RBT6

項目 STM32L152RBT6 MSP430FG4618 コメント
ROM 128KB
Flash
116KB
Flash
.
RAM 16KB 8KB この差は大きい
DATA ROM 4KB EEPROM 256B Flash .
システムクロック
(最速時)
32MHz 8MHz .
LCD I/F 8x40 or 4x44 160seg Max .
USB I/F Yes No .
SPI 2 1x UART or SPI
1x UART,SPI,I2C
この差も大きいな
I2C 2
UART 3
RTC Yes No .
ADC 24x12bit 12x12bit .
DAC 2x12bit 2x12bit .
Timer 8 4 .
Vcc Range 1.8V to 3.6V 1.8V to 3.6V .
Low Power Low-power run (9μA at 32kHz),
Low-power sleep (4.4μA),
Stop with RTC (1.45μA),
Stop (570nA),
Standby (300nA)
Active Mode: 400μA
 at 1MHz, 2.2V
Standby Mode: 1.3μA
Off Mode (RAM Retention):
  0.22μA
はたしてどちらが
本当に省電力なのか?
Pin No. 64pins 100pins .
Price(sample)
Digi-Key
(2011/12/29)
\558 \1,586 3倍近くか?

TIからは比べる対象が違うと言われそうだが、私が使ったCPUを比較しているだけなのでご容赦いただこう。
MSP430も良いところがあるのだが、何せRAMが少なすぎて玄人が最適化コードを書く前提で設計されているとしか思えない。
少なくともFreeRTOSを使って遊ぶにはSTM32Lに軍配が上がるような気がするが、さて実際の判定は如何に?







2 開発環境の構築
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

<どう開発環境を構築するの?>
最初にSTM32L-Discoveryを受取って開封したら情報はたった一行、
www.st.com/stm32l-discovery
とあるだけで、開発環境に関しては、

と書かれているだけ。
もう少し親切な開発環境設定の案内があっても良いと思うのは私だけなのか?
LPC1768使用時の経験から、結果としては下記2つを使用することにした。

(2012年5月13日追加)
下記の様に、TrueSTUDIOにコード制限が付いてしまったので、ここのページのGCC環境も参考にしてください。

Web検索するとSTM32を使用している方は思ったより多く、ベンダー情報は少ないにもかかわらず必要な情報は思ったより多いかもしれないと感じた。


2.1 <TrueSTUDIO for STMicroelectronics STM32 Lite 2.2.0
TOP02_001.PNG - 934BYTES

TrueSTUDIOは、Eclipseをカスタマイズした製品で下記フリーソフトはかなりの機能限定はあるものの、使用期間の制限や生成コードのサイズ制限などが無いのはありがたい。
(2012年5月13日追加)
現時点での最新バージョンは、
Atollic TrueSTUDIO® for ARM® Lite v3.1.0となっています。
32KBのコード生成制限が付いてしまいました。
使用期間の制限はありません。



Downloadは、
Atollic TrueSTUDIO® for STMicroelectronics STM32
で、Lite Versionがフリーでダウンロード出来る。

但し、ユーザー登録してE-mailでIDを取得しないと動作させることが出来ない。
上記画面は英語のみだが、インストールの仕方や使い方の説明がある。

インストールしながら途中で上記画面を開いて、必要事項を記入する
Installation Keyをメールで入手し、Copy&Pasteで下記のComputer idへ記入

めでたく、インストールが終了すると直ぐに使える状況になる。

次にUSB経由で、ST-LINKを認識させる必要がある。
ST-LINK
のページで[Design Support]の下段にある、ファイルをダウンロードしてインストールします。

STM32L-DiscoveryをPCに接続しST-LINK/V2として認識されば
下記は、サンプルプログラムを作成中の画面です。


良いシステムですが、この画面が頻繁に出てきます。


また、ブレークポイントが一箇所しか設定できません。
無償ですから、仕方ないと諦めましょう。




2.2 <Sourcery G++ Lite for ARM EABI +Eclipse IDE for C/C++ Developers Helios
TOP02_001.PNG - 934BYTES

先ずは参照するWebです。
Setting up Eclipse and Code Sourcery lite for STM32 Discovery Development
ここを見れば、ほとんどの問題は解決できると思います。

英語なのでポイントを下記に示します。

上の画像は、サンプルプログラムを作成中のものです








3 サンプルプログラムの動作確認
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

サンプルプログラムのベースは、
STM32L-DISCOVERY ->Discovery kit for the STM32L EnergyLite 32-bit MCUs
のページで[Design support]の下段にある、
STM32L-DISCOVERY firmware package Ver.1.0.2 3052KB
をダウンロードして使用します。
ファイル名は、[stm32l-discovery_fw_pack.zip]ですが、unzipすると[STM32L_Discovery_Firmware_Pack_V1.0.2]のDirectoryが出来る。
このファイルを各開発環境で、使用します。


3.1 <on TrueSTUDIO (w/ arm-atollic-eabi-gcc)>
TOP02_001.PNG - 934BYTES

サンプルプログラムのファイル群は、下記のzipファイルをダウンロードしてください。
STM32L-Discovery_TrueSTUDIO_wrk1.zip
このファイルを、適当な場所にunzipして準備しておきます。
EclipseのExportとImportの方法が良く解らないのですが、下記の様にすればコンパイルしてオブジェクトが作成出来ます。

ファイルをunzipして何処か適当な場所に置く
TrueSTUDIOで新規プロジェクトを作成する
名前は(後で変更は可能だが)”STM32L-Discovery_Eclipse_wrk1”と必ずしてください
プロジェクトは空のまま作成される[1]
unzipしたファイル全部[3]をプロジェクトのディレクトリ[2]に全部コピーする。その際、全て上書き!
少し待てばプロジェクト内に全てのファイルが認識される(急ぎたいときには<File>→<Refresch>で更新可能)
上記の様にファイルが入ればOK
セッティングをImportします
上記を選んでNEXT
プロジェクトホルダー内の”STM32L-Discovery_TrueSTUDIO_wrk1.xml”をインポートする
この後に、BuildすればWarningは残るがオブジェクトが作成出来るはず




3.2 <on Eclipse (w/ arm-none-eabi-gcc)
TOP02_001.PNG - 934BYTES

サンプルプログラムのファイル群は、下記のzipファイルをダウンロードしてください。
STM32L-Discovery_Eclipse_wrk0.zip
このファイルを、適当な場所にunzipして準備しておきます。
ソースファイルとディレクトリ構成は、TrueSTUDIOと同じでアッセンブラファイル以外は同じになっています。
しかし開発環境の設定が違いますので、両方のファイル群を別管理してください。

ファイルのインポートは、上記TrueSTUDIOと同じ方法です
ファイルネームやディレクトリー名は、
”STM32L-Discovery_Eclipse_wrk0”
を間違えないように記入してください。


















4 FreeRTOS on STM32L-Discovery
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

定番のFreeRTOSですがデモプログラムとしてリリースされているのは、STM32Lは同じSTM32L152RBですが評価ボードが違い、
STM32L152-EVAL Evaluation board for STM32L1 series - with STM32L152VB MCU用です。
直さなければ動作させることは出来ません。

2012年1月1日時点では、コンパイルエラーは無くなりましたが、動作していません。(3月4日更新)
1月初旬に動作させることが出来ました。
サンプルは、TrueSTUDIO上で動作し始めましたが、Eclipse上ではまだうまく動作していません。


4.1 <on TrueSTUDIO (w/ arm-atollic-eabi-gcc)>
TOP02_001.PNG - 934BYTES

20012年1月1日に向けて頑張ったのですが、まだ動作するまでに至ってません。(3月4日更新)
STM32L-Discovery_FreeRTOS_wrk1.zip







4.2 <on Eclipse (w/ arm-none-eabi-gcc)
TOP02_001.PNG - 934BYTES

20012年1月1日に向けて頑張ったのですが、まだ動作するまでに至ってません。(3月4日更新)
2012年3月4日時点では、まだ動作していません(中断しています)。

->GCCバージョンは、ここで紹介しています







5 気付いたこと
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES






























TOP02_001.PNG - 934BYTES