セクション 4....

26
© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-1 プログラムメモリ 4 セクション 4. プログラムメモリ ハイライト 本セクションには下記の主要項目を記載しています。 4.1 プログラムメモリのアドレスマップ ............................................................................ 4-2 4.2 制御レジスタ ................................................................................................................ 4-6 4.3 プログラム カウンタ ..................................................................................................... 4-7 4.4 テーブル命令を使ったプログラムメモリの読み出し ................................................... 4-8 4.5 データ空間からの PSV ............................................................................................... 4-14 4.6 プログラムメモリの書き込み ..................................................................................... 4-21 4.7 プログラムメモリの低消費電力モード ....................................................................... 4-21 4.8 レジスタマップ ........................................................................................................... 4-22 4.9 関連アプリケーション ノート .................................................................................... 4-23 4.10 改訂履歴 ...................................................................................................................... 4-24 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

Upload: truongxuyen

Post on 15-May-2018

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

セクション 4. プログラムメモリ

プログラムメモリ

4

ハイライト

本セクションには下記の主要項目を記載しています。

4.1 プログラムメモリのアドレスマップ ............................................................................ 4-24.2 制御レジスタ ................................................................................................................ 4-64.3 プログラム カウンタ ..................................................................................................... 4-74.4 テーブル命令を使ったプログラムメモリの読み出し ................................................... 4-84.5 データ空間からの PSV ............................................................................................... 4-144.6 プログラムメモリの書き込み ..................................................................................... 4-214.7 プログラムメモリの低消費電力モード ....................................................................... 4-214.8 レジスタマップ ........................................................................................................... 4-224.9 関連アプリケーション ノート .................................................................................... 4-234.10 改訂履歴 ...................................................................................................................... 4-24

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-1

Page 2: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

4.1 プログラムメモリのアドレスマップ

dsPIC33E/PIC24E は 4M x 24 ビットのプログラムメモリ アドレス空間を備えます。補助メモ リ空間を備えたデバイスのプログラムメモリ マップの例を、図 4-1 に示します。補助メモリ空 間を備えないデバイスのプログラムメモリ マップの例を、図 4-2 に示します。

プログラムメモリ空間には下記を使ってアクセスできます。

• 23 ビットのプログラム カウンタ (PC)• テーブル読み出し (TBLRD) 命令

• PSV (プログラムメモリの任意の32Kバイトセグメントをデータメモリ アドレス空間に割り 当てる )

Note: ファミリ リファレンス マニュアルの本セクションは、デバイス データシートの補 足を目的としています。本セクションの内容は dsPIC33E/PIC24E ファミリの一部のデバイスには対応していません。

本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デバイス データシート内の「メモリ構成」と「フラッシュ プログラムメモリ」の冒 頭に記載している注意書きでご確認ください。

