Stellaris 概要processors.wiki.ti.com/images/c/cb/1stellaris_ws_jp_architecture.pdf1 - 2 Stellaris...

18
Stellaris 1day Workshop –Stellaris outline 1 - 1 Stellaris 概要 Module Topics Stellaris 概要 .............................................................................................................................................. 1-1 Stellaris ブロック図 .............................................................................................................................. 1-2 Cortex-M3 を見てみましょう .............................................................................................................. 1-3 Cortex-M3 アーキテクチャ.............................................................................................................. 1-3 Stellaris の全体像 .................................................................................................................................. 1-8 Stellaris の特徴 .................................................................................................................................. 1-8 Stellaris 評価キット .........................................................................................................................1-10 StellarisWare .....................................................................................................................................1-11 フラッシュ・プログラマー ...........................................................................................................1-12 Lab1 LM Flash Programmer を使う ....................................................................................................1-13 Stellaris 評価キットと PC の接続...................................................................................................1-13 LM Flash Programmer を使ったプログラムの書き込み ..............................................................1-14

Transcript of Stellaris 概要processors.wiki.ti.com/images/c/cb/1stellaris_ws_jp_architecture.pdf1 - 2 Stellaris...

Stellaris 1day Workshop –Stellaris outline 1 - 1

Stellaris 概要

Module Topics

Stellaris 概要 .............................................................................................................................................. 1-1

Stellaris ブロック図 .............................................................................................................................. 1-2

Cortex-M3 を見てみましょう .............................................................................................................. 1-3 Cortex-M3 アーキテクチャ.............................................................................................................. 1-3

Stellaris の全体像 .................................................................................................................................. 1-8 Stellaris の特徴 .................................................................................................................................. 1-8 Stellaris 評価キット .........................................................................................................................1-10 StellarisWare .....................................................................................................................................1-11 フラッシュ・プログラマー ...........................................................................................................1-12

Lab1 LM Flash Programmer を使う ....................................................................................................1-13 Stellaris 評価キットと PC の接続...................................................................................................1-13 LM Flash Programmer を使ったプログラムの書き込み ..............................................................1-14

1 - 2 Stellaris 1day Workshop – Stellaris outline

Stellaris ブロック図

2

Stellarisブロック図ARM® Cortex™-M3 v7-M プロセッサ・コア ~ 100 MHz ~ 125 MIPS(100 MHz 動作時)オンチップ・メモリ ~256 KB フラッシュ / 96 KB SRAM ROM には、Stellaris DriverLib、ブートローダ、AES テーブル、

CRC を内蔵外部ペリフェラル・インターフェイス(EPI) 外部ペリフェラルに対応した 32 ビット専用パラレル・バス SDRAM、SRAM/フラッシュ、M2M をサポート豊富なシリアル・インターフェース 10/100 イーサネット MAC + PHY 3 つの CAN 2.0 A/B コントローラ USB(フル・スピード) OTG / ホスト / デバイス 3 つの UART(IrDA および ISO 7816 をサポート*) 2 つの I2C 2 つの同期シリアル・インターフェイス(SSI) インテグレーテッド・インターチップ・サウンド(I2S)システム統合 32 チャネル DMA コントローラ 内部精度 16MHz オシレータ 別々のクロック・ドメインを備えた 2 つのウォッチドッグ・タイマ ARM Cortex Systick タイマ RTC 機能を備えた 4 つの 32 ビット・タイマ

( 大で 8 つの 16 ビット・タイマ) 低消費電力のバッテリ・バックアップ機能付きハイバネーショ

ン・モジュール高度なモーション・コントロール 8 個の高度な PWM 出力

(モーション・アプリケーションおよびエネルギー・アプリケーションに対応)

2 つの直交エンコーダ入力(QEI)アナログ 2 つの 8 チャネル 10 ビット ADC(合計で 16 チャネルに対応) 3 つのアナログ・コンパレータ オンチップ電圧レギュレータ(1.2V の内部動作)

Cortex™-M3の位置付け

