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

RZ/A1Hグループ SPIマルチI/Oバスコントローラ動作モード切替え方法 アプリケーションノート

N/A
N/A
Protected

Academic year: 2021

シェア "RZ/A1Hグループ SPIマルチI/Oバスコントローラ動作モード切替え方法 アプリケーションノート"

Copied!
18
0
0

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

全文

(1)

R01AN3271JJ0100 Rev.1.00 Page 1 of 15

RZ/A1H グループ

SPI マルチ I/O バスコントローラ動作モード切替え方法

要旨

本アプリケーションノートでは、SPI マルチ I/O バスコントローラの外部アドレス空間リードモードと SPI 動作モードの切替え方法について説明します。

対象デバイス

RZ/A シリーズ R01AN3271JJ0100 Rev.1.00 2016.03.31

(2)

R01AN3271JJ0100 Rev.1.00 Page 2 of 15 目次 1. SPI マルチ I/O バスコントローラのモード ... 3 2. 外部アドレス空間リードモードと SPI 動作モードの切替え方法の概略 ... 4 2.1 モードの切替えについて ... 4 2.2 変更手順概略 ... 4 3. 外部アドレス空間リードモードから SPI 動作モードの切替え方法 ... 5 4. SPI 動作モードから外部アドレス空間リードモードの切替え方法... 11 5. 参考ドキュメント ... 14

(3)

R01AN3271JJ0100 Rev.1.00 Page 3 of 15

1. SPI マルチ I/O バスコントローラのモード

SPI マルチ I/O バスコントローラには、外部アドレス空間リードモードと SPI 動作モードの2種類のモード があります。

外部アドレス空間リードモードでは、SPI マルチ I/O バス空間に対し、CPU から直接アクセス可能です。そ のため、このモードの時は SPI マルチ I/O バス空間のメモリタイプを MMU にてアドレス領域のメモリタイ プを Normal に設定することが出来ます。一方、SPI 動作モードは、SPI マルチ I/O バス空間に対し、CPU か ら直接アクセス不可です。

そのため、このモードの時は SPI マルチ I/O バス空間のメモリタイプを Normal 以外またはアクセス禁止に 設定する必要があります。

Normal にした場合、分岐予測/投機実行により意図しないアクセスが発生する可能性があります。そのため、 メモリタイプを Normal に設定したアドレス領域については、必ずアクセス可能状態にしておく必要がありま す。

(4)

R01AN3271JJ0100 Rev.1.00 Page 4 of 15

2. 外部アドレス空間リードモードと SPI 動作モードの切替え方法の概略

2.1

モードの切替えについて

外部アドレス空間リードモードと SPI 動作モードを切替える際は、適切に MMU の設定を変更する必要が あります。

2.2

変更手順概略

外部アドレス空間リードモードの状態で、MMU の変換テーブルを書換えます。

SPI 動作モード切替え後に、MMU の変換テーブルを書換えると、変更が反映される前に SPI マルチ I/O バ ス空間へ意図しないアクセスが発生する可能性があります。また、割込み処理に必要なコードを SPI マルチ I/O バス空間(シリアルフラッシュメモリ)上に配置している場合は、SPI 動作モード中に割込み処理へ飛ば ないよう、SPI 動作切替え前に割込み禁止、SPI 動作切替え後に割込み許可する必要があります。

SPI マルチ I/O バスコントローラのレジスタ設定変更処理を SPI マルチ I/O バス空間(シリアルフラッシュ メモリ)上に配置して実行した場合、以降の動作が保証できません。当該処理については、内蔵 RAM で実 行してください。

(5)

R01AN3271JJ0100 Rev.1.00 Page 5 of 15

3. 外部アドレス空間リードモードから SPI 動作モードの切替え方法

