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

Microsoft Word - 1stellaris_architecture.doc

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft Word - 1stellaris_architecture.doc"

Copied!
18
0
0

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

全文

(1)

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

(2)

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)-S ARM1156T2(F)-S ARM1136J(F)-S ARM1026EJ-S ARM968E-S ARM926EJ-S ARM946E-S Cortex-A9 x1-4 Cortex-M3 Cortex-R4 Cortex-R4F Cortex-A8

A

R

M

ARMv7-R ARMv7-M Cortex-M1

(3)

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つの スリープ・モードによる低消費電力  データ・ブレークポイント、フラッシュ・パ

(4)

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

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

CORTEX-M3 CORTEX-M0 ADC BL ADD ADR B BIC CMN CMP EOR LDM LDR 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 CLREX CBNZ CBZ

CLZ CMN CMP DBG CDP EOR LDC LDMIA LDMDB LDR LDRB LDRBT LDRD LDREX LDREXB LDREXH LDRH LDRHT LDRSB LDRSBT LDRSHT LDRSH LDRT LSL LSR MCR 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-M3

R0 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 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13(SP) R14(LR) R15(PC) xPSR 特権 スレッドモード ハンドラモード 非特権 スレッドモード レジスタ 37個 レジスタ 18個 R0 R1 R2 R3 R4 R5 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 R7 R8 R9 R10 R11 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 R6 R7 R8 R9 R10 R11 R12 R14(LR) R15(PC) xPSR R13(SP) スタック・ポインタ だけが切り替わる (切り替えない事も可) SP_main SP_process

(5)

シンプルな実行モード

 基本的なシステム  一つのスタックでシンプルな構成  RTOSを使うシステムOSとユーザルーチンで特権レベル を変え、 システムの保護を行うことができる  スタックを分離することができる 非特権レベル スレッドモード 特権レベル スレッドモード ハンドラモード ハンドラモード Reset プロセススタック メインスタック ネスト 初期化ルーチン メインルーチン モニタなど 割り込みルーチン 特権レベル スレッドモード Reset メインスタック ネスト 初期化ルーチン OSカーネルなど 割り込みルーチン ユーザルーチン スタック切り替え int short char 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はア ンアラインドデータをサ ポート 無駄な空間 空き

(6)

ペリフェラル 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++

(7)

充実したデバッグ機能

基本デバッグ機能

 コアの停止、リセット、ステップ実行  NVIC中の全ての割り込み関連の情報の取得すべてのメモリとレジスタへのアクセス(DAP経由)

フラッシュ・パッチ / ブレークポイント

6個のハードウェア・ブレークポイントフラッシュ・メモリ領域をSRAMか システム・アドレス空間に再マッピング可能 

データ・ウォッチポイントとトリガ(DWT)

4個のハードウェア・ウォッチポイント  ハードウエア・トリガによるプログラム・カウンタの サンプリング 

プロファイリングサポート

 各種動作時間の計測

SWV (Serial Wire Viewer)

DWTなどのトレース情報をチップ外部に出力

メモリマップ

Cortex

Cortex

-

-

M3では空間の使い方も定義しています

M3

では空間の使い方も定義しています

内部

内部

Flash

Flash

内部

内部

SRAM

SRAM

内部ペリフェラル

内部ペリフェラル

EPI

EPI

接続の

接続の

外部空間

外部空間

NVIC

NVIC

リザーブ

リザーブ

(8)

Stellaris の全体像

Stellaris の特徴

2006 2007 2008 2009 2010 2011 Ethernet対応 CAN対応 最大256KB USB搭載 DMA搭載 Low power 最高100MHz

4 世代にわたるStellaris

モーション・コントロール IP 50MHzシングル・サイクルFlash より高い性能 低消費電力 ETH+CAN+USB OTG 外部バスの能力 I2S 高精度 OSC 256KB フラッシュ 64KB SRAM モーション・コントロール イーサネット MAC+PHY CAN 2.0 イーサネット+CAN 128KB フラッシュ 64KB SRAM モーション・コントロール を機能拡張 USB 2.0 OTG/Host/Device 32 チャネル 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以上のコア・スピード動作時には、プリフェッチ・バッファを使いリニア・アドレ ッシング ルーチンのノー・ウェイト動作を実現しています。

(9)

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

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

USB (Full speed) OTG/Host/Device

UART/I

2

C/I

2

S/SSI

2010/1/6 18

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

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

(10)

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+MC 99 米ドル EKK-LM3Sx

ARM RealView Microcontroller Development Kit tools(32KB のアドレス制限) EKI-LM3Sx

IAR Embedded Workbench KickStart(32KB のアドレス制限) EKC-LM3Sx