ARMv4

ARMv5

ARMv6

ARMv7-A

ARM966E-S

ARM7EJ-S

ARM922T

ARM920T

ARM7TDMI(S)

ARM1176JZ(F)-SARM1156T2(F)-S

ARM1136J(F)-S

ARM1026EJ-S

ARM968E-S

ARM926EJ-S

ARM946E-S

Cortex-A9x1-4

Cortex-M3

Cortex-R4

Cortex-R4F

Cortex-A8

A

R

M

ARMv7-R

ARMv7-M

Cortex-M1

Stellaris 1day Workshop – Stellaris outline 1 - 3

Cortex-M3 を見てみましょう

Cortex-M3 アーキテクチャ

ARM® Cortex™-M3とは?

Cortexファミリのプロセッサは、あらゆる必要性能レベルにわたり、特定市場向けのアプリケーションに 適化した多様なソリューションを提供

ARM Cortexファミリは、3シリーズで構成され、全シリーズともにThumb-2命令セットを実装し、多様な市場における性能とコストの要求に対応

ARM Cortex-A シリーズ

複雑なOSおよびユーザ・アプリケーション向けのアプリケーション・プロセッサ

ARM、Thumb、Thumb-2命令セットをサポート

ARM Cortex-R シリーズ

リアルタイム・システム向けの組込みプロセッサ

ARM、Thumb、Thumb-2命令セットをサポート

ARM Cortex-M シリーズ

コストを重視するアプリケーションに 適化したディープ・エンベデッド・プロセッサ

Thumb-2命令セットのみをサポートNote:• ARM Code 32-bit• Thumb Code 16-bit• Thumb-2 Code mostly 16-bit & some 32-bit (25% Faster, 26% Smaller)

Cortex™-M3 コアの特徴

フラッシュ・メモリの使用に 適化されたアーキテクチャ

シングル・サイクルの乗算命令、およびハードの除算命令

Thumb2 16-/32-ビット混在命令セット– モード切り替え不要

1.25 DMIPS/MHz - ARM7 や ARM9より高性能

確定的な高速割り込み処理: 処理開始まで通常12サイクル、 低6

サイクル

C言語との親和性 – 割り込みハンドラをCの関数で記述可

クロック・ゲーティングを使用した3つのスリープ・モードによる低消費電力

データ・ブレークポイント、フラッシュ・パッチなどの充実したデバッグ機能

1 - 4 Stellaris 1day Workshop – Stellaris outline

一貫した命令セット = ARM7 Thumbがベース

ARM7(Thumb) → Cortex-M0 → Cortex-M3への上位互換

CORTEX-M3

CORTEX-M0

ADC

BL

ADD ADR

B

BIC

CMN CMP EOR

LDMLDR LDRB

LDRH LDRSH

LSL LSR MOV

MUL MVN

POP PUSH ROR

SBC STM

STR STRB STRH

SUB

LDRSB

SVC TST

AND ASR

ORR

RSB

IT

ADC ADD ADR AND ASR B

BFC BFI BIC CBNZ CBZCLREX

CLZ

CMN

CMP DBG

CDP

EOR LDC

LDMIA LDMDB LDR LDRB

LDRBT LDRD LDREX LDREXB

LDREXH LDRH LDRHT LDRSB

LDRSBT LDRSHLDRSHT LDRT

LSL LSRMCR

MCRR MLA

MLS

MOV MOVT

MRC MRRC MUL MVN

NOP ORN ORR PLD

PLDW PLI POP PUSH

RBIT REV REV16 REVSH

ROR RRX RSB SBC

SBFX SDIV SEV SMLAL

SMULL SSAT STC STMIA

STMDB STR STRB STRBT

STRD STREX STREXB STREXH STRH STRHT STRT

SUB SXTB SXTH TBB TBH TEQ TST

UBFX UDIV UMLAL UMULL USAT UXTB UXTH

WFE WFI YIELD

WFI YIELD

BKPT BLX

BX CPS

DMB

ISB

MRS

MSR

