適用先: ULINK USB-JTAG Debugger
この記事に含まれている情報の適用先:
- ULINK USB-JTAG Adapter
- ULINK2 USB-JTAG Adapter
質問
Atmel AT91RM9200-DK の回路構成に基づいたカスタム ボードを使用しています。このボードには、Micron MT48LC4M32B2-7 SDRAM パーツ(16M バイト)が 2 つではなく単独で搭載されています。
..ARMRV30BoardsAtmelAT91RM9200-EK フォルダに収録されている Keil のサンプルを使用するにあたって、SDRAM 設定の変更内容(number of rows = 12 が唯一の変更点)を反映するため、Ext_RAM.ini ファイルを修正しました。
現在の Ext_RAM.ini の内容は、次のとおりです。
FUNC void Setup (void) { _WDWORD(0xFFFFF804, 0xFFFF0000); // PIOC_PDR: Enable Peripheral Mode _WDWORD(0xFFFFFF60, 0x00000002); // EBI_CSA: CSA1 support for SDRAM _WDWORD(0xFFFFFF98, 0x2188C154); // Init SDRAM _WDWORD(0xFFFFFF90, 0x00000002); _WDWORD(0x20000000, 0); _WDWORD(0xFFFFFF90, 0x00000004); _WDWORD(0x20000000, 0); _WDWORD(0x20000000, 0); _WDWORD(0x20000000, 0); _WDWORD(0x20000000, 0); _WDWORD(0x20000000, 0); _WDWORD(0x20000000, 0); _WDWORD(0x20000000, 0); _WDWORD(0x20000000, 0); _WDWORD(0xFFFFFF90, 0x00000003); _WDWORD(0x20000080, 0); _WDWORD(0xFFFFFF94, 0x000002E0); _WDWORD(0x20000000, 0); _WDWORD(0xFFFFFF90, 0x00000000); _WDWORD(0x20000000, 0); // Program Entry Point PC = 0x20000000; } // Switching from Slow Clock to Main Oscillator for faster Download _WDWORD(0xFFFFFC20, 0x00000601); // PMC_MOR: Enable Main Oscillator _sleep_(10); // Wait for stable Main Oscillator _WDWORD(0xFFFFFC30, 0x00000001); // PMC_MCKR: Switch to Main Oscillator Setup(); // Setup for Init LOAD Ext_RAMBlinky.axf INCREMENTAL // Download g, main
デバッガを起動すると、次のメッセージが表示されます。
Ulink ARM Error, Memory Mismatch! Address:(Ulink ARM エラー、メモリ ミスマッチ! アドレス:) 0x20000000, Value = 0x75, Expected = 0x18
ただし、メモリの内容を確認すると、コードは SDRAMに適切にロードされているようです(0x20000000 と 0x21000000 への合計 2 回)。
何が問題なのでしょうか?
回答
Ext_RAM.ini の設定以外にも、変更が必要な個所があります。
開発中のボードに搭載されている SDRAM の容量が 16MB(サイズ: 0x01000000 バイト)であるのに対して、Atmel AT91RM9200-EK ボードに搭載されている SDRAM の容量は 32MB(サイズ: 0x02000000 バイト)です。
開発中のボードでは、SDRAM は 0x20000000 ~ 0x21000000 の範囲に配置されています。したがって、[Project]→[Options for Target]→[Target] で、次のように設定を変更する必要があります。
ROM1 Start: 0x20000000 Size 0x800000 ROM2 Start: 0x20800000 Size 0x800000
次に、[Project]→[Options for Target]→[Utilities]→[ULINK Settings] で、Flash プログラミング アルゴリズムを変更する必要があります。現在のアルゴリズムを削除して、デバイスに対応するアルゴリズム(AT49xV32xT)を追加します。
詳細
- ULINK User's Guide の Flash Download Configuration を参照してください。