""" http://www.nxp.com/documents/user_manual/UM10360.pdf 32.3.1.1 Criterion for Valid User Code The reserved Cortex-M3 exception vector location 7 (offset 0x1C in the vector table) should contain the 2's complement of the check-sum of table entries 0 through 6. This causes the checksum of the first 8 table entries to be 0. The boot loader code checksums the first 8 locations in sector 0 of the flash. If the result is 0, then execution control is transferred to the user code. """ from struct import unpack, pack def patch(bin_path): with open(bin_path, 'r+b') as bin: # Read entries 0 through 6 (Little Endian 32bits words) vector = [unpack('