[変更手順] 1 変換テーブルの書き換え 1-1 SPI マルチ I/O バス空間の変換テーブル書き換え 1-2 L1 データキャッシュのクリーニング 1-3 DSB 命令発行 1-4 TLB の無効化 1-5 L1 命令キャッシュ(BTAC)のクリーニング 1-6 DSB 命令発行 1-7 ISB 命令発行 2 外部アドレス空間リードモードから SPI 動作モードの切り替え 2-1 SPI マルチ I/O バスコントローラの共通コントロールレジスタ(CMNCR)をダミーリード 2-2 動作モード切り替え 2-3 SPI マルチ I/O バスコントローラの共通コントロールレジスタ(CMNCR)をダミーリード 以下は、外部アドレス空間リードモードから SPI 動作モードへ切替える場合の参考例です。 下記参考例は、MMU の変換テーブルを、第 1 レベル記述子のセクション記述子フォーマットを使用して設 定しており、1MB のメモリブロック単位で、変換テーブルを構成するようにしています。 SPI マルチ IO バス空間 H'1800 0000~H'1FFF FFFF の領域を 1MB 単位で、アドレス(||Image$$TTB$$ZI$$Base|| + H'600)を先頭に、128 エントリ分の変換テーブルを「ノーマルメモリで L1 キャッシュ有効」に設定するよ うにしています。 ;================================================================== ; 定数定義 ;==================================================================

; ---- Parameter setting to level1 descriptor ; (bits 19:0) ---- ; 3322222222221111111111 ; 10987654321098765432109876543210 TTB_PARA_NORMAL_CACHE_NG EQU 2_00000000000000000001000111111110 ; | ||||||| ||||| |||| ; | ||0|S|| |||P| |||+--B ; | || | || ||| | ||+---C ; | |S n A| ||| | |+----XN=1 ; | |B G P| ||| +--+---ドメイン ; | |Z X| |++---AP=00 ; | | +-+---TEX ; +---+---アドレス ; ---- Memory area size (MB) ----

M_SIZE_SPI EQU 128 ; [Area03] SPI, SP2 area (for Serial flash) ; SPI マルチ I/O バス空間の使用領域は 1MB 単位で ; 指定します。ここでは"128"を指定しており、 ; 128MB の領域を指定しています。

(6)

R01AN3271JJ0100 Rev.1.00 Page 6 of 15 ;================================================================== ;外部アドレス空間リードモードから SPI 動作モードの切替え ;================================================================== ; ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ; ■変換テーブルの書換え ; ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ LDR r4, =TTB_PARA_NORMAL_CACHE_NG ; アクセス不可 & 実行不可 ; Normal (Cacheable) ; 第 1 レベル記述子のセクション記述子フォーマットの ; b19~b0 に設定する値を指定します。 ;================================================================== ; 1-1. SPI マルチ I/O バス空間の変換テーブル書換え ;--- ; SPI マルチ I/O バス空間の変換テーブルを、AP[2:0]=000(アクセス不可) ; および投機的なプリフェッチの可能性を避けるために XN=1(実行不可)に ; 書換えます。 ; 書換え方法は選択しているメモリセクションまたはページに応じて ; 設定してください。 ; マネージャとしてマークされたドメインでは XN 属性がチェックされませんので ; ドメインはクライアントに設定する必要があります。 ;

; 変換テーブルの書換えについては、「ARM Architecture Reference Manual ; ARMv7-A and ARMv7-R edition」の「 TLB maintenance operations and the ; memory order model 」を参照しています。

; 詳細については、上記マニュアルを参照してください。

;================================================================== ;--- ; Cortex-A9 MMU Configuration

; Set translation table base

;--- ; Cortex-A9 supports two translation tables

; Configure translation table base (TTB) control register cp15,c2 ; to a value of all zeros, indicates we are using TTB register 0. MOV r0, #0x0

MCR p15, 0, r0, c2, c0, 2 ; TTBCR

; 変換テーブルベース制御レジスタ(TTBCR) ; TTB0 と TTB1 の使用を制御する ; p15:c2 <- r0

; write the address of our page table base to TTB register 0 LDR r0, =||Image$$TTB$$ZI$$Base||

MOV r1, #0x08 ; RGN=b01 (outer cacheable write-back cached, ; write allocate)

; S=0 (translation table walk to non-shared memory) ORR r1, r1, #0x40 ; IRGN=b01 (inner cacheability for the translation

; table walk is Write-back Write-allocate) ORR r0, r0, r1 ; r0 = ||Image$$TTB$$ZI$$Base|| | 0x48

MCR p15, 0, r0, c2, c0, 0 ; TTBR0

; 変換テーブル ベースレジスタ 0 (TTBR0) ; レベル 1 ページテーブルのベースアドレス ; p15:c2 <- r0

(7)

R01AN3271JJ0100 Rev.1.00 Page 7 of 15 ;---

; PAGE TABLE generation

;--- LDR r0, =||Image$$TTB$$ZI$$Base|| ; 変換テーブルのベースアドレス LDR r1, =0x1FF ; SPI マルチ I/O バス空間の変換テーブル使用領域 ; "H'180 + (M_SIZE_SPI - 1)"の値を指定します。 LDR r3, =M_SIZE_SPI ; 変換テーブルのエントリ数(M_SIZE_SPI の内容を指定) LDR r5, =0 ; r5 = 0

