Example workspace/project to build under IAR

iar
Daniele Lacamera 2020-03-27 14:34:20 +01:00
parent 6af52adcb1
commit 486e633069
19 changed files with 9122 additions and 3 deletions

View File

@ -0,0 +1 @@
úw®ÆJ>ß‘`+.ƒ lŒ]Â)|¸êZàŽ6@i<>áÜöDÙIIUFG·ƒ4/#+„g ?üÎU3dËè*›¢³—„júKó1Ô·Þ´[”ô8à/Ér÷<72>}Ñ©ÈÂ

View File

@ -0,0 +1,20 @@
/*
* This file has been generated and contains the public key which is
* used by wolfBoot to verify the updates.
*/
#include <stdint.h>
#warning "USING PRE-GENERATED EXAMPLE ECC KEY -- BOOTLOADER IS NOT SECURE!"
const uint8_t ecc256_pub_key[64] = {
0xFA, 0x77, 0xAE, 0xC6, 0x4A, 0x3E, 0xDF, 0x91,
0x60, 0x2B, 0x2E, 0x83, 0x12, 0x0C, 0x6C, 0x91,
0x8C, 0x5D, 0xC2, 0x29, 0x7C, 0xB8, 0x91, 0xEA,
0x5A, 0x12, 0xE0, 0x8E, 0x36, 0x40, 0x69, 0x8D,
0xE1, 0xDC, 0xF6, 0x44, 0x7F, 0xD9, 0x16, 0x49,
0x49, 0x55, 0x1F, 0x46, 0x47, 0xB7, 0x83, 0x34,
0x04, 0x2F, 0x9B, 0x23, 0x2B, 0x84, 0x67, 0x09,
0x3F, 0xFC, 0xCE, 0x55, 0x33, 0x64, 0xCB, 0xE8
};
const uint32_t ecc256_pub_key_len = 64;

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,40 @@
@REM This batch file has been generated by the IAR Embedded Workbench
@REM C-SPY Debugger, as an aid to preparing a command line for running
@REM the cspybat command line utility using the appropriate settings.
@REM
@REM Note that this file is generated every time a new debug session
@REM is initialized, so you may want to move or rename the file before
@REM making changes.
@REM
@REM You can launch cspybat by typing the name of this batch file followed
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
@REM
@REM Read about available command line parameters in the C-SPY Debugging
@REM Guide. Hints about additional command line parameters that may be
@REM useful in specific cases:
@REM --download_only Downloads a code image without starting a debug
@REM session afterwards.
@REM --silent Omits the sign-on message.
@REM --timeout Limits the maximum allowed execution time.
@REM
@echo off
if not "%~1" == "" goto debugFile
@echo on
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.general.xcl" --backend -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.driver.xcl"
@echo off
goto end
:debugFile
@echo on
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.driver.xcl"
@echo off
:end

View File

@ -0,0 +1,31 @@
param([String]$debugfile = "");
# This powershell file has been generated by the IAR Embedded Workbench
# C - SPY Debugger, as an aid to preparing a command line for running
# the cspybat command line utility using the appropriate settings.
#
# Note that this file is generated every time a new debug session
# is initialized, so you may want to move or rename the file before
# making changes.
#
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
#
# Read about available command line parameters in the C - SPY Debugging
# Guide. Hints about additional command line parameters that may be
# useful in specific cases :
# --download_only Downloads a code image without starting a debug
# session afterwards.
# --silent Omits the sign - on message.
# --timeout Limits the maximum allowed execution time.
#
if ($debugfile -eq "")
{
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.general.xcl" --backend -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.driver.xcl"
}
else
{
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\dan\wolfboot\IDE\IAR\settings\wolfboot.Debug.driver.xcl"
}

View File

@ -0,0 +1,19 @@
"--endian=little"
"--cpu=Cortex-M4"
"--fpu=None"
"-p"
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\CONFIG\debugger\ST\STM32F407VG.ddf"
"--semihosting=none"
"--device=STM32F407VG"
"--multicore_nr_of_cores=1"

View File

@ -0,0 +1,13 @@
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armproc.dll"
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armsim2.dll"
"C:\Users\dan\wolfboot\IDE\IAR\Debug\Exe\wolfboot.out"
--plugin="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armbat.dll"
--device_macro="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\config\debugger\ST\STM32F4xx.dmac"

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<crun>
<version>1</version>
<filter_entries>
<filter index="0" type="default">
<type>*</type>
<start_file>*</start_file>
<end_file>*</end_file>
<action_debugger>0</action_debugger>
<action_log>1</action_log>
</filter>
</filter_entries>
</crun>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<Project>
<WindowStorage />
</Project>

View File

@ -0,0 +1,58 @@
<?xml version="1.0"?>
<settings>
<Stack>
<FillEnabled>0</FillEnabled>
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
<WarningThreshold>90</WarningThreshold>
<SpWarningsEnabled>1</SpWarningsEnabled>
<WarnLogOnly>1</WarnLogOnly>
<UseTrigger>1</UseTrigger>
<TriggerName>main</TriggerName>
<LimitSize>0</LimitSize>
<ByteLimit>50</ByteLimit>
</Stack>
<Trace1>
<Enabled>0</Enabled>
<ShowSource>1</ShowSource>
</Trace1>
<InterruptLog>
<LogEnabled>0</LogEnabled>
<GraphEnabled>0</GraphEnabled>
<ShowTimeLog>1</ShowTimeLog>
<SumEnabled>0</SumEnabled>
<ShowTimeSum>1</ShowTimeSum>
<SumSortOrder>0</SumSortOrder>
</InterruptLog>
<DataLog>
<LogEnabled>0</LogEnabled>
<GraphEnabled>0</GraphEnabled>
<ShowTimeLog>1</ShowTimeLog>
<SumEnabled>0</SumEnabled>
<ShowTimeSum>1</ShowTimeSum>
</DataLog>
<DisassembleMode>
<mode>0</mode>
</DisassembleMode>
<Breakpoints2>
<Count>0</Count>
</Breakpoints2>
<Interrupts>
<Enabled>1</Enabled>
</Interrupts>
<MemConfig>
<Base>1</Base>
<Manual>0</Manual>
<Ddf>1</Ddf>
<TypeViol>0</TypeViol>
<Stop>1</Stop>
</MemConfig>
<Aliases>
<Count>0</Count>
<SuppressDialog>0</SuppressDialog>
</Aliases>
<Simulator>
<Freq>10000000</Freq>
<FreqHi>0</FreqHi>
<MultiCoreRunAll>1</MultiCoreRunAll>
</Simulator>
</settings>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<workspace>
<project>
<path>$WS_DIR$\wolfboot.ewp</path>
</project>
<batchBuild />
</workspace>

View File

@ -0,0 +1,301 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
<fileVersion>4</fileVersion>
<fileChecksum>2162361655</fileChecksum>
<configuration>
<name>Debug</name>
<outputs>
<file>$PROJ_DIR$\Debug\Obj\libwolfboot.o</file>
<file>$PROJ_DIR$\Debug\Obj\update_flash.o</file>
<file>$PROJ_DIR$\Debug\Obj\image.xcl</file>
<file>$PROJ_DIR$\..\..\src\image.c</file>
<file>$PROJ_DIR$\..\..\src\update_flash.c</file>
<file>$PROJ_DIR$\..\..\src\xmalloc_ecc.c</file>
<file>$PROJ_DIR$\Debug\Obj\image.o</file>
<file>$PROJ_DIR$\Debug\Obj\libwolfboot.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\boot_arm.o</file>
<file>$PROJ_DIR$\Debug\Obj\loader.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\update_flash.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\xmalloc_ecc.xcl</file>
<file>$PROJ_DIR$\..\..\src\boot_arm.c</file>
<file>$PROJ_DIR$\Debug\Obj\string.o</file>
<file>$PROJ_DIR$\Debug\Obj\loader.o</file>
<file>$PROJ_DIR$\Debug\Obj\xmalloc_ecc.o</file>
<file>$PROJ_DIR$\Debug\Obj\string.xcl</file>
<file>$PROJ_DIR$\..\..\src\string.c</file>
<file>$PROJ_DIR$\Debug\Obj\boot_arm.xcl</file>
<file>$PROJ_DIR$\..\..\src\libwolfboot.c</file>
<file>$PROJ_DIR$\..\..\src\loader.c</file>
<file>$PROJ_DIR$\Debug\Obj\ecc256_pub_key.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\ecc256_pub_key.o</file>
<file>$PROJ_DIR$\Debug\Obj\wolfboot.pbd</file>
<file>$PROJ_DIR$\..\..\hal\stm32f4.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\memory.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\ecc.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sha.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sp_int.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\wc_port.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sha256.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sp_cortexm.c</file>
<file>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\hash.c</file>
<file>$PROJ_DIR$\Debug\Exe\wolfboot.out</file>
<file>$PROJ_DIR$\Debug\Obj\sha256.o</file>
<file>$PROJ_DIR$\Debug\Obj\hash.o</file>
<file>$PROJ_DIR$\Debug\Obj\wc_port.o</file>
<file>$PROJ_DIR$\Debug\Obj\ecc.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\hash.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\sp_cortexm.o</file>
<file>$PROJ_DIR$\Debug\Obj\sp_int.o</file>
<file>$PROJ_DIR$\Debug\Obj\ecc.o</file>
<file>$PROJ_DIR$\Debug\Obj\memory.o</file>
<file>$PROJ_DIR$\Debug\Obj\sha.o</file>
<file>$PROJ_DIR$\Debug\Obj\sp_int.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\sha256.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\wc_port.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\sp_cortexm.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\stm32f4.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\memory.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\sha.xcl</file>
<file>$PROJ_DIR$\Debug\Obj\stm32f4.o</file>
<file>$PROJ_DIR$\keys\ecc256_pub_key.c</file>
</outputs>
<file>
<name>$PROJ_DIR$\..\..\src\image.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 6</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 2</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\update_flash.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 1</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 10</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\xmalloc_ecc.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 15</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 11</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\boot_arm.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 8</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 18</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\string.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 13</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 16</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\libwolfboot.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 0</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 7</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\loader.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 14</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 9</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\hal\stm32f4.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 51</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 48</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\memory.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 42</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 49</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\ecc.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 41</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 37</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sha.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 43</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 50</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sp_int.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 40</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 44</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\wc_port.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 36</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 46</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sha256.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 34</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 45</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\sp_cortexm.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 39</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 47</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\..\..\lib\wolfssl\wolfcrypt\src\hash.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 35</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 38</file>
</tool>
</outputs>
</file>
<file>
<name>[ROOT_NODE]</name>
<outputs>
<tool>
<name>ILINK</name>
<file> 33</file>
</tool>
</outputs>
</file>
<file>
<name>$PROJ_DIR$\keys\ecc256_pub_key.c</name>
<outputs>
<tool>
<name>ICCARM</name>
<file> 22</file>
</tool>
<tool>
<name>BICOMP</name>
<file> 21</file>
</tool>
</outputs>
</file>
</configuration>
<configuration>
<name>Release</name>
<outputs />
<forcedrebuild>
<name>[MULTI_TOOL]</name>
<tool>ILINK</tool>
</forcedrebuild>
</configuration>
</project>

2974
IDE/IAR/wolfboot.ewd 100644

File diff suppressed because it is too large Load Diff

2223
IDE/IAR/wolfboot.ewp 100644

File diff suppressed because it is too large Load Diff

2875
IDE/IAR/wolfboot.ewt 100644

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@
/* STM32 F4 register configuration */
/* Assembly helpers */
#define DMB() __asm__ volatile ("dmb")
#define DMB() asm volatile ("dmb")
/*** RCC ***/

@ -1 +1 @@
Subproject commit 1ea7755232f9901cb6fa015c224004d18a4aa2f2
Subproject commit 3f13b49fa318fbd3216d7da36d942e7c276d3413

View File

@ -51,6 +51,7 @@ int isalpha(int c)
return (isupper(c) || islower(c));
}
#ifndef __IAR_SYSTEMS_ICC__
void *memset(void *s, int c, size_t n)
{
unsigned char *d = (unsigned char *)s;
@ -61,6 +62,7 @@ void *memset(void *s, int c, size_t n)
return s;
}
#endif /* IAR */
char *strcat(char *dest, const char *src)
{
@ -166,6 +168,7 @@ int strncmp(const char *s1, const char *s2, size_t n)
return diff;
}
#ifndef __IAR_SYSTEMS_ICC__
void *memcpy(void *dst, const void *src, size_t n)
{
size_t i;
@ -178,6 +181,7 @@ void *memcpy(void *dst, const void *src, size_t n)
return dst;
}
#endif /* IAR */
char *strncpy(char *dst, const char *src, size_t n)
{
@ -206,6 +210,7 @@ char *strcpy(char *dst, const char *src)
return dst;
}
int memcmp(const void *_s1, const void *_s2, size_t n)
{
int diff = 0;
@ -222,6 +227,7 @@ int memcmp(const void *_s1, const void *_s2, size_t n)
return diff;
}
#ifndef __IAR_SYSTEMS_ICC__
void *memmove(void *dst, const void *src, size_t n)
{
int i;
@ -238,3 +244,4 @@ void *memmove(void *dst, const void *src, size_t n)
return memcpy(dst, src, n);
}
}
#endif

View File

@ -48,7 +48,7 @@
#define SP_NORMALIZER_SIZE (128)
static int sp_point_in_use[MAX_POINTS] = { };
static int sp_point_in_use[MAX_POINTS] = { 0 };
static uint8_t sp_point_buffer[MAX_POINTS][SP_POINT_SIZE];
#ifdef FREESCALE_USE_LTC