NOP REV

REV16 REVSH

SEV SXTB

SXTH UXTB

UXTH WFE

DSB

Present in ARM7TDMI

シンプルなレジスタセット

従来のARM Cortex-M3R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13(SP)

R14(LR)

R15(PC)

CPSR

R9_fiq

R10_fiq

R11_fiq

R12_fiq

R13_fiq

SPSR_fiq

User/System

FIQ

SPSR_svc

SVC

SPSR_abt

Abort

SPSR_irq

IRQ

SPSR_und

Undef

R0

R1R2

R3

R4R5

R6

R7

R8

R9

R10

R11

R12

R13(SP)

R14(LR)

R15(PC)

xPSR

特権スレッドモードハンドラモード

非特権スレッドモード

レジスタ 37個 レジスタ 18個

R0

R1R2

R3

R4R5

R6

R7

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13_svc

R8_fiq

R0

R1

R2

R3

R4

R5

R6

R7R8

R9

R10R11

R12

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13_abt R13_irq R13_und

R15(PC)

R14_fiq

R15(PC) R15(PC) R15(PC) R15(PC)R14_svc R14_abt R14_irq R14_und

R0

R1

R2

R3

R4

R5

R6R7

R8

R9

R10

R11

R12

R14(LR)

R15(PC)

xPSR

R13(SP)

スタック・ポインタだけが切り替わる

(切り替えない事も可)

SP_main SP_process

Stellaris 1day Workshop – Stellaris outline 1 - 5

シンプルな実行モード 基本的なシステム

一つのスタックでシンプルな構成

RTOSを使うシステム OSとユーザルーチンで特権レベル

を変え、システムの保護を行うことができる

スタックを分離することができる

非特権レベル

スレッドモード

特権レベル

スレッドモード

ハンドラモード ハンドラモード

Reset

プロセススタック

メインスタック

ネスト

初期化ルーチン

メインルーチン

モニタなど

割り込みルーチン

特権レベル

スレッドモード

Reset

メインスタック

ネスト

初期化ルーチン

OSカーネルなど

割り込みルーチン

ユーザルーチン

スタック切り替え

int

shortchar

char

short

int

アンアラインドデータアクセス

データを詰めてメモリを有効利用することができる

パックされた通信データなどはそのままアクセスできる 必要により自動的に複数のバス

サイクルが発生

プログラム処理が簡略化できる

例)struct pk_data {

char a; // 1バイトint b; // 4バイトchar c; // 1バイトshort d; // 2バイト

};

char

char

データはワード境界で整列する必要がある

ARM7TDMI-Sはアンアラインドデータをサポートしていない

ARM Cortex-M3はアンアラインドデータをサポート

無駄な空間 空き

1 - 6 Stellaris 1day Workshop – Stellaris outline

ペリフェラル 0.5GB

SRAM 0.5GB

メモリ/ペリフェラルのビット操作

Bit band regionはビット単位でアクセスも出来る領域(1/2/4バイトも可)

データとペリフェラルに固定したアドレスが割り当てられている

Bit band regionの特定のビットは対応するBit band areasへのワード単位の1命令の書き込みで可能

例)0x2000000a番地のbit3を1にする

0x00000000

0x20000000

コード 0.5GB

0x40000000

Bit band region 1MB

Bit band areas 32MB

通常のデータ 31MB

Bit band region 1MB

Bit band areas 32MB

通常のペリフェラル31MB

C言語の例:

*((int *)(0x22000000+0xa*32+3*4)) = 1;

Bit band areasのアクセスアドレス =

bit band areasのベースアドレス+

バイトオフセット×32+

ビット番号 × 4

2010/1/6

アセンブラは不要!

アセンブラ不要の割り込みハンドラ 割り込みハンドラはC言語で簡単に記述可能

#pragmaやinterrupt修飾子などは不要

割り込みハンドラのネストも特別なケアは必要なし

ベクタ・テーブルの設定もC言語で

命令コードではなく、ハンドラのアドレスを指定