CodeSourcerySourcery G++ GNU(30 日間評価ライセンス) EKT-LM3Sx

Code 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

参考価格

(11)

EK-LM3S9B92:ボード拡大図

電源 電源/UART/UART JTAG JTAG USB OTG USB OTG マイクロ マイクロ コネクタ コネクタ Ethernet Ethernet ユーザー・スイッチ ユーザー・スイッチ ユーザー ユーザーLEDLED リセット・スイッチ リセット・スイッチ パワー パワーLEDLED 電源切り替えスイッチ 電源切り替えスイッチ

StellarisWare

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

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

Introducing

Stellaris MCUでの開発をスムーズ に行っていただくために評価/製品 開発時に必要なソフトウェアをライ ブラリとして提供 チップの制御方法把握のためだけ でなく、WebサーバーやUSBメモリ など一つのアプリケーションとして 動作するサンプルプログラムを同封 ※弊社Webサイトからダウンロード可能 ※

(12)

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

2010/1/21 22

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

LM Flash Programmer(LMFlash.exe)

わかりやすいグラフィカル・ユーザー・インターフェイス

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

主な特長は次のとおり

Program(プログラム)Verify(検証)Erase(消去)Read memory(メモリのリード)

(13)

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)があるこ とを確認してください。

(14)

LM Flash Programmer を使ったプログラムの書き込み

2. LM Flash Programmer を起動します。

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

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

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

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

Program タブの Select .bin file 内にある Browse ボタンをクリックし、書き込む.bin フ ァイルを選択します。サンプルプログラムは C:\StellarisWare\boards\<評価キット名>

(15)

.bin ファイルは C:\StellarisWare\boards\<評価キット名>\usb_host_msc\ccs\Debug フォ ルダにありますので選択してください。

.bin ファイル選択後 Program ボタンをクリックするとプログラムの書き込みが始まり ます。LM Flash Programmer ウィンドウの最下部に表示されるスクロールが 100%に 到達し、”Program Complete”と表示されると書き込み完了です。

(16)

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

このサンプルプログラムは Stellaris の USB ホスト機能を使い、USB マス・ストレー ジ・クラスを使ってファイルシステムを読み出すデモ・ソフトウェアです。ボード に USB メモリを接続し、USB メモリにあるファイルシステムの内容を PC のターミ ナルソフトに表示します。 まずはボードに USB メモリを接続してください。 次に PC のターミナルソフトを起動してください。ターミナルソフトの設定は手順 1にて確認した COM 番号へ Serial ポート接続するようにし、詳細設定にてボーレー ト 115200bps、データ 8bit、パリティなし、ストップビット 1bit としてください。下 図は TeraTerm での設定例になります。

(17)

次にボードのリセット・プッシュスイッチを押しプログラムを最初から実行させま す。すると下図のようなコマンドライン入力がターミナルに表示されま

す。”help<Enter>”、”ls<Enter>”など入力し USB メモリ内のファイルシステム情報が 表示されることを確認してください。

(18)

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

他のサンプルプログラムの.bin ファイルを LM Flash Programmer で書き込み、試して ください。動作内容は各サンプルプログラムのフォルダ C:\StellarisWare\boards\<評 価キット名>\<サンプルプログラム名>\にはそのプログラムの内容を紹介している readme.txt ファイルを参照してください。

例えば”blinky”はボード上の User LED を点滅させるプログラムです。シンプルなプ ログラムですので簡単に試せるでしょう。その他、時間の許す限り試してみてくだ さい。

以上で

Lab1

は終了です。

LM Flash Programmer

を終了してくださ

参照

関連したドキュメント

この項目の内容と「4環境の把 握」、「6コミュニケーション」等 の区分に示されている項目の

7208.37--厚さが 4.75 ミリメートル以上 10 ミリメートル以下のもの 7208.38--厚さが3ミリメートル以上 4.75 ミリメートル未満のもの

① Google Chromeを開き,画面右上の「Google Chromeの設定」ボタンから,「その他のツール」→ 「閲覧履歴を消去」の順に選択してください。.

の 立病院との連携が必要で、 立病院のケース ー ーに訪問看護の を らせ、利用者の をしてもらえるよう 報活動をする。 の ・看護 ・ケア

私たちは上記のようなニーズを受け、平成 23 年に京都で摂食障害者を支援する NPO 団 体「 SEED

 本計画では、子どもの頃から食に関する正確な知識を提供することで、健全な食生活

活動前 第一部 全体の活動 第一部 0~2歳と3歳以上とで分かれての活動 第二部の活動(3歳以上)

都市国家から世界国家へと拡大発展する国家の規 道徳や宗教も必要であるが, より以上に重要なもの