Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
AN2721デュアルコアの使い方
デュアルコアの概要
dsPIC33CファミリはMicrochip社初のデュアルコア デバイス
です。dsPIC33Cファミリは高性能16ビットMCUアーキテク
チャを採用し、豊富なデジタルシグナル プロセッサ (DSP)機能を提供します。
マスタコアとスレーブコアは互いに独立して動作できます。
また、アプリケーション開発時も別々にプログラム、デバッ
グできます。両方のプロセッサ (マスタコアとスレーブコア )
サブシステムにはそれぞれ専用の割り込みコントローラ、ク
ロック ジェネレータ、デバッグサポート、ポートロジック、
I/O MUX、PPSを備えています。本ファミリのデバイスはシン
グルダイ上に別々の2つのdsPIC® DSCがあるのと同じです。
本書の内容はシングルコアのdsPICデバイスコード開発知識
を前提としています。本書では Microchip MPLAB® X IDE を
使ったデュアルコア環境のコード開発とデバッグについて説
明します。本書では各種デバッグ機能を紹介すると共に、そ
れらのデバッグモードに移行するためのツールの使い方につ
いて説明します。
図 1にデュアルコアの実装方法、各コアが備える周辺モジュー
ル、RAM、プログラムメモリ等を示します。
図1: デュアルコア アーキテクチャ
著者 : Naveen RajMicrochip Technology Inc.
PAD OWNERSHIP MUX
Perip
hera
l Pin
Sel
ect
I2C
SPI
UART
SCCP
QEI
etc.
PWM
ADC
CMP
Perip
hera
l Bus
Memory Bus
MasterdsPIC® Core
PLL + ClockGenerator
PWM
ADC
CMP
I2CSPI
UART
SCCP
QEI
etc.
Peripheral Pin SelectPeripheral Pin Select
PGA
Memory Bus
Peripheral Bus
Mailboxes
M SFIFOM SFIFO
PLL + ClockGenerator
SlavedsPIC Core
DataRAM DMA Flash
FRCOSC,etc.
PRAM DMA DataRAM
2018 Microchip Technology Inc. DS00002721A_JP-p.1
AN2721
プログラムメモリ
マスタコアとスレーブコアはそれぞれ専用のプログラムメモ
リを備えています。dsPIC33CH の実装では、マスタ プログ
ラムメモリはフラッシュ、スレーブ プログラムメモリはPRAMです。アプリケーションでは、マスタコアとスレーブコアの
コードは 1 つの hex ファイルとして保存されます。この hexファイルはマスタフラッシュに格納します。
POR時、マスタはフラッシュからスレーブPRAMにスレーブ
コードを転送します。電源喪失時、スレーブPRAMの内容は
失われるためマスタは電源投入のたびにマスタフラッシュ
からスレーブPRAMにスレーブコードを転送する必要があり
ます。リセット時のコアの挙動はコンフィグレーション ビッ
トS1MSREとS1SSREで決まります。詳細はデバイスのデー
タシートを参照してください。
スレーブコードをフラッシュからPRAMに転送するプロセス
はソフトウェアで実行します。従って、転送開始時期はマス
タコアが制御します。マスタコアによるスレーブへのコード
転送後、スレーブコアを有効にするタイミングも制御します。
これもマスタ ソフトウェアの一部であるため、マスタ ソフ
トウェアがスレーブコアを有効にする時期 (SLVEN = 1)を決
定できます。
図2: マスタコアからのスレーブコアへのコードの転送
Note: 本書では、マスタとスレーブはそれぞれマス
タコアとスレーブコアを指しています。
Master Programmed with One Hex File (Includes
Master and Slave Code)
POR Event and Configuration Bits are
Loaded
Master Starts Executing Code
After Initializing Master, Loads Slave PRAM
After the Code Transfer to PRAM, Master will
Enable the Slave
Slave Starts Executing Code (Both Master and Slave Core Running)
Slave Code
Slave PRAM
Master Code
Master Code to TransferSlave Code to PRAM
Slave Code
Master Flash
Single Hex File(Master + Slave)
DS00002721A_JP-p.2 2018 Microchip Technology Inc.
AN2721
データRAMマスタコアとスレーブコアはそれぞれ専用のデータRAMを備
えています。RAM のサイズはデバイスによって異なります。
各コアのRAMサイズは、各デバイスのデータシートを確認し
てください。
オシレータ
オシレータには 2 つのコアで共有しているモジュールと別々
のモジュールがあります。FRC、BFRC(バックアップFRC)、LPRC、プライマリ オシレータは2つのコアで共有しています。
図3: デュアルコアのオシレータ リソースの割り当て
各コアはそれぞれ専用のクロック マルチプレクサ、分周器、
PLL、APLLモジュールを備えています。クロック選択には複
数の方法があり、マスタコアとスレーブコアは必要に応じて
異なるクロック源、異なる周波数で動作できます。
コンフィグレーション ビット
コンフィグレーション ビットはマスタフラッシュの一部です。
マスタコアとスレーブコアのコンフィグレーション ビットは
両方ともマスタフラッシュに格納されています。従ってPOR時、コンフィグレーション ビットはマスタフラッシュから読
み込みます。
MSIモジュール
マスタスレーブ インターフェイス(MSI)はデュアルコア アー
キテクチャの肝要な部分です。マスタコアとスレーブコアは
MSI モジュールを使ってコア間でデータを転送します。MSIモジュールはDMAと連係できるため、コア間のデータ転送で
CPUの介入は最小限で済みます。
また、MSI モジュールには他方のコアへの割り込みおよびリ
セット状態の監視に使える機能もあります。スレーブコアを
有効にするマスタコアの機能もMSIの一部です。
I/OポートとPPSI/Oポートはマスタコアとスレーブコアで共有されています。
I/Oポートの入力機能はマスタコアとスレーブコアの両方で使
われます。出力は、ピンの所有権をマスタコアまたはスレー
ブコアに渡して制御します。出力ピンの所有権はコンフィグ
レーション ビットで制御します。コンフィグレーション ビッ
トを正しく割り当てる事で、I/Oポートの出力を割り当てるコ
アを完全に制御できます。
マスタコアとスレーブコアはそれぞれ専用のペリフェラル
ピンセレクト (PPS) モジュールを備えており、それらのモ
ジュールに割り当てるピンはマスタコアとスレーブコアがそ
れぞれソフトウェアで制御します。
BFRC8 MHz
FRC8 MHz
POSC
LPRC32 kHz
Master Core ClockSelection and
PLL/DIVSubsystem
Slave Core ClockSelection and
PLL/DIVSubsystem
TUN<5:0>
OSCO
OSCI
BFRCCLK
FRCCLK
POSCCLK
LPRCCLK
Master FCY
Master FP
Master FOSC
Master VCO OutputsMaster APLL and
Master REFCLKOAVCO Outputs
Slave FCY
Slave FP
Slave FOSC
Slave VCO OutputsSlave APLL and
Slave REFCLKOAVCO Outputs
LPRCCLKPOSCCLK
FRCCLKBFRCCLK
2018 Microchip Technology Inc. DS00002721A_JP-p.3
AN2721
デュアルコアのプログラミングとデバッグ
デュアルコアは、コード開発時にデバイスのプログラミング
とデバッグに便利な機能をいくつか備えています。このセク
ションでは各種プログラミング モードとデバッグについて説
明します。
デバッグとプログラミングには以下のモードがあります。
1. マスタコアのみのモード : プログラミングとデバッグ
2. スレーブコアのみのモード : プログラミングとデバッグ
3. デュアルデバッグ : 両コアを同時にデバッグする
4. ノーマルモード : マスタコアがスレーブコアをプログラ
ムする(最終量産コード )
これらの動作モードをサポートしているため、開発フェイズ
を柔軟に進められます。一番の利点は、コアごとに開発を進
められる事です。従って、マスタ プロジェクトとスレーブ プロジェクトで独立したチームを持てます(表 1)。
表1: デバッグ/プログラミングの動作モード
モード マスタコア スレーブコアMCLRピン PGC/PGDピン
ツール数マスタ スレーブ マスタ スレーブ
マスタコア
のみ (1)プログラミング /
デバッグ
N/A MCLR N/A PGC1/PGD1、PGC2/PGD2、
PGC3/PGD3のいずれか
N/A 1
スレーブコア
のみ (1)スタブのプログ
ラミング (2)プログラミング /
デバッグ
MCLR MCLR PGC1/PGD1、PGC2/PGD2、
PGC3/PGD3のいずれか
PGC1/PGD1、PGC2/PGD2、
PGC3/PGD3のいずれか
1
デュアル
デバッグ
デバッグ デバッグ MCLR S1MCLR1、S1MCLR2、
S1MCLR3のいずれか
PGC1/PGD1、PGC2/PGD2、
PGC3/PGD3のいずれか
S1PGC1/S1PGD1、S1PGC2/S1PGD2、
S1PGC3/S1PGD3のいずれか (3)
2
ノーマル
モード
プログラミング /デバッグ (4)
プログラミング
のみ
MCLR PGC1/PGD1、PGC2/PGD2、
PGC3/PGD3のいずれか
1
Note 1: プログラミングまたはデバッグ。
2: マスタスタブは小さなコードでもマスタ プロジェクト全体でもかまいません。マスタコアでスタブが必要な主な理由はコンフィグ
レーション ビットをプログラムするためです。スレーブコアとマスタコアのコンフィグレーション ビットはマスタフラッシュに格納
します。
3: S1MCLRxおよびS1PGCx/S1PGDxピンはマスタコアとスレーブコアを同時にデバッグする場合 (デュアルデバッグ モード )にのみ使い
ます。
4: 最終量産モードでは、スレーブのhexコードはマスタフラッシュに格納し、マスタコードがスレーブコードを書き込みます。マスタは
スレーブをプログラムしてからスレーブコアを有効にします。
DS00002721A_JP-p.4 2018 Microchip Technology Inc.
AN2721
マスタコアのみのモード
マスタコアのみのプログラミングとデバッグ
このモードはシングルコアのdsPICデバイスのプログラミン
グと同じです。スレーブコードを無視してプロジェクトを作
成、デバッグできます。I/O ポートの所有権とその他マスタ
コードの実行に必要なコンフィグレーション ビットを割り当
てます。マスタコアのみのモードの実行にはスレーブ プロ
ジェクトまたはスレーブコードは不要です。
デバイスは (ICSP™) MCLR ピンを使ってプログラムし、
PGCx/PGDxピンはコンフィグレーション ビットを使って選
択します。
同じファミリのデバイス、例えばdsPIC33CH128MP508を選
択して新しいプロジェクトを作成します。このプロジェクト
は、他のMicrochip 社製シングルコア デバイスと同じように
コンパイル、プログラミング、デバッグできます。
スレーブのみのモード
これらのモードはデュアルコア機能を使います。これらのモー
ドではマスタコアをプログラムする必要があります。マスタ
コードは完全なマスタコードでも、"while(1)"を持つ小さ
なマスタコード (マスタスタブ )でもかまいません。
マスタコードまたはマスタスタブは、マスタコアを小さなコー
ドでプログラムする事が目的であり、これにスレーブコアを
有効にするためのコードが含めます。スレーブコアはコード
SLVEN = 1で有効にします。また、スレーブコアを有効に
するために必要なロック解除シーケンスもあります。詳細は
各デバイスのデータシートを参照してください。
XC16はロック解除シーケンスを含む関数を備えています。
スレーブコアを有効にするには、
"#include <libpic30.h>"をインクルードし、関数
"_start_slave();"を使う事を推奨します。
また、コンフィグレーション ビットはマスタフラッシュに保
存されるため、マスタスタブはマスタコアとスレーブコアの
コンフィグレーション ビットも格納します。
図4: スレーブのみのプログラミング/デバッグ
Master StubProgrammed in Master
Flash first
Then Program or Debugthe Slave Directlyin Slave PRAM
dsPIC33CH128MP508 or dsPIC33CH128MP508S1
Master Stub (Flash)
dsPIC33CH128MP508
Slave Code (PRAM)
dsPIC33CH128MP508S1
2018 Microchip Technology Inc. DS00002721A_JP-p.5
AN2721
スレーブのみのプログラミング
シングルコア デバイスのようにマスタ プロジェクトを作成
し、以下の手順を実行します。
1. マスタデバイスを選択してマスタスタブのプロジェクト
を作成します。
2. [Slave]フォルダに移動し、右クリックして [Project Property]ウィンドウを開きます。
3. [Debug]のチェックを外します (スレーブコアはデバッグ
しないため )。 4. マスタスタブ コードでマスタコードをプログラムします。
スレーブ プロジェクトの作成
マスタ プロジェクトをプログラムしたらスレーブのプロジェ
クトを新しく始めます。次に以下の手順を実行します。
1. スレーブデバイスを選択します ( スレーブ プロジェクト
はマスタ プロジェクトのスレーブデバイスとします )。例えば、選択しているマスタ プロジェクトが
dsPIC33CH128MP508 の場合、選択するスレーブ プロ
ジェクトは dsPIC33CH128MP508S1 です。マスタスタ
ブ プロジェクトがdsPIC33CH64MP508の場合、選択す
るスレーブ プロジェクトは dsPIC33CH64MP508S1 で
す。
例えば、以下に示すように新しいスレーブ プロジェク
トのSlaveOnlyPが選択されている場合、スレーブを右
クリックしてスレーブを [Main Project]に設定します。
2. スレーブのプログラミングを直接開始します。
Note: マスタスタブはスレーブ プロジェクトの前に
プログラムする必要があります。マスタスタ
ブの前にスレーブをプログラムしないでくだ
さい。
マスタとスレーブは同じ ICSP™ピン (PGCx/PGDx)を使ってプログラムできます。
DS00002721A_JP-p.6 2018 Microchip Technology Inc.
AN2721
スレーブのみのデバッグ
このモードでは、「スレーブのみのプログラミング」で説明
したように最初にマスタスタブをプログラムする必要があり
ます。主な違いは [Debug]チェックボックスの選択です。
マスタスタブの [Slave]フォルダに移動し、右クリックして以
下のウィンドウを表示します。
ウィンドウが表示されたら、[Debug] チェックボックスをク
リックしてデバッグビットを有効にします。これでスレーブ
コアをデバッグできる状態になります。
マスタコードには以下の2つの方法があります。
• SLVEN = 1 ("_start_slave();")でスレーブを有効
にする。これでスレーブコアは有効になります。
• コンフィグレーション ビットS1ISOLAT (S1ISOLAT = ON)を使ってスレーブをマスタコードから分離する。こ
れにより、スレーブはマスタコードから 分離されるため、 SLVEN = 1でも0でも有効にできます。S1ISOLATビット
はスレーブデバッグ中のみ使えます。
スレーブ プロジェクトの作成
マスタスタブ プロジェクトをプログラムできたら、スレーブ
コアのプロジェクトを開始します。スレーブデバイスを選択
します。スレーブ プロジェクトはマスタ プロジェクトのス
レーブデバイスです。
マスタスタブ プロジェクトのプログラミングと同じICSPピン
(MCLRとPGCx/PGDx)をスレーブ プロジェクトのプログラ
ミングにも使います。プロジェクトによっては、マスタとス
レーブコアの切り換えに ICSP/MCLR ピンをツールで使い
ます。
プロジェクトを作成してスレーブコードをコンパイルしたら、
他のプロジェクトのように[Debug] ボタンをクリックし
てデバッグできます。
2018 Microchip Technology Inc. DS00002721A_JP-p.7
AN2721
デュアルデバッグ モード
このモードではマスタコアとスレーブコアの両方がデバッグ
モードで動作します。マスタとスレーブは同時にデバッグさ
れ、2つのデバッグツールが必要です (図 5)。
S1MCLRx/S1PGCx/S1PGDx はスレーブ プロジェクトをデ
バッグするためにデュアルデバッグ モードでのみ使います。
図5: デュアルデバッグ
Dual Core
Master Connectsto MCLR andPGCx/PGDx
Slave Connectsto S1MCLRx andS1PGCx/S1PGDx
Target Board
Dual CoreDevice
Power
DS00002721A_JP-p.8 2018 Microchip Technology Inc.
AN2721
マスタとスレーブを同時にデバッグする方法は2つあります。• 1つのMPLAB X IDEウィンドウを使う
• マスタとスレーブで別々の、合計2つのMPLAB X IDEウィンドウを使う
1つのウィンドウによるデュアルデバッグ
以下の手順でマスタ プロジェクトを作成します。
1. [Slaves]サブフォルダを右クリックします。
2. スレーブの [Debug] チェックボックスを選択し、デバッ
グビットを有効にします。
3. スレーブとマスタのどちらもメイン プロジェクトに設
定されていない事を確認します。マスタまたはスレーブ プロジェクトがメイン プロジェクトに選択されている
場合、該当するプロジェクトを右クリックして [Unset as the Main Project]をクリックします。
4. マスタ プロジェクトをハイライトします。
5. [Debug] ボタンを押してマスタ プロジェクトを
デバッグします。
6. マスタのデバッグを開始したら、[Windows]、[Debugging]の順に移動して [Sessions]を選択します。
[Sessions]ウィンドウが表示され、マスタが [Running]表示となります。
7. スレーブコアにスレーブ プロジェクトを作成し、その
スレーブ プロジェクトをクリックしてハイライトします。
8. プロジェクトのプロパティを選択し、スレーブをデバッ
グするための2つ目のツールを選択します(以下の例でマ
スタコア用は ICD 3、スレーブコア用はREAL ICE™)。
9. 適用して、[Debug] ボタンをクリックします。
10. スレーブコアのデバッグが始まったら、[Windows]、[Debugging]の順に移動して [Sessions]をクリックし
ます。
これで [Sessions]ウィンドウが開き、以下に示すように
マスタコアとスレーブコアが[Running]と表示されます。
11. マスタまたはスレーブのセッションをダブルクリック
して、上部のウィンドウをハイライトします。その
セッションで使える全てのツールボタンがハイライト
されます。
Note: マスタコードにはスレーブの実行を有効にす
るコードがあるはずです (SLVEN = 1)。ない場
合、S1ISOLATビットをONにします。
2018 Microchip Technology Inc. DS00002721A_JP-p.9
AN2721
複数のMPLAB X IDEウィンドウによるデュアル
デバッグ
ハードウェアの接続は、先に説明したウィンドウが 1 つの場
合と同じです。唯一の違いは、マスタコアとスレーブコアを
それぞれ別のMPLAB X IDEウィンドウに表示する点です。
図6: 複数のMPLAB® X IDEウィンドウ
Master Connectsto MCLR andPGCx/PGDx
Slave Connectsto S1MCLRx andS1PGCx/S1PGDx
Power
Target Board
Dual CoreDevice
DS00002721A_JP-p.10 2018 Microchip Technology Inc.
AN2721
以下の手順で、2つのMPLAB X IDEウィンドウでデュアルデバッグ プロジェクトを作成します。
1. マスタコアのデバッグ プロジェクトを作成します。
スレーブコアのデバッグを有効にします。
2. MPLAB X IDEアイコンを右クリックして [Properties]を選択します。
3. [Target location]に移動し、"...\mplab_ide_.exe"の後に
‘< - -userdir> <スレーブ プロジェクトのパス>’を追加
します。これで、スレーブ プロジェクトを作成するパ
スを指定しました。
4. MPLAB アイコンをダブルクリックし、新しいスレーブ
プロジェクトを作成します。スレーブ プロジェクト用
の新しいMPLAB X IDEウィンドウが表示されます。2つ目のデバッグ ツールを使ってスレーブコアをデバッグ
します。
デュアルデバッグ モードのブレークポイント
デュアルコアのデバッグモードの重要な特長の 1 つに、クロ
スコア ブレークポイントとクロスコア割り込みの作成があり
ます。デュアルコア デバイスはクロスコア ブレークポイン
トに関連する機能を複数備えています。
ブレークポイントでユーザは以下を選択できます。
• もう一方のコアを停止させる
• もう一方のコアに割り込む
• もう一方のコアを停止させて割り込む
以下の手順を実行してクロスコア ブレークポイントを設定し
ます。
1. [Debug]メニューを選択し、[New Breakpoint]をクリッ
クします。
2. [New Breakpoint]ウィンドウが開きます。
3. ブレークポイントのタイプで [Address]を選択し、ブレー
クポイントを設定するプロジェクトを選択します。マス
タ プロジェクトとスレーブ プロジェクトのどちらを停
止するかはここで設定できます。
4. コードを停止させるアドレスを選択します。この例では
マスタ プロジェクトをアドレス"0x360"で停止するよう
に設定し、クロスコア オプションを設定します。
メイン プロジェクトはマスタデバッグのため、停止または割
り込むクロスコアはスレーブです。
[Cross Core Options]で表示される以下のいずれかを選択し
ます。
• Break other cores: マスタがアドレス0x360に達すると
スレーブも停止します。
• Interrupt other cores: マスタコードが0x360に達して停
止すると、スレーブは割り込み (MSTBRKIF)を受信しま
す。
• Break and interrupt the other core: マスタがアドレス
0x360に達して停止するとスレーブも停止します
(MSTBRKIF割り込みフラグもセット )。
例えば [Break other cores]を選択した場合、マスタが0x360で停止するとスレーブも停止します。
0x360
2018 Microchip Technology Inc. DS00002721A_JP-p.11
AN2721
ノーマルモード (マスタコアでスレーブ
コアをプログラムする ― 最終量産コード )このノーマルモードが最終量産コードです。スレーブコード
はマスタコアに格納します。起動中、マスタコアはスレーブ
コアにコードを転送する必要があります。
スレーブ プロジェクトはマスタ プロジェクトにリンクされ
ており、マスタ プロジェクトをビルドするとスレーブ プロ
ジェクトも同時にビルドされます。スレーブコードはその後、
マスタコードと一緒にマスタフラッシュに格納されます。マ
スタコードの実行中、マスタはスレーブコードをマスタフラッ
シュからスレーブPRAMに転送します (図 7)。
図7: ノーマルモード (マスタとスレーブで1つのHEXファイル)
Slave Code
Slave PRAM
Master Code
Master Code to TransferSlave Code to PRAM
Slave Code
Master Programmed with One Hex File
Master Flash
Slave Starts Executing Code
Master Starts Executing Code
After Initialization, the MasterLoads the Slave PRAM
After Loading the Slave PRAM,Slave is Enabled (SLVEN = 1)
POR Event and ConfigurationBits are Loaded
DS00002721A_JP-p.12 2018 Microchip Technology Inc.
AN2721
ノーマルモード プロジェクトの作成1. マスタ プロジェクト (Master) とスレーブ プロジェクト
(Slav)を作成します。 2. Masterの下の [Slaves]フォルダを右クリックします。
3. 以下に示すようにスレーブ プロジェクトを追加します。
4. スレーブ プロジェクトをマスタ プロジェクトに追加し
たら、右クリックして [Properties]を開きます。スレー
ブコードを追加してマスタ プロジェクトに並べると、ア
クティブなプロジェクトは1つだけになります。マスタ
プロジェクトをコンパイルするとスレーブ プロジェク
トもコンパイルされます。
プロジェクトをビルドされるたびに、マスタまたはス
レーブのソースコードに変更があるとコンパイルされて
hexファイルが作成されます。デバイスをプログラムし
た時に生成されてマスタフラッシュに格納される hexファイルは1つだけです。
スレーブイメージ オプション
スレーブイメージの位置
スレーブ プロジェクトをマスタ プロジェクトにリンクする
際、MPLAB X IDEではスレーブイメージのアドレスを選択す
る事もできます。これはスレーブコードをマスタフラッシュ
の特定のアドレスに格納する必要がある場合にのみ行います。
アドレスを空白のままにすると、スレーブイメージを格納す
るアドレスはコンパイラが判断します。
以下にスレーブイメージを0x1000に割り当てる例を示します。
0x1000と設定すると、スレーブイメージはマスタコアの
0x1000に格納されます (可能な場合 )。
Note: MPLAB X IDEプロジェクトのプロパティで、
[Debug]のチェックは外しておきます。このプ
ロジェクトではマスタ プロジェクトをビルド
するとスレーブとマスタがビルドされます。
マスタフラッシュにプログラムするhexファ
イルは1つだけです。
この動作モードでは、マスタはデバッグモー
ドで実行できますが、スレーブはデバッグ
モードで実行できません。マスタコアが停止
した場合、またはシングルステップで実行し
ている場合、スレーブコアはスレーブコード
が転送されており有効である限り実行を継続
します。
2018 Microchip Technology Inc. DS00002721A_JP-p.13
AN2721
複数のスレーブイメージ
マスタフラッシュに複数のスレーブイメージを格納
する
必要な場合、スレーブイメージの位置を設定できる機能を使っ
て複数のスレーブコード イメージを格納できます。これによ
り、必要なスレーブイメージを書き込んでスレーブコードを
切り換えられます。
[Slave]フォルダにはスレーブ プロジェクトの複数のイメージ
を追加できます。例えば、以下に示すように 2 つのスレーブ
プロジェクトがあるとします。
マスタ プロジェクトをビルドする時に両方のスレーブ プロ
ジェクトをビルドできます。
スレーブに書き込むプロジェクト イメージはマスタ プロジェ
クトで選択できます。
condition1に基づいてマスタはスレーブPRAMに書き込みます
(SlavまたはSlav1イメージ )。
#include "Slav.h"#include "Slav1.h"int main(void) {if (condition1){_program_slave(1,0,Slav); // load image Slav}else{_program_slave(1,0,Slav1); // load image Slav1}_start_slave();
while(1)}
DS00002721A_JP-p.14 2018 Microchip Technology Inc.
Microchip社製デバイスのコード保護機能に関して以下の点にご注意ください。• Microchip社製品は、該当するMicrochip社データシートに記載の仕様を満たしています。
• Microchip社では、通常の条件ならびに仕様に従って使用した場合、Microchip社製品のセキュリティ レベルは、現在市場に流通して
いる同種製品の中でも最も高度であると考えています。
• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、
Microchip社データシートにある動作仕様書以外の方法でMicrochip社製品を使用する事になります。このような行為は知的所有権の
侵害に該当する可能性が非常に高いと言えます。
• Microchip社は、コードの保全性に懸念を抱いているお客様と連携し、対応策に取り組んでいきます。
• Microchip社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護機能と
は、Microchip社が製品を「解読不能」として保証するものではありません。
コード保護機能は常に進歩しています。Microchip社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip社のコード保護
機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著作物に不正なアクセス
を受けた場合は、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。
本書に記載されているデバイス アプリケーション等に関する情報
は、ユーザの便宜のためにのみ提供されているものであり、更新
によって無効とされる事があります。お客様のアプリケーション
が仕様を満たす事を保証する責任は、お客様にあります。Microchip社は、明示的、暗黙的、書面、口頭、法定のいずれであるかを問
わず、本書に記載されている情報に関して、状態、品質、性能、
商品性、特定目的への適合性をはじめとする、いかなる類の表明
も保証も行いません。Microchip 社は、本書の情報およびその使
用に起因する一切の責任を否認します。Microchip 社の明示的な
書面による承認なしに、生命維持装置あるいは生命安全用途に
Microchip 社の製品を使用する事は全て購入者のリスクとし、ま
た購入者はこれによって発生したあらゆる損害、クレーム、訴訟、
費用に関して、Microchip 社は擁護され、免責され、損害をうけ
ない事に同意するものとします。特に明記しない場合、暗黙的あ
るいは明示的を問わず、Microchip 社が知的財産権を保有してい
るライセンスは一切譲渡されません。
AMBA、Arm、Arm7、Arm7TDMI、Arm9、Arm11、Artisan、big.LITTLE、Cordio、CoreLink、CoreSight、Cortex、DesignStart、DynamIQ、Jazelle、Keil、Mali、Mbed、Mbed Enabled、NEON、
POP、RealView、SecurCore、Socrates、Thumb、TrustZone、ULINK、ULINK2、ULINK-ME、ULINK-PLUS、ULINKpro、µVision、Versatileは、米国およびその他の国におけるArm Limited(または
その子会社)の商標または登録商標です。
2018 Microchip Technology Inc.
Microchip社では、ChandlerとTempe(アリゾナ州 )、Gresham(オレゴン州 )の本部、設計部とウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009認証を取得しています。Microchip社の品質システムプロセスと手順は、PIC® MCUとdsPIC® DSC、KEELOQ®コード ホッピング デバイス、シリアルEEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関するMicrochip社の品質システムは ISO 9001:2000認証を取得しています。
QUALITYMANAGEMENTSYSTEMCERTIFIEDBYDNV
== ISO/TS16949==
商標Microchip社の名称とロゴ、Microchipロゴ、AnyRate、AVR、
AVRロゴ、AVR Freaks、BitCloud、chipKIT、chipKITロゴ、
CryptoMemory、CryptoRF、dsPIC、FlashFlex、flexPWR、
Heldo、JukeBlox、KeeLoq、Kleer、LANCheck、LINK MD、
maXStylus、maXTouch、MediaLB、megaAVR、MOST、MOSTロゴ、MPLAB、OptoLyzer、PIC、picoPower、PICSTART、PIC32ロゴ、Prochip Designer、QTouch、SAM-BA、SpyNIC、
SST、SSTロゴ、SuperFlash、tinyAVR、UNI/O、XMEGAは米
国およびその他の国におけるMicrochip Technology Incorporatedの登録商標です。
ClockWorks、The Embedded Control Solutions Company、EtherSynch、Hyper Speed Control、HyperLight Load、IntelliMOS、mTouch、Precision Edge、Quiet-WIREは米国にお
けるMicrochip Technology Incorporated社の登録商標です。
Adjacent Key Suppression、AKS、Analog-for-the-Digital Age、Any Capacitor、AnyIn、AnyOut、BodyCom、CodeGuard、CryptoAuthentication、CryptoAutomotive、CryptoCompanion、CryptoController、dsPICDEM、dsPICDEM.net、Dynamic Average Matching、DAM、ECAN、EtherGREEN、In-Circuit Serial Programming、ICSP、INICnet、Inter-Chip Connectivity、JitterBlocker、KleerNet、KleerNetロゴ、memBrain、Mindi、MiWi、motorBench、MPASM、MPF、MPLAB Certifiedロゴ、
MPLIB、MPLINK、MultiTRAK、NetDetach、Omniscient Code Generation、PICDEM、PICDEM.net、PICkit、PICtail、PowerSmart、PureSilicon、QMatrix、REAL ICE、Ripple Blocker、SAM-ICE、Serial Quad I/O、SMART-I.S.、SQI、SuperSwitcher、SuperSwitcher II、Total Endurance、TSHARC、
USBCheck、VariSense、ViewSpan、WiperLock、Wireless DNA、ZENAは米国とその他の国におけるMicrochip Technology Incorporatedの商標です。
SQTPは、米国におけるMicrochip Technology Incorporatedのサービスマークです。
Silicon Storage Technologyは、米国以外の国におけるMicrochip Technology Inc.の登録商標です。
GestICは、米国以外の国におけるMicrochip Technology Inc.の子
会社であるMicrochip Technology Germany II GmbH & Co. KGの
登録商標です。
その他本書に記載されている商標は各社に帰属します。
© 2018, Microchip Technology Incorporated, All Rights Reserved.
ISBN: 978-1-5224-3808-3
DS00002721A_JP-p.15
DS00002721A_JP-p.16 2018 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
オースティン、TXTel: 512-257-3370
ボストンWestborough, MA Tel: 774-760-0087 Fax: 774-760-0088
シカゴ
Itasca、IL Tel: 630-285-0071 Fax: 630-285-0075
ダラスAddison, TX Tel: 972-818-7423 Fax: 972-818-2924
デトロイトNovi, MI Tel: 248-848-4000
ヒューストン、TX Tel: 281-894-5983
インディアナポリスNoblesville, IN Tel: 317-773-8323Fax: 317-773-5453Tel: 317-536-2380
ロサンゼルスMission Viejo, CA Tel: 949-462-9523Fax: 949-462-9608Tel: 951-273-7800
ローリー、NC Tel: 919-844-7510
ニューヨーク、NY Tel: 631-435-6000
サンノゼ、CA Tel: 408-735-9110Tel: 408-436-4270
カナダ - トロントTel: 905-695-1980 Fax: 905-695-2078
アジア太平洋
オーストラリア - シドニーTel: 61-2-9868-6733
中国 - 北京Tel: 86-10-8569-7000
中国 - 成都Tel: 86-28-8665-5511
中国 - 重慶Tel: 86-23-8980-9588
中国 - 東莞Tel: 86-769-8702-9880
中国 - 広州Tel: 86-20-8755-8029
中国 - 杭州Tel: 86-571-8792-8115
中国 - 香港SARTel: 852-2943-5100
中国 - 南京Tel: 86-25-8473-2460
中国 - 青島Tel: 86-532-8502-7355
中国 - 上海Tel: 86-21-3326-8000
中国 - 瀋陽Tel: 86-24-2334-2829
中国 - 深?Tel: 86-755-8864-2200
中国 - 蘇州Tel: 86-186-6233-1526
中国 - 武漢Tel: 86-27-5980-5300
中国 - 西安Tel: 86-29-8833-7252
中国 - 厦門Tel: 86-592-2388138
中国 - 珠海Tel: 86-756-3210040
アジア太平洋
インド - バンガロールTel: 91-80-3090-4444
インド - ニューデリーTel: 91-11-4160-8631
インド - プネTel: 91-20-4121-0141
日本 - 大阪Tel: 81-6-6152-7160
日本 - 東京Tel: 81-3-6880- 3770
韓国 - 大邱Tel: 82-53-744-4301
韓国 - ソウルTel: 82-2-554-7200
マレーシア - クアラルンプールTel: 60-3-7651-7906
マレーシア - ペナンTel: 60-4-227-8870
フィリピン - マニラTel: 63-2-634-9065
シンガポールTel: 65-6334-8870
台湾 - 新竹Tel: 886-3-577-8366
台湾 - 高雄Tel: 886-7-213-7830
台湾 - 台北Tel: 886-2-2508-8600
タイ - バンコクTel: 66-2-694-1351
ベトナム - ホーチミンTel: 84-28-5448-2100
ヨーロッパ
オーストリア - ヴェルスTel: 43-7242-2244-39Fax: 43-7242-2244-393
デンマーク - コペンハーゲンTel: 45-4450-2828 Fax: 45-4485-2829
フィンランド - エスポーTel: 358-9-4520-820
フランス - パリTel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79
ドイツ - ガーヒンクTel: 49-8931-9700
ドイツ - ハーンTel: 49-2129-3766400
ドイツ - ハイルブロンTel: 49-7131-67-3636
ドイツ - カールスルーエTel: 49-721-625370
ドイツ - ミュンヘンTel: 49-89-627-144-0 Fax: 49-89-627-144-44
ドイツ - ローゼンハイムTel: 49-8031-354-560
イスラエル - ラーナナ Tel: 972-9-744-7705
イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781
イタリア - パドヴァTel: 39-049-7625286
オランダ - ドリューネンTel: 31-416-690399 Fax: 31-416-690340
ノルウェー - トロンハイムTel: 47-7289-7561
ポーランド - ワルシャワTel: 48-22-3325737
ルーマニア - ブカレストTel: 40-21-407-87-50
スペイン - マドリッドTel: 34-91-708-08-90Fax: 34-91-708-08-91
スウェーデン - ヨーテボリTel: 46-31-704-60-40
スウェーデン - ストックホルムTel: 46-8-5090-4654
イギリス - ウォーキンガムTel: 44-118-921-5800Fax: 44-118-921-5820
各国の営業所とサービス
2017/10/25