関数ポインタの配列により設定可能

ブート・コードもC言語で可能

ハードによるスタック・ポインタの設定

ASM

C/C++

Stellaris 1day Workshop – Stellaris outline 1 - 7

充実したデバッグ機能

基本デバッグ機能 コアの停止、リセット、ステップ実行

NVIC中の全ての割り込み関連の情報の取得

すべてのメモリとレジスタへのアクセス(DAP経由)

フラッシュ・パッチ / ブレークポイント 6個のハードウェア・ブレークポイント

フラッシュ・メモリ領域をSRAMかシステム・アドレス空間に再マッピング可能

データ・ウォッチポイントとトリガ(DWT) 4個のハードウェア・ウォッチポイント

ハードウエア・トリガによるプログラム・カウンタのサンプリング

プロファイリングサポート 各種動作時間の計測

SWV (Serial Wire Viewer) DWTなどのトレース情報をチップ外部に出力

メモリマップCortexCortex--M3M3では空間の使い方も定義していますでは空間の使い方も定義しています

内部内部FlashFlash

内部内部SRAMSRAM

内部ペリフェラル内部ペリフェラル

EPIEPI接続の接続の外部空間外部空間

NVICNVIC

リザーブリザーブ

1 - 8 Stellaris 1day Workshop – Stellaris outline

Stellaris の全体像

Stellaris の特徴

2006 2007 2008 2009 2010 2011

Ethernet対応CAN対応大256KB

USB搭載DMA搭載

Low power高100MHz

4 世代にわたるStellaris

モーション・コントロール IP50MHzシングル・サイクルFlash

より高い性能低消費電力ETH+CAN+USB OTG外部バスの能力I2S高精度 OSC

256KB フラッシュ64KB SRAMモーション・コントロールイーサネット MAC+PHYCAN 2.0イーサネット+CAN

128KB フラッシュ64KB SRAMモーション・コントロール

を機能拡張USB 2.0

OTG/Host/Device32 チャネル DMA

64KB フラッシュ8KB SRAMモーション・コントロール1MSPS ADC

Tempest

Sandstorm

Fury

DustDevil

LM3S100シリーズからLM3S9000シリーズまで約160の製品群

※※デバイス・クラスはデバイス・クラスはDID (Device Identification)DID (Device Identification)レジスタのレジスタのCLASSCLASSフィールド値により区別できますフィールド値により区別できます

2010/1/6 17

ベンダー MCU ラインフラッシュ・アクセ

ス・タイム20MHz CPU

フラッシュ・アクセス・タイム

25MHz CPU

フラッシュ・アクセス・タイム

50MHz CPU測定単位

Texas Instruments Stellaris 1 サイクル

ST Micro STM32 1 2 3 サイクル

Atmel AVR8 1 N/A N/A サイクル

1 1 1

シングル・サイクルのフラッシュ・メモリ( 高 50MHz) ARM7 や Cortex-M3を使用した、より高速なコア・スピードをうたっている競合他社様もあ

りますが、フラッシュ・メモリがシングル・サイクルではないチップがあります。 また、シングル・サイクルをうたっている競合他社様もありますが、 大のコア・スピードに

制限があります。

注)フラッシュ・メモリへのアクセス仕様は、各社発行のデータシートより

50MHz以上のコア・スピード動作時には、プリフェッチ・バッファを使いリニア・アドレ

ッシング ルーチンのノー・ウェイト動作を実現しています。

Stellaris 1day Workshop – Stellaris outline 1 - 9

10/100イーサネットMAC+PHY

CAN2.0A/Bコントローラ

USB (Full speed) OTG/Host/Device

UART/I2C/I2S/SSI

2010/1/6 18

豊富なコネクティビティを手軽に

医療、工業、放送、通信、セキュリティ、ビル管理、アミューズメント、…幅広い分野で汎用的にお使いいただくために

MCUセレクションツール

1 - 10 Stellaris 1day Workshop – Stellaris outline

Stellaris 評価キット

20

Stellaris 評価キット ”Zero-to-32bits in 10 minutes”

