Differences in the SQTP(SM) Feature Between MPLAB® IDE v8.xx and MPLAB® IPE for the Flash Data Memory Region
Table 1 shows examples of Serialized Quick Turn Programming (SQTP℠) files created by MPLAB® Integrated Development Environment (IDE) v8.92 and several versions of MPLAB Integrated Programming Environment (IPE) for the PIC12F529T39A Flash data memory region. Issues with these files are discussed in the following sections.
Table 1: SQTP Files for the PIC12F529T39A
Example | IDE | Settings | SQTP File |
---|---|---|---|
1 | MPLAB IDE v8.92 | Generation Method: Random* Location: Flash Data Access Method: RETLW (Raw Data selection unavailable) Start Address (Hex): 0 Number of Bytes (Dec): 2 Number of Parts (Dec): 5 | :020000040000fa :04060000F808D1081D :040600005508B308DE :04060000850852080F :040600009B08EC085F :040600006008840802 :00000001FF |
2 | MPLAB IPE v2.20 (and before) | Generation Method: Random* Location: Flash Data Access Method: RETLW (Raw Data selection unavailable) Start Address (Hex): 600 Number of Bytes (Dec): 2 Number of Parts (Dec): 5 | :020000040000FA :04060000F808D1081D :040600005508B308DE :04060000850852080F :040600009B08EC085F :040600006008840802 :00000001FF |
3 | MPLAB IPE v2.25 | Generation Method: Random* Location: Flash Data Access Method: RETLW (Raw Data selection unavailable) Start Address (Hex): 600 Number of Bytes (Dec): 2 Number of Parts (Dec): 5 | :020000040000FA :040C0000F808D10817 :040C00005508B308D8 :040C00008508520809 :040C00009B08EC0859 :040C000060088408FC :00000001FF |
4 | MPLAB IPE v2.26 (and later) | Generation Method: Random* Location: Flash Data Access Method: Raw Data (RETLW selection unavailable) Start Address (Hex): 600 Number of Bytes (Dec): 2 Number of Parts (Dec): 5 | :020000040000FA :020C0000F8D129 :020C000055B3EA :020C000085521B :020C00009BEC6B :020C000060840E :00000001FF |
* The same "random" serial numbers are shown in each example for comparison. |
Issue 1: RETLW Included in SQTP file
In Table 1, Examples 1, 2, and 3, the RETLW option for the SQTP file should not have been allowed for Flash data because Flash data is equivalent to the Electrically Erasable Programmable Read-Only Memory (EEPROM) region which should not contain the RETLW instruction.
Example 4 shows the issue fixed and does not have the option for RETLW in Flash data memory.
For the examples in Table 1, RETLW is 08h.
Issue 2: SQTP Does Not Load Properly
For Table 1, Example 1, the incorrectly added RETLW instruction in the SQTP file (see Issue 1: RETLW Included in SQTP file) is omitted when the file is reloaded into IDE memory. For Examples 2 and 3, the SQTP file is reloaded into IPE memory with the RETLW instruction. See Table 2.
Table 2: SQTP Reloaded into IDE/IPE Memory
Table 1 Example | Flash Data Memory View |
---|---|
1 |
|
2* and 3* |
|
* Flash Data memory begins at 600h. MPLAB IPE memory window shows first address of this memory region as 0h. |
Issue 3: MPLAB IDE v8 SQTP File Addressing Not Intel® HEX Standard
MPLAB X Integrated Development Environment (IDE) v8 does not follow the Intel® HEX file standard in addressing Flash data. There is no issue for those who generate and use the file in MPLAB IDE v8. However, there is an issue when the SQTP files from MPLAB IDE v8 are used in MPLAB IPE before v2.25. The issue has been fixed in MPLAB IPE v2.25 (and after).
For Table 1, Examples 1 and 2 have an SQTP file address of 0600, whereas Examples 3 and 4 correctly show 0C00.