Added support for Microchip SAM E51

pull/397/head
Daniele Lacamera 2023-12-01 17:46:35 +01:00
parent 9e2aaebed3
commit c70c8a470d
45 changed files with 6248 additions and 1 deletions

View File

@ -21,6 +21,18 @@ jobs:
# with:
# arch: riscv
# config-file: ./config/examples/hifive.config
#
same51_test:
uses: ./.github/workflows/test-build.yml
with:
arch: arm
config-file: ./config/examples/same51.config
same51_dbank_test:
uses: ./.github/workflows/test-build.yml
with:
arch: arm
config-file: ./config/examples/same51-dualbank.config
imx_rt1050_test:
uses: ./.github/workflows/test-build-mcux-sdk.yml

5
.gitignore vendored
View File

@ -91,6 +91,7 @@ include/target.h
.wolfboot-offset
.wolfboot-partition-size
.bootloader-partition-size
MPLabX/wolfBoot-SAME51.X/.generated_files/
# Test tools
tools/check_config/check_config
@ -142,3 +143,7 @@ debug/lauterbach
*.gcda
*.gcno
coverage.*
IDE/MPLAB/test-app/test-usb-updater.same51.X/dist/
IDE/MPLAB/test-app/test-usb-updater.same51.X/.generated_files/
IDE/MPLAB/bootloader/wolfboot-same51.dualbank.X/dist/
IDE/MPLAB/bootloader/wolfboot-same51.dualbank.X/.generated_files/

204
IDE/MPLAB/README.md 100644
View File

@ -0,0 +1,204 @@
# wolfBoot demo application for MPLABx IDE
Instruction to compile and test under Windows or Linux OS.
## Target platform
This example application has been configured to work on SAM E51 Curiosity Nano
evaluation board.
wolfBoot is configured in `DUAL_BANK` mode, meaning that it will use the
bank-swapping feature available on SAM E51 to update the firmware. This operation
is much faster than physically swapping the content of two partitions one sector
at a time.
wolfBoot is stored and executed at the beginning of the flash (0x00000000), while the signed
application image starts at address 0x0000 8000.
## Before starting
- Read the instructions in [Targets.md](/docs/Targets.md) before starting. If your
version of xc32 does not have a license for optimizers, wolfBoot binary image
will normally not fit in the first 32B of the flash. If this is the case, you may
want to consider compiling wolfBoot separately, by providing a .config file and
running `make`.
- The key provided in the bootloader project (in the test/keystore.c source file)
is for demo purposes only. This is a 'test' key that should not be used in
production, because in fact, it's very well known as it's distributed with the
wolfBoot sources. Please read the instructions [to generate or import your own
keys](/docs/Signing.md) if you intend to secure your target device. The
`test/keystore.c` source file generates warnings about this when included in the
build. Replace with your automatically generated `keystore.c` when you run `keygen`.
## Instructions
### Creating the keys
This step is required to compile the bootloader with a valid key.
Enter the `tools/keytools` directory and run make. This will create the `keygen` and `sign` tools.
On Windows, you can use the .sln file provided to build the keytools using Visual Studio.
Check [docs/Signing.md](/docs/Signing.md) for the detailed instructions on compiling the tools and
creating keys using the `keygen` tool.
When used with the `-g` option, the `keygen` tool will generate a keypair. The
file `wolfboot_signing_private_key.der` in the root of the repository contains
the private key that will be used to sign valid firmware images.
The file `src/keystore.c` now contains the public key that the bootloader
incorporates, to use it later to verify the image.
After generating your own private + public keys, remember to replace the file
`IDE/MPLAB/test/keystore.c` with the newly created one, `src/keystore.c`:
```
cp src/keystore.c IDE/MPLAB/test
```
### Compiling and linking the images
Now both projects (wolfboot and test-app) can be compiled and linked.
The resulting images will be placed in the output directory `dist/default/production/`
under the main directory of each of the two projects.
The only requirement for the application to be staged by wolfboot is the modified
entry point when setting the origin of the space in ROM.
With the example configuration (ecc384+sha256), the manifest header size is 512B
(0x200), and the main BOOT partition starts at 32 KB (0x8000).
The entry point for the application firmware must take the total offset into
account, by setting `ROM_ORIGIN` to 0x8200. Change this parameter accordingly if
you plan to modify the geometry of your partitions in FLASH.
The FLASH memory configuration for this demo is located in include/MPLAB/target.h.
The file can be changed manually to set a new partitions geometry, or a new target.h
could be created in the include/ directory by running `make`, which will be based
on the chosen configuration via the `.config` file. If a custom `target.h` is created
by `make`, the demo version in `include/MPLAB` can be removed.
The wolfBoot project should build with no modifications to the project, because it
does not use any .c files from the manufacturer's BSP.
On the other hand, the application uses the Harmony libraries to access the UART
USB and other peripherals. To generate the necessary files, once you open the
project in MPLAB X IDE, click on the MCC icon on top, then click on "Generate" to
download the latest Microchip libraries and device support in your local repository.
### Converting to .bin format
MPLAB ide produces executables of the bootloader and the test firmware images in
both `.elf` and `.hex` formats.
Using the `objcopy` tool from the gcc toolchain, we can convert the images to the
binary format.
To convert the wolfBoot image from `.hex` to `.bin` run:
```
arm-none-eabi-objcopy -I ihex -O binary IDE/MPLAB/bootloader/wolfboot-same51.dualbank.X/dist/default/production/wolfboot-same51.dualbank.X.production.hex mplab_wolfboot.bin
```
To convert the application the same way:
```
arm-none-eabi-objcopy -I ihex -O binary IDE/MPLAB/test-app/test-usb-updater.same51.X/dist/default/production/test-usb-updater.same51.X.production.hex mplab_app.bin
```
### Signing the application image
The test application (`mplab_app.bin`) must be now tagged with a version number
and signed. This is done by the `sign` tool.
The tool requires the location of the private key and one numeric argument, stored
as the version tag for the signed image. Running it with version "1":
```
tools/keytools/sign --ecc384 mplab_app.bin wolfboot_signing_private_key.der 1
```
will create a new file `mplab_app_v1_signed.bin`, that can be uploaded into the
flash memory at address 0x8000. The first 512 B in this binary file are
reserved by wolfBoot for the manifest header.
### Uploading the binary images to the target
Follow the instructions in [docs/Targets.md](/docs/Targets.md) to upload the binary
images (`mplab_wolfboot.bin` and `mplab_app_v1_signed.bin`) to the target.
### Verify that the system is up and running
When the application starts, it will send a few bytes through the USB UART
interface associated.
This data can be parsed with a small tool used in wolfBoot's automated tests,
`test-expect-version`.
- Compile the tool via:
```
make -C tools/test-expect-version
```
- Run the program:
```
tools/test-expect-version/test-expect-version
```
- Reset the target.
The tool will display the version of the current firmware running.
This data is sent by the application itself when it boots.
### Update the firmware via test-update-server (Linux and MacOS only)
A demo update server via USB UART is provided in the directory
`tools/test-update-server`.
To test the update mechanism, first compile the tool via:
```
make -C tools/test-update-server
```
To provide a signed update package, sign and tag a different version of the
application, e.g. for version "8" run:
```
tools/keytools/sign --ecc384 mplab_app.bin wolfboot_signing_private_key.der 8
```
Run the update server:
```
tools/test-update-server/server mplab_app_v8_signed.bin
```
Reset the target. The application will initiate an update request, to which
the server will reply and will send the signed image through the USB UART.
The server should display the progress of the update on screen.
At the end of the update, verify that wolfboot has swapped the mapping of the
two FLASH banks, cloned itself so it sits at the beginning of both banks, and
correctly verified and staged the new firmware, by checking via
`test-expect-version` that the current firmware running has version '8'.

View File

@ -0,0 +1,274 @@
/*--------------------------------------------------------------------------
* MPLAB XC32 Compiler - ATSAME51J20A linker script
*
* Copyright (c) 2023, Microchip Technology Inc. and its subsidiaries ("Microchip")
* All rights reserved.
*
* This software is developed by Microchip Technology Inc. and its
* subsidiaries ("Microchip").
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* 3. Microchip's name may not be used to endorse or promote products
* derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED. IN NO EVENT
* SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/*
* Define the __XC32_RESET_HANDLER_NAME macro on the command line when you
* want to use a different name for the Reset Handler function.
*/
#ifndef __XC32_RESET_HANDLER_NAME
#define __XC32_RESET_HANDLER_NAME Reset_Handler
#endif /* __XC32_RESET_HANDLER_NAME */
/* Set the entry point in the ELF file. Once the entry point is in the ELF
* file, you can then use the --write-sla option to xc32-bin2hex to place
* the address into the hex file using the SLA field (RECTYPE 5). This hex
* record may be useful for a bootloader that needs to determine the entry
* point to the application.
*/
ENTRY(__XC32_RESET_HANDLER_NAME)
/*************************************************************************
* Memory-Region Macro Definitions
* The XC32 linker preprocesses linker scripts. You may define these
* macros in the MPLAB X project properties or on the command line when
* calling the linker via the xc32-gcc shell.
*************************************************************************/
#ifndef ROM_ORIGIN
# define ROM_ORIGIN 0x0
#endif
#ifndef ROM_LENGTH
# define ROM_LENGTH 0x100000
#elif (ROM_LENGTH > 0x100000)
# error ROM_LENGTH is greater than the max size of 0x100000
#endif
#ifndef RAM_ORIGIN
# define RAM_ORIGIN 0x20000000
#endif
#ifndef RAM_LENGTH
# define RAM_LENGTH 0x40000
#elif (RAM_LENGTH > 0x40000)
# error RAM_LENGTH is greater than the max size of 0x40000
#endif
#ifndef TCM_ORIGIN
# define TCM_ORIGIN 0x3000000
#endif
#ifndef __XC32_TCM_LENGTH
# define __XC32_TCM_LENGTH 0x0
#elif (defined(__XC32_TCM_LENGTH) && __XC32_TCM_LENGTH != 0x0 && __XC32_TCM_LENGTH != 0x800 && __XC32_TCM_LENGTH != 0xc00 && __XC32_TCM_LENGTH != 0x1000)
# warning Non-standard ITCM length, using default 0x1000
# undef __XC32_TCM_LENGTH
# define __XC32_TCM_LENGTH 0x1000
#endif
#ifndef BKUPRAM_ORIGIN
# define BKUPRAM_ORIGIN 0x47000000
#endif
#ifndef BKUPRAM_LENGTH
# define BKUPRAM_LENGTH 0x2000
#elif (BKUPRAM_LENGTH > 0x2000)
# error BKUPRAM_LENGTH is greater than the max size of 0x2000
#endif
/*************************************************************************
* Memory-Region Definitions
* The MEMORY command describes the location and size of blocks of memory
* on the target device. The command below uses the macros defined above.
*************************************************************************/
MEMORY
{
rom (LRX) : ORIGIN = ROM_ORIGIN, LENGTH = ROM_LENGTH
ram (WX!R) : ORIGIN = RAM_ORIGIN, LENGTH = RAM_LENGTH
tcm (WX) : ORIGIN = TCM_ORIGIN, LENGTH = __XC32_TCM_LENGTH
bkupram : ORIGIN = BKUPRAM_ORIGIN, LENGTH = BKUPRAM_LENGTH
config_00804000 : ORIGIN = 0x00804000, LENGTH = 0x4
config_00804004 : ORIGIN = 0x00804004, LENGTH = 0x4
config_00804008 : ORIGIN = 0x00804008, LENGTH = 0x4
}
/*************************************************************************
* Output region definitions.
* CODE_REGION defines the output region for .text/.rodata.
* DATA_REGION defines the output region for .data/.bss
* VECTOR_REGION defines the output region for .vectors.
*
* CODE_REGION defaults to 'rom', if rom is present (non-zero length),
* and 'ram' otherwise.
* N.B. The BFA will still allocate code to any MEMORY named 'rom' regardless
* of CODE_REGION's value. If you wish to use rom for something else please
* rename the MEMORY entry.
* DATA_REGION defaults to 'ram', which must be present.
* VECTOR_REGION defaults to CODE_REGION, unless 'boot_rom' is present.
*/
#ifndef CODE_REGION
# if ROM_LENGTH > 0
# define CODE_REGION rom
# else
# define CODE_REGION ram
# endif
#endif
#ifndef DATA_REGION
# define DATA_REGION ram
#endif
#ifndef VECTOR_REGION
# define VECTOR_REGION CODE_REGION
#endif
__rom_end = ORIGIN(rom) + LENGTH(rom);
__ram_end = ORIGIN(ram) + LENGTH(ram);
/*************************************************************************
* Section Definitions - Map input sections to output sections
*************************************************************************/
SECTIONS
{
.config_00804000 : {
KEEP(*(.config_00804000))
} > config_00804000
.config_00804004 : {
KEEP(*(.config_00804004))
} > config_00804004
.config_00804008 : {
KEEP(*(.config_00804008))
} > config_00804008
/*
* The linker moves the .vectors section into itcm when itcm is
* enabled via the -mitcm option, but only when this .vectors output
* section exists in the linker script.
*/
.vectors :
{
. = ALIGN(4);
_sfixed = .;
KEEP(*(.vectors .vectors.* .vectors_default .vectors_default.*))
KEEP(*(.isr_vector))
KEEP(*(.reset*))
KEEP(*(.after_vectors))
} > VECTOR_REGION
/*
* Code Sections - Note that standard input sections such as
* *(.text), *(.text.*), *(.rodata), & *(.rodata.*)
* are not mapped here. The best-fit allocator locates them,
* so that input sections may flow around absolute sections
* as needed.
*/
.text :
{
. = ALIGN(4);
*(.glue_7t) *(.glue_7)
*(.gnu.linkonce.r.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
/* Support C constructors, and C destructors in both user code
and the C library. This also provides support for C++ code. */
. = ALIGN(4);
KEEP(*(.init))
. = ALIGN(4);
__preinit_array_start = .;
KEEP (*(.preinit_array))
__preinit_array_end = .;
. = ALIGN(4);
__init_array_start = .;
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
__init_array_end = .;
. = ALIGN(0x4);
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*crtend.o(.ctors))
. = ALIGN(4);
KEEP(*(.fini))
. = ALIGN(4);
__fini_array_start = .;
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
__fini_array_end = .;
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*crtend.o(.dtors))
. = ALIGN(4);
_efixed = .; /* End of text section */
} > CODE_REGION
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > CODE_REGION
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
/*
* Align here to ensure that the .bss section occupies space up to
* _end. Align after .bss to ensure correct alignment even if the
* .bss section disappears because there are no input sections.
*
* Note that input sections named .bss* are no longer mapped here.
* The best-fit allocator locates them, so that they may flow
* around absolute sections as needed.
*/
.bss (NOLOAD) :
{
. = ALIGN(4);
__bss_start__ = .;
_sbss = . ;
_szero = .;
*(COMMON)
. = ALIGN(4);
__bss_end__ = .;
_ebss = . ;
_ezero = .;
} > DATA_REGION
. = ALIGN(4);
_end = . ;
_ram_end_ = ORIGIN(ram) + LENGTH(ram) -1 ;
.bkupram_bss :
{
*(.bkupram_bss .bkupram_bss.*)
*(.pbss .pbss.*)
} > bkupram
}

View File

@ -0,0 +1,21 @@
# This file has been autogenerated by MPLAB Code Configurator. Please do not edit this file.
# Project "bootloader" has been created by using mentioned Harmony 3 packages
project: bootloader
creation_date: 2024-02-13T06:44:44.911-08:00[America/Los_Angeles] # ISO 8601 format: https://www.w3.org/TR/NOTE-datetime
operating_system: Windows 10
mcc_mode: IDE # [IDE|Standalone|Headless]
mcc_version: v5.5.0
mcc_core_version: v5.7.0
mplabx_version: v6.20 # if MPLAB X plugin only
harmony_version: v1.5.1
compiler: XC32 4.35
modules:
- {name: "csp", version: "v3.18.2"}
packs:
- {name: "SAME51_DFP", version: "3.7.242"}

View File

@ -0,0 +1,52 @@
Pin Number,Pin ID,Custom Name,Function,Mode, Direction,Latch,Pull Up,Pull Down,Drive Strength
1,PA00,,Available,,,,,,NORMAL
2,PA01,,Available,,,,,,NORMAL
3,PA02,,Available,,,,,,NORMAL
4,PA03,,Available,,,,,,NORMAL
5,PB04,,Available,,,,,,NORMAL
6,PB05,,Available,,,,,,NORMAL
9,PB06,,Available,,,,,,NORMAL
10,PB07,,Available,,,,,,NORMAL
11,PB08,,Available,,,,,,NORMAL
12,PB09,,Available,,,,,,NORMAL
13,PA04,,Available,,,,,,NORMAL
14,PA05,,Available,,,,,,NORMAL
15,PA06,,Available,,,,,,NORMAL
16,PA07,,Available,,,,,,NORMAL
17,PA08,,Available,,,,,,NORMAL
18,PA09,,Available,,,,,,NORMAL
19,PA10,,Available,,,,,,NORMAL
20,PA11,,Available,,,,,,NORMAL
23,PB10,,Available,,,,,,NORMAL
24,PB11,,Available,,,,,,NORMAL
25,PB12,,Available,,,,,,NORMAL
26,PB13,,Available,,,,,,NORMAL
27,PB14,,Available,,,,,,NORMAL
28,PB15,,Available,,,,,,NORMAL
29,PA12,,Available,,,,,,NORMAL
30,PA13,,Available,,,,,,NORMAL
31,PA14,,Available,,,,,,NORMAL
32,PA15,,Available,,,,,,NORMAL
35,PA16,,Available,,,,,,NORMAL
36,PA17,,Available,,,,,,NORMAL
37,PA18,,Available,,,,,,NORMAL
38,PA19,,Available,,,,,,NORMAL
39,PB16,,Available,,,,,,NORMAL
40,PB17,,Available,,,,,,NORMAL
41,PA20,,Available,,,,,,NORMAL
42,PA21,,Available,,,,,,NORMAL
43,PA22,,Available,,,,,,NORMAL
44,PA23,,Available,,,,,,NORMAL
45,PA24,,Available,,,,,,NORMAL
46,PA25,,Available,,,,,,NORMAL
49,PB22,,Available,,,,,,NORMAL
50,PB23,,Available,,,,,,NORMAL
51,PA27,,Available,,,,,,NORMAL
57,PA30,,Available,,,,,,NORMAL
58,PA31,,Available,,,,,,NORMAL
59,PB30,,Available,,,,,,NORMAL
60,PB31,,Available,,,,,,NORMAL
61,PB00,,Available,,,,,,NORMAL
62,PB01,,Available,,,,,,NORMAL
63,PB02,,Available,,,,,,NORMAL
64,PB03,,Available,,,,,,NORMAL
1 Pin Number Pin ID Custom Name Function Mode Direction Latch Pull Up Pull Down Drive Strength
2 1 PA00 Available NORMAL
3 2 PA01 Available NORMAL
4 3 PA02 Available NORMAL
5 4 PA03 Available NORMAL
6 5 PB04 Available NORMAL
7 6 PB05 Available NORMAL
8 9 PB06 Available NORMAL
9 10 PB07 Available NORMAL
10 11 PB08 Available NORMAL
11 12 PB09 Available NORMAL
12 13 PA04 Available NORMAL
13 14 PA05 Available NORMAL
14 15 PA06 Available NORMAL
15 16 PA07 Available NORMAL
16 17 PA08 Available NORMAL
17 18 PA09 Available NORMAL
18 19 PA10 Available NORMAL
19 20 PA11 Available NORMAL
20 23 PB10 Available NORMAL
21 24 PB11 Available NORMAL
22 25 PB12 Available NORMAL
23 26 PB13 Available NORMAL
24 27 PB14 Available NORMAL
25 28 PB15 Available NORMAL
26 29 PA12 Available NORMAL
27 30 PA13 Available NORMAL
28 31 PA14 Available NORMAL
29 32 PA15 Available NORMAL
30 35 PA16 Available NORMAL
31 36 PA17 Available NORMAL
32 37 PA18 Available NORMAL
33 38 PA19 Available NORMAL
34 39 PB16 Available NORMAL
35 40 PB17 Available NORMAL
36 41 PA20 Available NORMAL
37 42 PA21 Available NORMAL
38 43 PA22 Available NORMAL
39 44 PA23 Available NORMAL
40 45 PA24 Available NORMAL
41 46 PA25 Available NORMAL
42 49 PB22 Available NORMAL
43 50 PB23 Available NORMAL
44 51 PA27 Available NORMAL
45 57 PA30 Available NORMAL
46 58 PA31 Available NORMAL
47 59 PB30 Available NORMAL
48 60 PB31 Available NORMAL
49 61 PB00 Available NORMAL
50 62 PB01 Available NORMAL
51 63 PB02 Available NORMAL
52 64 PB03 Available NORMAL

