2018 Microchip Technology Inc. DS50002509B_JP - p. 47
図26: フラッシュ プロジェクト - システム モジュール - Easy Setup
図27: フラッシュ プロジェクト - システム モジュール - レジスタ
2018 Microchip Technology Inc. DS50002509B_JP - p. 49
図28: フラッシュ プロジェクト - リソース - NVM
図29: フラッシュ プロジェクト- NVM - レジスタ
2018 Microchip Technology Inc. DS50002509B_JP - p. 51
図30: フラッシュ プロジェクト - リソース - ピンモジュール
図31: フラッシュ プロジェクト -I/Oピン設定
図32: フラッシュ プロジェクト - I/Oピンリソース
図32でピンRA0とRA2が選択されている場合、これらのピンは上図のウィンドウに表示されます。
RB6とRB7は、図26で PGEC2/PGED2向けに選択済みです。
ウィンドウ内にピン設定が表示されたら、各ピンに対してピン設定を表示および選択できます。
以上のようにコードを設定した後に、[Project Resources] ウィンドウの [Generate]
ボタンをクリックします ( 図 12)。MCC はモジュール形式でコードを生成します。
従って main、システム、周辺モジュールコードは全て別々のファイルとして生成さ
れます。各周辺モジュールのヘッダファイルも別々です。
潜在的なエラーを捉えるために割り込みマネージャ ファイルが生成されます。このア プリケーションでは割り込みは使いませんが、将来用に割り込みマネージャ ファイル が生成されます。
プログラムに機能を追加する場合、必ず main.cを編集する必要があります。また、
そのコードに必要な全ての関数またはマクロが生成されたファイル内に含まれてい るかどうか確認する必要があります。
フラッシュメモリの使い方の詳細は、『PIC32 ファミリ リファレンス マニュアル、セ クション 5. 10 ビットアナログ / デジタルコンバータ (ADC)』(DS60001121)を参照 してください。
図33: MCCが生成したコードのフラッシュ プロジェクト ツリー
2018 Microchip Technology Inc. DS50002509B_JP - p. 53
7.1 編集後の
main.c
コード編集後の main.c テンプレート ファイルを以下に示します。一部のコメントは省略
しました(省略箇所には< >で囲んだ注釈を記入しています)。追加済みコードは赤 字で示しています。
/**
Generated Main Source File
<See generated main.c for file information.>
*/
/*
(c) 2016 Microchip Technology Inc. and its subsidiaries.You may use this software and any derivatives exclusively with Microchip products.
<See generated main.c for additional copyright information.>
*/
#include "mcc_generated_files/mcc.h"
// Program Flash Physical Addresses:0x1D00_0000?0x1D07_FFFF // Program Flash Virtual Addresses:KSEG0:0x9D00_0000?0x9D07_FFFF // KSEG1:0xBD00_0000?0xBD07_FFFF
#define NVM_PROGRAM_PAGE 0xbd008000 unsigned int databuff[128];
/*
Main application */
int main(void) { unsigned int x;
// initialize the device SYSTEM_Initialize();
// Fill databuff with some data for(x =0; x < sizeof(databuff); x++)
databuff[x] = x;
// Erase second page of Program Flash NVM_ErasePage((void *)NVM_PROGRAM_PAGE);
// Write 128 words starting at // Row Address NVM_PROGRAM_PAGE
NVM_WriteRow((void *)NVM_PROGRAM_PAGE, (void*)databuff);
// Verify data matches
if(memcmp(databuff, (void *)NVM_PROGRAM_PAGE, sizeof(databuff))) {
// If not turn led0 on to indicate an error IO_RA0_SetHigh();
} else {
// If true turn led2 on to indicate success IO_RA2_SetHigh();
}
7.2参照
7.3参照
7.4参照
while (1) {
// End of program }
return -1;
} /**
End of File */
7.2 フラッシュメモリのページ消去
フラッシュメモリの消去可能な最小領域は1ページです。
これにはnvm.cファイル内のNVM_ErasePage()関数を使います。
7.3 フラッシュメモリの行書き込み
データバッファの内容は、フラッシュメモリ内の1行に書き込みます。
これにはnvm.cファイル内のNVM_WriteRow()関数を使います。
7.4 書き込みの検証と
LED
でのデータ表示フラッシュメモリに書き込まれたデータとデータバッファの内容を比較します。両者 が一致しない場合、LED0/D3 を点灯させてエラーが発生した事を示します。一致す る場合、LED2/D5を点灯させて書き込みが成功した事を示します。
2018 Microchip Technology Inc. DS50002509B_JP - p. 55
補遺A. MPLAB X IDE 内でのコード実行
サンプルコード1、2、3のプロジェクトの作成手順は以下の通りです。
1. MPLAB X IDEを起動します。
2. IDEから[New Project]ウィザードを起動します(File > New Project)。
3. 画面の指示に従って以下の手順で新しいプロジェクトを作成します。
a) プロジェクトの選択: 「Microchip Embedded」を選択し、次に「Standalone Project」を選択します。
b) デバイスの選択: サンプルコードのデバイスを選択します。
c) ヘッダの選択: 何も選択しません。
d) ツールの選択: 使用するハードウェア デバッグツールのシリアル番号(SNxxxxxx) を選択します。デバッグツール名の下にシリアル番号(SN)が表示されない場 合、そのデバッグツールが正しくインストールされているか確認します。詳 細はデバッグツールのマニュアルを参照してください。
e) プラグインボードの選択: 何も選択しません。
f) コンパイラの選択: XC32 (最新バージョン番号)を選択します([bin location])。
XC32の下にコンパイラが表示されない場合、コンパイラが正しくインストー ルされているか、およびMPLAB X IDE がコンパイラを検出できているかを 確認します。Tools > Optionsを選択し、[Build Tools]タブの[Embedded]ボ タンをクリックして使用中のコンパイラを確認します。詳細はMPLAB XC32 とMPLAB X IDEのマニュアルを参照してください。
g) プロジェクト名とフォルダの選択: プロジェクト名を指定します。
4. [Projects] ウィンドウ内でプロジェクト名を右クリックし、New > Empty FIleを 選択します。[New Empty File]ダイアログが開きます。
5. 「File name」に名前を入力します。
6. [Finish]をクリックします。
7. 本書のサンプルコードを空白のエディタ ウィンドウにコピー/ ペーストし、File
> Saveを選択します。
サンプルコード 4および6 のプロジェクトの作成手順は、4.1「MPLAB X IDE内で
MPLAB Harmony プロジェクトを作成する」に記載した通りです。プロジェクトを
作成した後、MHCを設定してコードを生成し、本書に記載した通りに編集します。
サンプルコード 5 および 7 の場合、上記のステップ 1 ~ 3 を実行します。その後、
MCCを設定してコードを生成し、本書に記載した通りに編集します。
最後に[Debug Run]を選択します。これによりコードをビルドしてデバイスにダウン
ロードし、実行します。そしてコードの出力を LED で確認します。実行を終了する には[Halt]をクリックします。
図34: ツールバーアイコン
DEBUG RUN HALT
補遺B. ソフトウェアとハードウェアの入手先
本書のMPLAB XC32プロジェクトには PIC32 PIMを実装した Explorer 16/32開発 ボードを使います。ボードには外部電源から9 Vを供給し、標準の(ICSP™)通信を 使います。開発にはMPLAB X IDEを使いました。
B.1