SUBS r3, r3, #1 ; r3-- // memory size -> loop counter value write_ttb10

ORR r5, r4, r1, LSL#20 ; R5 now contains full level1 descriptor to write ; r5 = r4 | (r1 << 20) ; 33222222222211111111110000000000 ; 10987654321098765432109876543210 ; | || | ; | |+---+-TTB_PARA ; +-+---Address STR r5, [r0, r1, LSL#2] ; Str table entry at TTB base + loopcount*4

; [r0 + (r1 << 2)] = r5 SUB r1, r1, #1 ; Decrement loop counter

SUBS r3, r3, #1 ; Decrement loop counter by area BPL write_ttb10 ;================================================================== ; 1-2. L1 データキャッシュのクリーニング ;--- ; L1 ライトキャッシュはライトバックのため、1-1.の書込みを完了させる必要があります。 ;================================================================== MRC p15, 1, r7, c0, c0, 1 ; r7 = p15(CLIDR); // [r4] CLIDR(LoC) * 2 ; // LoC: level of coherency ; キャッシュレベル ID レジスタ(CLIDR) ; 各レベルのキャッシュタイプを識別し、 ; コヒーレンシと統一に関する情報を提供します ; r7 <- p15:c0 ; 33222222222211111111110000000000 ; 10987654321098765432109876543210 ; | || || || || || || || || || | ; | || || || || || || || || |+-+-CL1 ; | || || || || || || || |+-+----CL2 ; | || || || || || || |+-+---CL3 ; | || || || || || |+-+---CL4 ; | || || || || |+-+---CL5 ; | || || || |+-+---CL6 ; | || || |+-+---CL7 ; | || |+-+---LoUIS ; | |+-+---LoC ; +-+---LoU MOV r4, r7, LSR #23 ; r4 = r7 >> 23; // :

ANDS r4, r4, #0xE ; r4 &= 0xE; // : BEQ Fin ; if ( r4 == 0 ) goto Fin;

; // if LoC == 0, no need to clean MOV r3, #0 ; for ( r3 = 0; r3 < r4; r3 += 2 ) {

(8)

R01AN3271JJ0100 Rev.1.00 Page 8 of 15 Loop1 ADD r2, r3, r3, LSR #1 ; r2 = r3 + (r3 >> 1); ; // r2 = current_cache_level * 3 ; // r3 = current_cache_level * 2 ; // r2 = r3 + r3 / 2 MOV r0, r7, LSR r2 ; r0 = (r7 >> r2); // r0 = CLIDR(Ctype#) AND r0, r0, #7 ; r0 &= 7; // : CMP r0, #2 ; if ( r0 < 2 ) goto Continue1;

BLT Continue1 ; // If no cache or only instruction ; // cache at this level

MCR p15, 2, r3, c0, c0, 0 ; p15(CSSELR) = r3; // CSSELR: Cache Size Selection ; Register ; キャッシュサイズ選択レジスタ(CSSELR) ; キャッシュサイズ ID レジスタ(CCSIDR)を適用する ; キャッシュレベルを示す読み出し / 書き込みレジスタ ; p15:c0 <- r3 ; 33222222222211111111110000000000 ; 10987654321098765432109876543210 ; | || ; | |+-InD ; +-+--レベル ISB ; Guarantee MCR operation //命令同期バリア

MRC p15, 1, r0, c0, c0, 0 ; r0 = p15(CCSIDR); // CCSIDR: Cache Size ID Registers ; キャッシュサイズ ID レジスタ(CCSIDR) ; サポートされているキャッシュポリシー、 ; アソシエティビティ、セットサイズに関する ; 情報を提供する。 ; 33222222222211111111110000000000 ; 10987654321098765432109876543210 ; ||||| || || | ; ||||| || |+-+-ラインサイズ ; ||||| |+---+----Associativity ; ||||+---+---NumSets ; |||+---WA ; ||+---RA ; |+---WB ; +---WT AND r6, r0, #7 ; r6 = r0 & 7; // CCSIDR(LineSize):

; // log2(cache_line_byte)-4 ADD r6, r6, #4 ; r6 += 4; // [r6] log2(cache_line_byte) LDR r7, =0x3FF ; r7 = 0x3FF; // [r7] CCSIDR(Associativity): ; // associativity_value - 1 AND r7, r7, r0, LSR #3 ; r7 = r7 & r0 >> 3; ; // : CLZ r5, r7 ; r5 = CLZ( r7 ); // [r5] log2(WaySize), if exponential 2 LDR r2, =0x7FFF ; r2 = 0x7FFF; // CCSIDR(NumSets) : max number of the