View File

@ -0,0 +1,113 @@
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL
# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
RANLIB=ranlib
# build
build: .build-post
.build-pre:
# Add your pre 'build' code here...
.build-post: .build-impl
# Add your post 'build' code here...
# clean
clean: .clean-post
.clean-pre:
# Add your pre 'clean' code here...
# WARNING: the IDE does not call this target since it takes a long time to
# simply run make. Instead, the IDE removes the configuration directories
# under build and dist directly without calling make.
# This target is left here so people can do a clean when running a clean
# outside the IDE.
.clean-post: .clean-impl
# Add your post 'clean' code here...
# clobber
clobber: .clobber-post
.clobber-pre:
# Add your pre 'clobber' code here...
.clobber-post: .clobber-impl
# Add your post 'clobber' code here...
# all
all: .all-post
.all-pre:
# Add your pre 'all' code here...
.all-post: .all-impl
# Add your post 'all' code here...
# help
help: .help-post
.help-pre:
# Add your pre 'help' code here...
.help-post: .help-impl
# Add your post 'help' code here...
# include project implementation makefile
include nbproject/Makefile-impl.mk
# include project make variables
include nbproject/Makefile-variables.mk

View File

@ -0,0 +1,21 @@
# This file has been autogenerated by MPLAB Code Configurator. Please do not edit this file.
manifest_file_version: 1.0.0
project: wolfboot-same51.dualbank
creation_date: 2024-02-13T06:45:04.448-08:00[America/Los_Angeles]
operating_system: Windows 10
mcc_mode: IDE
mcc_mode_version: v6.20
device_name: ATSAME51J20A
compiler: XC32 4.35
mcc_version: 5.5.0
mcc_core_version: 5.7.0
content_manager_version: 5.0.0
is_mcc_offline: false
is_using_prerelease_versions: false
mcc_content_registries: https://registry.npmjs.org/
device_library: {library_class: com.microchip.mcc.harmony.Harmony3Library, name: Harmony
V3, version: 1.5.1}
packs: {name: SAME51_DFP, version: 3.7.242}
modules:
- {name: csp, type: HARMONY, version: v3.18.2}

View File

@ -0,0 +1,21 @@
# This file has been autogenerated by MPLAB Code Configurator. Please do not edit this file.
manifest_file_version: 1.0.0
project: wolfboot-same51.dualbank
creation_date: 2024-02-13T06:44:44.890-08:00[America/Los_Angeles]
operating_system: Windows 10
mcc_mode: IDE
mcc_mode_version: v6.20
device_name: ATSAME51J20A
compiler: XC32 4.35
mcc_version: 5.5.0
mcc_core_version: 5.7.0
content_manager_version: 5.0.0
is_mcc_offline: false
is_using_prerelease_versions: false
mcc_content_registries: https://registry.npmjs.org/
device_library: {library_class: com.microchip.mcc.harmony.Harmony3Library, name: Harmony
V3, version: 1.5.1}
packs: {name: SAME51_DFP, version: 3.7.242}
modules:
- {name: csp, type: HARMONY, version: v3.18.2}

View File

