Device
|
Row Size
(Words)
|
Page Size
(Words)
|
Boot Flash Size
|
PIC32MM
|
64
|
512
|
0x1FC00000-0x1FC016FF (5.75KB)
|
PIC32MX1/2
|
32
|
256
|
0x1FC00000-0x1FC00BFF (3KB)
|
PIC32MX3/4/6/7
|
128
|
1024
|
0x1FC00000-0x1FC02FFF (12KB)
|
int progMemP32 = (int)Pk2.DevFile.PartsList[Pk2.ActivePart].ProgramMem;
int bootMemP32 = (int)Pk2.DevFile.PartsList[Pk2.ActivePart].BootFlash;
ProgramMem = (0x10000+0x1700)/4 = 17856 (including boot flash)
BootFlash = 0x1700/4= 1472
BootFlash = 0x1700/4= 1472
PE Command
remove 0x03: WORD_PROGRAM
add 0x0E: DOUBLE_WORD_PGRM
Configuration Bits: Double Word
FSIGN (0x1FC0.17E0) 0x7FFF (must)
Code Execution from RAM: A000:0800 == not required ==
Set CFGCON.EXECADDR<7:0> to 0x02
CFGCON at 0xBF80.3B00
PICkitFunctions.searchDevice
=========================
Move PE Loader to 0xA000.0200, PE to 0xA000.0300
ImportHex - 90%, UserID (WIP)
ExportHex
Configuration Bits - DialogConfigEdit - OK(display)
=============================
PE Loader: (swap HI/LO word, 41A3, FF20, 41A5, DEAD, 6A30, 6930...)
ChipEraseScript:
Code Execution from RAM: A000:0800 == not required ==
Set CFGCON.EXECADDR<7:0> to 0x02
CFGCON at 0xBF80.3B00
PICkitFunctions.searchDevice
=========================
Move PE Loader to 0xA000.0200, PE to 0xA000.0300
v
|
PIC32BlankCheck
| |
v
| PIC32Read | |
v
| PIC32CRC | |
v
| PIC32Verify | |
v
| PIC32Erase | |
| Change the ChipEraseScript | ||
v
| PIC32Write | |
| if the JTAGEN is programmed, the MCHP TAP controller must be selected immediately after any PROGRAM command. This can be done by using a SendCommand(MTAP_SW_MTAP) pseudo operation. After 400 us, the EJTAG TAP controller can be selected again by calling the SendCommand(MTAP_SW_ETAP) pseudo operation. -- ch 16.3 | ||
ImportHex - 90%, UserID (WIP)
ExportHex
Configuration Bits - DialogConfigEdit - OK(display)
=============================
PE Loader: (swap HI/LO word, 41A3, FF20, 41A5, DEAD, 6A30, 6930...)
ChipEraseScript:
$JT2_SENDCMD 07 //<--- SendCMD(MTAP_CMD) $JT2_XFERDATA8_LIT FC //<--- Xferdata(MCHP_ERASE) $JT2_XFERDATA8_LIT D0 //<--- Xferdata(MCHP_DE_ASSERT_RST) $DELAY_LONG 4A
===== Notes: JTAG =====
MTAP
- MTAP_SW_MTAP[5h0x04]
- MTAP_SW_ETAP[5h0x05]
- MTAP_IDCODE[5h0x01]
- MTAP_COMMAND[5h0x07]
- MCHP_STATUS
- MCHP_ASSERT_RST
- MCHP_DE_ASSERT_RST
- MCHP_ERASE
EJTAG
- ETAP_ADDRESS[5h0x08]
- ETAP_DATA[5h0x09]
- ETAP_CONTROL[5h0x0A]
- ETAP_EJTAGBOOT[5h0x0C]*
- ETAP_FASTDATA[5h0x0E]*
# XferFastData
ETAP_FASTDATA
# XferInstruction
ETAP_CONTROL
ETAP_DATA
ETAP_CONTROL
i don't understand how i use this information
ReplyDelete