; // index size - 1 AND r2, r2, r0, LSR #13 ; r2 = r2 & r0 >> 13;

(9)

R01AN3271JJ0100 Rev.1.00 Page 9 of 15 ; for ( /*r2*/; r2 >= 0; r2 -= 1 ) { // [r2] Set number Loop2

MOV r1, r7 ; for ( r1 = r7; r1 >= 0; r1 -= 1 ) { // [r1] Way number Loop3

ORR r0, r3, r1, LSL r5 ; r0 = r3 | (r1 << r5) ORR r0, r0, r2, LSL r6 ; | (r2 << r6); MCR p15, 0, r0, c7, c14, 2

; p15(DCCISW) = r0; // Clean(WriteBack) and Invalidate ; p15:c7 <- r0

SUBS r1, r1, #1 ; } /* End of r1 loop */

BGE Loop3 ;

SUBS r2, r2, #1 ; } /* End of r2 loop */

BGE Loop2 ;

Continue1

ADD r3, r3, #2 ; } /* End of r3 loop */ CMP r4, r3 ; BGT Loop1 ; Fin ;================================================================== ; 1-3. DSB 命令発行 ;--- ; DSB 命令発行により、1-2. のキャッシュクリーニングの完了を保証します。 ;================================================================== DSB ; データ同期バリア ;================================================================== ; 1-4. TLB の無効化 ;--- ; 変換テーブルを書換えたため、TLB でキャッシュされている

; SPI マルチ I/O バス空間の変換テーブルを invalidate します。

;================================================================== MOV r0, #0

MCR p15, 0, r0, c8, c7, 0 ; Cortex-A9 I-TLB and D-TLB invalidation (TLBIALL) ; p15:c8 <- r0 ;=================================================================== ; 1-5 L1 命令キャッシュ(BTAC)のクリーニング ;--- ; 変換テーブルを書換えたため、BTAC を含む命令キャッシュを invalidate します。 ;=================================================================== MOV r0, #0 ; SBZ

MCR p15, 0, r0, c7, c5, 0 ; ICIALLU - Invalidate entire I Cache, ; and flushes branch target cache ; p15:c7 <- r0 ;================================================================== ; 1-6. DSB 命令発行 ;--- ; DSB 命令の発行により、1-4.の TLB の無効化の完了を保証します。 ;================================================================== DSB ; データ同期バリア

(10)

R01AN3271JJ0100 Rev.1.00 Page 10 of 15 ;================================================================== ; 1-7. ISB 命令発行 ;--- ; ISB 命令の発行により、次命令移行が書換え後の変換テーブルを参照となるよう保証します。 ;================================================================== ISB ; 命令同期バリア ; ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ; ■外部アドレス空間リードモードから SPI 動作モードの切替え ; ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ;================================================================== ; 2-1. SPI マルチ I/O バスコントローラの共通コントロールレジスタ(CMNCR)をダミーリード ;--- ; L2 キャッシュから SPI マルチ I/O バス空間にアクセスしている可能性が ; ありますので、ダミーリードによりアクセス完了を保証します。 ;================================================================== LDR r0, =0x3FEFA000 ; r0 = &MNCR_0 LDR r1, [r0] ; r1 = *r0 ;================================================================== ; 2-2. 動作モード切り替え ;--- ; 外部アドレス空間リードモードから SPI 動作モード(MD ビットを 0→1)に切替えます。 ;--- ; SPI マルチ I/O バスコントローラ: ; CMNCR_0 共通コントロールレジスタ_0 アドレス=3FEFA000 初期値=01AA4000 ; CMNCR_1 共通コントロールレジスタ_1 アドレス=3FEFB000 初期値=01AA4000 ; CMNCR は、SPI マルチI/O バスコントローラの制御を行う32 ビットのレジスタです。 ; 本レジスタの設定は、外部アドレス空間リード/ SPI 動作モード両方に反映されます。 ; CMNSR レジスタの TEND フラグ="1"のときに変更してください。 ; CMNSR レジスタの TEND フラグ="0"時に変更した場合の動作は保証しません。 ;--- ; CMNSR_0 共通ステータスレジスタ_0 アドレス=3FEFA048 初期値=00000001 ; CMNSR_1 共通ステータスレジスタ_1 アドレス=3FEFB048 初期値=00000001 ; 動作状態を示すフラグを格納する32 ビットのレジスタです。 ; 本レジスタは、外部アドレス空間リード/ SPI 動作モード両方に反映されます。 ;================================================================== Chk_TEND_1 LDR r2, =0x3FEFA048 ; r2 = &CMNSR_0 LDR r3, [r2] ; r3 = *r2

ANDS r3, r3, #00000001 ; r3 &= 0x01 //check TEND bit[0] BEQ Chk_TEND_1 ; if ( r3 == 0 ) goto Chk_TEND_1; LDR r1, [r0] ; r1 = *r0

ORR r1, r1, #0x80000000 ; r1 |= 0x80000000 // set MD bit[31] STR r1, [r0] ; *r0 = r1 ;================================================================== ; 2-3. SPI マルチ I/O バスコントローラの共通コントロールレジスタ(CMNCR)をダミーリード ;--- ; ダミーリードにより、2-2. の処理の完了を保証します。 ;================================================================== LDR r1, [r0] ; r1 = *r0

(11)

R01AN3271JJ0100 Rev.1.00 Page 11 of 15

4. SPI 動作モードから外部アドレス空間リードモードの切替え方法

[変更手順] 3 SPI 動作モードから外部アドレス空間リードモードの切り替え 3-1 動作モード切り替え 3-2 SPI マルチ I/O バスコントローラの共通コントロールレジスタ(CMNCR)をダミーリード 4 変換テーブルの書き換え 4-1 SPI マルチ I/O バス空間の変換テーブル書き換え 4-2 L1 データキャッシュのクリーニング 4-3 DSB 命令発行 4-4 TLB の無効化 4-5 L1 命令キャッシュ(BTAC)のクリーニング 4-6 DSB 命令発行 4-7 ISB 命令発行 以下は、SPI 動作モードから外部アドレス空間リードモードへ切替える場合の参考例です。 下記参考例は、MMU の変換テーブルを、第 1 レベル記述子のセクション記述子フォーマットを使用して設 定しており、1MB のメモリブロック単位で、変換テーブルを構成するようにしています。 SPI マルチ IO バス空間 H'1800 0000~H'1FFF FFFF の領域を 1MB 単位で、アドレス(||Image$$TTB$$ZI$$Base|| + H'600)を先頭に、128 エントリ分の変換テーブルを「ノーマルメモリで L1 キャッシュ有効」に設定するよ うにしています。 ;================================================================== ; 定数定義 ;==================================================================

; ---- Parameter setting to level1 descriptor ; (bits 19:0) ---- ; 3322222222221111111111 ; 10987654321098765432109876543210 TTB_PARA_NORMAL_CACHE_OK EQU 2_00000000000000000001110111101110 ; | ||||||| ||||| |||| ; | ||0|S|| |||P| |||+--B ; | || | || ||| | ||+---C ; | |S n A| ||| | |+----XN=0 ; | |B G P| ||| +--+---ドメイン ; | |Z X| |++---AP=11 ; | | +-+---TEX ; +---+---アドレス ; ---- Memory area size (MB) ----

M_SIZE_SPI EQU 128 ; [Area03] SPI, SP2 area (for Serial flash) ; SPI マルチ I/O バス空間の使用領域は 1MB 単位で ; 指定します。ここでは"128"を指定しており、 ; 128MB の領域を指定しています。

(12)

R01AN3271JJ0100 Rev.1.00 Page 12 of 15 ;================================================================== ; SPI 動作モードから外部アドレス空間リードモードの切替え ;================================================================== ;================================================================== ; 3-1. 動作モード切替え ;--- ; SPI 動作モードから外部アドレス空間リードモード(MD ビットを 1→0)に切替えます。 ;--- ; SPI マルチ I/O バスコントローラ: ; CMNCR_0 共通コントロールレジスタ_0 アドレス=3FEFA000 初期値=01AA4000 ; CMNCR_1 共通コントロールレジスタ_1 アドレス=3FEFB000 初期値=01AA4000 ; CMNCR は、SPI マルチI/O バスコントローラの制御を行う32 ビットのレジスタです。 ; 本レジスタの設定は、外部アドレス空間リード/ SPI 動作モード両方に反映されます。 ; CMNSR レジスタの TEND フラグ="1"のときに変更してください。 ; CMNSR レジスタの TEND フラグ="0"のときに変更した場合の動作は保証しません。 ;--- ; CMNSR_0 共通ステータスレジスタ_0 アドレス=3FEFA048 初期値=00000001 ; CMNSR_1 共通ステータスレジスタ_1 アドレス=3FEFB048 初期値=00000001 ; 動作状態を示すフラグを格納する32 ビットのレジスタです。 ; 本レジスタは、外部アドレス空間リード/ SPI 動作モード両方に反映されます。 ;================================================================== Chk_TEND_2 LDR r2, =0x3FEFA048 ; r2 = &CMNSR_0 LDR r3, [r2] ; r3 = *r2

ANDS r3, r3, #00000001 ; r3 &= 0x01 //check TEND bit[0] BEQ Chk_TEND_2 ; if ( r3 == 0 ) goto Chk_TEND_2; LDR r0, =0x3FEFA000 ; r0 = & MNCR_0

LDR r1, [r0] ; r1 = *r0

BIC r1, r1, #0x80000000 ; r1 &= ~0x80000000 // clear MD bit[31] STR r1, [r0] ; *r0 = r1 ;================================================================== ; 3-2. SPI マルチ I/O バスコントローラの共通コントロールレジスタ(CMNCR)をダミーリード ;--- ; ダミーリードにより、3-1.の処理の完了を保証します。 ;================================================================== LDR r1, [r0] ; r1 = *r0 ; ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ; ■変換テーブルの書き換え ; ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ LDR r4, =TTB_PARA_NORMAL_CACHE_OK ; アクセス可 & 実行可能 ;================================================================== ; 4-1. SPI マルチ I/O バス空間の変換テーブル書換え ;--- ; SPI マルチ I/O バス空間の変換テーブルを、AP[2:0]=アクセス可

; (設定はシステム依存)および XN=0(実行可能)に書き換えます。 ; 書換え方法は選択しているメモリセクションまたはページに応じて ; 設定してください。

;================================================================== (1-1.と同じ)

(13)

R01AN3271JJ0100 Rev.1.00 Page 13 of 15 ;================================================================== ; 4-2. L1 データキャッシュのクリーニング ;--- ; L1 ライトキャッシュはライトバックのため、4-1.の書込みを完了させる必要があります。 ;================================================================== (1-2.と同じ) ;================================================================== ; 4-3. DSB 命令発行 ;--- ; DSB 命令発行により、4-2. のキャッシュクリーニングの完了を保証します。 ;================================================================== DSB ; データ同期バリア ;================================================================== ; 4-4. TLB の無効化 ;--- ; 変換テーブルを書換えたため、TLB でキャッシュされている

; SPI マルチ I/O バス空間の変換テーブルを invalidate します。

;================================================================== MOV r0, #0

MCR p15, 0, r0, c8, c7, 0 ; Cortex-A9 I-TLB and D-TLB invalidation (TLBIALL) ; p15:c8 <- r0 ;=================================================================== ; 4-5. L1 命令キャッシュ(BTAC)のクリーニング ;--- ; 変換テーブルを書換えたため、BTAC を含む命令キャッシュを invalidate します。 ;=================================================================== MOV r0, #0 ; SBZ

MCR p15, 0, r0, c7, c5, 0 ; ICIALLU - Invalidate entire I Cache, ; and flushes branch target cache ; p15:c7 <- r0 ;================================================================== ; 4-6. DSB 命令発行 ;--- ; DSB 命令の発行により、4-4.の TLB の無効化の完了を保証します。 ;================================================================== DSB ; データ同期バリア ;================================================================== ; 4-7. ISB 命令発行 ;--- ; ISB 命令の発行により、次命令移行が書換え後の変換テーブルを参照となるよう保証します。 ;================================================================== ISB ; 命令同期バリア

(14)

R01AN3271JJ0100 Rev.1.00 Page 14 of 15

5. 参考ドキュメント

ユーザーズマニュアル:ハードウェア

RZ/A1H グループ ユーザーズマニュアル ハードウェア編

(最新版をルネサス エレクトロニクスホームページから入手してください。) ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition Issue C (最新版を ARM ホームページから入手してください。)

ARM Generic Interrupt Controller Architecture Specification Architecture version 1.0 (最新版を ARM ホームページから入手してください。)

テクニカルアップデート/テクニカルニュース

(最新の情報をルネサス エレクトロニクスホームページから入手してください。) ユーザーズマニュアル:開発環境

ARM ソフトウェア開発ツール(ARM Compiler toolchain、ARM DS-5 等)に関しては、ARM ホームページ から入手してください。

(15)

R01AN3271JJ0100 Rev.1.00 Page 15 of 15

ホームページとサポート窓口

ルネサス エレクトロニクスホームページ http://japan.renesas.com/ お問合せ先 http://japan.renesas.com/contact/ すべての商標および登録商標は,それぞれの所有者に帰属します。

(16)

A-1

改訂記録

Rev. 発行日 改訂内容 ページ ポイント 1.00 2016.03.31 新規作成

(17)

製品ご使用上の注意事項

ここでは、マイコン製品全体に適用する「使用上の注意事項」について説明します。個別の使用上の注意 事項については、本ドキュメントおよびテクニカルアップデートを参照してください。 1. 未使用端子の処理 【注意】未使用端子は、本文の「未使用端子の処理」に従って処理してください。 CMOS製品の入力端子のインピーダンスは、一般に、ハイインピーダンスとなっています。未使用 端子を開放状態で動作させると、誘導現象により、LSI周辺のノイズが印加され、LSI内部で貫通電 流が流れたり、入力信号と認識されて誤動作を起こす恐れがあります。未使用端子は、本文「未使用 端子の処理」で説明する指示に従い処理してください。 2. 電源投入時の処置 【注意】電源投入時は,製品の状態は不定です。 電源投入時には、LSIの内部回路の状態は不確定であり、レジスタの設定や各端子の状態は不定で す。 外部リセット端子でリセットする製品の場合、電源投入からリセットが有効になるまでの期間、端子 の状態は保証できません。 同様に、内蔵パワーオンリセット機能を使用してリセットする製品の場合、電源投入からリセットの かかる一定電圧に達するまでの期間、端子の状態は保証できません。 3. リザーブアドレス(予約領域)のアクセス禁止 【注意】リザーブアドレス(予約領域)のアクセスを禁止します。 アドレス領域には、将来の機能拡張用に割り付けられているリザーブアドレス(予約領域)がありま す。これらのアドレスをアクセスしたときの動作については、保証できませんので、アクセスしない ようにしてください。 4. クロックについて 【注意】リセット時は、クロックが安定した後、リセットを解除してください。 プログラム実行中のクロック切り替え時は、切り替え先クロックが安定した後に切り替えてください。 リセット時、外部発振子(または外部発振回路)を用いたクロックで動作を開始するシステムでは、 クロックが十分安定した後、リセットを解除してください。また、プログラムの途中で外部発振子 (または外部発振回路)を用いたクロックに切り替える場合は、切り替え先のクロックが十分安定し てから切り替えてください。 5. 製品間の相違について 【注意】型名の異なる製品に変更する場合は、製品型名ごとにシステム評価試験を実施してくださ い。 同じグループのマイコンでも型名が違うと、内部ROM、レイアウトパターンの相違などにより、電 気的特性の範囲で、特性値、動作マージン、ノイズ耐量、ノイズ輻射量などが異なる場合がありま す。型名が違う製品に変更する場合は、個々の製品ごとにシステム評価試験を実施してください。

(18)

■営業お問合せ窓口

■技術的なお問合せおよび資料のご請求は下記へどうぞ。  総合お問合せ窓口:http://japan.renesas.com/contact/

ルネサス エレクトロニクス株式会社 〒135-0061 東京都江東区豊洲3-2-24(豊洲フォレシア)

© 2016 Renesas Electronics Corporation. All rights reserved. Colophon 4.0 http://www.renesas.com ※営業お問合せ窓口の住所は変更になることがあります。最新情報につきましては、弊社ホームページをご覧ください。

ご注意書き

1. 本資料に記載された回路、ソフトウェアおよびこれらに関連する情報は、半導体製品の動作例、応用例を説明するものです。お客様の機器・システムの設計におい て、回路、ソフトウェアおよびこれらに関連する情報を使用する場合には、お客様の責任において行ってください。これらの使用に起因して、お客様または第三 者に生じた損害に関し、当社は、一切その責任を負いません。 2. 本資料に記載されている情報は、正確を期すため慎重に作成したものですが、誤りがないことを保証するものではありません。万一、本資料に記載されている情報 の誤りに起因する損害がお客様に生じた場合においても、当社は、一切その責任を負いません。 3. 本資料に記載された製品デ-タ、図、表、プログラム、アルゴリズム、応用回路例等の情報の使用に起因して発生した第三者の特許権、著作権その他の知的財産権 に対する侵害に関し、当社は、何らの責任を負うものではありません。当社は、本資料に基づき当社または第三者の特許権、著作権その他の知的財産権を何ら許 諾するものではありません。 4. 当社製品を改造、改変、複製等しないでください。かかる改造、改変、複製等により生じた損害に関し、当社は、一切その責任を負いません。 5. 当社は、当社製品の品質水準を「標準水準」および「高品質水準」に分類しており、 各品質水準は、以下に示す用途に製品が使用されることを意図しております。 標準水準: コンピュータ、OA機器、通信機器、計測機器、AV機器、 家電、工作機械、パーソナル機器、産業用ロボット等 高品質水準:輸送機器(自動車、電車、船舶等)、交通用信号機器、 防災・防犯装置、各種安全装置等 当社製品は、直接生命・身体に危害を及ぼす可能性のある機器・システム(生命維持装置、人体に埋め込み使用するもの等) 、もしくは多大な物的損害を発生さ せるおそれのある機器・システム(原子力制御システム、軍事機器等)に使用されることを意図しておらず、使用することはできません。 たとえ、意図しない用 途に当社製品を使用したことによりお客様または第三者に損害が生じても、当社は一切その責任を負いません。 なお、ご不明点がある場合は、当社営業にお問い 合わせください。 6. 当社製品をご使用の際は、当社が指定する最大定格、動作電源電圧範囲、放熱特性、実装条件その他の保証範囲内でご使用ください。当社保証範囲を超えて当社製 品をご使用された場合の故障および事故につきましては、当社は、一切その責任を負いません。 7. 当社は、当社製品の品質および信頼性の向上に努めていますが、半導体製品はある確率で故障が発生したり、使用条件によっては誤動作したりする場合がありま す。また、当社製品は耐放射線設計については行っておりません。当社製品の故障または誤動作が生じた場合も、人身事故、火災事故、社会的損害等を生じさせ ないよう、お客様の責任において、冗長設計、延焼対策設計、誤動作防止設計等の安全設計およびエージング処理等、お客様の機器・システムとしての出荷保証 を行ってください。特に、マイコンソフトウェアは、単独での検証は困難なため、お客様の機器・システムとしての安全検証をお客様の責任で行ってください。 8. 当社製品の環境適合性等の詳細につきましては、製品個別に必ず当社営業窓口までお問合せください。ご使用に際しては、特定の物質の含有・使用を規制する RoHS指令等、適用される環境関連法令を十分調査のうえ、かかる法令に適合するようご使用ください。お客様がかかる法令を遵守しないことにより生じた損害に 関して、当社は、一切その責任を負いません。 9. 本資料に記載されている当社製品および技術を国内外の法令および規則により製造・使用・販売を禁止されている機器・システムに使用することはできません。ま た、当社製品および技術を大量破壊兵器の開発等の目的、軍事利用の目的その他軍事用途に使用しないでください。当社製品または技術を輸出する場合は、「外 国為替及び外国貿易法」その他輸出関連法令を遵守し、かかる法令の定めるところにより必要な手続を行ってください。 10. お客様の転売等により、本ご注意書き記載の諸条件に抵触して当社製品が使用され、その使用から損害が生じた場合、当社は何らの責任も負わず、お客様にてご負 担して頂きますのでご了承ください。 11. 本資料の全部または一部を当社の文書による事前の承諾を得ることなく転載または複製することを禁じます。 注1. 本資料において使用されている「当社」とは、ルネサス エレクトロニクス株式会社およびルネサス エレクトロニクス株式会社がその総株主の議決権の過半数 を直接または間接に保有する会社をいいます。 注2. 本資料において使用されている「当社製品」とは、注1において定義された当社の開発、製造製品をいいます。

参照

関連したドキュメント

その後、時計の MODE ボタン(C)を約 2 秒間 押し続けて時刻モードにしてから、時計の CONNECT ボタン(D)を約 2 秒間押し続けて

図 3.1 に RX63N に搭載されている RSPI と簡易 SPI の仕様差から、推奨する SPI

◆Smart アレイ E208 / P408 / P816 コントローラーは、ドライブ単位で RAID モードと HBA モードを自動選択し、コントローラー内で混在可能です。.. RAID

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

限られた空間の中に日本人の自然観を凝縮したこの庭では、池を回遊する園路の随所で自然 の造形美に出会

その目的は,洛中各所にある寺社,武家,公家などの土地所有権を調査したうえ

が66.3%、 短時間パートでは 「1日・週の仕事の繁閑に対応するため」 が35.4%、 その他パートでは 「人 件費削減のため」 が33.9%、