Tags: RoughAl/DAPLink
Tags
Disable interrupts when performing flash ops Update the atsam3u and kinetis flash drivers so they disable interrupts when erasing or programming flash. This prevents a crash from occurring if an interrupt occurs during flashing when the flash cannot be read. This also fixes a watchdog reset on K20 interfaces which occurs when an interrupt interrupts the watchdog unlock sequence in the flash "Init" function. The addition of this critical section prevents the watchdog operation from being interrupted.
Base IAP device info on memory map Ensure a device's memory map is kept in sync with its device info by using memory map defines and asserting on an unintended change.
Remove features so bootloader fits in 20K Remove unnecessary features so the bootloader can fit within 20k. This patch makes the following changes: * Remove hex file parsing * Bypass flash decoder layer since this is not used by the bootloader * Remove flash intercept code in IAP flash layer since this is not used by the bootloader * Remove files MBED.HTM, ASSERT.TXT, NEED_BL.TXT * Remove entries from details.txt * Remove most action commands * Reduce size of MBR init data * Remove all error messages in FAIL.TXT except for success and failure * Remove read/set assert in config ram * Remove unused vector table entries to free up space Notes about the tool version used to build a 20K bootloader image: IDE-Version: µVision V5.23.0.0 Copyright (C) 2017 ARM Ltd and ARM Germany GmbH. All rights reserved. Tool Version Numbers: Toolchain: MDK-ARM Professional Version: 5.23 Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin C Compiler: Armcc.exe V5.06 (build 20) Assembler: Armasm.exe V5.06 (build 20) Linker/Locator: ArmLink.exe V5.06 (build 20) Library Manager: ArmAr.exe V5.06 (build 20) Hex Converter: FromElf.exe V5.06 (build 20) CPU DLL: SARMCM3.DLL V5.23 Dialog DLL: DARMCM1.DLL V1.17.0.0 Target DLL: CMSIS_AGDI.dll V1.27.5.0 Dialog DLL: TARMCM1.DLL V1.12.0.0 Note - when building with this version the complier to use must be explicitly chosen to be V5.06 (build 20) in the "Target" tab of project options. Furthermore, after chaning this setting, the optimization level must be re-cofigured to "Level 2 (-O2)" in the C/C++ tab.
Decrease interface size to 64K Reduce the interface size to 64K so it can fit on devices which have a reduced mass storage drive size. Hardcode the interface size in the bootloader's target info so this does not change.
PreviousNext