4 種類の開発ツールから選択:

• 10 分以内で立ち上げ動作させる上で必要なものを全て提供• 評価ボード、ケーブル類、各種開発ツール、技術資料、StellarisWare ソフトウェ

ア、アプリケーション・ノート• Stellaris製品共通のシリアル・インサーキット・デバッグ・インターフェイスとしても機能

するため、アプリケーションの評価キット上の検証から、プロトタイプ作成に至るまで広範囲に使用可能

EK-LM3S2965

CAN 通信機能

79 米ドル

EK-LM3S6965

Ethernet MAC+PHY

69 米ドル

EK-LM3S8962

Ethernet+CAN

89 米ドル

EK-LM3S1968

多ピン数

59 米ドル

EK-LM3S811

少ピン数

49 米ドル

EK-LM3S3748

USB ホスト/デバイス

109 米ドル

EK-LM3S9B90

Ethernet+USB OTG

99 米ドル

EK-LM3S9B92

Ethernet+OTG+MC99 米ドル

EKK-LM3SxARM RealView Microcontroller Development Kit tools(32KB のアドレス制限)

EKI-LM3SxIAR Embedded Workbench KickStart(32KB のアドレス制限)

EKC-LM3SxCodeSourcerySourcery G++ GNU(30 日間評価ライセンス)

EKT-LM3SxCode Red Technologies Red Suite(フル評価ライセンスをボードに組み込み)

21

Stellaris評価キット:EK-LM3S9B92

LM3S9B92を搭載した評価ボード

インサーキット・デバッグ・インターフェイス(BD-ICDI)ボード

PC の USB ポートおよび評価ボードの 10 ピン ARM JTAG コネクタへ接続

8 ピン電源/UART コネクタで、実際の COM ポートから評価ボードへ電力を供給

ケーブル USB miniB - USB-A 変換ケーブル、USB-µA - USB-A メス型変換ケーブル、

USB-µB - USB-A オス型変換ケーブル

JTAG/SWD 接続用 10 ピン・リボン・ケーブル、電源/UART 接続用 8 ピン・リボン・ケーブル

CD-ROM には、評価ソフトウェア・ツール、技術資料、ソース・コード、回路図を収録

$99参考価格

Stellaris 1day Workshop – Stellaris outline 1 - 11

EK-LM3S9B92:ボード拡大図

電源電源/UART/UART

JTAGJTAG

USB OTGUSB OTGマイクロマイクロコネクタコネクタ

EthernetEthernet

ユーザー・スイッチユーザー・スイッチ

ユーザーユーザーLEDLEDリセット・スイッチリセット・スイッチパワーパワーLEDLED

電源切り替えスイッチ電源切り替えスイッチ

StellarisWare

フリー・ライセンスかつロイヤリティ・フリーのソース・コード付ライブラリ

ペリフェラル・ドライバ・ライブラリグラフィックス・ライブラリ USB ライブラリ ブート・ローダ IEC 60730 ライブラリ

Introducing

Stellaris MCUでの開発をスムーズに行っていただくために評価/製品

開発時に必要なソフトウェアをライブラリとして提供

チップの制御方法把握のためだけでなく、WebサーバーやUSBメモリ

など一つのアプリケーションとして動作するサンプルプログラムを同封

※弊社Webサイトからダウンロード可能

※※IEC60730IEC60730ライブラリについてはアプリケーション・ノートライブラリについてはアプリケーション・ノート(AN01272)(AN01272)を参照を参照

1 - 12 Stellaris 1day Workshop – Stellaris outline

フラッシュ・プログラマー

2010/1/21 22

フラッシュ・プログラマー

LM Flash Programmer(LMFlash.exe) わかりやすいグラフィカル・ユーザー・インターフェイス

すべての評価キットをサポート

主な特長は次のとおり Program(プログラム)

Verify(検証)

Erase(消去)

Read memory(メモリのリード)

Stellaris 1day Workshop – Stellaris outline 1 - 13