@ -0,0 +1,353 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Include project Makefile
ifeq "${IGNORE_LOCAL}" "TRUE"
# do not include local makefile. User is passing all local related variables already
else
include Makefile
# Include makefile containing local settings
ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk"
include nbproject/Makefile-local-default.mk
endif
endif
# Environment
MKDIR=mkdir -p
RM=rm -f
MV=mv
CP=cp
# Macros
CND_CONF=default
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
IMAGE_TYPE=debug
OUTPUT_SUFFIX=elf
DEBUGGABLE_SUFFIX=elf
FINAL_IMAGE=${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
else
IMAGE_TYPE=production
OUTPUT_SUFFIX=hex
DEBUGGABLE_SUFFIX=elf
FINAL_IMAGE=${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
endif
ifeq ($(COMPARE_BUILD), true)
COMPARISON_BUILD=-mafrlcsj
else
COMPARISON_BUILD=
endif
# Object Directory
OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
# Distribution Directory
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
# Source Files Quoted if spaced
SOURCEFILES_QUOTED_IF_SPACED=../../../../lib/wolfssl/wolfcrypt/src/asn.c ../../../../lib/wolfssl/wolfcrypt/src/ecc.c ../../../../lib/wolfssl/wolfcrypt/src/hash.c ../../../../lib/wolfssl/wolfcrypt/src/memory.c ../../../../lib/wolfssl/wolfcrypt/src/sha256.c ../../../../lib/wolfssl/wolfcrypt/src/sp_c32.c ../../../../lib/wolfssl/wolfcrypt/src/sp_int.c ../../../../lib/wolfssl/wolfcrypt/src/wc_port.c ../../../../lib/wolfssl/wolfcrypt/src/wolfmath.c ../../../../src/boot_arm.c ../../../../src/image.c ../../../../src/libwolfboot.c ../../../../src/loader.c ../../../../src/string.c ../../../../src/update_flash_hwswap.c ../../../../hal/same51.c ../../test/keystore.c
# Object Files Quoted if spaced
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/1946630766/asn.o ${OBJECTDIR}/_ext/1946630766/ecc.o ${OBJECTDIR}/_ext/1946630766/hash.o ${OBJECTDIR}/_ext/1946630766/memory.o ${OBJECTDIR}/_ext/1946630766/sha256.o ${OBJECTDIR}/_ext/1946630766/sp_c32.o ${OBJECTDIR}/_ext/1946630766/sp_int.o ${OBJECTDIR}/_ext/1946630766/wc_port.o ${OBJECTDIR}/_ext/1946630766/wolfmath.o ${OBJECTDIR}/_ext/671464796/boot_arm.o ${OBJECTDIR}/_ext/671464796/image.o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ${OBJECTDIR}/_ext/671464796/loader.o ${OBJECTDIR}/_ext/671464796/string.o ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o ${OBJECTDIR}/_ext/671475885/same51.o ${OBJECTDIR}/_ext/1853860402/keystore.o
POSSIBLE_DEPFILES=${OBJECTDIR}/_ext/1946630766/asn.o.d ${OBJECTDIR}/_ext/1946630766/ecc.o.d ${OBJECTDIR}/_ext/1946630766/hash.o.d ${OBJECTDIR}/_ext/1946630766/memory.o.d ${OBJECTDIR}/_ext/1946630766/sha256.o.d ${OBJECTDIR}/_ext/1946630766/sp_c32.o.d ${OBJECTDIR}/_ext/1946630766/sp_int.o.d ${OBJECTDIR}/_ext/1946630766/wc_port.o.d ${OBJECTDIR}/_ext/1946630766/wolfmath.o.d ${OBJECTDIR}/_ext/671464796/boot_arm.o.d ${OBJECTDIR}/_ext/671464796/image.o.d ${OBJECTDIR}/_ext/671464796/libwolfboot.o.d ${OBJECTDIR}/_ext/671464796/loader.o.d ${OBJECTDIR}/_ext/671464796/string.o.d ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o.d ${OBJECTDIR}/_ext/671475885/same51.o.d ${OBJECTDIR}/_ext/1853860402/keystore.o.d
# Object Files
OBJECTFILES=${OBJECTDIR}/_ext/1946630766/asn.o ${OBJECTDIR}/_ext/1946630766/ecc.o ${OBJECTDIR}/_ext/1946630766/hash.o ${OBJECTDIR}/_ext/1946630766/memory.o ${OBJECTDIR}/_ext/1946630766/sha256.o ${OBJECTDIR}/_ext/1946630766/sp_c32.o ${OBJECTDIR}/_ext/1946630766/sp_int.o ${OBJECTDIR}/_ext/1946630766/wc_port.o ${OBJECTDIR}/_ext/1946630766/wolfmath.o ${OBJECTDIR}/_ext/671464796/boot_arm.o ${OBJECTDIR}/_ext/671464796/image.o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ${OBJECTDIR}/_ext/671464796/loader.o ${OBJECTDIR}/_ext/671464796/string.o ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o ${OBJECTDIR}/_ext/671475885/same51.o ${OBJECTDIR}/_ext/1853860402/keystore.o
# Source Files
SOURCEFILES=../../../../lib/wolfssl/wolfcrypt/src/asn.c ../../../../lib/wolfssl/wolfcrypt/src/ecc.c ../../../../lib/wolfssl/wolfcrypt/src/hash.c ../../../../lib/wolfssl/wolfcrypt/src/memory.c ../../../../lib/wolfssl/wolfcrypt/src/sha256.c ../../../../lib/wolfssl/wolfcrypt/src/sp_c32.c ../../../../lib/wolfssl/wolfcrypt/src/sp_int.c ../../../../lib/wolfssl/wolfcrypt/src/wc_port.c ../../../../lib/wolfssl/wolfcrypt/src/wolfmath.c ../../../../src/boot_arm.c ../../../../src/image.c ../../../../src/libwolfboot.c ../../../../src/loader.c ../../../../src/string.c ../../../../src/update_flash_hwswap.c ../../../../hal/same51.c ../../test/keystore.c
# Pack Options
PACK_COMMON_OPTIONS=-I "${CMSIS_DIR}/CMSIS/Core/Include"
CFLAGS=
ASFLAGS=
LDLIBSOPTIONS=
############# Tool locations ##########################################
# If you copy a project from one host to another, the path where the #
# compiler is installed may be different. #
# If you open this project with MPLAB X in the new host, this #
# makefile will be regenerated and the paths will be corrected. #
#######################################################################
# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build
FIXDEPS=fixDeps
.build-conf: ${BUILD_SUBPROJECTS}
ifneq ($(INFORMATION_MESSAGE), )
@echo $(INFORMATION_MESSAGE)
endif
${MAKE} -f nbproject/Makefile-default.mk ${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
MP_PROCESSOR_OPTION=ATSAME51J20A
MP_LINKER_FILE_OPTION=,--script="../../../../hal/same51.ld"
# ------------------------------------------------------------------------------------
# Rules for buildStep: assemble
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: assembleWithPreprocess
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: compile
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${OBJECTDIR}/_ext/1946630766/asn.o: ../../../../lib/wolfssl/wolfcrypt/src/asn.c .generated_files/flags/default/f28eedc420c224fc831c2e8146ec1fbf6a059e06 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/asn.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/asn.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/asn.o.d" -o ${OBJECTDIR}/_ext/1946630766/asn.o ../../../../lib/wolfssl/wolfcrypt/src/asn.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/ecc.o: ../../../../lib/wolfssl/wolfcrypt/src/ecc.c .generated_files/flags/default/9980cd7fb08f9830fc16800f788926b3761ee333 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/ecc.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/ecc.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/ecc.o.d" -o ${OBJECTDIR}/_ext/1946630766/ecc.o ../../../../lib/wolfssl/wolfcrypt/src/ecc.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/hash.o: ../../../../lib/wolfssl/wolfcrypt/src/hash.c .generated_files/flags/default/e9793b92361724c519042e91df438e4b8cc066a2 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/hash.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/hash.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/hash.o.d" -o ${OBJECTDIR}/_ext/1946630766/hash.o ../../../../lib/wolfssl/wolfcrypt/src/hash.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/memory.o: ../../../../lib/wolfssl/wolfcrypt/src/memory.c .generated_files/flags/default/1d64ef964076f320d4074ad20345500c1ece6326 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/memory.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/memory.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/memory.o.d" -o ${OBJECTDIR}/_ext/1946630766/memory.o ../../../../lib/wolfssl/wolfcrypt/src/memory.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/sha256.o: ../../../../lib/wolfssl/wolfcrypt/src/sha256.c .generated_files/flags/default/5e6ae4fe9477793479f3a94cb846174879eee7ed .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/sha256.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/sha256.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/sha256.o.d" -o ${OBJECTDIR}/_ext/1946630766/sha256.o ../../../../lib/wolfssl/wolfcrypt/src/sha256.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/sp_c32.o: ../../../../lib/wolfssl/wolfcrypt/src/sp_c32.c .generated_files/flags/default/ced3e02d6aa7ba2274d54ba91e4157bf423f58aa .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_c32.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_c32.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/sp_c32.o.d" -o ${OBJECTDIR}/_ext/1946630766/sp_c32.o ../../../../lib/wolfssl/wolfcrypt/src/sp_c32.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/sp_int.o: ../../../../lib/wolfssl/wolfcrypt/src/sp_int.c .generated_files/flags/default/421f3b00f78ba51d7b6ae7d4e42b10fca51e266 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_int.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_int.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/sp_int.o.d" -o ${OBJECTDIR}/_ext/1946630766/sp_int.o ../../../../lib/wolfssl/wolfcrypt/src/sp_int.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/wc_port.o: ../../../../lib/wolfssl/wolfcrypt/src/wc_port.c .generated_files/flags/default/5a986bbea5f14b9ea38f4193bc2f343d089b3679 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/wc_port.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/wc_port.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/wc_port.o.d" -o ${OBJECTDIR}/_ext/1946630766/wc_port.o ../../../../lib/wolfssl/wolfcrypt/src/wc_port.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/wolfmath.o: ../../../../lib/wolfssl/wolfcrypt/src/wolfmath.c .generated_files/flags/default/4e20b0d0e58bc07d129dddf5f672e144511d170d .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/wolfmath.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/wolfmath.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/wolfmath.o.d" -o ${OBJECTDIR}/_ext/1946630766/wolfmath.o ../../../../lib/wolfssl/wolfcrypt/src/wolfmath.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/boot_arm.o: ../../../../src/boot_arm.c .generated_files/flags/default/17d299757e94e02281f843b2d8c6feef0d39a855 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/boot_arm.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/boot_arm.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/boot_arm.o.d" -o ${OBJECTDIR}/_ext/671464796/boot_arm.o ../../../../src/boot_arm.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/image.o: ../../../../src/image.c .generated_files/flags/default/ab485ee46917c707f4018f5d9ffb434c4ac9f06d .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/image.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/image.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/image.o.d" -o ${OBJECTDIR}/_ext/671464796/image.o ../../../../src/image.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/libwolfboot.o: ../../../../src/libwolfboot.c .generated_files/flags/default/80a9201f0aaf43700b832d5419f74de0fa69ffd3 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/libwolfboot.o.d" -o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ../../../../src/libwolfboot.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/loader.o: ../../../../src/loader.c .generated_files/flags/default/b5777e5e3af5ea6e7440860725c626fd20692099 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/loader.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/loader.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/loader.o.d" -o ${OBJECTDIR}/_ext/671464796/loader.o ../../../../src/loader.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/string.o: ../../../../src/string.c .generated_files/flags/default/6ffb4717243d6421976e004be688210a4d03aa5a .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/string.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/string.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/string.o.d" -o ${OBJECTDIR}/_ext/671464796/string.o ../../../../src/string.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o: ../../../../src/update_flash_hwswap.c .generated_files/flags/default/22ddcba4029509d4d5222aaf8ae2fb48e35d5896 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o.d" -o ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o ../../../../src/update_flash_hwswap.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671475885/same51.o: ../../../../hal/same51.c .generated_files/flags/default/606416e42313d4ffea725a25297be71257861de3 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671475885"
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o.d
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671475885/same51.o.d" -o ${OBJECTDIR}/_ext/671475885/same51.o ../../../../hal/same51.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1853860402/keystore.o: ../../test/keystore.c .generated_files/flags/default/b733d3503c6dd06f92e4f7f5befc3e4471283bf2 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1853860402"
@${RM} ${OBJECTDIR}/_ext/1853860402/keystore.o.d
@${RM} ${OBJECTDIR}/_ext/1853860402/keystore.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1853860402/keystore.o.d" -o ${OBJECTDIR}/_ext/1853860402/keystore.o ../../test/keystore.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
else
${OBJECTDIR}/_ext/1946630766/asn.o: ../../../../lib/wolfssl/wolfcrypt/src/asn.c .generated_files/flags/default/9c6a6ec6093e86d901ddb49cf2d84fbcbe28ed55 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/asn.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/asn.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/asn.o.d" -o ${OBJECTDIR}/_ext/1946630766/asn.o ../../../../lib/wolfssl/wolfcrypt/src/asn.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/ecc.o: ../../../../lib/wolfssl/wolfcrypt/src/ecc.c .generated_files/flags/default/9c52fc07ee576f2655e60deb35a3deb7d12474a5 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/ecc.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/ecc.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/ecc.o.d" -o ${OBJECTDIR}/_ext/1946630766/ecc.o ../../../../lib/wolfssl/wolfcrypt/src/ecc.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/hash.o: ../../../../lib/wolfssl/wolfcrypt/src/hash.c .generated_files/flags/default/7725e6ea1e372e9a3e3755b57411564936f2e473 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/hash.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/hash.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/hash.o.d" -o ${OBJECTDIR}/_ext/1946630766/hash.o ../../../../lib/wolfssl/wolfcrypt/src/hash.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/memory.o: ../../../../lib/wolfssl/wolfcrypt/src/memory.c .generated_files/flags/default/c00c61cba5809b7afc92d5c3b73f50819ccf8c18 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/memory.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/memory.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/memory.o.d" -o ${OBJECTDIR}/_ext/1946630766/memory.o ../../../../lib/wolfssl/wolfcrypt/src/memory.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/sha256.o: ../../../../lib/wolfssl/wolfcrypt/src/sha256.c .generated_files/flags/default/71bc61287ac9959a5b8ea59af4d0281e2f676f6d .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/sha256.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/sha256.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/sha256.o.d" -o ${OBJECTDIR}/_ext/1946630766/sha256.o ../../../../lib/wolfssl/wolfcrypt/src/sha256.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/sp_c32.o: ../../../../lib/wolfssl/wolfcrypt/src/sp_c32.c .generated_files/flags/default/baea2952ab6b37eb6e92b8ef2417917e336b86b8 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_c32.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_c32.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/sp_c32.o.d" -o ${OBJECTDIR}/_ext/1946630766/sp_c32.o ../../../../lib/wolfssl/wolfcrypt/src/sp_c32.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/sp_int.o: ../../../../lib/wolfssl/wolfcrypt/src/sp_int.c .generated_files/flags/default/2ebf72c3f667e9dbeb3bc7523b17b1df9750d860 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_int.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/sp_int.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/sp_int.o.d" -o ${OBJECTDIR}/_ext/1946630766/sp_int.o ../../../../lib/wolfssl/wolfcrypt/src/sp_int.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/wc_port.o: ../../../../lib/wolfssl/wolfcrypt/src/wc_port.c .generated_files/flags/default/3ff2284389b562474fe7e0ae3f67384eaf363d06 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/wc_port.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/wc_port.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/wc_port.o.d" -o ${OBJECTDIR}/_ext/1946630766/wc_port.o ../../../../lib/wolfssl/wolfcrypt/src/wc_port.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1946630766/wolfmath.o: ../../../../lib/wolfssl/wolfcrypt/src/wolfmath.c .generated_files/flags/default/8dd1576c1da4fa28af0b4fffbea6e87903e504da .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1946630766"
@${RM} ${OBJECTDIR}/_ext/1946630766/wolfmath.o.d
@${RM} ${OBJECTDIR}/_ext/1946630766/wolfmath.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1946630766/wolfmath.o.d" -o ${OBJECTDIR}/_ext/1946630766/wolfmath.o ../../../../lib/wolfssl/wolfcrypt/src/wolfmath.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/boot_arm.o: ../../../../src/boot_arm.c .generated_files/flags/default/9e223f514d85604cc70f84aeb5c7e6ed5de8049f .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/boot_arm.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/boot_arm.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/boot_arm.o.d" -o ${OBJECTDIR}/_ext/671464796/boot_arm.o ../../../../src/boot_arm.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/image.o: ../../../../src/image.c .generated_files/flags/default/31b30afe69d73463d858b26e56fec2eab871301b .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/image.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/image.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/image.o.d" -o ${OBJECTDIR}/_ext/671464796/image.o ../../../../src/image.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/libwolfboot.o: ../../../../src/libwolfboot.c .generated_files/flags/default/aeb1a54bb763f1bd5e7d11efd3adc9be1dfdfabf .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/libwolfboot.o.d" -o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ../../../../src/libwolfboot.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/loader.o: ../../../../src/loader.c .generated_files/flags/default/28e2276d70e6f317b823554c2e660f51957c3a1f .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/loader.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/loader.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/loader.o.d" -o ${OBJECTDIR}/_ext/671464796/loader.o ../../../../src/loader.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/string.o: ../../../../src/string.c .generated_files/flags/default/c4378132ca7cb44a57ff6fad1a7651c9859159f5 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/string.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/string.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/string.o.d" -o ${OBJECTDIR}/_ext/671464796/string.o ../../../../src/string.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o: ../../../../src/update_flash_hwswap.c .generated_files/flags/default/4b5af4ba0742a8a1d247fa5010d591eabd1a9c02 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o.d" -o ${OBJECTDIR}/_ext/671464796/update_flash_hwswap.o ../../../../src/update_flash_hwswap.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671475885/same51.o: ../../../../hal/same51.c .generated_files/flags/default/e4c0da3a201f4947e16f6df2afb2384696c12dfc .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671475885"
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o.d
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/671475885/same51.o.d" -o ${OBJECTDIR}/_ext/671475885/same51.o ../../../../hal/same51.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1853860402/keystore.o: ../../test/keystore.c .generated_files/flags/default/3086ea5bce91a81ee3681489448ee5a0551e7bf0 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1853860402"
@${RM} ${OBJECTDIR}/_ext/1853860402/keystore.o.d
@${RM} ${OBJECTDIR}/_ext/1853860402/keystore.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -D__WOLFBOOT -DWOLFBOOT_SIGN_ECC384 -DDUALBANK_SWAP=1 -DWOLFBOOT_HASH_SHA256 -DIMAGE_HEADER_SIZE=512 -DWOLFBOOT_ARCH_ARM -DTARGET_same51 -DWOLFBOOT_DUALBOOT -DWOLFSSL_USER_SETTINGS -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include/wolfboot" -I"../../../../include/MPLAB" -I"../../../../lib/wolfssl" -I"../../../../include" -MP -MMD -MF "${OBJECTDIR}/_ext/1853860402/keystore.o.d" -o ${OBJECTDIR}/_ext/1853860402/keystore.o ../../test/keystore.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: compileCPP
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: link
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ../../../../hal/same51.ld
@${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -g -mprocessor=$(MP_PROCESSOR_OPTION) -mno-device-startup-code -o ${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D=__DEBUG_D,--defsym=_min_heap_size=512,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,${DISTDIR}/memoryfile.xml -mdfp="${DFP_DIR}"
else
${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ../../../../hal/same51.ld
@${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -mno-device-startup-code -o ${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=_min_heap_size=512,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,${DISTDIR}/memoryfile.xml -mdfp="${DFP_DIR}"
${MP_CC_DIR}/xc32-bin2hex ${DISTDIR}/wolfboot-same51.dualbank.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}
endif
# Subprojects
.build-subprojects:
# Subprojects
.clean-subprojects:
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${OBJECTDIR}
${RM} -r ${DISTDIR}
# Enable dependency checking
.dep.inc: .depcheck-impl
DEPFILES=$(wildcard ${POSSIBLE_DEPFILES})
ifneq (${DEPFILES},)
include ${DEPFILES}
endif

View File

@ -0,0 +1,13 @@
#
#Thu Feb 15 09:28:13 CET 2024
default.languagetoolchain.version=4.35
default.Pack.dfplocation=/opt/microchip/mplabx/v6.15/packs/Microchip/SAME51_DFP/3.7.242
conf.ids=default
default.languagetoolchain.dir=/opt/microchip/xc32/v4.35/bin
default.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=e989febc09d7cc672934350596f7f1d2
host.id=130a-gnot-23
default.platformTool.md5=null
configurations-xml=7935fecede17ee8833df09129a7dba38
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=e62346c0c0ecee2637e613b49cb7b7fa
proj.dir=/home/dan/src/wolfboot-mplab-test/IDE/MPLAB/bootloader/wolfboot-same51.dualbank.X
host.platform=linux

View File

@ -0,0 +1,69 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a pre- and a post- target defined where you can add customization code.
#
# This makefile implements macros and targets common to all configurations.
#
# NOCDDL
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
# and .clean-reqprojects-conf unless SUB has the value 'no'
SUB_no=NO
SUBPROJECTS=${SUB_${SUB}}
BUILD_SUBPROJECTS_=.build-subprojects
BUILD_SUBPROJECTS_NO=
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
CLEAN_SUBPROJECTS_=.clean-subprojects
CLEAN_SUBPROJECTS_NO=
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
# Project Name
PROJECTNAME=wolfboot-same51.dualbank.X
# Active Configuration
DEFAULTCONF=default
CONF=${DEFAULTCONF}
# All Configurations
ALLCONFS=default
# build
.build-impl: .build-pre
${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf
# clean
.clean-impl: .clean-pre
${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf
# clobber
.clobber-impl: .clobber-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean
# all
.all-impl: .all-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build
# dependency checking support
.depcheck-impl:
# @echo "# This code depends on make tool being used" >.dep.inc
# @if [ -n "${MAKE_VERSION}" ]; then \
# echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
# echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
# echo "include \$${DEPFILES}" >>.dep.inc; \
# echo "endif" >>.dep.inc; \
# else \
# echo ".KEEP_STATE:" >>.dep.inc; \
# echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
# fi

View File

@ -0,0 +1,37 @@
#
# Generated Makefile - do not edit!
#
#
# This file contains information about the location of compilers and other tools.
# If you commmit this file into your revision control server, you will be able to
# to checkout the project and build it from the command line with make. However,
# if more than one person works on the same project, then this file might show
# conflicts since different users are bound to have compilers in different places.
# In that case you might choose to not commit this file and let MPLAB X recreate this file
# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at
# least once so the file gets created and the project can be built. Finally, you can also
# avoid using this file at all if you are only building from the command line with make.
# You can invoke make with the values of the macros:
# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
#
PATH_TO_IDE_BIN=/opt/microchip/mplabx/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/
# Adding MPLAB X bin directory to path.
PATH:=/opt/microchip/mplabx/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
# Path to java used to run MPLAB X when this makefile was created
MP_JAVA_PATH="/opt/microchip/mplabx/v6.15/sys/java/zulu8.64.0.19-ca-fx-jre8.0.345-linux_x64/bin/"
OS_CURRENT="$(shell uname -s)"
MP_CC="/opt/microchip/xc32/v4.35/bin/xc32-gcc"
MP_CPPC="/opt/microchip/xc32/v4.35/bin/xc32-g++"
# MP_BC is not defined
MP_AS="/opt/microchip/xc32/v4.35/bin/xc32-as"
MP_LD="/opt/microchip/xc32/v4.35/bin/xc32-ld"
MP_AR="/opt/microchip/xc32/v4.35/bin/xc32-ar"
DEP_GEN=${MP_JAVA_PATH}java -jar "/opt/microchip/mplabx/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
MP_CC_DIR="/opt/microchip/xc32/v4.35/bin"
MP_CPPC_DIR="/opt/microchip/xc32/v4.35/bin"
# MP_BC_DIR is not defined
MP_AS_DIR="/opt/microchip/xc32/v4.35/bin"
MP_LD_DIR="/opt/microchip/xc32/v4.35/bin"
MP_AR_DIR="/opt/microchip/xc32/v4.35/bin"
CMSIS_DIR=/opt/microchip/mplabx/v6.15/packs/arm/CMSIS/5.4.0
DFP_DIR=/opt/microchip/mplabx/v6.15/packs/Microchip/SAME51_DFP/3.7.242

View File

@ -0,0 +1,10 @@
#
# Generated - do not edit!
#
# NOCDDL
#
CND_BASEDIR=`pwd`
# default configuration
CND_ARTIFACT_DIR_default=dist/default/production
CND_ARTIFACT_NAME_default=wolfboot-same51.dualbank.X.production.hex
CND_ARTIFACT_PATH_default=dist/default/production/wolfboot-same51.dualbank.X.production.hex

View File

@ -0,0 +1,334 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<logicalFolder name="root" displayName="root" projectFiles="true">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
projectFiles="true">
<logicalFolder name="config" displayName="config" projectFiles="true">
<logicalFolder name="default" displayName="default" projectFiles="true">
<logicalFolder name="peripheral" displayName="peripheral" projectFiles="true">
<logicalFolder name="clock" displayName="clock" projectFiles="true">
<itemPath>../src/config/default/peripheral/clock/plib_clock.h</itemPath>
</logicalFolder>
<logicalFolder name="cmcc" displayName="cmcc" projectFiles="true">
<itemPath>../src/config/default/peripheral/cmcc/plib_cmcc.h</itemPath>
</logicalFolder>
<logicalFolder name="nvic" displayName="nvic" projectFiles="true">
<itemPath>../src/config/default/peripheral/nvic/plib_nvic.h</itemPath>
</logicalFolder>
<logicalFolder name="port" displayName="port" projectFiles="true">
<itemPath>../src/config/default/peripheral/port/plib_port.h</itemPath>
</logicalFolder>
</logicalFolder>
<itemPath>../src/config/default/definitions.h</itemPath>
<itemPath>../src/config/default/device_vectors.h</itemPath>
<itemPath>../src/config/default/interrupts.h</itemPath>
<itemPath>../src/config/default/toolchain_specifics.h</itemPath>
<itemPath>../src/config/default/device_cache.h</itemPath>
</logicalFolder>
</logicalFolder>
</logicalFolder>
<logicalFolder name="ExternalFiles"
displayName="Important Files"
projectFiles="true">
<itemPath>Makefile</itemPath>
<itemPath>wolfboot-same51.dualbank.mc3</itemPath>
</logicalFolder>
<logicalFolder name="LinkerScript"
displayName="Linker Files"
projectFiles="true">
<logicalFolder name="config" displayName="config" projectFiles="true">
<logicalFolder name="default" displayName="default" projectFiles="true">
</logicalFolder>
</logicalFolder>
<itemPath>../../../../hal/same51.ld</itemPath>
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
projectFiles="true">
<logicalFolder name="f1" displayName="wolfcrypt" projectFiles="true">
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/asn.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/ecc.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/hash.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/memory.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/sha256.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/sp_c32.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/sp_int.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/wc_port.c</itemPath>
<itemPath>../../../../lib/wolfssl/wolfcrypt/src/wolfmath.c</itemPath>
</logicalFolder>
<itemPath>../src/config/default/pin_configurations.csv</itemPath>
<itemPath>../../../../src/boot_arm.c</itemPath>
<itemPath>../../../../src/image.c</itemPath>
<itemPath>../../../../src/libwolfboot.c</itemPath>
<itemPath>../../../../src/loader.c</itemPath>
<itemPath>../../../../src/string.c</itemPath>
<itemPath>../../../../src/update_flash_hwswap.c</itemPath>
<itemPath>../../../../hal/same51.c</itemPath>
<itemPath>../../test/keystore.c</itemPath>
</logicalFolder>
</logicalFolder>
<sourceRootList>
<Elem>../../../../src</Elem>
<Elem>../../../../hal</Elem>
<Elem>../../../../lib/wolfssl/wolfcrypt/src</Elem>
<Elem>../../test</Elem>
</sourceRootList>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="default" type="2">
<toolsSet>
<developmentServer>localhost</developmentServer>
<targetDevice>ATSAME51J20A</targetDevice>
<targetHeader></targetHeader>
<targetPluginBoard></targetPluginBoard>
<platformTool>noID</platformTool>
<languageToolchain>XC32</languageToolchain>
<languageToolchainVersion>4.35</languageToolchainVersion>
<platform>3</platform>
</toolsSet>
<packs>
<pack name="CMSIS" vendor="ARM" version="5.4.0"/>
<pack name="SAME51_DFP" vendor="Microchip" version="3.7.242"/>
</packs>
<ScriptingSettings>
</ScriptingSettings>
<compileType>
<linkerTool>
<linkerLibItems>
</linkerLibItems>
</linkerTool>
<archiverTool>
</archiverTool>
<loading>
<useAlternateLoadableFile>false</useAlternateLoadableFile>
<parseOnProdLoad>false</parseOnProdLoad>
<alternateLoadableFile></alternateLoadableFile>
</loading>
<subordinates>
</subordinates>
</compileType>
<makeCustomizationType>
<makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
<makeUseCleanTarget>false</makeUseCleanTarget>
<makeCustomizationPreStep></makeCustomizationPreStep>
<makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
<makeCustomizationPostStep></makeCustomizationPostStep>
<makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
<makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
<makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
</makeCustomizationType>
<C32>
<property key="additional-warnings" value="false"/>
<property key="addresss-attribute-use" value="false"/>
<property key="enable-app-io" value="false"/>
<property key="enable-omit-frame-pointer" value="false"/>
<property key="enable-symbols" value="true"/>
<property key="enable-unroll-loops" value="false"/>
<property key="exclude-floating-point" value="false"/>
<property key="extra-include-directories"
value="../src;../src/config/default;../src/packs/ATSAME51J20A_DFP;../src/packs/CMSIS/;../src/packs/CMSIS/CMSIS/Core/Include;..\..\..\..\include\wolfboot;..\..\..\..\include\MPLAB;..\..\..\..\lib\wolfssl;..\..\..\..\include"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="isolate-each-function" value="false"/>
<property key="make-warnings-into-errors" value="false"/>
<property key="optimization-level" value=""/>
<property key="place-data-into-section" value="false"/>
<property key="post-instruction-scheduling" value="default"/>
<property key="pre-instruction-scheduling" value="default"/>
<property key="preprocessor-macros"
value="__WOLFBOOT;WOLFBOOT_SIGN_ECC384;DUALBANK_SWAP=1;WOLFBOOT_HASH_SHA256;IMAGE_HEADER_SIZE=512;WOLFBOOT_ARCH_ARM;TARGET_same51;WOLFBOOT_DUALBOOT;WOLFSSL_USER_SETTINGS"/>
<property key="strict-ansi" value="false"/>
<property key="support-ansi" value="false"/>
<property key="tentative-definitions" value="-fno-common"/>
<property key="toplevel-reordering" value=""/>
<property key="unaligned-access" value=""/>
<property key="use-cci" value="false"/>
<property key="use-iar" value="false"/>
<property key="use-indirect-calls" value="false"/>
</C32>
<C32-AR>
<property key="additional-options-chop-files" value="false"/>
</C32-AR>
<C32-AS>
<property key="assembler-symbols" value=""/>
<property key="enable-symbols" value="true"/>
<property key="exclude-floating-point-library" value="false"/>
<property key="expand-macros" value="false"/>
<property key="extra-include-directories-for-assembler" value=""/>
<property key="extra-include-directories-for-preprocessor" value=""/>
<property key="false-conditionals" value="false"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="keep-locals" value="false"/>
<property key="list-assembly" value="false"/>
<property key="list-source" value="false"/>
<property key="list-symbols" value="false"/>
<property key="oXC32asm-list-to-file" value="false"/>
<property key="omit-debug-dirs" value="false"/>
<property key="omit-forms" value="false"/>
<property key="preprocessor-macros" value=""/>
<property key="warning-level" value=""/>
</C32-AS>
<C32-CO>
<property key="coverage-enable" value=""/>
<property key="stack-guidance" value="false"/>
</C32-CO>
<C32-LD>
<property key="additional-options-use-response-files" value="false"/>
<property key="additional-options-write-sla" value="false"/>
<property key="allocate-dinit" value="false"/>
<property key="code-dinit" value="false"/>
<property key="ebase-addr" value=""/>
<property key="enable-check-sections" value="false"/>
<property key="exclude-floating-point-library" value="false"/>
<property key="exclude-standard-libraries" value="false"/>
<property key="extra-lib-directories" value=""/>
<property key="fill-flash-options-addr" value=""/>
<property key="fill-flash-options-const" value=""/>
<property key="fill-flash-options-how" value="0"/>
<property key="fill-flash-options-inc-const" value="1"/>
<property key="fill-flash-options-increment" value=""/>
<property key="fill-flash-options-seq" value=""/>
<property key="fill-flash-options-what" value="0"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-cross-reference-file" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="heap-size" value="512"/>
<property key="input-libraries" value=""/>
<property key="kseg-length" value=""/>
<property key="kseg-origin" value=""/>
<property key="linker-symbols" value=""/>
<property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>
<property key="no-device-startup-code" value="true"/>
<property key="no-startup-files" value="false"/>
<property key="oXC32ld-extra-opts" value=""/>
<property key="optimization-level" value=""/>
<property key="preprocessor-macros" value=""/>
<property key="remove-unused-sections" value="false"/>
<property key="report-memory-usage" value="false"/>
<property key="serial-length" value=""/>
<property key="serial-origin" value=""/>
<property key="stack-size" value=""/>
<property key="symbol-stripping" value=""/>
<property key="trace-symbols" value=""/>
<property key="warn-section-align" value="false"/>
</C32-LD>
<C32CPP>
<property key="additional-warnings" value="false"/>
<property key="addresss-attribute-use" value="false"/>
<property key="check-new" value="false"/>
<property key="eh-specs" value="true"/>
<property key="enable-app-io" value="false"/>
<property key="enable-omit-frame-pointer" value="false"/>
<property key="enable-symbols" value="true"/>
<property key="enable-unroll-loops" value="false"/>
<property key="exceptions" value="true"/>
<property key="exclude-floating-point" value="false"/>
<property key="extra-include-directories"
value="../src;../src/config/default;../src/packs/ATSAME51J20A_DFP;../src/packs/CMSIS/;../src/packs/CMSIS/CMSIS/Core/Include"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="isolate-each-function" value="false"/>
<property key="make-warnings-into-errors" value="false"/>
<property key="optimization-level" value=""/>
<property key="place-data-into-section" value="false"/>
<property key="post-instruction-scheduling" value="default"/>
<property key="pre-instruction-scheduling" value="default"/>
<property key="preprocessor-macros" value=""/>
<property key="rtti" value="true"/>
<property key="strict-ansi" value="false"/>
<property key="toplevel-reordering" value=""/>
<property key="unaligned-access" value=""/>
<property key="use-cci" value="false"/>
<property key="use-iar" value="false"/>
<property key="use-indirect-calls" value="false"/>
</C32CPP>
<C32Global>
<property key="common-include-directories" value=""/>
<property key="gp-relative-option" value=""/>
<property key="legacy-libc" value="false"/>
<property key="mdtcm" value=""/>
<property key="mitcm" value=""/>
<property key="mstacktcm" value="false"/>
<property key="omit-pack-options" value="1"/>
<property key="relaxed-math" value="false"/>
<property key="save-temps" value="false"/>
<property key="stack-smashing" value=""/>
<property key="wpo-lto" value="false"/>
</C32Global>
<Tool>
<property key="AutoSelectMemRanges" value="auto"/>
<property key="arm.use_vtor" value="false"/>
<property key="arm.vtor_adr" value="exception_table"/>
<property key="communication.adaptivespeed" value="false"/>
<property key="communication.autoselectspeed" value="true"/>
<property key="communication.interface" value="swd"/>
<property key="communication.speed" value="4"/>
<property key="debugoptions.debug-startup" value="Use system settings"/>
<property key="debugoptions.reset-behaviour" value="Use system settings"/>
<property key="event.recorder.debugger.behavior" value="Running"/>
<property key="event.recorder.enabled" value="false"/>
<property key="event.recorder.scvd.files" value=""/>
<property key="jlink.override" value=""/>
<property key="lastid" value=""/>
<property key="loader.board_file" value="${ProjectDir}/board.xboard"/>
<property key="memories.bootflash" value="true"/>
<property key="memories.configurationmemory" value="true"/>
<property key="memories.eeprom" value="true"/>
<property key="memories.id" value="true"/>
<property key="memories.instruction.ram" value="true"/>
<property key="memories.instruction.ram.ranges"
value="${memories.instruction.ram.ranges.default}"/>
<property key="memories.programmemory" value="true"/>
<property key="memories.programmemory.ranges" value="0x0-0xfffff"/>
<property key="programoptions.eraseb4program" value="false"/>
<property key="programoptions.preservebootflash" value="false"/>
<property key="programoptions.preserveprogrammemory" value="false"/>
<property key="programoptions.preserveprogrammemory.ranges" value="0x0-0xfffff"/>
<property key="programoptions.resetafterprogram" value="true"/>
<property key="script.has_reset" value="true"/>
<property key="script.log_level" value="1"/>
<property key="script.reset_delay" value="0"/>
<property key="script.show_output" value="false"/>
<property key="x.erase.clearprot" value="true"/>
</Tool>
<jlink>
<property key="AutoSelectMemRanges" value="auto"/>
<property key="arm.use_vtor" value="false"/>
<property key="arm.vtor_adr" value="exception_table"/>
<property key="communication.adaptivespeed" value="false"/>
<property key="communication.autoselectspeed" value="true"/>
<property key="communication.interface" value="swd"/>
<property key="communication.speed" value="4"/>
<property key="debugoptions.debug-startup" value="Use system settings"/>
<property key="debugoptions.reset-behaviour" value="Use system settings"/>
<property key="event.recorder.debugger.behavior" value="Running"/>
<property key="event.recorder.enabled" value="false"/>
<property key="event.recorder.scvd.files" value=""/>
<property key="jlink.override" value=""/>
<property key="lastid" value=""/>
<property key="loader.board_file" value="${ProjectDir}/board.xboard"/>
<property key="memories.bootflash" value="true"/>
<property key="memories.configurationmemory" value="true"/>
<property key="memories.eeprom" value="true"/>
<property key="memories.id" value="true"/>
<property key="memories.instruction.ram" value="true"/>
<property key="memories.instruction.ram.ranges"
value="${memories.instruction.ram.ranges.default}"/>
<property key="memories.programmemory" value="true"/>
<property key="memories.programmemory.ranges" value="0x0-0xfffff"/>
<property key="programoptions.eraseb4program" value="false"/>
<property key="programoptions.preservebootflash" value="false"/>
<property key="programoptions.preserveprogrammemory" value="false"/>
<property key="programoptions.preserveprogrammemory.ranges" value="0x0-0xfffff"/>
<property key="programoptions.resetafterprogram" value="true"/>
<property key="script.has_reset" value="true"/>
<property key="script.log_level" value="1"/>
<property key="script.reset_delay" value="0"/>
<property key="script.show_output" value="false"/>
<property key="x.erase.clearprot" value="true"/>
</jlink>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<projectmakefile>Makefile</projectmakefile>
<defaultConf>0</defaultConf>
<confs>
<conf name="default" type="2">
<platformToolSN>noToolString</platformToolSN>
<languageToolchainDir>/opt/microchip/xc32/v4.35/bin</languageToolchainDir>
<mdbdebugger version="1">
<placeholder1>place holder 1</placeholder1>
<placeholder2>place holder 2</placeholder2>
</mdbdebugger>
<runprofile version="6">
<args></args>
<rundir></rundir>
<buildfirst>true</buildfirst>
<console-type>0</console-type>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group/>
</open-files>
</project-private>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>com.microchip.mplab.nbide.embedded.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>wolfboot-same51.dualbank</name>
<creation-uuid>9665afff-1e3b-4391-aaf1-cf963e78df7c</creation-uuid>
<make-project-type>0</make-project-type>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<make-dep-projects/>
<sourceRootList>
<sourceRootElem>../../../../src</sourceRootElem>
<sourceRootElem>../../../../hal</sourceRootElem>
<sourceRootElem>../../../../lib/wolfssl/wolfcrypt/src</sourceRootElem>
<sourceRootElem>../../test</sourceRootElem>
</sourceRootList>
<confList>
<confElem>
<name>default</name>
<type>2</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

View File

@ -0,0 +1,125 @@
<config configName="default" projectName="wolfboot-same51.dualbank" configVersion="1.1" device="ATSAME51J20A" deviceLibraryClass="com.microchip.mcc.harmony.Harmony3Library" coreVersion="5.7.0">
<usedPackages class="java.util.ArrayList"/>
<usedClasses class="java.util.TreeMap">
<entry>
<string>core</string>
<string>class com.microchip.mcc.harmony.HarmonyModule</string>
</entry>
</usedClasses>
<usedLibraries class="java.util.ArrayList">
<ILibraryFile class="com.microchip.mcc.core.library.BaseLibraryFile" libraryClass="com.microchip.mcc.harmony.Harmony3Library" version="1.5.1"/>
</usedLibraries>
<tokenMap class="java.util.TreeMap">
<entry>
<key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="core" name="!@#harmonyUserData"/>
<value>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;UserData&gt;
&lt;UserData dnOrder=&quot;0&quot;&gt;
&lt;GraphSettings canvasHeight=&quot;90&quot; canvasWidth=&quot;646&quot; dnOrder=&quot;0&quot;/&gt;
&lt;PowerProfiles dnOrder=&quot;1&quot;&gt;
&lt;Profile dnOrder=&quot;0&quot; id=&quot;profile0&quot; name=&quot;Main&quot;/&gt;
&lt;/PowerProfiles&gt;
&lt;ComponentGraph dnOrder=&quot;2&quot; id=&quot;__ROOTVIEW&quot;&gt;
&lt;ElementPositions dnOrder=&quot;0&quot;&gt;
&lt;ElementPosition dnOrder=&quot;0&quot; id=&quot;core&quot; x=&quot;79&quot; y=&quot;35&quot;/&gt;
&lt;/ElementPositions&gt;
&lt;/ComponentGraph&gt;
&lt;/UserData&gt;
&lt;/UserData&gt;
</value>
</entry>
<entry>
<key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="core" name="#&amp;__MCC_Group_Parrent_id"/>
<value>__ROOTVIEW</value>
</entry>
</tokenMap>
<generatedFileHashHistoryMap class="java.util.TreeMap">
<entry>
<file>..\src\config\default\ATSAME51J20A.ld</file>
<hash>15cc39143f19337d981ec510fb70d42c944cd8b2cf96c6fe85f9c053341dfae2</hash>
</entry>
<entry>
<file>..\src\config\default\definitions.h</file>
<hash>a4a5a502bbcae342761e0f1f939f346fae85b9dbaa35ae40af75c2f15408a977</hash>
</entry>
<entry>
<file>..\src\config\default\device_cache.h</file>
<hash>e2914501b361bbc93a56d6915b1bf4fac00277e61f31fdee87a587bc15dea5b6</hash>
</entry>
<entry>
<file>..\src\config\default\device_vectors.h</file>
<hash>73940897ea4570f75fde55f65cc755757d1989db12e039b9960b0de07853cb45</hash>
</entry>
<entry>
<file>..\src\config\default\exceptions.c</file>
<hash>1fd383302c4cdf1cc6a804aa03b8abe8c1e5e5e9ea3450438c34dcea441e6b34</hash>
</entry>
<entry>
<file>..\src\config\default\initialization.c</file>
<hash>24706670006feed4de04af4bfd110715cf56b74ecffa06c16c35f7f6ca71c27c</hash>
</entry>
<entry>
<file>..\src\config\default\interrupts.c</file>
<hash>3bc333af2886370b608c63acb457051702f74b5c62c95a205ffe6aafaf39d6d2</hash>
</entry>
<entry>
<file>..\src\config\default\interrupts.h</file>
<hash>10080c41767fdbcc6dea33e17ea2f3f5d3646a1c55bb9114e603adbdd306bbc9</hash>
</entry>
<entry>
<file>..\src\config\default\libc_syscalls.c</file>
<hash>88bb2e34c939601b5b7ad076556e3ee0fcedf388436b8cddb6d6fd3e9d07472f</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\clock\plib_clock.c</file>
<hash>2e7cab9007e403576bfc88f2d08162d8925ddfec7720bc840dbcd530db9b747c</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\clock\plib_clock.h</file>
<hash>59322a99314cb17c6b595d51d18769582e61189140188aa053acfdc671487f21</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\cmcc\plib_cmcc.c</file>
<hash>3b03e762c5515130718e7694736be6c25984ff8078c84d21a3fb9eba54f68e5d</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\cmcc\plib_cmcc.h</file>
<hash>89b940242bfa0ecdba3ac53666c5996e25fab712227d37d2d6881c8a86b5f497</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\nvic\plib_nvic.c</file>
<hash>3d89f9371ce4e519ebca69b0bda48169332067a95f4dbfdb90c6131ced1470c4</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\nvic\plib_nvic.h</file>
<hash>81e813a093101d546799e00723cbf7245e2d18471fa51c8d130c5809cecca03e</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\port\plib_port.c</file>
<hash>989c0672607ff55b62b6f7d7733b24d7b4b2f9b0d95959ba29ba44a85a2a0a9b</hash>
</entry>
<entry>
<file>..\src\config\default\peripheral\port\plib_port.h</file>
<hash>6f4efd039ad6c9647412bc4496f2707909de692e43efdc176e9147f0312bf10b</hash>
</entry>
<entry>
<file>..\src\config\default\pin_configurations.csv</file>
<hash>f7de9214fce4b79d319cc5fd5497be30a2a730d0294a413c8b820c6a9c411a7f</hash>
</entry>
<entry>
<file>..\src\config\default\startup_xc32.c</file>
<hash>f374b97d65f92553f1b75d8c9239b8b0f8581c710f78ea47b02c7f6fa6f74c74</hash>
</entry>
<entry>
<file>..\src\config\default\stdio\xc32_monitor.c</file>
<hash>858f8710d4287200a5ee7f3b3ad7c24f505aed9c05c16956ab0ff9f7bb162a6a</hash>
</entry>
<entry>
<file>..\src\config\default\toolchain_specifics.h</file>
<hash>6fc0551b0fa3362678b3d7a227386fafa343140d31e4da3ad4af972e61cd0acb</hash>
</entry>
<entry>
<file>..\src\main.c</file>
<hash>d3c233d419e6304bfacbafc18cc68c0f5c26e365f23b20ea40ccfac458f664c5</hash>
</entry>
</generatedFileHashHistoryMap>
</config>

View File

@ -0,0 +1,126 @@
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
ENTRY(isr_reset)
# define ROM_ORIGIN 0x8000 + 0x200
# define ROM_LENGTH 0x100000
# define RAM_ORIGIN 0x20000000
# define RAM_LENGTH 0x40000
# define TCM_ORIGIN 0x3000000
#endif
#ifndef __XC32_TCM_LENGTH
# define __XC32_TCM_LENGTH 0x0
#elif (defined(__XC32_TCM_LENGTH) && __XC32_TCM_LENGTH != 0x0 && __XC32_TCM_LENGTH != 0x800 && __XC32_TCM_LENGTH != 0xc00 && __XC32_TCM_LENGTH != 0x1000)
# warning Non-standard ITCM length, using default 0x1000
# undef __XC32_TCM_LENGTH
# define __XC32_TCM_LENGTH 0x1000
#endif
#ifndef BKUPRAM_ORIGIN
# define BKUPRAM_ORIGIN 0x47000000
#endif
#ifndef BKUPRAM_LENGTH
# define BKUPRAM_LENGTH 0x2000
#elif (BKUPRAM_LENGTH > 0x2000)
# error BKUPRAM_LENGTH is greater than the max size of 0x2000
#endif
MEMORY
{
FLASH (LRX) : ORIGIN = ROM_ORIGIN, LENGTH = (ROM_LENGTH - 0x8200)
RAM (WX!R) : ORIGIN = RAM_ORIGIN, LENGTH = RAM_LENGTH
TCM (WX) : ORIGIN = TCM_ORIGIN, LENGTH = __XC32_TCM_LENGTH
BRAM : ORIGIN = BKUPRAM_ORIGIN, LENGTH = BKUPRAM_LENGTH
}
SECTIONS
{
.vectors :
{
. = ALIGN(4);
_sfixed = .;
KEEP(*(.vectors .vectors.* .vectors_default .vectors_default.*))
KEEP(*(.isr_vector))
KEEP(*(.reset*))
KEEP(*(.after_vectors))
} > FLASH
.text :
{
. = ALIGN(4);
*(.glue_7t) *(.glue_7)
*(.gnu.linkonce.r.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(4);
KEEP(*(.init))
. = ALIGN(4);
__preinit_array_start = .;
KEEP (*(.preinit_array))
__preinit_array_end = .;
. = ALIGN(4);
__init_array_start = .;
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
__init_array_end = .;
. = ALIGN(0x4);
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*crtend.o(.ctors))
. = ALIGN(4);
KEEP(*(.fini))
. = ALIGN(4);
__fini_array_start = .;
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
__fini_array_end = .;
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*crtend.o(.dtors))
. = ALIGN(4);
_efixed = .;
} > FLASH
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > FLASH
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
.bss (NOLOAD) :
{
. = ALIGN(4);
__bss_start__ = .;
_sbss = . ;
_szero = .;
*(COMMON)
. = ALIGN(4);
__bss_end__ = .;
_ebss = . ;
_ezero = .;
} > RAM
. = ALIGN(4);
_end = . ;
_ram_end_ = ORIGIN(RAM) + LENGTH(RAM) -1 ;
.bkupram_bss :
{
*(.bkupram_bss .bkupram_bss.*)
*(.pbss .pbss.*)
} > BRAM
}
__rom_end = ORIGIN(FLASH) + LENGTH(FLASH);
__ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -0,0 +1,2 @@
/* Empty file. */

View File

@ -0,0 +1,113 @@
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL
# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
RANLIB=ranlib
# build
build: .build-post
.build-pre:
# Add your pre 'build' code here...
.build-post: .build-impl
# Add your post 'build' code here...
# clean
clean: .clean-post
.clean-pre:
# Add your pre 'clean' code here...
# WARNING: the IDE does not call this target since it takes a long time to
# simply run make. Instead, the IDE removes the configuration directories
# under build and dist directly without calling make.
# This target is left here so people can do a clean when running a clean
# outside the IDE.
.clean-post: .clean-impl
# Add your post 'clean' code here...
# clobber
clobber: .clobber-post
.clobber-pre:
# Add your pre 'clobber' code here...
.clobber-post: .clobber-impl
# Add your post 'clobber' code here...
# all
all: .all-post
.all-pre:
# Add your pre 'all' code here...
.all-post: .all-impl
# Add your post 'all' code here...
# help
help: .help-post
.help-pre:
# Add your pre 'help' code here...
.help-post: .help-impl
# Add your post 'help' code here...
# include project implementation makefile
include nbproject/Makefile-impl.mk
# include project make variables
include nbproject/Makefile-variables.mk

View File

@ -0,0 +1,181 @@
/* app.c
*
* Copyright (C) 2024 wolfSSL Inc.
*
* This file is part of wolfBoot.
*
* wolfBoot is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfBoot is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/**
* @file app.c
* @brief test update application for microchip targets, over SERCOM5
* verification.
*/
#include "config/default/definitions.h"
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <wolfboot/wolfboot.h>
#include "hal.h"
#define HAVE_LIBWOLFBOOT 1
#define USART_BUFFER_SZ (16)
static const char UPDATE_ERR = '!';
static const char UPDATE_START = '*';
static const char UPDATE_ACK = '#';
void APP_Initialize(void) {
int i;
uint32_t ver;
uint8_t *v_array = (uint8_t *) & ver;
unsigned char cmd;
SERCOM5_USART_Enable();
#ifdef HAVE_LIBWOLFBOOT
wolfBoot_success();
ver = wolfBoot_current_firmware_version();
#else
#define WOLFBOOT_SECTOR_SIZE (0x8000)
#define WOLFBOOT_PARTITION_SIZE (0x20000)
#define WOLFBOOT_PARTITION_UPDATE_ADDRESS (0x088000)
ver = 1U;
#endif
/* Send command to start the update */
cmd = UPDATE_START;
SERCOM5_USART_Write(&cmd, 1);
/* Send current version */
for (i = 3; i >= 0; i--) {
SERCOM5_USART_Write(&v_array[i], 1);
}
/* Ready to receive the update now */
}
static void ack(uint32_t _off)
{
uint8_t *off = (uint8_t *)(&_off);
unsigned char cmd = UPDATE_ACK;
SERCOM5_USART_Write(&cmd, 1);
SERCOM5_USART_Write(off, 4);
}
static int check(uint8_t *pkt, int size)
{
int i;
uint16_t c = 0;
uint16_t c_rx = *((uint16_t *)(pkt + 2));
uint16_t *p = (uint16_t *)(pkt + 4);
for (i = 0; i < ((size - 4) >> 1); i++)
c += p[i];
if (c == c_rx)
return 0;
return -1;
}
static uint8_t rxbuf[USART_BUFFER_SZ];
#define PAGESIZE 256
static uint8_t page[PAGESIZE];
void APP_Tasks(void) {
uint32_t r_total = 0;
uint32_t tot_len = 0, tlen = 0;
uint32_t next_seq = 0, recv_seq = 0;
hal_flash_unlock();
while (1) {
int r;
r_total = 0;
do {
/* Serial update packages start with "0xA5 0x5A"
*
* Loop until synchronized
*/
while (r_total < 2) {
r = SERCOM5_USART_Read(&rxbuf[r_total], 1);
if (r == 1)
r_total++;
if ((r_total == 2) && ((rxbuf[0] != 0xA5) || rxbuf[1] != 0x5A)) {
r_total = 0;
continue;
}
}
r = SERCOM5_USART_Read(&rxbuf[r_total], 1);
if (r > 0)
r_total += r;
/* Break if tot_len is received from the host */
if ((tot_len == 0) && r_total == 2 + sizeof (uint32_t))
break;
/* Break if data received is bigger than the total len */
if ((r_total > 8) && (tot_len <= ((r_total - 8) + next_seq)))
break;
} while (r_total < USART_BUFFER_SZ);
/* Set total length based on the first packet received */
if (tot_len == 0) {
tlen = rxbuf[2] + (rxbuf[3] << 8) + (rxbuf[4] << 16) + (rxbuf[5] << 24);
if (tlen > WOLFBOOT_PARTITION_SIZE - 8) {
/* Invalid total length: abort transfer + restart */
unsigned char cmd = UPDATE_ERR;
SERCOM5_USART_Write(&cmd, 1);
SERCOM5_USART_Write(&cmd, 1);
SERCOM5_USART_Write(&cmd, 1);
cmd = UPDATE_START;
SERCOM5_USART_Write(&cmd, 1);
recv_seq = 0;
tot_len = 0;
continue;
}
tot_len = tlen;
/* (acknowledging '0' starts the actual transfer) */
ack(0);
continue;
}
if (check(rxbuf, r_total) < 0) {
ack(next_seq);
continue;
}
recv_seq = rxbuf[4] + (rxbuf[5] << 8) + (rxbuf[6] << 16) + (rxbuf[7] << 24);
if (recv_seq == next_seq) {
int psize = r_total - 8;
int page_idx = recv_seq % PAGESIZE;
memcpy(&page[recv_seq % PAGESIZE], rxbuf + 8, psize);
page_idx += psize;
if ((page_idx == PAGESIZE) || (next_seq + psize >= tot_len)) {
uint32_t dst = (WOLFBOOT_PARTITION_UPDATE_ADDRESS + recv_seq + psize) - page_idx;
if ((dst % WOLFBOOT_SECTOR_SIZE) == 0) {
hal_flash_erase(dst, WOLFBOOT_SECTOR_SIZE);
}
hal_flash_write(dst, page, PAGESIZE);
memset(page, 0xFF, PAGESIZE);
}
next_seq += psize;
}
ack(next_seq);
if (next_seq >= tot_len) {
/* Update complete */
wolfBoot_update_trigger();
hal_flash_lock();
break;
}
}
/* Wait for reboot */
while (1)
;
}

View File

@ -0,0 +1,46 @@
/* main.c
*
* Copyright (C) 2024 wolfSSL Inc.
*
* This file is part of wolfBoot.
*
* wolfBoot is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfBoot is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#include <stddef.h> // Defines NULL
#include <stdbool.h> // Defines true
#include <stdlib.h> // Defines EXIT_FAILURE
#include "definitions.h" // SYS function prototypes
extern void APP_Initialize(void);
extern void APP_Tasks(void);
int main ( void )
{
/* Initialize all modules */
SYS_Initialize ( NULL );
APP_Initialize();
while ( true )
{
/* Maintain state machines of all polled MPLAB Harmony modules. */
SYS_Tasks ( );
APP_Tasks();
}
/* Execution should not come here during normal operation */
return ( EXIT_FAILURE );
}

View File

@ -0,0 +1,22 @@
# This file has been autogenerated by MPLAB Code Configurator. Please do not edit this file.
manifest_file_version: 1.0.0
project: test-usb-updater.same51
creation_date: 2024-02-15T10:21:42.729+01:00[Europe/Rome]
operating_system: Linux
mcc_mode: IDE
mcc_mode_version: v6.20
device_name: ATSAME51J20A
compiler: XC32 4.35
mcc_version: 5.5.0
mcc_core_version: 5.7.0
content_manager_version: 5.0.0
is_mcc_offline: false
is_using_prerelease_versions: false
mcc_content_registries: https://registry.npmjs.org/
device_library: {library_class: com.microchip.mcc.harmony.Harmony3Library, name: Harmony
V3, version: 1.5.1}
packs: {name: SAME51_DFP, version: 3.7.242}
modules:
- {name: csp, type: HARMONY, version: v3.18.2}
- {name: CMSIS_5, type: HARMONY, version: 5.9.0}

View File

@ -0,0 +1,22 @@
# This file has been autogenerated by MPLAB Code Configurator. Please do not edit this file.
manifest_file_version: 1.0.0
project: test-usb-updater.same51
creation_date: 2024-02-15T10:21:42.689+01:00[Europe/Rome]
operating_system: Linux
mcc_mode: IDE
mcc_mode_version: v6.20
device_name: ATSAME51J20A
compiler: XC32 4.35
mcc_version: 5.5.0
mcc_core_version: 5.7.0
content_manager_version: 5.0.0
is_mcc_offline: false
is_using_prerelease_versions: false
mcc_content_registries: https://registry.npmjs.org/
device_library: {library_class: com.microchip.mcc.harmony.Harmony3Library, name: Harmony
V3, version: 1.5.1}
packs: {name: SAME51_DFP, version: 3.7.242}
modules:
- {name: csp, type: HARMONY, version: v3.18.2}
- {name: CMSIS_5, type: HARMONY, version: 5.9.0}

View File

@ -0,0 +1,365 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Include project Makefile
ifeq "${IGNORE_LOCAL}" "TRUE"
# do not include local makefile. User is passing all local related variables already
else
include Makefile
# Include makefile containing local settings
ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk"
include nbproject/Makefile-local-default.mk
endif
endif
# Environment
MKDIR=mkdir -p
RM=rm -f
MV=mv
CP=cp
# Macros
CND_CONF=default
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
IMAGE_TYPE=debug
OUTPUT_SUFFIX=elf
DEBUGGABLE_SUFFIX=elf
FINAL_IMAGE=${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
else
IMAGE_TYPE=production
OUTPUT_SUFFIX=hex
DEBUGGABLE_SUFFIX=elf
FINAL_IMAGE=${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
endif
ifeq ($(COMPARE_BUILD), true)
COMPARISON_BUILD=-mafrlcsj
else
COMPARISON_BUILD=
endif
# Object Directory
OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
# Distribution Directory
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
# Source Files Quoted if spaced
SOURCEFILES_QUOTED_IF_SPACED=../src/config/default/peripheral/clock/plib_clock.c ../src/config/default/peripheral/cmcc/plib_cmcc.c ../src/config/default/peripheral/evsys/plib_evsys.c ../src/config/default/peripheral/nvic/plib_nvic.c ../src/config/default/peripheral/nvmctrl/plib_nvmctrl.c ../src/config/default/peripheral/port/plib_port.c ../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.c ../src/config/default/stdio/xc32_monitor.c ../src/config/default/startup_xc32.c ../src/config/default/libc_syscalls.c ../src/config/default/initialization.c ../src/config/default/exceptions.c ../src/config/default/interrupts.c ../../../../src/libwolfboot.c ../../../../hal/same51.c app.c main.c ../src/main.c
# Object Files Quoted if spaced
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/1984496892/plib_clock.o ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o ${OBJECTDIR}/_ext/1986646378/plib_evsys.o ${OBJECTDIR}/_ext/1865468468/plib_nvic.o ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o ${OBJECTDIR}/_ext/1865521619/plib_port.o ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o ${OBJECTDIR}/_ext/163028504/xc32_monitor.o ${OBJECTDIR}/_ext/1171490990/startup_xc32.o ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o ${OBJECTDIR}/_ext/1171490990/initialization.o ${OBJECTDIR}/_ext/1171490990/exceptions.o ${OBJECTDIR}/_ext/1171490990/interrupts.o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ${OBJECTDIR}/_ext/671475885/same51.o ${OBJECTDIR}/app.o ${OBJECTDIR}/main.o ${OBJECTDIR}/_ext/1360937237/main.o
POSSIBLE_DEPFILES=${OBJECTDIR}/_ext/1984496892/plib_clock.o.d ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o.d ${OBJECTDIR}/_ext/1986646378/plib_evsys.o.d ${OBJECTDIR}/_ext/1865468468/plib_nvic.o.d ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o.d ${OBJECTDIR}/_ext/1865521619/plib_port.o.d ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o.d ${OBJECTDIR}/_ext/163028504/xc32_monitor.o.d ${OBJECTDIR}/_ext/1171490990/startup_xc32.o.d ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o.d ${OBJECTDIR}/_ext/1171490990/initialization.o.d ${OBJECTDIR}/_ext/1171490990/exceptions.o.d ${OBJECTDIR}/_ext/1171490990/interrupts.o.d ${OBJECTDIR}/_ext/671464796/libwolfboot.o.d ${OBJECTDIR}/_ext/671475885/same51.o.d ${OBJECTDIR}/app.o.d ${OBJECTDIR}/main.o.d ${OBJECTDIR}/_ext/1360937237/main.o.d
# Object Files
OBJECTFILES=${OBJECTDIR}/_ext/1984496892/plib_clock.o ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o ${OBJECTDIR}/_ext/1986646378/plib_evsys.o ${OBJECTDIR}/_ext/1865468468/plib_nvic.o ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o ${OBJECTDIR}/_ext/1865521619/plib_port.o ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o ${OBJECTDIR}/_ext/163028504/xc32_monitor.o ${OBJECTDIR}/_ext/1171490990/startup_xc32.o ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o ${OBJECTDIR}/_ext/1171490990/initialization.o ${OBJECTDIR}/_ext/1171490990/exceptions.o ${OBJECTDIR}/_ext/1171490990/interrupts.o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ${OBJECTDIR}/_ext/671475885/same51.o ${OBJECTDIR}/app.o ${OBJECTDIR}/main.o ${OBJECTDIR}/_ext/1360937237/main.o
# Source Files
SOURCEFILES=../src/config/default/peripheral/clock/plib_clock.c ../src/config/default/peripheral/cmcc/plib_cmcc.c ../src/config/default/peripheral/evsys/plib_evsys.c ../src/config/default/peripheral/nvic/plib_nvic.c ../src/config/default/peripheral/nvmctrl/plib_nvmctrl.c ../src/config/default/peripheral/port/plib_port.c ../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.c ../src/config/default/stdio/xc32_monitor.c ../src/config/default/startup_xc32.c ../src/config/default/libc_syscalls.c ../src/config/default/initialization.c ../src/config/default/exceptions.c ../src/config/default/interrupts.c ../../../../src/libwolfboot.c ../../../../hal/same51.c app.c main.c ../src/main.c
# Pack Options
PACK_COMMON_OPTIONS=-I "${CMSIS_DIR}/CMSIS/Core/Include"
CFLAGS=
ASFLAGS=
LDLIBSOPTIONS=
############# Tool locations ##########################################
# If you copy a project from one host to another, the path where the #
# compiler is installed may be different. #
# If you open this project with MPLAB X in the new host, this #
# makefile will be regenerated and the paths will be corrected. #
#######################################################################
# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build
FIXDEPS=fixDeps
.build-conf: ${BUILD_SUBPROJECTS}
ifneq ($(INFORMATION_MESSAGE), )
@echo $(INFORMATION_MESSAGE)
endif
${MAKE} -f nbproject/Makefile-default.mk ${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
MP_PROCESSOR_OPTION=ATSAME51J20A
MP_LINKER_FILE_OPTION=,--script="../src/config/default/ATSAME51J20A.ld"
# ------------------------------------------------------------------------------------
# Rules for buildStep: assemble
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: assembleWithPreprocess
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: compile
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${OBJECTDIR}/_ext/1984496892/plib_clock.o: ../src/config/default/peripheral/clock/plib_clock.c .generated_files/flags/default/83b420e1cdcf270f1754b7eb8e0166171e87a7b8 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1984496892"
@${RM} ${OBJECTDIR}/_ext/1984496892/plib_clock.o.d
@${RM} ${OBJECTDIR}/_ext/1984496892/plib_clock.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1984496892/plib_clock.o.d" -o ${OBJECTDIR}/_ext/1984496892/plib_clock.o ../src/config/default/peripheral/clock/plib_clock.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1865131932/plib_cmcc.o: ../src/config/default/peripheral/cmcc/plib_cmcc.c .generated_files/flags/default/99807fdeeecf26a082172e71f0ce8450e2148fd9 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1865131932"
@${RM} ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o.d
@${RM} ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1865131932/plib_cmcc.o.d" -o ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o ../src/config/default/peripheral/cmcc/plib_cmcc.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1986646378/plib_evsys.o: ../src/config/default/peripheral/evsys/plib_evsys.c .generated_files/flags/default/b5ae65b6d446734cb6c2ba413579ad9b6e54e585 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1986646378"
@${RM} ${OBJECTDIR}/_ext/1986646378/plib_evsys.o.d
@${RM} ${OBJECTDIR}/_ext/1986646378/plib_evsys.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1986646378/plib_evsys.o.d" -o ${OBJECTDIR}/_ext/1986646378/plib_evsys.o ../src/config/default/peripheral/evsys/plib_evsys.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1865468468/plib_nvic.o: ../src/config/default/peripheral/nvic/plib_nvic.c .generated_files/flags/default/13c01c38c36dbaeb047dddc21eca7e15ebe71fd2 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1865468468"
@${RM} ${OBJECTDIR}/_ext/1865468468/plib_nvic.o.d
@${RM} ${OBJECTDIR}/_ext/1865468468/plib_nvic.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1865468468/plib_nvic.o.d" -o ${OBJECTDIR}/_ext/1865468468/plib_nvic.o ../src/config/default/peripheral/nvic/plib_nvic.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o: ../src/config/default/peripheral/nvmctrl/plib_nvmctrl.c .generated_files/flags/default/546c9250923b6e4b17ea8c63459839777b2305dd .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1593096446"
@${RM} ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o.d
@${RM} ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o.d" -o ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o ../src/config/default/peripheral/nvmctrl/plib_nvmctrl.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1865521619/plib_port.o: ../src/config/default/peripheral/port/plib_port.c .generated_files/flags/default/ee68e637b1a93f6ff3b7533a5ed5f077412719f3 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1865521619"
@${RM} ${OBJECTDIR}/_ext/1865521619/plib_port.o.d
@${RM} ${OBJECTDIR}/_ext/1865521619/plib_port.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1865521619/plib_port.o.d" -o ${OBJECTDIR}/_ext/1865521619/plib_port.o ../src/config/default/peripheral/port/plib_port.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o: ../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.c .generated_files/flags/default/13a6a3e2a77afda3d48a4d24f90de32a2d454000 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/504274921"
@${RM} ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o.d
@${RM} ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o.d" -o ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o ../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/163028504/xc32_monitor.o: ../src/config/default/stdio/xc32_monitor.c .generated_files/flags/default/8c989ab6859f95dcac8aea61ada17491d4409299 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/163028504"
@${RM} ${OBJECTDIR}/_ext/163028504/xc32_monitor.o.d
@${RM} ${OBJECTDIR}/_ext/163028504/xc32_monitor.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/163028504/xc32_monitor.o.d" -o ${OBJECTDIR}/_ext/163028504/xc32_monitor.o ../src/config/default/stdio/xc32_monitor.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/startup_xc32.o: ../src/config/default/startup_xc32.c .generated_files/flags/default/fc32e804533f9997b198f581efbcb688776cc849 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/startup_xc32.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/startup_xc32.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/startup_xc32.o.d" -o ${OBJECTDIR}/_ext/1171490990/startup_xc32.o ../src/config/default/startup_xc32.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/libc_syscalls.o: ../src/config/default/libc_syscalls.c .generated_files/flags/default/d8ddfe2ee01c3e227088b4573e67ecf9c08cb32f .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/libc_syscalls.o.d" -o ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o ../src/config/default/libc_syscalls.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/initialization.o: ../src/config/default/initialization.c .generated_files/flags/default/138a0c36911693433f66dfc8f8157e76a222ed61 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/initialization.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/initialization.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/initialization.o.d" -o ${OBJECTDIR}/_ext/1171490990/initialization.o ../src/config/default/initialization.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/exceptions.o: ../src/config/default/exceptions.c .generated_files/flags/default/2feab613077a3cd8f5522d6c9ac381b6d14b264b .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/exceptions.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/exceptions.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/exceptions.o.d" -o ${OBJECTDIR}/_ext/1171490990/exceptions.o ../src/config/default/exceptions.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/interrupts.o: ../src/config/default/interrupts.c .generated_files/flags/default/6ae49f5f5ebf70d425ee03fe9508a28384944900 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/interrupts.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/interrupts.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/interrupts.o.d" -o ${OBJECTDIR}/_ext/1171490990/interrupts.o ../src/config/default/interrupts.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/libwolfboot.o: ../../../../src/libwolfboot.c .generated_files/flags/default/3eebb1e3be98aae7d5cb938447f854bbb9bd8d43 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/libwolfboot.o.d" -o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ../../../../src/libwolfboot.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671475885/same51.o: ../../../../hal/same51.c .generated_files/flags/default/4152d4e83d0acdb9935377009a42dd9144894dc2 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671475885"
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o.d
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/671475885/same51.o.d" -o ${OBJECTDIR}/_ext/671475885/same51.o ../../../../hal/same51.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/app.o: app.c .generated_files/flags/default/373b6329b03336523ae95b01d7e1c631d4b623f .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/app.o.d
@${RM} ${OBJECTDIR}/app.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/app.o.d" -o ${OBJECTDIR}/app.o app.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/main.o: main.c .generated_files/flags/default/61c362f6eea208ce1eae62cffedc921ebff5a613 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.o.d
@${RM} ${OBJECTDIR}/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/main.o.d" -o ${OBJECTDIR}/main.o main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1360937237/main.o: ../src/main.c .generated_files/flags/default/8396f59db54cc8f435c8b0315a7d1c278e582251 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1360937237"
@${RM} ${OBJECTDIR}/_ext/1360937237/main.o.d
@${RM} ${OBJECTDIR}/_ext/1360937237/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1360937237/main.o.d" -o ${OBJECTDIR}/_ext/1360937237/main.o ../src/main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
else
${OBJECTDIR}/_ext/1984496892/plib_clock.o: ../src/config/default/peripheral/clock/plib_clock.c .generated_files/flags/default/5e7f133bf8a48121c28f192ba2f3036981e254be .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1984496892"
@${RM} ${OBJECTDIR}/_ext/1984496892/plib_clock.o.d
@${RM} ${OBJECTDIR}/_ext/1984496892/plib_clock.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1984496892/plib_clock.o.d" -o ${OBJECTDIR}/_ext/1984496892/plib_clock.o ../src/config/default/peripheral/clock/plib_clock.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1865131932/plib_cmcc.o: ../src/config/default/peripheral/cmcc/plib_cmcc.c .generated_files/flags/default/9e0af8875ae6fc0859bf385af5c2fcf96b7b8eca .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1865131932"
@${RM} ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o.d
@${RM} ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1865131932/plib_cmcc.o.d" -o ${OBJECTDIR}/_ext/1865131932/plib_cmcc.o ../src/config/default/peripheral/cmcc/plib_cmcc.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1986646378/plib_evsys.o: ../src/config/default/peripheral/evsys/plib_evsys.c .generated_files/flags/default/85fcd5304bfa480860a98439c365fea92dd8fd4c .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1986646378"
@${RM} ${OBJECTDIR}/_ext/1986646378/plib_evsys.o.d
@${RM} ${OBJECTDIR}/_ext/1986646378/plib_evsys.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1986646378/plib_evsys.o.d" -o ${OBJECTDIR}/_ext/1986646378/plib_evsys.o ../src/config/default/peripheral/evsys/plib_evsys.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1865468468/plib_nvic.o: ../src/config/default/peripheral/nvic/plib_nvic.c .generated_files/flags/default/8cea8862421d2f12075bb4e4d8f0672234432b6 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1865468468"
@${RM} ${OBJECTDIR}/_ext/1865468468/plib_nvic.o.d
@${RM} ${OBJECTDIR}/_ext/1865468468/plib_nvic.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1865468468/plib_nvic.o.d" -o ${OBJECTDIR}/_ext/1865468468/plib_nvic.o ../src/config/default/peripheral/nvic/plib_nvic.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o: ../src/config/default/peripheral/nvmctrl/plib_nvmctrl.c .generated_files/flags/default/f60e3d21b9dcf860a5914968b51ea2856610e6fa .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1593096446"
@${RM} ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o.d
@${RM} ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o.d" -o ${OBJECTDIR}/_ext/1593096446/plib_nvmctrl.o ../src/config/default/peripheral/nvmctrl/plib_nvmctrl.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1865521619/plib_port.o: ../src/config/default/peripheral/port/plib_port.c .generated_files/flags/default/e3a0e761d0a32e4357b6d035c2593c0501d183a1 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1865521619"
@${RM} ${OBJECTDIR}/_ext/1865521619/plib_port.o.d
@${RM} ${OBJECTDIR}/_ext/1865521619/plib_port.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1865521619/plib_port.o.d" -o ${OBJECTDIR}/_ext/1865521619/plib_port.o ../src/config/default/peripheral/port/plib_port.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o: ../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.c .generated_files/flags/default/ec8c9039acda2315bdeb384e86eb6a6b5d3c3240 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/504274921"
@${RM} ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o.d
@${RM} ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o.d" -o ${OBJECTDIR}/_ext/504274921/plib_sercom5_usart.o ../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/163028504/xc32_monitor.o: ../src/config/default/stdio/xc32_monitor.c .generated_files/flags/default/356eed14747c86cc1af6516a343bd13314f8236b .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/163028504"
@${RM} ${OBJECTDIR}/_ext/163028504/xc32_monitor.o.d
@${RM} ${OBJECTDIR}/_ext/163028504/xc32_monitor.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/163028504/xc32_monitor.o.d" -o ${OBJECTDIR}/_ext/163028504/xc32_monitor.o ../src/config/default/stdio/xc32_monitor.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/startup_xc32.o: ../src/config/default/startup_xc32.c .generated_files/flags/default/4ee48d7bf55db7ce0733e9235dcb692a3535d819 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/startup_xc32.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/startup_xc32.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/startup_xc32.o.d" -o ${OBJECTDIR}/_ext/1171490990/startup_xc32.o ../src/config/default/startup_xc32.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/libc_syscalls.o: ../src/config/default/libc_syscalls.c .generated_files/flags/default/5718cd6ab25d3abccce913ceb6506bd4033c6f3f .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/libc_syscalls.o.d" -o ${OBJECTDIR}/_ext/1171490990/libc_syscalls.o ../src/config/default/libc_syscalls.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/initialization.o: ../src/config/default/initialization.c .generated_files/flags/default/75a78e299a3f934c04427585608134f454ca59a7 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/initialization.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/initialization.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/initialization.o.d" -o ${OBJECTDIR}/_ext/1171490990/initialization.o ../src/config/default/initialization.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/exceptions.o: ../src/config/default/exceptions.c .generated_files/flags/default/6d84c9151836ab594cfd7c8d4a42f63a1747bcf .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/exceptions.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/exceptions.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/exceptions.o.d" -o ${OBJECTDIR}/_ext/1171490990/exceptions.o ../src/config/default/exceptions.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1171490990/interrupts.o: ../src/config/default/interrupts.c .generated_files/flags/default/52045e7a884b685d815b674fad3aa8d271eddf05 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1171490990"
@${RM} ${OBJECTDIR}/_ext/1171490990/interrupts.o.d
@${RM} ${OBJECTDIR}/_ext/1171490990/interrupts.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1171490990/interrupts.o.d" -o ${OBJECTDIR}/_ext/1171490990/interrupts.o ../src/config/default/interrupts.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671464796/libwolfboot.o: ../../../../src/libwolfboot.c .generated_files/flags/default/d60b2b12329fc29f657bd551c786f5b606b9a96 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671464796"
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o.d
@${RM} ${OBJECTDIR}/_ext/671464796/libwolfboot.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/671464796/libwolfboot.o.d" -o ${OBJECTDIR}/_ext/671464796/libwolfboot.o ../../../../src/libwolfboot.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/671475885/same51.o: ../../../../hal/same51.c .generated_files/flags/default/bfe4d75294049ab8add4b983c09de294a9ef49db .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/671475885"
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o.d
@${RM} ${OBJECTDIR}/_ext/671475885/same51.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/671475885/same51.o.d" -o ${OBJECTDIR}/_ext/671475885/same51.o ../../../../hal/same51.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/app.o: app.c .generated_files/flags/default/98f630d327a8cb2690a69b39f38fdeebd9fa0608 .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/app.o.d
@${RM} ${OBJECTDIR}/app.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/app.o.d" -o ${OBJECTDIR}/app.o app.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/main.o: main.c .generated_files/flags/default/5962f2a78ca666c0ddc8319f905192af57fce9cb .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.o.d
@${RM} ${OBJECTDIR}/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/main.o.d" -o ${OBJECTDIR}/main.o main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
${OBJECTDIR}/_ext/1360937237/main.o: ../src/main.c .generated_files/flags/default/7ebb835cd8eac308f45a10c5dc99841489cbc93d .generated_files/flags/default/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/_ext/1360937237"
@${RM} ${OBJECTDIR}/_ext/1360937237/main.o.d
@${RM} ${OBJECTDIR}/_ext/1360937237/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -fno-common -I"../src" -I"../src/config/default" -I"../src/packs/ATSAME51J20A_DFP" -I"../src/packs/CMSIS/" -I"../src/packs/CMSIS/CMSIS/Core/Include" -I"../../../../include" -I"../../../../include/MPLAB" -MP -MMD -MF "${OBJECTDIR}/_ext/1360937237/main.o.d" -o ${OBJECTDIR}/_ext/1360937237/main.o ../src/main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -mdfp="${DFP_DIR}" ${PACK_COMMON_OPTIONS}
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: compileCPP
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
else
endif
# ------------------------------------------------------------------------------------
# Rules for buildStep: link
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ../src/config/default/ATSAME51J20A.ld
@${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -g -mprocessor=$(MP_PROCESSOR_OPTION) -mno-device-startup-code -o ${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D=__DEBUG_D,--defsym=_min_heap_size=512,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,${DISTDIR}/memoryfile.xml -mdfp="${DFP_DIR}"
else
${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ../src/config/default/ATSAME51J20A.ld
@${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -mno-device-startup-code -o ${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=_min_heap_size=512,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,${DISTDIR}/memoryfile.xml -mdfp="${DFP_DIR}"
${MP_CC_DIR}/xc32-bin2hex ${DISTDIR}/test-usb-updater.same51.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}
endif
# Subprojects
.build-subprojects:
# Subprojects
.clean-subprojects:
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${OBJECTDIR}
${RM} -r ${DISTDIR}
# Enable dependency checking
.dep.inc: .depcheck-impl
DEPFILES=$(wildcard ${POSSIBLE_DEPFILES})
ifneq (${DEPFILES},)
include ${DEPFILES}
endif

View File

@ -0,0 +1,13 @@
#
#Thu Feb 15 10:21:43 CET 2024
default.languagetoolchain.version=4.35
default.Pack.dfplocation=/opt/microchip/mplabx/v6.20/packs/Microchip/SAME51_DFP/3.7.242
conf.ids=default
default.languagetoolchain.dir=/opt/microchip/xc32/v4.35/bin
default.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=1eaf555a844840d91945cb14109201c3
host.id=130a-gnot-23
default.platformTool.md5=null
configurations-xml=421df5dce52a0ffe2c69c26c9103526f
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=f612087c95360c842296d189edfe3321
proj.dir=/home/dan/src/wolfboot-mplab-test/IDE/MPLAB/test-app/test-usb-updater.same51.X
host.platform=linux

View File

@ -0,0 +1,69 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a pre- and a post- target defined where you can add customization code.
#
# This makefile implements macros and targets common to all configurations.
#
# NOCDDL
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
# and .clean-reqprojects-conf unless SUB has the value 'no'
SUB_no=NO
SUBPROJECTS=${SUB_${SUB}}
BUILD_SUBPROJECTS_=.build-subprojects
BUILD_SUBPROJECTS_NO=
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
CLEAN_SUBPROJECTS_=.clean-subprojects
CLEAN_SUBPROJECTS_NO=
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
# Project Name
PROJECTNAME=test-usb-updater.same51.X
# Active Configuration
DEFAULTCONF=default
CONF=${DEFAULTCONF}
# All Configurations
ALLCONFS=default
# build
.build-impl: .build-pre
${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf
# clean
.clean-impl: .clean-pre
${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf
# clobber
.clobber-impl: .clobber-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean
# all
.all-impl: .all-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build
# dependency checking support
.depcheck-impl:
# @echo "# This code depends on make tool being used" >.dep.inc
# @if [ -n "${MAKE_VERSION}" ]; then \
# echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
# echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
# echo "include \$${DEPFILES}" >>.dep.inc; \
# echo "endif" >>.dep.inc; \
# else \
# echo ".KEEP_STATE:" >>.dep.inc; \
# echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
# fi

View File

@ -0,0 +1,37 @@
#
# Generated Makefile - do not edit!
#
#
# This file contains information about the location of compilers and other tools.
# If you commmit this file into your revision control server, you will be able to
# to checkout the project and build it from the command line with make. However,
# if more than one person works on the same project, then this file might show
# conflicts since different users are bound to have compilers in different places.
# In that case you might choose to not commit this file and let MPLAB X recreate this file
# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at
# least once so the file gets created and the project can be built. Finally, you can also
# avoid using this file at all if you are only building from the command line with make.
# You can invoke make with the values of the macros:
# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
#
PATH_TO_IDE_BIN=/opt/microchip/mplabx/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/
# Adding MPLAB X bin directory to path.
PATH:=/opt/microchip/mplabx/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
# Path to java used to run MPLAB X when this makefile was created
MP_JAVA_PATH="/opt/microchip/mplabx/v6.20/sys/java/zulu8.64.0.19-ca-fx-jre8.0.345-linux_x64/bin/"
OS_CURRENT="$(shell uname -s)"
MP_CC="/opt/microchip/xc32/v4.35/bin/xc32-gcc"
MP_CPPC="/opt/microchip/xc32/v4.35/bin/xc32-g++"
# MP_BC is not defined
MP_AS="/opt/microchip/xc32/v4.35/bin/xc32-as"
MP_LD="/opt/microchip/xc32/v4.35/bin/xc32-ld"
MP_AR="/opt/microchip/xc32/v4.35/bin/xc32-ar"
DEP_GEN=${MP_JAVA_PATH}java -jar "/opt/microchip/mplabx/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
MP_CC_DIR="/opt/microchip/xc32/v4.35/bin"
MP_CPPC_DIR="/opt/microchip/xc32/v4.35/bin"
# MP_BC_DIR is not defined
MP_AS_DIR="/opt/microchip/xc32/v4.35/bin"
MP_LD_DIR="/opt/microchip/xc32/v4.35/bin"
MP_AR_DIR="/opt/microchip/xc32/v4.35/bin"
DFP_DIR=/opt/microchip/mplabx/v6.20/packs/Microchip/SAME51_DFP/3.7.242
CMSIS_DIR=/opt/microchip/mplabx/v6.20/packs/arm/CMSIS/5.4.0

View File

@ -0,0 +1,10 @@
#
# Generated - do not edit!
#
# NOCDDL
#
CND_BASEDIR=`pwd`
# default configuration
CND_ARTIFACT_DIR_default=dist/default/production
CND_ARTIFACT_NAME_default=test-usb-updater.same51.X.production.hex
CND_ARTIFACT_PATH_default=dist/default/production/test-usb-updater.same51.X.production.hex

View File

@ -0,0 +1,431 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<logicalFolder name="root" displayName="root" projectFiles="true">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
projectFiles="true">
<logicalFolder name="config" displayName="config" projectFiles="true">
<logicalFolder name="default" displayName="default" projectFiles="true">
<logicalFolder name="peripheral" displayName="peripheral" projectFiles="true">
<logicalFolder name="clock" displayName="clock" projectFiles="true">
<itemPath>../src/config/default/peripheral/clock/plib_clock.h</itemPath>
</logicalFolder>
<logicalFolder name="cmcc" displayName="cmcc" projectFiles="true">
<itemPath>../src/config/default/peripheral/cmcc/plib_cmcc.h</itemPath>
</logicalFolder>
<logicalFolder name="evsys" displayName="evsys" projectFiles="true">
<itemPath>../src/config/default/peripheral/evsys/plib_evsys.h</itemPath>
</logicalFolder>
<logicalFolder name="nvic" displayName="nvic" projectFiles="true">
<itemPath>../src/config/default/peripheral/nvic/plib_nvic.h</itemPath>
</logicalFolder>
<logicalFolder name="nvmctrl" displayName="nvmctrl" projectFiles="true">
<itemPath>../src/config/default/peripheral/nvmctrl/plib_nvmctrl.h</itemPath>
</logicalFolder>
<logicalFolder name="port" displayName="port" projectFiles="true">
<itemPath>../src/config/default/peripheral/port/plib_port.h</itemPath>
</logicalFolder>
<logicalFolder name="sercom" displayName="sercom" projectFiles="true">
<logicalFolder name="usart" displayName="usart" projectFiles="true">
<itemPath>../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.h</itemPath>
<itemPath>../src/config/default/peripheral/sercom/usart/plib_sercom_usart_common.h</itemPath>
</logicalFolder>
</logicalFolder>
</logicalFolder>
<itemPath>../src/config/default/device_vectors.h</itemPath>
<itemPath>../src/config/default/device.h</itemPath>
<itemPath>../src/config/default/device_cache.h</itemPath>
<itemPath>../src/config/default/interrupts.h</itemPath>
<itemPath>../src/config/default/definitions.h</itemPath>
<itemPath>../src/config/default/toolchain_specifics.h</itemPath>
</logicalFolder>
</logicalFolder>
<logicalFolder name="packs" displayName="packs" projectFiles="true">
<logicalFolder name="ATSAME51J20A_DFP"
displayName="ATSAME51J20A_DFP"
projectFiles="true">
<logicalFolder name="component" displayName="component" projectFiles="true">
<itemPath>../src/packs/ATSAME51J20A_DFP/component/wdt.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/usb.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/icm.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/nvmctrl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/eic.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/ac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/pac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/tc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/port.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/dsu.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/cmcc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/gclk.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/adc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/pm.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/pdec.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/pcc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/mclk.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/sdhc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/i2s.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/fuses.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/evsys.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/freqm.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/ccl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/dac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/can.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/tcc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/qspi.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/osc32kctrl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/pukcc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/ramecc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/oscctrl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/dmac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/hmatrixb.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/rstc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/trng.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/rtc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/supc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/sercom.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/component/aes.h</itemPath>
</logicalFolder>
<logicalFolder name="instance" displayName="instance" projectFiles="true">
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/ramecc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/dac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom7.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc2.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc6.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/osc32kctrl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/qspi.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/adc0.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom3.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/rstc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/i2s.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tcc3.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/can1.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/mclk.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/gclk.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/cmcc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom4.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc5.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/rtc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/pm.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/aes.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/oscctrl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom0.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/freqm.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/fuses.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tcc2.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/ccl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc1.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/can0.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sdhc0.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/pdec.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom5.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc4.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/nvmctrl.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/wdt.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom1.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/dmac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/icm.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/ac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tcc1.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/port.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc0.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/pac.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/supc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom6.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc3.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/hmatrix.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tc7.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/dsu.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/adc1.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/sercom2.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/evsys.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/eic.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tcc0.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/tcc4.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/pcc.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/trng.h</itemPath>
<itemPath>../src/packs/ATSAME51J20A_DFP/instance/usb.h</itemPath>
</logicalFolder>
<logicalFolder name="pio" displayName="pio" projectFiles="true">
<itemPath>../src/packs/ATSAME51J20A_DFP/pio/same51j20a.h</itemPath>
</logicalFolder>
<itemPath>../src/packs/ATSAME51J20A_DFP/same51j20a.h</itemPath>
</logicalFolder>
<logicalFolder name="CMSIS" displayName="CMSIS" projectFiles="true">
<logicalFolder name="CMSIS" displayName="CMSIS" projectFiles="true">
<logicalFolder name="Core" displayName="Core" projectFiles="true">
<logicalFolder name="Include" displayName="Include" projectFiles="true">
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cmsis_gcc.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cmsis_compiler.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/core_cm4.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cachel1_armv7.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cmsis_iccarm.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cmsis_armclang_ltm.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cmsis_armcc.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cmsis_version.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/cmsis_armclang.h</itemPath>
<itemPath>../src/packs/CMSIS/CMSIS/Core/Include/mpu_armv7.h</itemPath>
</logicalFolder>
</logicalFolder>
</logicalFolder>
</logicalFolder>
</logicalFolder>
</logicalFolder>
<logicalFolder name="ExternalFiles"
displayName="Important Files"
projectFiles="true">
<itemPath>Makefile</itemPath>
<itemPath>test-usb-updater.same51.mc3</itemPath>
</logicalFolder>
<logicalFolder name="LinkerScript"
displayName="Linker Files"
projectFiles="true">
<logicalFolder name="config" displayName="config" projectFiles="true">
<logicalFolder name="default" displayName="default" projectFiles="true">
<itemPath>../src/config/default/ATSAME51J20A.ld</itemPath>
</logicalFolder>
</logicalFolder>
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
projectFiles="true">
<logicalFolder name="config" displayName="config" projectFiles="true">
<logicalFolder name="default" displayName="default" projectFiles="true">
<logicalFolder name="peripheral" displayName="peripheral" projectFiles="true">
<logicalFolder name="clock" displayName="clock" projectFiles="true">
<itemPath>../src/config/default/peripheral/clock/plib_clock.c</itemPath>
</logicalFolder>
<logicalFolder name="cmcc" displayName="cmcc" projectFiles="true">
<itemPath>../src/config/default/peripheral/cmcc/plib_cmcc.c</itemPath>
</logicalFolder>
<logicalFolder name="evsys" displayName="evsys" projectFiles="true">
<itemPath>../src/config/default/peripheral/evsys/plib_evsys.c</itemPath>
</logicalFolder>
<logicalFolder name="nvic" displayName="nvic" projectFiles="true">
<itemPath>../src/config/default/peripheral/nvic/plib_nvic.c</itemPath>
</logicalFolder>
<logicalFolder name="nvmctrl" displayName="nvmctrl" projectFiles="true">
<itemPath>../src/config/default/peripheral/nvmctrl/plib_nvmctrl.c</itemPath>
</logicalFolder>
<logicalFolder name="port" displayName="port" projectFiles="true">
<itemPath>../src/config/default/peripheral/port/plib_port.c</itemPath>
</logicalFolder>
<logicalFolder name="sercom" displayName="sercom" projectFiles="true">
<logicalFolder name="usart" displayName="usart" projectFiles="true">
<itemPath>../src/config/default/peripheral/sercom/usart/plib_sercom5_usart.c</itemPath>
</logicalFolder>
</logicalFolder>
</logicalFolder>
<logicalFolder name="stdio" displayName="stdio" projectFiles="true">
<itemPath>../src/config/default/stdio/xc32_monitor.c</itemPath>
</logicalFolder>
<itemPath>../src/config/default/startup_xc32.c</itemPath>
<itemPath>../src/config/default/libc_syscalls.c</itemPath>
<itemPath>../src/config/default/initialization.c</itemPath>
<itemPath>../src/config/default/exceptions.c</itemPath>
<itemPath>../src/config/default/interrupts.c</itemPath>
</logicalFolder>
</logicalFolder>
<logicalFolder name="f1" displayName="wolfboot" projectFiles="true">
<itemPath>../../../../src/libwolfboot.c</itemPath>
<itemPath>../../../../hal/same51.c</itemPath>
</logicalFolder>
<itemPath>app.c</itemPath>
<itemPath>main.c</itemPath>
<itemPath>../src/config/default/pin_configurations.csv</itemPath>
<itemPath>../src/main.c</itemPath>
</logicalFolder>
</logicalFolder>
<sourceRootList>
<Elem>.</Elem>
<Elem>../../../../src</Elem>
<Elem>../../../../hal</Elem>
</sourceRootList>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="default" type="2">
<toolsSet>
<developmentServer>localhost</developmentServer>
<targetDevice>ATSAME51J20A</targetDevice>
<targetHeader></targetHeader>
<targetPluginBoard></targetPluginBoard>
<platformTool>noID</platformTool>
<languageToolchain>XC32</languageToolchain>
<languageToolchainVersion>4.35</languageToolchainVersion>
<platform>2</platform>
</toolsSet>
<packs>
<pack name="SAME51_DFP" vendor="Microchip" version="3.7.242"/>
<pack name="CMSIS" vendor="ARM" version="5.4.0"/>
</packs>
<ScriptingSettings>
</ScriptingSettings>
<compileType>
<linkerTool>
<linkerLibItems>
</linkerLibItems>
</linkerTool>
<archiverTool>
</archiverTool>
<loading>
<useAlternateLoadableFile>false</useAlternateLoadableFile>
<parseOnProdLoad>false</parseOnProdLoad>
<alternateLoadableFile></alternateLoadableFile>
</loading>
<subordinates>
</subordinates>
</compileType>
<makeCustomizationType>
<makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
<makeUseCleanTarget>false</makeUseCleanTarget>
<makeCustomizationPreStep></makeCustomizationPreStep>
<makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
<makeCustomizationPostStep></makeCustomizationPostStep>
<makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
<makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
<makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
</makeCustomizationType>
<C32>
<property key="additional-warnings" value="false"/>
<property key="addresss-attribute-use" value="false"/>
<property key="appendMe" value=""/>
<property key="enable-app-io" value="false"/>
<property key="enable-omit-frame-pointer" value="false"/>
<property key="enable-symbols" value="true"/>
<property key="enable-unroll-loops" value="false"/>
<property key="exclude-floating-point" value="false"/>
<property key="extra-include-directories"
value="../src;../src/config/default;../src/packs/ATSAME51J20A_DFP;../src/packs/CMSIS/;../src/packs/CMSIS/CMSIS/Core/Include;..\..\..\..\include;..\..\..\..\include\MPLAB"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="isolate-each-function" value="false"/>
<property key="make-warnings-into-errors" value="false"/>
<property key="optimization-level" value=""/>
<property key="place-data-into-section" value="false"/>
<property key="post-instruction-scheduling" value="default"/>
<property key="pre-instruction-scheduling" value="default"/>
<property key="preprocessor-macros" value=""/>
<property key="strict-ansi" value="false"/>
<property key="support-ansi" value="false"/>
<property key="tentative-definitions" value="-fno-common"/>
<property key="toplevel-reordering" value=""/>
<property key="unaligned-access" value=""/>
<property key="use-cci" value="false"/>
<property key="use-iar" value="false"/>
<property key="use-indirect-calls" value="false"/>
</C32>
<C32-AR>
<property key="additional-options-chop-files" value="false"/>
</C32-AR>
<C32-AS>
<property key="assembler-symbols" value=""/>
<property key="enable-symbols" value="true"/>
<property key="exclude-floating-point-library" value="false"/>
<property key="expand-macros" value="false"/>
<property key="extra-include-directories-for-assembler" value=""/>
<property key="extra-include-directories-for-preprocessor" value=""/>
<property key="false-conditionals" value="false"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="keep-locals" value="false"/>
<property key="list-assembly" value="false"/>
<property key="list-source" value="false"/>
<property key="list-symbols" value="false"/>
<property key="oXC32asm-list-to-file" value="false"/>
<property key="omit-debug-dirs" value="false"/>
<property key="omit-forms" value="false"/>
<property key="preprocessor-macros" value=""/>
<property key="warning-level" value=""/>
</C32-AS>
<C32-CO>
<property key="coverage-enable" value=""/>
<property key="stack-guidance" value="false"/>
</C32-CO>
<C32-LD>
<property key="additional-options-use-response-files" value="false"/>
<property key="additional-options-write-sla" value="false"/>
<property key="allocate-dinit" value="false"/>
<property key="appendMe" value=""/>
<property key="code-dinit" value="false"/>
<property key="ebase-addr" value=""/>
<property key="enable-check-sections" value="false"/>
<property key="exclude-floating-point-library" value="false"/>
<property key="exclude-standard-libraries" value="false"/>
<property key="extra-lib-directories" value=""/>
<property key="fill-flash-options-addr" value=""/>
<property key="fill-flash-options-const" value=""/>
<property key="fill-flash-options-how" value="0"/>
<property key="fill-flash-options-inc-const" value="1"/>
<property key="fill-flash-options-increment" value=""/>
<property key="fill-flash-options-seq" value=""/>
<property key="fill-flash-options-what" value="0"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-cross-reference-file" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="heap-size" value="512"/>
<property key="input-libraries" value=""/>
<property key="kseg-length" value=""/>
<property key="kseg-origin" value=""/>
<property key="linker-symbols" value=""/>
<property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>
<property key="no-device-startup-code" value="true"/>
<property key="no-startup-files" value="false"/>
<property key="oXC32ld-extra-opts" value=""/>
<property key="optimization-level" value=""/>
<property key="preprocessor-macros" value=""/>
<property key="remove-unused-sections" value="false"/>
<property key="report-memory-usage" value="false"/>
<property key="serial-length" value=""/>
<property key="serial-origin" value=""/>
<property key="stack-size" value=""/>
<property key="symbol-stripping" value=""/>
<property key="trace-symbols" value=""/>
<property key="warn-section-align" value="false"/>
</C32-LD>
<C32CPP>
<property key="additional-warnings" value="false"/>
<property key="addresss-attribute-use" value="false"/>
<property key="appendMe" value=""/>
<property key="check-new" value="false"/>
<property key="eh-specs" value="true"/>
<property key="enable-app-io" value="false"/>
<property key="enable-omit-frame-pointer" value="false"/>
<property key="enable-symbols" value="true"/>
<property key="enable-unroll-loops" value="false"/>
<property key="exceptions" value="true"/>
<property key="exclude-floating-point" value="false"/>
<property key="extra-include-directories"
value="../src;../src/config/default;../src/packs/ATSAME51J20A_DFP;../src/packs/CMSIS/;../src/packs/CMSIS/CMSIS/Core/Include"/>
<property key="generate-16-bit-code" value="false"/>
<property key="generate-micro-compressed-code" value="false"/>
<property key="isolate-each-function" value="false"/>
<property key="make-warnings-into-errors" value="false"/>
<property key="optimization-level" value=""/>
<property key="place-data-into-section" value="false"/>
<property key="post-instruction-scheduling" value="default"/>
<property key="pre-instruction-scheduling" value="default"/>
<property key="preprocessor-macros" value=""/>
<property key="rtti" value="true"/>
<property key="strict-ansi" value="false"/>
<property key="toplevel-reordering" value=""/>
<property key="unaligned-access" value=""/>
<property key="use-cci" value="false"/>
<property key="use-iar" value="false"/>
<property key="use-indirect-calls" value="false"/>
</C32CPP>
<C32Global>
<property key="appendMe" value=""/>
<property key="common-include-directories" value=""/>
<property key="gp-relative-option" value=""/>
<property key="legacy-libc" value="false"/>
<property key="mdtcm" value=""/>
<property key="mitcm" value=""/>
<property key="mstacktcm" value="false"/>
<property key="omit-pack-options" value="1"/>
<property key="relaxed-math" value="false"/>
<property key="save-temps" value="false"/>
<property key="stack-smashing" value=""/>
<property key="wpo-lto" value="false"/>
</C32Global>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<projectmakefile>Makefile</projectmakefile>
<defaultConf>0</defaultConf>
<confs>
<conf name="default" type="2">
<platformToolSN>noToolString</platformToolSN>
<languageToolchainDir>/opt/microchip/xc32/v4.35/bin</languageToolchainDir>
<mdbdebugger version="1">
<placeholder1>place holder 1</placeholder1>
<placeholder2>place holder 2</placeholder2>
</mdbdebugger>
<runprofile version="6">
<args></args>
<rundir></rundir>
<buildfirst>true</buildfirst>
<console-type>0</console-type>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/home/dan/src/wolfboot-mplab-test/IDE/MPLAB/test-app/src/main.c</file>
<file>file:/home/dan/src/wolfboot-mplab-test/IDE/MPLAB/test-app/test-usb-updater.same51.X/main.c</file>
<file>file:/home/dan/src/wolfboot-mplab-test/IDE/MPLAB/test-app/src/config/default/pin_configurations.csv</file>
<file>file:/home/dan/src/wolfboot-mplab-test/IDE/MPLAB/test-app/src/config/default/definitions.h</file>
</group>
</open-files>
</project-private>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>com.microchip.mplab.nbide.embedded.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>test-usb-updater.same51</name>
<creation-uuid>cd05a95a-5bb7-48a9-a8b6-2bfd13f565c2</creation-uuid>
<make-project-type>0</make-project-type>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<make-dep-projects/>
<sourceRootList>
<sourceRootElem>.</sourceRootElem>
<sourceRootElem>../../../../src</sourceRootElem>
<sourceRootElem>../../../../hal</sourceRootElem>
</sourceRootList>
<confList>
<confElem>
<name>default</name>
<type>2</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,96 @@
/* Keystore file for wolfBoot, automatically generated. Do not edit. */
/*
* This file has been generated and contains the public keys
* used by wolfBoot to verify the updates.
*/
#include <stdint.h>
#include "wolfboot/wolfboot.h"
#include "keystore.h"
#warning "*** * THIS IS THE EXAMPLE KEYSTORE.C FILE * ***"
#warning " DO NOT USE IN PRODUCTION "
#warning "This file is part of the open source distribution of wolfBoot."
#warning "Replace with a new key created using keytools."
#warning " SECURE BOOT ENABLED JUST FOR TESTING "
#ifdef WOLFBOOT_NO_SIGN
#define NUM_PUBKEYS 0
#else
#if !defined(KEYSTORE_ANY) && (KEYSTORE_PUBKEY_SIZE != KEYSTORE_PUBKEY_SIZE_ECC384)
#error Key algorithm mismatch. Remove old keys via 'make keysclean'
#else
#if defined(__APPLE__) && defined(__MACH__)
#define KEYSTORE_SECTION __attribute__((section ("__KEYSTORE,__keystore")))
#elif defined(__CCRX__)
#define KEYSTORE_SECTION
#else
#define KEYSTORE_SECTION __attribute__((section (".keystore")))
#endif
#define NUM_PUBKEYS 1
const KEYSTORE_SECTION struct keystore_slot PubKeys[NUM_PUBKEYS] = {
/* Key associated to file 'wolfboot_signing_private_key.der' */
{
.slot_id = 0,
.key_type = AUTH_KEY_ECC384,
.part_id_mask = 0xFFFFFFFF,
.pubkey_size = KEYSTORE_PUBKEY_SIZE_ECC384,
.pubkey = {
0x24, 0x46, 0xf8, 0x0e, 0x33, 0xed, 0xdd, 0x5b,
0x3b, 0x01, 0xea, 0xcf, 0x89, 0x2e, 0x56, 0xe8,
0x41, 0x73, 0xc8, 0x2f, 0xe1, 0x57, 0x68, 0x51,
0x4f, 0x0d, 0xa6, 0x86, 0xa1, 0x92, 0xa2, 0x92,
0xdf, 0xac, 0x31, 0x30, 0xa7, 0x15, 0xb7, 0x99,
0xd7, 0x05, 0x2e, 0x20, 0x87, 0x1a, 0x19, 0x93,
0xaa, 0x2f, 0xcb, 0xd6, 0x23, 0x68, 0xda, 0x00,
0x1b, 0x4e, 0x4f, 0x63, 0x95, 0x80, 0xb7, 0x56,
0xde, 0xfc, 0x8b, 0x73, 0x8d, 0xd1, 0x81, 0xe4,
0x53, 0xfc, 0x61, 0x88, 0xfa, 0xef, 0x2b, 0xcb,
0x62, 0x63, 0x8d, 0xb1, 0x98, 0x06, 0x3d, 0x29,
0xe1, 0xb5, 0xe9, 0xa9, 0x07, 0xa2, 0xaf, 0x48
},
},
};
int keystore_num_pubkeys(void)
{
return NUM_PUBKEYS;
}
uint8_t *keystore_get_buffer(int id)
{
if (id >= keystore_num_pubkeys())
return (uint8_t *)0;
return (uint8_t *)PubKeys[id].pubkey;
}
int keystore_get_size(int id)
{
if (id >= keystore_num_pubkeys())
return -1;
return (int)PubKeys[id].pubkey_size;
}
uint32_t keystore_get_mask(int id)
{
if (id >= keystore_num_pubkeys())
return -1;
return (int)PubKeys[id].part_id_mask;
}
uint32_t keystore_get_key_type(int id)
{
return PubKeys[id].key_type;
}
#endif /* Keystore public key size check */
#endif /* WOLFBOOT_NO_SIGN */

View File

@ -0,0 +1,14 @@
ARCH?=ARM
TARGET?=same51
SIGN?=ECC256
HASH?=SHA256
VTOR?=1
SPMATH?=1
ARCH_FLASH_OFFSET=0x00000000
WOLFBOOT_PARTITION_SIZE?=0x20000
WOLFBOOT_SECTOR_SIZE?=0x8000
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08000
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x088000
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x200000
DEBUG=0
DUALBANK_SWAP=1

View File

@ -0,0 +1,12 @@
ARCH?=ARM
TARGET?=same51
SIGN?=ECC256
HASH?=SHA256
VTOR?=1
SPMATH?=1
ARCH_FLASH_OFFSET=0x00000000
WOLFBOOT_PARTITION_SIZE?=0x20000
WOLFBOOT_SECTOR_SIZE?=0x8000
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x8000
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x80000
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0xF8000

View File

@ -6,6 +6,7 @@ This README describes configuration of supported targets.
* [Cortex-A53 / Raspberry PI 3](#cortex-a53--raspberry-pi-3-experimental)
* [Cypress PSoC-6](#cypress-psoc-6)
* [Microchip SAME51](#microchip-same51)
* [Nordic nRF52840](#nordic-nrf52840)
* [NXP LPC54xxx](#nxp-lpc54xxx)
* [NXP iMX-RT](#nxp-imx-rt)
@ -1133,6 +1134,60 @@ the monitor command sequence below:
(gdb) mon psoc6 reset_halt
```
## Microchip SAME51
SAME51 is a Cortex-M4 microcontroller with a dual-bank, 1MB flash memory divided
in blocks of 8KB.
### Toolchain
Although it is possible to build wolfBoot with xc32 compilers,
we recommend to use gcc for building wolfBoot for best results in terms of
footprint and performance, due to some assembly optimizations in wolfCrypt, being
available for gcc only. There is no limitation however on the toolchain used
to compile the application firmware or RTOS as the two binary files are independent.
### Building using gcc/makefile
The following configurations have been tested using ATSAME51J20A development kit.
* `config/examples/same51.config` - example configuration with swap partition (dual-bank disabled)
* `config/examples/same51-dualbank.config` - configuration with two banks (no swap partition)
To build wolfBoot, copy the selected configuration into `.config` and run `make`.
### Building using MPLAB IDE
Example projects are provided to build wolfBoot and a test application using MPLAB.
These projects are configured to build both stages using xc32-gcc, and have been
tested with MpLab IDE v. 6.20.
The example application can be used to update the firmware over USB.
More details about building the example projects can be found in the
[IDE/MPLAB](/IDE/MPLAB) directory in this repository.
### Uploading the bootloader and the firmware image
Secure boot and updates have been tested on the SAM E51 Curiosity Nano evaluation
board, connecting to a Pro debugger to the D0/D1 pads.
The two firmware images can be uploaded separately using the JLinkExe utility:
```
$ JLinkExe -if swd -speed 1000 -Device ATSAME51J20
J-Link> loadbin wolfboot.bin 0x0
J-Link> loadbin test-app/image_v1_signed.bin 0x8000
```
The above is assuming the default configuration where the BOOT partition starts at
address `0x8000`.
## NXP iMX-RT

398
hal/same51.c 100644
View File

@ -0,0 +1,398 @@
/* same51.c
*
* Copyright (C) 2024 wolfSSL Inc.
*
* This file is part of wolfBoot.
*
* wolfBoot is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfBoot is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#include <stdint.h>
#include "image.h"
#include "hal.h"
/*
* Clock settings for cpu same51 @ 120MHz
*/
#define CPU_FREQ (120000000)
/*
* Flash settings for same51
*/
#define FLASH_SIZE (1024 * 1024)
#define FLASH_PAGESIZE 512
#define FLASH_N_PAGES 4096
/*
* Oscillator controller
*/
#define OSCCTRL_BASE (0x40001000U)
/* Map only DPLL0 */
#define OSCCTRL_DPLL0CTRLA *((volatile uint32_t *)(OSCCTRL_BASE + 0x30))
#define OSCCTRL_DPLL0RATIO *((volatile uint32_t *)(OSCCTRL_BASE + 0x34))
#define OSCCTRL_DPLL0CTRLB *((volatile uint32_t *)(OSCCTRL_BASE + 0x38))
#define OSCCTRL_DPLL0SYNCBUSY *((volatile uint32_t *)(OSCCTRL_BASE + 0x3c))
#define OSCCTRL_DPLL0STATUS *((volatile uint32_t *)(OSCCTRL_BASE + 0x40))
#define DPLL0CTRLA_ENABLE (1u << 1)
#define DPLL0CTRLB_FILTER_MASK (0x0fu << 0)
#define DPLL0CTRLB_REFCLK_MASK (0x07u << 5)
#define DPLL0CTRLB_LTIME_MASK (0x07u << 8)
#define DPLL0RATIO_LDR_MASK (0x0fffu << 0)
#define DPLL0RATIO_LDRFRAC_MASK (0xfu << 16)
#define DPLL0SYNCBUSY_ENABLE (1u << 1)
#define DPLL0SYNCBUSY_RATIO (1u << 2)
#define DPLL0STATUS_LOCK (1u << 0)
#define DPLL0STATUS_CLKRDY (1u << 1)
/*
* 32KHz Oscillator controller
*/
#define OSC32KCTRL_BASE (0x4001400U)
#define OSC32KCTRL_RTCCTRL *((volatile uint32_t *)(OSC32KCTRL_BASE + 0x10))
#define RTCCTRL_RTCSEL_MASK (0x03)
/*
* Generic clock generator
*/
#define GCLK_BASE (0x40001C00)
#define GCLK_CTRLA *((volatile uint32_t *)(GCLK_BASE + 0x00))
#define GCLK_SYNCBUSY *((volatile uint32_t *)(GCLK_BASE + 0x04))
#define CTRLA_SWRST (1 << 0)
#define SYNCBUSY_SWRST (1 << 0)
#define SYNCBUSY_GENCTRL(x) (1 << (2 + x))
#define GCLK_IS_BUSY(x) ((GCLK_SYNCBUSY & (SYNCBUSY_GENCTRL(x))) != 0)
/* Array of 12 GCLK_GENCTRL[x] 32-bit registers */
#define GCLK_GENCTRL ((volatile uint32_t *)(GCLK_BASE + 0x20))
#define GENCTRLx_SRC_DFLL 0x06u
#define GENCTRLx_SRC_PLL0 0x07u
#define GENCTRLx_GENEN (1u << 8)
#define GENCTRLx_DIVSHIFT (16)
#define GENCTRLx_SRC_MASK (0x0Fu)
#define GENCTRLx_DIV_MASK (0xFFFFu << 16)
/* Array of 48 GCLK_PCHCTRLx */
#define GCLK_PCHCTRL ((volatile uint32_t *)(GCLK_BASE + 0x80))
#define PCHCTRLx_CHEN (1u << 6)
/* Main clock */
#define MCLK_BASE (0x40000800)
#define MCLK_CPUDIV *((volatile uint8_t *)(MCLK_BASE + 0x05))
#define MCLK_INTFLAG *((volatile uint8_t *)(MCLK_BASE + 0x03))
#define MCLK_AHBMASK *((volatile uint32_t *)(MCLK_BASE + 0x10))
#define MCLK_APBAMASK *((volatile uint32_t *)(MCLK_BASE + 0x14))
#define MCLK_APBBMASK *((volatile uint32_t *)(MCLK_BASE + 0x18))
#define MCLK_APBCMASK *((volatile uint32_t *)(MCLK_BASE + 0x1c))
#define MCLK_APBDMASK *((volatile uint32_t *)(MCLK_BASE + 0x20))
#define CKRDY (1u << 0)
/*
* Watchdog controller
*/
#define WDT_CTRL *((volatile uint8_t *)(0x40002000))
#define WDT_EN (1u << 1)
/* Peripheral access control
*
*/
#define PAC_BASE (0x41000000)
#define PAC_WRCTRL *((volatile uint32_t *)(PAC_BASE))
#define PAC_WRKEY_SET (2 << 16U)
#define PAC_WRKEY_CLEAR (1 << 16U)
#define PAC_PERID_NVMCTL ((32 * 1) + 2)
#define PAC_WR
/*
* NVM controller */
#define NVMCTRL_BASE (0x41004000)
#define NVMCTRLA *((volatile uint16_t *)(NVMCTRL_BASE))
#define NVMCTRLB *((volatile uint32_t *)(NVMCTRL_BASE + 0x04))
#define NVMCTRL_INTFLAG *((volatile uint16_t *)(NVMCTRL_BASE + 0x10))
#define NVMCTRL_STATUS *((volatile uint16_t *)(NVMCTRL_BASE + 0x12))
#define NVMCTRL_ADDR *((volatile uint32_t *)(NVMCTRL_BASE + 0x14))
#define NVMCTRL_SEESTAT *((volatile uint32_t *)(NVMCTRL_BASE + 0x2c))
/* Extra NVMCTRL options (unused: leaving default values) */
#define NVMCTRLA_DISABLE_CACHES (0xC000)
#define NVMCTRLA_RWS_MASK (0x0F00)
#define NVMCTRLA_RWS_SHIFT 8
#define NVMCTRLA_AUTOWS (1 << 2)
#define NVMCMD_KEY ((0xA5) << 8)
#define NVMCMD_ERASE_PAGE (0x00)
#define NVMCMD_ERASE_BLOCK (0x01)
#define NVMCMD_WP (0x03)
#define NVMCMD_WQW (0x04)
#define NVMCMD_PBC (0x15)
#define NVMCMD_SSB (0x16) /* Set secure bit */
#define NVMCMD_BKSWRST (0x17) /* Bank swap + reset */
#define NVMCTRL_INTFLAG_CMD_DONE (1)
#define NVMSTATUS_AFIRST (1 << 4)
volatile uint32_t psize, bsize;
/* Clock initialization */
static void clock_init(void)
{
uint32_t reg;
/* Prepare 32K oscillator */
OSC32KCTRL_RTCCTRL &= ~RTCCTRL_RTCSEL_MASK;
/* Set Generic Clock generator #2 */
reg = GCLK_GENCTRL[2];
/* - Clear clock and source selection */
reg &= ~(GENCTRLx_DIV_MASK | GENCTRLx_SRC_MASK);
/* - Select DFLL48M oscillator output as source
* - Set divisor to 48
* - Enable the generator
*/
GCLK_GENCTRL[2] = reg | GENCTRLx_SRC_DFLL | (48u << GENCTRLx_DIVSHIFT) |
GENCTRLx_GENEN;
while(GCLK_IS_BUSY(2))
;
/* Connect peripheral '1' (FDPLL0) to clock generator '2' and enable */
reg = GCLK_PCHCTRL[1] & (~ 0x0F);
GCLK_PCHCTRL[1] = reg | 0x02 | PCHCTRLx_CHEN;
/* Wait until enabled */
while ((GCLK_PCHCTRL[1] & PCHCTRLx_CHEN) == 0)
;
/* Reset PLL parameters */
OSCCTRL_DPLL0CTRLB = 0;
/* Set PLL ratio LDR */
OSCCTRL_DPLL0RATIO = (120 - 1);
/* Wait until ratio has been set */
while ((OSCCTRL_DPLL0SYNCBUSY & DPLL0SYNCBUSY_RATIO) != 0)
;
/* Enable PLL */
OSCCTRL_DPLL0CTRLA = DPLL0CTRLA_ENABLE;
/* Wait until the PLL is enabled */
while ((OSCCTRL_DPLL0SYNCBUSY & DPLL0SYNCBUSY_ENABLE) != 0)
;
/* Wait for final lock + clock ready */
while ((OSCCTRL_DPLL0STATUS & (DPLL0STATUS_LOCK | DPLL0STATUS_CLKRDY)) !=
(DPLL0STATUS_LOCK | DPLL0STATUS_CLKRDY) )
;
/* Set main clock divisor */
MCLK_CPUDIV = 0x01u;
/* Wait until ready */
while ((MCLK_INTFLAG & CKRDY) == 0)
;
/* generic clock generator #0: set source to FDPLL200M0, div 1 and enable */
reg = GCLK_GENCTRL[0];
reg &= ~(GENCTRLx_SRC_MASK | GENCTRLx_DIV_MASK);
GCLK_GENCTRL[0] = reg | GENCTRLx_SRC_PLL0 | (1 << GENCTRLx_DIVSHIFT) |
GENCTRLx_GENEN;
while (GCLK_IS_BUSY(0))
;
/* generic clock generator #1: set source to FDPLL200M0, div 2 and enable */
reg = GCLK_GENCTRL[1];
reg &= ~(GENCTRLx_SRC_MASK | GENCTRLx_DIV_MASK);
GCLK_GENCTRL[1] = reg | GENCTRLx_SRC_PLL0 | (2 << GENCTRLx_DIVSHIFT) |
GENCTRLx_GENEN;
while (GCLK_IS_BUSY(1))
;
/* select clock generator for EIC */
reg = GCLK_PCHCTRL[4] & (~0x0F);
GCLK_PCHCTRL[4] = reg | 0x01 | PCHCTRLx_CHEN;
/* Wait until enabled */
while ((GCLK_PCHCTRL[4] & PCHCTRLx_CHEN) == 0)
;
/* select clock generator for SERCOM5_CORE */
reg = GCLK_PCHCTRL[35] & (~0x0F);
GCLK_PCHCTRL[35] = reg | 0x01 | PCHCTRLx_CHEN;
/* wait until enabled */
while ((GCLK_PCHCTRL[35] & PCHCTRLx_CHEN) == 0)
;
}
#ifdef __WOLFBOOT
#ifdef DUALBANK_SWAP
#define BANKA_BASE 0x00000000
#define BANKB_BASE 0x00080000
#include <string.h>
static void RAMFUNCTION fork_bootloader(void)
{
uint32_t r;
uint32_t len = (uint32_t)(WOLFBOOT_PARTITION_BOOT_ADDRESS - BANKA_BASE);
if (memcmp((void *)BANKA_BASE, (void *)BANKB_BASE, len) == 0)
return;
hal_flash_unlock();
hal_flash_erase(BANKB_BASE, len);
for (r = 0; r < len; r += WOLFBOOT_SECTOR_SIZE) {
hal_flash_write(BANKB_BASE + r, (void *)(BANKA_BASE + r), WOLFBOOT_SECTOR_SIZE);
}
hal_flash_lock();
}
#endif /* DUALBANK_SWAP */
void hal_init(void)
{
/* Turn off watchdog */
WDT_CTRL &= (~WDT_EN);
/* Run the bootloader with interrupts off */
__asm__ volatile ("cpsid i");
/* Initialize clock */
clock_init();
/* enable all the AHB clocks */
MCLK_AHBMASK = 0xffffffU;
/* Enable flash memory controller via APBB */
MCLK_APBBMASK |= (1 << 2);
/* enable all the APBA clocks */
MCLK_APBAMASK = 0x7ffU;
/* enable all the APBD clocks */
MCLK_APBDMASK = 0x2U;
#ifdef DUALBANK_SWAP
fork_bootloader();
#endif
}
void RAMFUNCTION hal_flash_dualbank_swap(void)
{
hal_flash_unlock();
NVMCTRLB = NVMCMD_BKSWRST | NVMCMD_KEY;
/* Next loop should never be reached: system is restarted */
while(!(NVMCTRL_INTFLAG & NVMCTRL_INTFLAG_CMD_DONE))
;
while( 1 )
;
}
void RAMFUNCTION hal_prepare_boot(void)
{
/* Reset clock controller */
GCLK_CTRLA |= CTRLA_SWRST;
/* Wait until reset is complete */
while ((GCLK_SYNCBUSY & SYNCBUSY_SWRST) != 0)
;
/* Disable PLL */
OSCCTRL_DPLL0CTRLA = 0;
/* Wait until the PLL is enabled */
while ((OSCCTRL_DPLL0SYNCBUSY & DPLL0SYNCBUSY_ENABLE) != 0)
;
/* Clear PLL options */
OSCCTRL_DPLL0CTRLB = 0;
}
#endif /* __WOLFBOOT */
int RAMFUNCTION hal_flash_write(uint32_t address, const uint8_t *data, int len)
{
int i = 0;
uint32_t *src, *dst;
if (len <= 0)
return 0;
/* Clear page buffer */
NVMCTRLB = (NVMCMD_PBC | NVMCMD_KEY);
while (i < len) {
if ((len - i > 3) && ((((address + i) & 0x03) == 0) && ((((uint32_t)data) + i) & 0x03) == 0)) {
dst = (uint32_t *)address;
src = (uint32_t *)data;
dst[i >> 2] = src[i >> 2];
i+=4;
} else {
uint32_t val;
uint8_t *vbytes = (uint8_t *)(&val);
uint32_t off = (address % 4);
dst = (uint32_t *)(address - off);
uint32_t dst_idx = (i + off) >> 2;
val = dst[dst_idx];
while (off < 4) {
if (i < len)
vbytes[off++] = data[i++];
else
off++;
}
dst[dst_idx] = val;
}
if ((i == len) || ((i % 16)== 0))
NVMCTRLB = (NVMCMD_WQW | NVMCMD_KEY);
}
return 0;
}
void RAMFUNCTION hal_flash_unlock(void)
{
PAC_WRCTRL = PAC_WRKEY_CLEAR | PAC_PERID_NVMCTL;
}
void RAMFUNCTION hal_flash_lock(void)
{
PAC_WRCTRL = PAC_WRKEY_SET | PAC_PERID_NVMCTL;
}
int RAMFUNCTION hal_flash_erase(uint32_t address, int len)
{
while (len > 0) {
NVMCTRL_ADDR = (address);
NVMCTRLB = NVMCMD_ERASE_BLOCK | NVMCMD_KEY;
while(!(NVMCTRL_INTFLAG & NVMCTRL_INTFLAG_CMD_DONE))
;
len -= WOLFBOOT_SECTOR_SIZE;
}
return 0;
}

52
hal/same51.ld 100644
View File

@ -0,0 +1,52 @@
MEMORY
{
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x20000
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000
}
SECTIONS
{
.text :
{
_start_text = .;
KEEP(*(.isr_vector))
*(.text*)
*(.rodata*)
*(.init*)
*(.fini*)
. = ALIGN(4);
_end_text = .;
} > FLASH
.edidx :
{
. = ALIGN(4);
*(.ARM.exidx*)
} > FLASH
_stored_data = .;
.data : AT (_stored_data)
{
_start_data = .;
KEEP(*(.data.wolfboot_version*))
KEEP(*(.data*))
. = ALIGN(4);
_end_data = .;
} > RAM
.bss (NOLOAD) :
{
_start_bss = .;
__bss_start__ = .;
*(.bss*)
*(COMMON)
. = ALIGN(4);
_end_bss = .;
__bss_end__ = .;
_end = .;
} > RAM
. = ALIGN(4);
}
END_STACK = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -0,0 +1,100 @@
/* target.h
*
* User configurable build-time options for bootloader and application offsets
*
* target.h is automatically generated using the template in target.h.in by running
* "make config".
*
* Copyright (C) 2021 wolfSSL Inc.
*
* This file is part of wolfBoot.
*
* wolfBoot is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfBoot is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#ifndef H_TARGETS_TARGET_
#define H_TARGETS_TARGET_
#ifndef WOLFBOOT_NO_PARTITIONS
# define WOLFBOOT_FIXED_PARTITIONS
#endif
#define WOLFBOOT_SECTOR_SIZE 0x8000
#ifdef WOLFBOOT_FIXED_PARTITIONS
#ifdef ARCH_SIM
#include <stdint.h>
/* use runtime ram base for simulator */
extern uint8_t *sim_ram_base;
#undef ARCH_FLASH_OFFSET
#define ARCH_FLASH_OFFSET ((size_t)sim_ram_base)
#define WOLFBOOT_PART_USE_ARCH_OFFSET
#endif
#ifdef PULL_LINKER_DEFINES
#include <stdint.h>
/* linker script variables */
extern const uint32_t _wolfboot_partition_boot_address[];
extern const uint32_t _wolfboot_partition_size[];
extern const uint32_t _wolfboot_partition_update_address[];
extern const uint32_t _wolfboot_partition_swap_address[];
/* create plain integers from linker script variables */
static const uint32_t WOLFBOOT_PARTITION_BOOT_ADDRESS = (uint32_t)_wolfboot_partition_boot_address;
static const uint32_t WOLFBOOT_PARTITION_SIZE = (uint32_t)_wolfboot_partition_size;
static const uint32_t WOLFBOOT_PARTITION_UPDATE_ADDRESS = (uint32_t)_wolfboot_partition_update_address;
static const uint32_t WOLFBOOT_PARTITION_SWAP_ADDRESS = (uint32_t)_wolfboot_partition_swap_address;
#else
#if defined(WOLFBOOT_PART_USE_ARCH_OFFSET)
#if !defined(EXT_FLASH) || (defined(EXT_FLASH) && !defined(PART_BOOT_EXT))
#define WOLFBOOT_PARTITION_BOOT_ADDRESS (ARCH_FLASH_OFFSET + 0x08000)
#endif
#if !defined(EXT_FLASH) || (defined(EXT_FLASH) && !defined(PART_UPDATE_EXT))
#define WOLFBOOT_PARTITION_UPDATE_ADDRESS (ARCH_FLASH_OFFSET + 0x088000)
#endif
#if !defined(EXT_FLASH) || (defined(EXT_FLASH) && !defined(PART_SWAP_EXT))
#define WOLFBOOT_PARTITION_SWAP_ADDRESS (ARCH_FLASH_OFFSET + 0x200000)
#endif
#endif
/* use values provided on input template parsing */
#ifndef WOLFBOOT_PARTITION_BOOT_ADDRESS
#define WOLFBOOT_PARTITION_BOOT_ADDRESS 0x08000
#endif
#ifndef WOLFBOOT_PARTITION_UPDATE_ADDRESS
#define WOLFBOOT_PARTITION_UPDATE_ADDRESS 0x088000
#endif
#ifndef WOLFBOOT_PARTITION_SWAP_ADDRESS
#define WOLFBOOT_PARTITION_SWAP_ADDRESS 0x200000
#endif
#ifndef WOLFBOOT_PARTITION_SIZE
#define WOLFBOOT_PARTITION_SIZE 0x20000
#endif
#endif
#define WOLFBOOT_DTS_BOOT_ADDRESS
#define WOLFBOOT_DTS_UPDATE_ADDRESS
#endif /* WOLFBOOT_FIXED_PARTITIONS */
/* Load address in RAM for staged OS (update_ram only) */
#define WOLFBOOT_LOAD_ADDRESS
#define WOLFBOOT_LOAD_DTS_ADDRESS
#endif /* !H_TARGETS_TARGET_ */

View File

@ -48,7 +48,8 @@ size_t strlen(const char *s); /* forward declaration */
/* allow using built-in libc if WOLFBOOT_USE_STDLIBC is defined */
#ifndef WOLFBOOT_USE_STDLIBC
#if !(defined(BUILD_LOADER_STAGE1) && defined(ARCH_PPC)) || \
(defined(PRINTF_ENABLED) && defined(DEBUG_UART))
(defined(PRINTF_ENABLED) && defined(DEBUG_UART)) \
|| defined(TARGET_same51)
int islower(int c)
{

View File

@ -0,0 +1,44 @@
/* same51.c
*
* Copyright (C) 2024 wolfSSL Inc.
*
* This file is part of wolfBoot.
*
* wolfBoot is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfBoot is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include "hal.h"
#include "wolfboot/wolfboot.h"
#define PORT_BASE 0x41008000
#define GPIOA_BASE PORT_BASE
#define GPIOA_DIR *((volatile uint32_t *)(GPIOA_BASE + 0x00))
#define GPIOA_OUT *((volatile uint32_t *)(GPIOA_BASE + 0x10))
#define GPIOA_WRCONFIG *((volatile uint32_t *)(GPIOA_BASE + 0x28))
#define WRCONFIG_INEN (1 << 1)
#define WRCONFIG_PULLEN (1 << 2)
void main(void) {
GPIOA_WRCONFIG &= ~(WRCONFIG_PULLEN | WRCONFIG_INEN);
GPIOA_DIR |= (1 << 2);
GPIOA_OUT |= (1 << 2);
asm volatile ("cpsie i");
while(1)
asm volatile("WFI");
}