デバイス データシートとファミリ リファレンス マニュアルの各セクションは、マ イクロチップ社のウェブサイト (http://www.microchip.com)からダウンロードできます。

DS70613C_JP - p. 4-2 © 2012 Microchip Technology Inc.

Page 3: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

図 4-1: 補助メモリを備えた dsPIC33E/PIC24E のプログラムメモリ マップの例

0x0000000x000002

0x7FFFFE

0xF800000xF800120xF80014

0xFEFFFE0xFF00000xFF0002

0xF7FFFE

0x000004

0x7FFFFC

0x0002000x0001FE

Con

figur

atio

n M

emor

y Sp

ace

Use

r Mem

ory

Spac

e

Note 1: 上図のメモリ空間の縮尺比は不定です。

2: リセットアドレスは、リセット ターゲットベクタ選択ビット (RSTPRI) で制御 します。詳細は各デバイス データシート内の「その他の特殊な機能」を参照 してください。

3: 上図のメモリマップはあくまでも参考データです。正確なメモリアドレスについては、各デバイス データシート内の「メモリ構成」を参照してください。

Reset Address(2)

Device Configuration

User ProgramFlash Memory

Registers

DEVID (2 Words)

Unimplemented(Read ‘0’s)

GOTO Instruction(2)

Reserved

Reserved

Interrupt Vector Table

0x0XXXXX0x0XXXXX

Reserved0xFFFFFE

0x7FFFFA

0x7FC000Flash Memory

Auxiliary Program

0x800000

GOTO Instruction(2)

Reset Address(2)

Reserved

Write Latch

0xF9FFFE0xFA0000

0xFA00FE0xFA0100

VectorAuxiliary Interrupt

0x7FFFF8

0x7FBFFE

0x800FF8

0x801000USERID 0x800FFE

Reserved0x800FF6

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-3

Page 4: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

図 4-2: 補助メモリを備えない dsPIC33E/PIC24E のプログラムメモリ マップの例

Reset Address

0x000000

0x000002

Write Latches

User ProgramFlash Memory

0x0XXXXX0x0XXXXX

0x800000

0xFA00000xFA00020xFA0004

DEVID

0xFEFFFE0xFF0000

0xFFFFFE

0xF9FFFE

Unimplemented

(Read ‘0’s)

GOTO Instruction

0x000004

Reserved

0x7FFFFE

Reserved

0x0002000x0001FEInterrupt Vector Table

Con

figur

atio

n M

emor

y Sp

ace

Use

r Mem

ory

Spac

e

Flash ConfigurationBytes

0x0XXXXX0x0XXXXX

Reserved

0xFF0002

Reserved

0x800FF80x800FF6

0xFF0004

Note 1: 上図のメモリ空間の縮尺比は不定です。

2: 上図のメモリマップはあくまでも参考データです。正確なメモリアドレスについては、各デバイス データシート内の「メモリ構成」を参照してください。

0x801000USERID 0x800FFE

DS70613C_JP - p. 4-4 © 2012 Microchip Technology Inc.

Page 5: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

図 4-1 と図 4-2 のプログラムメモリ マップの左側の矢印が示すように、dsPIC33E/PIC24E の プログラムメモリ空間は 2 つの領域 ( ユーザメモリ空間とコンフィグレーション メモリ空間 ) に分割されます。

ユーザメモリ空間は下記の領域を含みます。

• ユーザプログラム フラッシュメモリ

• フラッシュ コンフィグレーション バイト ; 一部のデバイスだけがこのバイトを実装してい ます。詳細は各デバイス データシートの「その他の特殊な機能」を参照してください。

• 補助プログラム フラッシュメモリ ; 一部のデバイスだけがこのメモリを実装しています。詳 細は各デバイス データシートの「メモリ構成」を参照してください。

デバイスが補助プログラム フラッシュメモリ命令をサポートしている場合、ユーザ プログラ ムメモリの消去および / またはプログラミング中に、CPU はストールなしで補助プログラム フ ラッシュメモリ内の命令を実行できます。同様に、補助プログラムメモリの消去および / またはプログラミング中に、CPU はストールなしでユーザ プログラムメモリ内の命令を実行でき ます。

コンフィグレーション メモリ空間は下記の領域を含みます。

• デバイス コンフィグレーション レジスタ ; 一部のデバイスだけがこのレジスタを実装して います。詳細は各デバイス データシートの「その他の特殊な機能」を参照してください。

• USERID アドレス

• 書き込みラッチ ; これはユーザおよび補助フラッシュメモリのプログラミングに使います。 ラッチの数はデバイスごとに異なります。詳細は各デバイス データシートの「メモリ構成」 を参照してください。

• DEVID アドレス ; このアドレスはデバイス ID とリビジョン ID を格納します。詳細は、ご使 用になるデバイスの「プログラミング仕様」を参照してください ( この文書はマイクロチップ社ウェブサイト (www.microchip.com) からダウンロードできます )。

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-5

Page 6: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

4.2 制御レジスタ

プログラム フラッシュメモリの管理には、下記の 2 つのレジスタを使います。

• TBLPAG: テーブル ページレジスタ

• DSRPAG: データ空間読み出しページレジスタ

レジスタ 4-1: TBLPAG: テーブルページ レジスタ

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TBLPAG<7:0>bit 7 bit 0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-8 未実装 :「0」として読み出し

bit 7-0 TBLPAG<7:0>: テーブルアドレス ページビット

8 ビットのテーブルアドレス ページビットとワーキング レジスタを連結する事により、[ プログラムメモリ実効アドレス (23 ビット ) + バイト選択ビット (1 ビット )] を形成します。

レジスタ 4-2: DSRPAG: データ空間読み出しページレジスタ (1,2,3)

U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0

— — — — — — DSRPAG<9:8>bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-1

DSRPAG<7:0>bit 7 bit 0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-10 未実装 :「0」として読み出し

bit 9-0 DSRPAG<9:0>: データ空間読み出しページ ポインタビット

Note 1: DSRPAG = 0x000 の場合、ページングされた DS ウィンドウから読み出すと、アドレスエラーが発生し ます。

2: DSRPAG は 0x001 にリセットされます。

3: プログラム空間 (PS) は、0x200 以上の DSRPAG 値を使って読み出せます。

DS70613C_JP - p. 4-6 © 2012 Microchip Technology Inc.

Page 7: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

4.3 プログラム カウンタ

データ空間のアドレッシングと互換性を保つために、PC ( プログラム カウンタ ) は 2 ずつイン クリメントし、最下位ビット (LSb) は常に「0」に設定されます。PC<22:1> を使う事により、4MB のプログラムメモリ空間内で、連続した命令ワードアドレスを指定できます。1 命令ワードは 24 ビット幅です。

プログラムメモリ アドレスの LSb (PC<0>) は、PSV (Program Space Visibility) またはテーブ ル命令を使ってデータ空間からプログラムメモリへアクセスする際のバイト選択ビットとして予約されています。PC を介する命令フェッチの場合、バイト選択ビットは不要であるため、PC<0> は常に「0」に設定されます。PSV モード動作の詳細は 4.5 「データ空間からの PSV」 を参照してください。

図 4-3 に、命令フェッチの例を示します。図では PC<22:1> を 1 つインクリメント (+1) していますが、これは PC<22:0> を 2 つインクリメント (+2) するのと同じ事です。

図 4-3: 命令フェッチの例

22 0

Program Counter 0

0x000000

0x7FFFFE

24 bits

Inst

ruct

ion

Instruction23

+1(1) 2423 User

Space

Latc

h

Note 1: PC<22:1> を 1 つインクリメント (+1) するのは PC<22:0> を 2 つインクリメント (+2) するのと同じです。

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-7

Page 8: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

4.4 テーブル命令を使ったプログラムメモリの読み出し

テーブル読み出し命令を使うと、データ空間を経由せずにプログラム空間内の任意の命令ワードの下位ワード (lsw) と上位バイト (MSB) を直接読み書きできます。アプリケーションによっては、このようなアクセス方法が適しています。フラッシュメモリのプログラミングに関する詳細は、dsPIC33E/PIC24E ファミリ リファレンス マニュアルのセクション 5.「フラッシュ プ ログラミング」(DS70609) を参照してください ( この文書はマイクロチップ社ウェブサイト(www.microchip.com) からダウンロードできます )。

4.4.1 テーブル命令の概要

各種のテーブル命令を使うと、バイトサイズまたはワードサイズのデータをプログラム空間とデータ空間の間で移動できます。プログラムメモリ空間からデータメモリ空間への読み出しには、TBLPAG レジスタに基づくテーブル読み出し命令を使います。

テーブル読み出し命令には下記の 2 つがあります。

• TBLRDL: テーブル読み出し LOW• TBLRDH: テーブル読み出し HIGH

テーブル命令では、24 ビット幅のプログラムメモリ空間を、同じアドレスレンジを持つ横並びの 2 つの 16 ビット ( ワード ) 幅アドレス領域として扱います ( 図 4-4 参照 )。これにより、プログラム空間を 16 ビット幅の 64K バイトページとして扱って、バイト単位または配列されたワード単位でアドレスを指定してアクセスできます ( つまり、データ空間と同様にアクセスできます )。

TBLRDL命令は、プログラムメモリの下位ワードにアクセスし、TBLRDHは上位ワードにアクセスします。プログラムメモリは 24 ビット幅しか持たないため、上位ワードの上位バイトは存在しませんが、アドレスを指定する事はできます。このため、このバイトは「ファントムバイト」と呼びます。

図 4-4: テーブル操作における上位および下位アドレス領域

0816PC Address

0x0001000x0001020x0001040x000106

230000000000000000

0000000000000000

Program Memory‘Phantom’ Byte(Read as ‘0’)

‘HIGH’ Table Address Range ‘LOW’ Table Address Range

DS70613C_JP - p. 4-8 © 2012 Microchip Technology Inc.

Page 9: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

4.4.2 テーブルアドレスの生成

全てのテーブル命令では、ワーキング レジスタのアドレス値と 8 ビットのテーブルページ レ ジスタ (TBLPAG) を連結して、24 ビットのプログラム空間実効アドレス (1 ビットのバイト選択ビットを含む ) を形成します ( 図 4-5 参照 )。ワーキング レジスタからの値を使ってプログラ ム空間アドレスの 16 ビットを指定するため、プログラムメモリ内のデータテーブルのページサイズは 32K ワードです。

図 4-5: テーブル操作におけるアドレスの生成

4.4.3 プログラムメモリの下位ワードへのアクセス

TBLRDL命令は、プログラムメモリ データの下位 16 ビットにアクセスします。ワード幅のテー ブルアクセスでは、ポインタとして使うワーキング レジスタの LSb を無視します。バイト幅 のテーブルアクセスでは、ワーキング レジスタの LSb を使って、どちらのバイトを読み出す のかを指定します。図 4-6 に、TBLRDL 命令がアクセスするプログラムメモリのデータ領域を示します。

図 4-6: プログラムデータ ( 下位 16 ビット ) へのテーブルアクセス

Note: オーバーフローまたはアンダーフローが生じた場合、実効アドレス (EA) は、現在のページの先頭または末尾にロールオーバーします。

TBLPAG

8 bits from TBLPAG

EA

EA<0> Selects Byte

24-bit EA

TBLPAG<7> SelectsUser/ConfigurationSpace

01507

16 bits from Wn

0816PC Address

0x0001000x0001020x0001040x000106

230000000000000000

0000000000000000

Program Memory‘Phantom’ Byte(Read as ‘0’)

TBLRDL.W

TBLRDL.B (Wn<0> = 1)

TBLRDL.B (Wn<0> = 0)

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-9

Page 10: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

4.4.4 プログラムメモリの上位ワードへのアクセス

TBLRDH命令は、プログラムメモリ データの上位 8 ビットにアクセスします。これらの命令も、 直交性のためにワードアクセスおよびバイトアクセス モードをサポートしますが、プログラム メモリ データの上位バイトへのアクセスは常に「0」を返します ( 図 4-7 参照 )。

図 4-7: プログラムデータ ( 上位 8 ビット ) へのテーブルアクセス

0816PC Address

0x0001000x0001020x0001040x000106

230000000000000000

0000000000000000

Program Memory‘Phantom’ Byte(Read as ‘0’)

TBLRDH.W

TBLRDH.B (Wn<0> = 1)

TBLRDH.B (Wn<0> = 0)

DS70613C_JP - p. 4-10 © 2012 Microchip Technology Inc.

Page 11: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

図 4-8: テーブル メモリマップ

TABLE PAGE 0x00

TABLE PAGE 0x01

0x000000

0x020000

0x010000

TBLRDHMSB

TABLE PAGE 0x02

TABLE PAGE 0xFD

TABLE PAGE 0xFE

TABLE PAGE 0xFF

0xFD0000

0xFF0000

0xFE0000

TABLE PAGE 0x00

TABLE PAGE 0x01

TABLE PAGE 0x02

TABLE PAGE 0xFD

TABLE PAGE 0xFE

TABLE PAGE 0xFF

TBLRDLlsw

Enabled

24-bit Program Space Address

[TBLPAG<7:0>:Wn<15:0>]

Instruction Executed = TBLRDL, TBLRDH(Table Access Enabled)

0xFFFFFE

AccessEnabled

Access

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-11

Page 12: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

4.4.5 テーブル命令を使ったプログラムメモリへのアクセス

例 4-1 に、アセンブリ言語のサブルーチンでテーブル命令を使ってプログラムメモリにアクセスするサンプルコードを示します。例 4-2 に、MPLAB® C30 コンパイラが提供するビルトイン 関数 (__builtin_tblpage と __builtin_tbloffset) を使ってプログラムメモリにアク セスするサンプルコードを示します。

例 4-1: テーブル命令を使ったプログラムメモリへのアクセスextern long MemRead (unsigned int TablePage, unsigned int TableOffset);

unsigned long Data1, Data2, Data3;

int main(void){/* Read Configuration Register addresses 0xF80000 and 0xF80002 */Data1 = MemRead (0xF8, 0x0006);Data2 = MemRead (0xF8, 0x0008);Data3 = MemRead (0xF8, 0x000A);

while(1);}

.section .text

.global _MemRead

;************************; Function _MemRead:;; W0 = TBLPAG value; W1 = Table Offset; Return:Data in W1:W0;************************_MemRead:MOV W0, TBLPAGNOPTBLRDL [W1], W0TBLRDH [W1], W1RETURN

DS70613C_JP - p. 4-12 © 2012 Microchip Technology Inc.

Page 13: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

例 4-2 では、バッファをプログラムメモリ内に割り当てるために、space(prog) 属性を使います。MPLAB® C30 コンパイラは、バッファへのアクセス用にビルトイン関数 (__builtin_tblpage 、__builtin_tbloffset 等 ) を提供します。

例 4-2: MPLAB® C コンパイラを使ったプログラムメモリへのアクセス

int prog_data[10] __attribute__((space(prog))) = {0x0000, 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888, 0x9999};

unsigned int lowWord[10], highWord[10];unsigned int tableOffset, loopCount;

int main(void){TBLPAG = __builtin_tblpage (prog_data);tableOffset = __builtin_tbloffset (prog_data);

/* Read all 10 constants into the lowWord and highWord arrays */for (loopCount = 0; loopCount < 10; loopCount ++){

lowWord[loopCount] = __builtin_tblrdl (tableOffset);highWord[loopCount] = __builtin_tblrdh (tableOffset);tableOffset +=2;

}

while(1);}

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-13

Page 14: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

4.5 データ空間からの PSVdsPIC33E/PIC24E のデータメモリ アドレス空間の上位 32K バイトは、必要に応じてプログラ ムメモリの任意の 16K ワードページにマッピングできます。PSV 動作モードでは、特別な命令 (TBLRD、TBLWT) を使わなくても、プログラムメモリに保存されている定数データへ、X データ空間から透過的にアクセスできます。

4.5.1 PSV の設定

dsPIC33E/PIC24E コアは、ページング処理により、利用可能なデータ空間を拡張します。拡張した空間は、前置修飾および後置修飾した実効アドレスを使って連続的にアドレス指定できます。

基本のデータ空間の上位アドレス (0x8000~ 0xFFFF)を、10ビットのデータ空間読み出しページレジスタ (DSRPAG) と組み合わせて PSV アドレスを形成する事により、8M バイトの PSVアドレス空間をアドレス指定できます。

メモリのページングにより、PSV メモリ内の複数の 32K バイト ウィンドウにアクセスできま す。ページングしたデータメモリ空間における PSV メモリマップを図 4-9 に示します。

プログラム空間 (PS) は、0x200 以上の DSRPAG レジスタ値を使って読み出せます。

DSRPAG レジスタを使って PS を読み出す事はできますが、DSWPAG レジスタを使って PSに書き込む事はできません。データ空間書き込みページレジスタ (DSWPAG) は、データ空間(DS) ( 拡張データ空間 (EDS) を含む ) への書き込みにだけ使えます。

メモリのページングに関する詳細はセクション 3.「データメモリ」(DS70595) を参照してください。

DS70613C_JP - p. 4-14 © 2012 Microchip Technology Inc.

Page 15: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

図 4-9: PSV メモリマップ

SFR and Non-Mappable

Data Space

Mappable Data Space

0x0000

0xFFFF

0x8000

16-bit Data Space

Address

[EA<15:0>]

(PAGE 0)

PSV PAGE 0x300

PSV PAGE 0x301

0x000000

0x010000

0x008000

DSRPAG<8> = 1

MSB AccessEnabled

PSV PAGE 0x302

PSV PAGE 0x3FD

PSV PAGE 0x3FE

PSV PAGE 0x3FF

0x7E8000

0x7F8000

0x7F0000

PSV PAGE 0x200

PSV PAGE 0x201

PSV PAGE 0x202

PSV PAGE 0x2FD

PSV PAGE 0x2FE

PSV PAGE 0x2FF

DSRPAG<8> = 0

lsw AccessEnabled

24-bit Program Space Address

[0:DSRPAG<7:0>:EA<14:0>]

DSRPAG<9> = 1

(PSV Access Enabled)

0x7FFFFE

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-15

Page 16: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

本デバイスのアーキテクチャは、読み出しと書き込みに別々のページレジスタを使う事により、各 PSV ページから EDS ページへのデータの移動をサポートします。この場合、DSRPAG および DSWPAG レジスタを使って、それぞれ PSV および EDS 空間内のページを指定します。PSV空間から EDS 空間へのデータの移動は、1 命令で実行できます。

図 4-10 に、PSV アドレスの生成方法を示します。PSV アドレスの下位 15 ビットには、実効アドレスを格納したワーキング レジスタからの値を使います。ワーキング レジスタの最上位 ビット (MSb) は、アドレスの生成に使いません。この MSb は、プログラムメモリ空間から PSVアクセスを実行するのか、それともデータメモリ空間から通常のアクセスを実行するのかを指定するために使います。ワーキング レジスタの実効アドレスが 0x8000 以上である場合、 DSRPAG レジスタによるページの選択に従って、プログラムメモリ空間からデータアクセスを実行します。ワーキング レジスタの実効アドレスが 0x8000 よりも小さい場合、データメモリ 空間から全てのデータアクセスを実行します。

図 4-10: PSV アドレスの生成

残りのアドレスビットには、データ空間読み出しページレジスタの下位8ビット (DSRPAG<7:0>)からの値を使います。この DSRPAG<7:0> ビットと、実効アドレスを格納したワーキング レジ スタの下位 15 ビットを連結し、MSb を「0」に設定する事により、24 ビットのプログラムメモリ アドレスを形成します。

ワーキング レジスタ値の LSb はバイト選択ビットとして使います。このビットの設定により、 PSV を使う命令の動作モード ( バイトモードまたはワードモード ) を指定します。

PSV アドレスは下位ワード (lsw: 16 ビット ) と上位バイト (MSB: 8 ビット ) により構成されま す。DSRPAG<9:8> = 0b10の場合、PSV を使って 24 ビット PS ワードの下位 16 ビット (lsw) にアクセスできます。DSRPAG<9:8> = 0b11の場合、PSV を使って 24 ビット PS ワードの上 位 8 ビット (MSB) にアクセスできます。これらのアクセスを示す図を、図 4-11 と図 4-12 に示します。DSRPAG 値の有効レンジの開始値は、lsw を読み出す場合 DSRPAG = 0x200、MSB を読み出す場合 DSRPAG = 0x300 です。

1

8 bits

EA

15 bits

Byte

23-bit PS Effective Address

SelectEA<15>

Gen

erat

eE

DS

DSRPAG<7:0>(2)X(1)1

User Program Space Read

Addr

ess

DS

RPA

G<9

>D

SR

PAG

<8>

Sel

ect D

SR

PAG

= 1?DSRPAG<9>

Y

N

Note 1: DSRPAG<9:8> = 11の場合、上位バイト (MSB) にアクセスします。DSRPAG<9:8> = 10の場 合、下位ワード (lsw) にアクセスします。

2: 0x200 ≤ DSRPAG<9:0> ≤ 0x3FF の場合にのみ、PSV アクセスを実行します。

for P

SV

Add

ress

Note: PSV は、プログラムメモリ空間内の値へのアクセスにのみ使えます。ユーザ コン フィグレーション空間内の値にアクセスするには、テーブル命令を使う必要があります。

DS70613C_JP - p. 4-16 © 2012 Microchip Technology Inc.

Page 17: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

図 4-11: lsw にアクセスする場合の PSV 動作

23 15 0

DSRPAG

15

15

EA<15> = 0

EA[15] = 1

16X DataSpace

EA

Data Space

8

15

23

0x0000

0x8000

0xFFFF

0x2A2

0x510000

0x517FFF

Data Read

DSRPAG<9:8> = 2'b10

DSRPAG<9> = 1Select PSV Access

DS

RPA

G<7

:0>

0x00

01

DS

RPA

G<8

> = 0

Hig

h/Lo

w S

elec

t

Program Space

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-17

Page 18: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

図 4-12: MSB にアクセスする場合の PSV 動作

23 15 0

DSRPAG

15

15

EA<15> = 0

EA<15> = 1

16X DataSpace

EA

Data Space

Program Space

8

15

23

0x0000

0x8000

0xFFFF

0x3A2

0x510000

0x517FFF

Data Read

DSRPAG<9:8> = 2'b11

DSRPAG<9> = 1Select PSV Access

DS

RPA

G<7

:0>

0x00

01

DS

RPA

G<8

> = 1

Hig

h/Lo

w S

elec

t

DS70613C_JP - p. 4-18 © 2012 Microchip Technology Inc.

Page 19: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

4.5.2 PSV の実行タイミング

PSV を使う全ての命令の実行には 5 命令サイクルを要します。

4.5.2.1 REPEATループ内で PSV を使う場合

REPEATループ内で+2または-2の後置修飾オフセットによる間接アドレス指定モードでPSVを使う命令は、後述の例外を除き、プログラムメモリからの命令アクセスにオーバーヘッド サイ クルを必要としません。そのような場合の命令実行の実効スループットは、1 回の繰り返しあたり 1 命令サイクルとなります。しかし、REPEATループの下記の繰り返しの実行には、 5 命令 サイクルを要します。

• 最初のループ実行• 割り込みによるループ中断直前の命令実行• 割り込みサービス終了後のループ再開時の命令実行

REPEATループの最後の繰り返しの実行には 6 命令サイクルを要します。

REPEATループ内で、PSVアドレッシング モードが+2または -2以外のオフセットレンジを使う 場合、ループの各繰り返しの実行には 5 命令サイクルを要します。

4.5.2.2 PSV と命令ストール

PSVを使う場合の命令ストールの詳細は、セクション2.「CPU」(DS70359)を参照してください。

4.5.3 PSV のサンプルコード

バッファを作成してコンパイラが管理するPSVセクション内でそのバッファにアクセスする方法を例 4-3 に示します。「auto_psv」空間がコンパイラによって管理される PSV セクションです。セクションは 32K よりも大きくでき、それらは自動的に管理されます。既定値では、コンパイラは全ての const宣言された変数を auto_psv空間内に配置します。

auto_psvを使う場合、コンパイラは必要に応じて動的に DSRPAG レジスタを保存 / 復元します。一連のツールは、コンパイラ起動コード内で DSRPAG が適正に初期化されるように、セットアップします。

例 4-3: コンパイラが管理する PSV アクセス

Note: PSV アクセスとは異なり、TBLRDx 命令は、各繰り返しの実行に 5 命令サイクルを要します。

Note: 28KB を超える RAM を備えたデバイスでユーザ アプリケーションが PSV および EDS アクセスの両方を使う場合、auto_psvオプションを使う必要があります。

const int m[5] __attribute__((space(auto_psv))) = {1, 2, 3, 4, 5};int x[5] = {10, 20, 30, 40, 50};int sum;

int vectordot (int *, int *);

int main(void){// Compiler-managed PSVsum = vectordot ((int *) m, x);

while(1);}

int vectordot (int *m, int *x){int i, sum = 0;

for (i = 0; i < 5; i ++)sum += (*m++) * (*x++);

return (sum);}

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-19

Page 20: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

例 4-4 に、ユーザが管理する PSV セクションにおけるバッファの配置とアクセスを示します。「psv」空間がユーザによって管理される PSV セクションです。

例 4-4: ユーザが管理する PSV アクセス

const int m[5] = {1, 2, 3, 4, 5};const int m1[5] __attribute__ ((space(psv))) = {2, 4, 6, 8, 10};const int m2[5] __attribute__ ((space(psv))) = {3, 6, 9, 12, 15};int x[5] = {10, 20, 30, 40, 50};int sum, sum1, sum2;

int vectordot (int *, int *);

int main(void){int temp;

// Save original PSV page valuetemp = DSRPAG;

DSRPAG = __builtin_psvpage (m1);sum1 = vectordot ((int *) m1, x);

DSRPAG = __builtin_psvpage (m2);sum2 = vectordot ((int *) m2, x);

// Restore original PSV page valueDSRPAG = temp;

sum = vectordot ((int *) m, x);

while(1);}

int vectordot (int *m, int *x){int i, sum = 0;

for (i = 0; i < 5; i ++)sum += (*m++) * (*x++);

return (sum);}

DS70613C_JP - p. 4-20 © 2012 Microchip Technology Inc.

Page 21: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

例 4-5 に、 プログラムメモリに定数データを配置し、PSV データウィンドウ経由でこのデータ にアクセスするためのアセンブリ プログラムを示します。

例 4-5: PSV のアセンブリ サンプルコード

4.6 プログラムメモリの書き込み

dsPIC33E/PIC24Eファミリのデバイスは、ユーザコードの実行用にプログラマブル フラッシュ メモリを内蔵しています。このメモリにユーザ アプリケーションをプログラミングするには、 下記の 2 通りの方法を使えます。

• 実行時自己プログラミング (RTSP)• インサーキット シリアル プログラミング (ICSP™)

RTSP の詳細はセクション 5.「フラッシュ プログラミング」(DS70609) を参照してください。 ICSP の詳細は、ご使用になるデバイスの「フラッシュ プログラミング仕様」を参照してくだ さい ( この文書はマイクロチップ社ウェブサイト (www.microchip.com) から入手できます )。

4.7 プログラムメモリの低消費電力モード

デバイスがスリープモードに移行した時に、プログラム フラッシュメモリ用の電圧レギュレー タをスタンバイモードにする事により、デバイスのパワーダウン電流 (IPD) を低減できます。

VREGSF ビット (RCON<11>) が「0」の場合、フラッシュメモリ用電圧レギュレータはスリープ時にスタンバイモードに移行します。このモードでは、デバイスの復帰遅延時間が増加します。VREGSF が「1」の場合、フラッシュメモリ用電圧レギュレータはスリープモード中でも動作します。

.section .const, psvfib_data:.word 0, 1, 2, 3, 5, 8, 13

; Start of code section.text

.global __main__main:

; Set DSRPAG to the page that contains the “fib_data” arrayMOVPAG #psvpage(fib_data), DSRPAG

; Set up W0 as a pointer to “fib_data” through the PSV data windowMOV #psvoffset(fib_data), W0

; Load the data values into registers W1 - W7MOV [W0++], W1MOV [W0++], W2MOV [W0++], W3MOV [W0++], W4MOV [W0++], W5MOV [W0++], W6MOV [W0++], W7

done: BRA done

RETURN

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-21

Page 22: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC

24Eフ

ァミ

リ リ

ファ

レン

ス マ

ニュ

アル

DS

70613C_JP

- p. 4-22©

2012 Microchip Technology Inc.

Bit 3 Bit 2 Bit 1 Bit 0 全リセット

— 0000

PCH 0000

0001

G 0001

PAG<7:0> 0000

4.8 レジスタマップ

プログラムメモリに関連するレジスタの要約を表 4-1 に示します。

表 4-1: CPU コア関連のレジスタマップ

レジスタ

名Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4

PCL PCL

PCH — — — — — — — — —

DSRPAG — — — — — — DSRPAG

DSWPAG — — — — — — — DSWPA

TBLPAG — — — — — — — — TBL凡例 : — = 未実装、「0」として読み出し、リセット値は 16 進表記です。

Page 23: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

セクション 4. プログラムメモリ プログラムメモリ

4

4.9 関連アプリケーション ノート

本セクションに関連するアプリケーション ノートの一覧を以下に記載します。一部のアプリ ケーション ノートは dsPIC33E/PIC24E 製品ファミリ向けではありません。ただし概念は共通 しており、変更が必要であったり制限事項が存在するものの利用が可能です。プログラムメモリ モジュールに関連する最新のアプリケーション ノートは下記の通りです。

タイトル アプリケーション ノート番号

現在、関連するアプリケーション ノートはありません。 N/A

Note: dsPIC33E/PIC24E ファミリファミリ関連のアプリケーション ノートとサンプル コードはマイクロチップ社のウェブサイト (www.microchip.com)でご覧になれます。

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-23

Page 24: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

4.10 改訂履歴

リビジョン A (2009 年 9 月 )本書の初版

リビジョン B (2010 年 7 月 )このリビジョンでの変更内容は以下の通りです。

• サンプルコード ( 例 4-1 ~例 4-5) を全て更新

• プログラムメモリ マップ ( 図 4-1) を更新

• 4.4.1 「テーブル命令の概要」内の第 1 段落と網掛け注釈を更新

• 図 4-4 の後に、TBLPAG レジスタへの書き込みに関する網掛け注釈を追加

• 4.4.2 「テーブルアドレスの生成」を更新

• 4.4.3 「プログラムメモリの下位ワードへのアクセス」内の第 2 文を更新

• 4.4.4 「プログラムメモリの上位ワードへのアクセス」に新しい図「テーブル メモリマップ」 ( 図 4-8) を追加

• 4.5.1 「PSV の設定」に網掛け注釈を追加し、最終段落を更新

• ページングしたデータメモリ空間 ( 図 4-9) を更新

• PSV アドレスの生成 ( 図 4-10) を更新

• 4.5.2 「PSV の実行タイミング」全体で、必要命令サイクル数を 2 から 5 に変更

• 例 4-3 の後に、auto_psvオプションの使用に関する網掛け注釈を追加

• 4.6 「プログラムメモリの書き込み」に、「dsPIC33E/PIC24E フラッシュ プログラミング仕 様」(DS70619) への参照を追加

リビジョン C (2011 年 12 月 )このリビジョンでの変更内容は以下の通りです。

• 4.1 「プログラムメモリのアドレスマップ」を更新

• 補助メモリを備えたデバイスのプログラムメモリ マップ ( 図 4-1) を更新

• 補助メモリを備えないデバイスのプログラムメモリ マップ ( 図 4-2) を新たに追加

• テーブル命令を使ったプログラムメモリへのアクセス ( 例 4-1) を更新

• MPLAB® C コンパイラを使ったプログラムメモリへのアクセス ( 例 4-2) を更新

• 4.4.5「プログラムメモリへのデータの保存」を削除

• 4.5.2「X および Y データ空間による PSV マッピング」を削除

• コンパイラが管理する PSV アクセス ( 例 4-3) を更新

• ユーザが管理する PSV アクセス ( 例 4-4) を更新

• 4.6 「プログラムメモリの書き込み」を更新

• 4.7 「プログラムメモリの低消費電力モード」を更新

• レジスタマップ テーブル ( 表 4-1) を更新

• 文章および体裁の変更等、本書全体の細部を修正

DS70613C_JP - p. 4-24 © 2012 Microchip Technology Inc.

Page 25: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

© 2012 Microchip Technology Inc. DS70613C_JP - p. 4-25

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。マイクロチップ社は、明示的、暗黙的、書面、口

頭、法定のいずれであるかを問わず、本書に記載されている

情報に関して、状態、品質、性能、品性、特定目的への適合

性をはじめとする、いかなる類の表明も保証も行いません。マ

イクロチップ社は、本書の情報およびその使用に起因する一

切の責任を否認します。マイクロチップ社の明示的な書面に

よる承認なしに、生命維持装置あるいは生命安全用途にマイ

クロチップ社の製品を使用する事は全て購入者のリスクと

し、また購入者はこれによって発生したあらゆる損害、クレー

ム、訴訟、費用に関して、マイクロチップ社は擁護され、免

責され、損害うけない事に同意するものとします。暗黙的あ

るいは明示的を問わず、マイクロチップ社が知的財産権を保

有しているライセンスは一切譲渡されません。

商標

マイクロチップ社の名称と Microchip ロゴ、dsPIC、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、rfPIC、

UNI/O は、米国およびその他の国におけるマイクロチップ・

テクノロジー社の登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MXDEV、MXLAB、SEEVAL、Embedded Control SolutionsCompany は、米国におけるマイクロチップ・テクノロジー

社の登録商標です。

Analog-for-the-Digital Age,Application Maestro、chipKIT、chipKIT logo、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、

FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPLAB Certifiedr ロゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、

PICC-18、PICDEM、PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、Total Endurance、TSHARC、

UniWinDriver、WiperLock、ZENA は、米国およびその他の

国におけるマイクロチップ・テクノロジー社の登録商標です。

SQTP は、米国におけるマイクロチップ・テクノロジー社の

サービスマークです。

その他、本書に記載されている商標は各社に帰属します。

© 2011, Microchip Technology Incorporated, All RightsReserved.

ISBN: 978-1-62076-132-8

マイクロチップ社製デバイスのコード保護機能に関して次の点にご注意ください。

• マイクロチップ社製品は、該当するマイクロチップ社データシートに記載の仕様を満たしています。

• マイクロチップ社では、通常の条件ならびに仕様に従って使用した場合、マイクロチップ社製品のセキュリティ レベルは、現

在市場に流通している同種製品の中でも最も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、

マイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります。このような行

為は知的所有権の侵害に該当する可能性が非常に高いと言えます。

• マイクロチップ社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

• マイクロチップ社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コー

ド保護機能とは、マイクロチップ社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。マイクロチップ社では、常に製品のコード保護機能の改善に取り組んでいます。マイクロ

チップ社のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはそ

の他の著作物に不正なアクセスを受けた場合は、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利が

あります。

マイクロチップ社では、ChandlerおよびTempe (アリゾナ州 )、Gresham( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とイドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。マイクロチップ社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関するマイクロチップ社の品質システムは ISO 9001:2000 認証を取得しています。

Page 26: セクション 4. プログラムメモリww1.microchip.com/downloads/jp/DeviceDoc/70613C_JP.pdf本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ

DS70613C_JP - p. 4-26 © 2012 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel:480-792-7200 Fax:480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

アトランタDuluth, GA Tel:678-957-9614 Fax:678-957-1455

ボストンWestborough, MA Tel:774-760-0087 Fax:774-760-0088

シカゴItasca, IL Tel:630-285-0071 Fax:630-285-0075

クリーブランドIndependence, OH Tel:216-447-0464 Fax:216-447-0643ダラスAddison, TX Tel:972-818-7423 Fax:972-818-2924

デトロイトFarmington Hills, MI Tel:248-538-2250Fax:248-538-2260

インディアナポリスNoblesville, IN Tel:317-773-8323Fax:317-773-5453

ロサンゼルスMission Viejo, CA Tel:949-462-9523 Fax:949-462-9608

サンタクララSanta Clara, CA Tel:408-961-6444Fax:408-961-6445

トロントMississauga, Ontario, CanadaTel:905-673-0699 Fax:905-673-6509

アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel:852-2401-1200Fax:852-2401-3431オーストラリア - シドニーTel:61-2-9868-6733Fax:61-2-9868-6755

中国 - 北京Tel:86-10-8569-7000 Fax:86-10-8528-2104

中国 - 成都Tel:86-28-8665-5511Fax:86-28-8665-7889

中国 - 重慶Tel:86-23-8980-9588Fax:86-23-8980-9500

中国 - 杭州Tel:86-571-2819-3187 Fax:86-571-2819-3189

中国 - 香港 SARTel:852-2401-1200 Fax:852-2401-3431

中国 - 南京Tel:86-25-8473-2460Fax:86-25-8473-2470

中国 - 青島Tel:86-532-8502-7355Fax:86-532-8502-7205

中国 - 上海Tel:86-21-5407-5533 Fax:86-21-5407-5066

中国 - 瀋陽Tel:86-24-2334-2829Fax:86-24-2334-2393

中国 - 深圳Tel:86-755-8203-2660 Fax:86-755-8203-1760

中国 - 武漢Tel:86-27-5980-5300Fax:86-27-5980-5118

中国 - 西安Tel:86-29-8833-7252Fax:86-29-8833-7256

中国 - 厦門Tel:86-592-2388138 Fax:86-592-2388130

中国 - 珠海Tel:86-756-3210040 Fax:86-756-3210049

アジア / 太平洋

インド - バンガロールTel:91-80-3090-4444 Fax:91-80-3090-4123

インド - ニューデリーTel:91-11-4160-8631Fax:91-11-4160-8632

インド - プネTel:91-20-2566-1512Fax:91-20-2566-1513

日本 - 大阪Tel:81-66-152-7160 Fax:81-66-152-9310

日本 - 横浜Tel:81-45-471- 6166 Fax:81-45-471-6122

韓国 - 大邱Tel:82-53-744-4301Fax:82-53-744-4302

韓国 - ソウルTel:82-2-554-7200Fax:82-2-558-5932 または 82-2-558-5934

マレーシア - クアラルンプールTel:60-3-6201-9857Fax:60-3-6201-9859

マレーシア - ペナンTel:60-4-227-8870Fax:60-4-227-4068

フィリピン - マニラTel:63-2-634-9065Fax:63-2-634-9069

シンガポールTel:65-6334-8870Fax:65-6334-8850

台湾 - 新竹Tel:886-3-5778-366Fax:886-3-5770-955

台湾 - 高雄Tel:886-7-536-4818Fax:886-7-330-9305

台湾 - 台北Tel:886-2-2500-6610 Fax:886-2-2508-0102

タイ - バンコクTel:66-2-694-1351Fax:66-2-694-1350

ヨーロッパ

オーストリア - ヴェルスTel:43-7242-2244-39Fax:43-7242-2244-393デンマーク - コペンハーゲンTel:45-4450-2828 Fax:45-4485-2829

フランス - パリTel:33-1-69-53-63-20 Fax:33-1-69-30-90-79

ドイツ - ミュンヘンTel:49-89-627-144-0 Fax:49-89-627-144-44

イタリア - ミラノ Tel:39-0331-742611 Fax:39-0331-466781

オランダ - ドリューネンTel:31-416-690399 Fax:31-416-690340

スペイン - マドリッドTel:34-91-708-08-90Fax:34-91-708-08-91

イギリス - ウォーキンガムTel:44-118-921-5869Fax:44-118-921-5820

各国の営業所とサービス

11/29/11