Lab1 LM Flash Programmer を使う

Lab1:LM Flash Programmerを使う

いろいろなサンプル・プログラムを動かしてみましょう!

Stellaris 評価キットと PC の接続

ソフトウェアは全てインストール済みですので、ボートと PC を USB ケーブルにて接続

すると LM Flash Programmer からプログラムを書き込めるようになります。

1. ボードが正しく認識されていることを確

認します。0

USB ケーブルでボードと PC を接続し、

ウィンドウズのコントロールパネルから

システムを開きます。「ハードウェア」

タブをクリックし、「デバイスマネージ

ャ」ボタンをクリックしてデバイスマネ

ージャを開きます。右図のように USB(Universal Serial Bus)コントローラのツ

リーに Stellaris ICDI Board A 及び Stellaris ICDI Board B、ポート(COM と LPT)に

Stellaris ICDI COM port(COMxx)があるこ

とを確認してください。

1 - 14 Stellaris 1day Workshop – Stellaris outline

LM Flash Programmer を使ったプログラムの書き込み 2. LM Flash Programmer を起動します。

デスクトップにある LM Flash Programmer アイコンをダブルクリックしてください。

3. 評価ボードを選択します。

使用するボードを Configuration タブの Quick Set プルダウンメニューから選択してく

ださい。

4. サンプルプログラムを選択します。

Program タブの Select .bin file 内にある Browse ボタンをクリックし、書き込む.bin フ

ァイルを選択します。サンプルプログラムは C:\StellarisWare\boards\<評価キット名>

Stellaris 1day Workshop – Stellaris outline 1 - 15

フォルダに多数収録されています。ここでは”usb_host_msc”サンプルをもとに手順を

紹介します。

.bin ファイルは C:\StellarisWare\boards\<評価キット名>\usb_host_msc\ccs\Debug フォ

ルダにありますので選択してください。

.bin ファイル選択後 Program ボタンをクリックするとプログラムの書き込みが始まり

ます。LM Flash Programmer ウィンドウの最下部に表示されるスクロールが 100%に

到達し、”Program Complete”と表示されると書き込み完了です。

1 - 16 Stellaris 1day Workshop – Stellaris outline

5. “usb_host_msc”サンプルプログラムの動作を確認します。

このサンプルプログラムは Stellaris の USB ホスト機能を使い、USB マス・ストレー

ジ・クラスを使ってファイルシステムを読み出すデモ・ソフトウェアです。ボード

に USB メモリを接続し、USB メモリにあるファイルシステムの内容を PC のターミ

ナルソフトに表示します。

まずはボードに USB メモリを接続してください。

次に PC のターミナルソフトを起動してください。ターミナルソフトの設定は手順

1にて確認した COM 番号へ Serial ポート接続するようにし、詳細設定にてボーレー

ト 115200bps、データ 8bit、パリティなし、ストップビット 1bit としてください。下

図は TeraTerm での設定例になります。

Stellaris 1day Workshop – Stellaris outline 1 - 17

次にボードのリセット・プッシュスイッチを押しプログラムを最初から実行させま

す。すると下図のようなコマンドライン入力がターミナルに表示されま

す。”help<Enter>”、”ls<Enter>”など入力し USB メモリ内のファイルシステム情報が

表示されることを確認してください。

1 - 18 Stellaris 1day Workshop – Stellaris outline

6. 他のサンプルプログラムに書き換え、動作を確認します。

他のサンプルプログラムの.bin ファイルを LM Flash Programmer で書き込み、試して

ください。動作内容は各サンプルプログラムのフォルダ C:\StellarisWare\boards\<評価キット名>\<サンプルプログラム名>\にはそのプログラムの内容を紹介している

readme.txt ファイルを参照してください。

例えば”blinky”はボード上の User LED を点滅させるプログラムです。シンプルなプ

ログラムですので簡単に試せるでしょう。その他、時間の許す限り試してみてくだ

さい。

以上で Lab1 は終了です。LM Flash Programmer を終了してください。お疲れ様でした。