Difference between revisions of "NXP LPC2xxx valid user code"
(Created page with "Some MCUs (e.g. LPC2xxx family) designed by NXP Semiconductors expect a checksum of the interrupt vectors to validate the user code. If the checksum matches the user code will...") |
|||
Line 40: | Line 40: | ||
[[File:jflash_error_checksum_missing.PNG]] |
[[File:jflash_error_checksum_missing.PNG]] |
||
− | If you do not want that the pop-up will show up, make sure that the checksum is |
+ | If you do not want that the pop-up will show up, make sure that the checksum is correctly calculated in your data-file (see (1) Calculation). |
Revision as of 11:55, 9 September 2019
Some MCUs (e.g. LPC2xxx family) designed by NXP Semiconductors expect a checksum of the interrupt vectors to validate the user code. If the checksum matches the user code will be executed as expected, otherwise the code will not be executed.
Contents
Calculation
The interrupt vector at 0x0000_0014 should contain the Two's complement of the sum of the interrupt vectors before.
Example
Address | Value |
---|---|
0x0000_0000 | 0xEA000006 |
0x0000_0004 | 0xEAFFFFFE |
0x0000_0008 | 0xEAFFFFFE |
0x0000_000C | 0xEAFFFFFE |
0x0000_0010 | 0xEAFFFFFE |
0x0000_0018 | 0xEAFFFFFE |
0x0000_001C | 0xEAFFFFFE |
Sum = 0x6BFFFFFA // sum of all interrupt vectors (with unsigned wrap)
Checksum = ~(Sum) + 1 // checksum at 0x0000_0014 (two's complement of sum)
Troubleshooting
J-Flash will display a pop-up if the checksum is not valid and will offer to calculate the correct checksum for the user code:
If you do not want that the pop-up will show up, make sure that the checksum is correctly calculated in your data-file (see (1) Calculation).