From 1fe4406f374291ab2e86e95a97341fd9c475fcb8 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Fri, 24 Apr 2015 16:26:14 +0900 Subject: Squashed 'tmk_core/' changes from 7967731..b9e0ea0 b9e0ea0 Merge commit '7fa9d8bdea3773d1195b04d98fcf27cf48ddd81d' as 'tool/mbed/mbed-sdk' 7fa9d8b Squashed 'tool/mbed/mbed-sdk/' content from commit 7c21ce5 git-subtree-dir: tmk_core git-subtree-split: b9e0ea08cb940de20b3610ecdda18e9d8cd7c552 --- tool/mbed/mbed-sdk/workspace_tools/patch.py | 50 +++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 tool/mbed/mbed-sdk/workspace_tools/patch.py (limited to 'tool/mbed/mbed-sdk/workspace_tools/patch.py') diff --git a/tool/mbed/mbed-sdk/workspace_tools/patch.py b/tool/mbed/mbed-sdk/workspace_tools/patch.py new file mode 100644 index 0000000000..6fda63f3c3 --- /dev/null +++ b/tool/mbed/mbed-sdk/workspace_tools/patch.py @@ -0,0 +1,50 @@ +""" +mbed SDK +Copyright (c) 2011-2013 ARM Limited + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +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('