diff --git a/Host/FeaserKey.dll b/Host/FeaserKey.dll
new file mode 100644
index 00000000..43e81d6e
Binary files /dev/null and b/Host/FeaserKey.dll differ
diff --git a/Host/Source/MicroBoot/interfaces/XcpLoader.pas b/Host/Source/MicroBoot/interfaces/XcpLoader.pas
index d9737548..0fb77483 100644
--- a/Host/Source/MicroBoot/interfaces/XcpLoader.pas
+++ b/Host/Source/MicroBoot/interfaces/XcpLoader.pas
@@ -104,6 +104,11 @@ const kErrFsrResourceUnavailable = $81; // Resource needed but not available
const kErrFsrSeedKeyDllInvalid = $82; // Seed/Key DLL is invalid
const kErrFsrKeyAlgoMissing = $83; // Key computation algorithm is missing
+// Start programming session return codes
+const kProgSessionStarted = 0;
+const kProgSessionUnlockError = 1;
+const kProgSessionGenericError = 2;
+
//***************************************************************************************
// Type Definitions
@@ -148,7 +153,7 @@ type
function Connect : Boolean;
function IsComError : Boolean;
procedure Disconnect;
- function StartProgrammingSession : Boolean;
+ function StartProgrammingSession : Byte;
function StopProgrammingSession : Boolean;
function ClearMemory(addr : LongWord; len : LongWord) : Boolean;
function WriteData(addr : LongWord; len : LongWord; data : PByteArray) : Boolean;
@@ -1073,7 +1078,8 @@ end; //*** end of CmdProgramClear ***
//***************************************************************************************
// NAME: StartProgrammingSession
// PARAMETER: none
-// RETURN VALUE: True is successful, False otherwise
+// RETURN VALUE: kProgSessionStarted if successful, kProgSessionUnlockError in case
+// the PGM resource could not be unlocked or kProgSessionGenericError.
// DESCRIPTION: Starts the programming session using the following XCP command
// sequence:
// * CONNECT
@@ -1083,7 +1089,7 @@ end; //*** end of CmdProgramClear ***
// * PROGRAM_START
//
//***************************************************************************************
-function TXcpLoader.StartProgrammingSession : Boolean;
+function TXcpLoader.StartProgrammingSession : Byte;
var
xcpProtection : TXcpProtection;
supportedRes : Byte;
@@ -1092,21 +1098,27 @@ var
keyData : array[0..5] of Byte;
keyLen : byte;
begin
- // init return value
- result := false;
-
// send the CONNECT command
- if not CmdConnect then Exit;
+ if not CmdConnect then
+ begin
+ result := kProgSessionGenericError;
+ Exit;
+ end;
// make sure the programming resource is supported
if (FResources and kResPGM) <> kResPGM then
begin
FLastError := kErrFsrResourceUnavailable;
+ result := kProgSessionGenericError;
Exit;
end;
// send the GET_STATUS command
- if not CmdGetStatus then Exit;
+ if not CmdGetStatus then
+ begin
+ result := kProgSessionGenericError;
+ Exit;
+ end;
// check if we need to unlock the programming resource
if (FProtection and kResPGM) = kResPGM then
@@ -1118,12 +1130,14 @@ begin
if xcpProtection.GetPrivileges(@supportedRes) <> 0 then
begin
FLastError := kErrFsrSeedKeyDllInvalid; // error calling DLL function
+ result := kProgSessionUnlockError;
xcpProtection.Free; // release the object
Exit;
end;
if (supportedRes and kResPGM) <> kResPGM then
begin
FLastError := kErrFsrKeyAlgoMissing; // key algorithm not present
+ result := kProgSessionUnlockError;
xcpProtection.Free; // release the object
Exit;
end;
@@ -1131,6 +1145,7 @@ begin
// obtain the seed for the programming resource
if not CmdGetSeed(@seedData, kResPGM, seedLen) then
begin
+ result := kProgSessionUnlockError;
xcpProtection.Free; // release the object
Exit;
end;
@@ -1140,6 +1155,7 @@ begin
if xcpProtection.ComputKeyFromSeed(kResPGM, seedLen, @seedData, @keyLen, @keyData) <> 0 then
begin
FLastError := kErrFsrSeedKeyDllInvalid; // error calling DLL function
+ result := kProgSessionUnlockError;
xcpProtection.Free; // release the object
Exit;
end;
@@ -1148,21 +1164,30 @@ begin
xcpProtection.Free;
// we have the key so now unlock the resource
- if not CmdUnlock(@keyData, keyLen) then Exit;
+ if not CmdUnlock(@keyData, keyLen) then
+ begin
+ result := kProgSessionUnlockError;
+ Exit;
+ end;
// make sure the PGM resource is really unprotected now
if (FProtection and kResPGM) = kResPGM then
begin
FLastError := kErrACCESS_LOCKED;
+ result := kProgSessionUnlockError;
Exit;
end;
end;
// send the PROGRAM_START command
- if not CmdProgramStart then Exit;
+ if not CmdProgramStart then
+ begin
+ result := kProgSessionGenericError;
+ Exit;
+ end;
// successfully started the programming session
- result := true;
+ result := kProgSessionStarted;
end; //*** end of StartProgrammingSession ***
diff --git a/Host/Source/MicroBoot/interfaces/can/peak/openblt_can_peak.dpr b/Host/Source/MicroBoot/interfaces/can/peak/openblt_can_peak.dpr
index 70c3735a..819a675d 100644
--- a/Host/Source/MicroBoot/interfaces/can/peak/openblt_can_peak.dpr
+++ b/Host/Source/MicroBoot/interfaces/can/peak/openblt_can_peak.dpr
@@ -254,6 +254,7 @@ var
progress : longword;
regionCnt : longword;
currentWriteCnt : word;
+ sessionStartResult : byte;
bufferOffset : longword;
addr : longword;
len : longword;
@@ -278,7 +279,16 @@ begin
// try initial connect via XCP. if the user program is able to reactivate the bootloader
// it will do so now
- if not loader.StartProgrammingSession then
+ sessionStartResult := loader.StartProgrammingSession;
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ loader.Disconnect;
+ Exit;
+ end;
+ // try initial connect via XCP
+ if sessionStartResult <> kProgSessionStarted then
begin
// update the user info
MbiCallbackOnInfo('Could not connect. Retrying. Reset your target if this takes a long time.');
@@ -290,8 +300,10 @@ begin
// should be at least 2.5x this.
Sleep(200);
// continuously try to connect via XCP true the backdoor
- while not loader.StartProgrammingSession do
+ sessionStartResult := kProgSessionGenericError;
+ while sessionStartResult <> kProgSessionStarted do
begin
+ sessionStartResult := loader.StartProgrammingSession;
Application.ProcessMessages;
Sleep(5);
// if the is in reset of otherwise does not have the CAN controller synchronized to
@@ -310,7 +322,15 @@ begin
end;
Sleep(200);
end;
+ // don't retry if the error was caused by not being able to unprotect the programming resource
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ Exit;
+ end;
+ // check if the user cancelled
if stopRequest then
begin
MbiCallbackOnError('Programming session cancelled by user.');
diff --git a/Host/Source/MicroBoot/interfaces/can/vector/openblt_can_vector.dpr b/Host/Source/MicroBoot/interfaces/can/vector/openblt_can_vector.dpr
index f3514d88..0e0660c7 100644
--- a/Host/Source/MicroBoot/interfaces/can/vector/openblt_can_vector.dpr
+++ b/Host/Source/MicroBoot/interfaces/can/vector/openblt_can_vector.dpr
@@ -254,6 +254,7 @@ var
progress : longword;
regionCnt : longword;
currentWriteCnt : word;
+ sessionStartResult : byte;
bufferOffset : longword;
addr : longword;
len : longword;
@@ -278,7 +279,16 @@ begin
// try initial connect via XCP. if the user program is able to reactivate the bootloader
// it will do so now
- if not loader.StartProgrammingSession then
+ sessionStartResult := loader.StartProgrammingSession;
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ loader.Disconnect;
+ Exit;
+ end;
+ // try initial connect via XCP
+ if sessionStartResult <> kProgSessionStarted then
begin
// update the user info
MbiCallbackOnInfo('Could not connect. Retrying. Reset your target if this takes a long time.');
@@ -290,8 +300,10 @@ begin
// should be at least 2.5x this.
Sleep(200);
// continuously try to connect via XCP true the backdoor
- while not loader.StartProgrammingSession do
+ sessionStartResult := kProgSessionGenericError;
+ while sessionStartResult <> kProgSessionStarted do
begin
+ sessionStartResult := loader.StartProgrammingSession;
Application.ProcessMessages;
Sleep(5);
// if the is in reset of otherwise does not have the CAN controller synchronized to
@@ -310,7 +322,15 @@ begin
end;
Sleep(200);
end;
+ // don't retry if the error was caused by not being able to unprotect the programming resource
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ Exit;
+ end;
+ // check if the user cancelled
if stopRequest then
begin
MbiCallbackOnError('Programming session cancelled by user.');
diff --git a/Host/Source/MicroBoot/interfaces/net/WSockets.dcu b/Host/Source/MicroBoot/interfaces/net/WSockets.dcu
index c342bb0c..ae43ac3a 100644
Binary files a/Host/Source/MicroBoot/interfaces/net/WSockets.dcu and b/Host/Source/MicroBoot/interfaces/net/WSockets.dcu differ
diff --git a/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu b/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu
index c3a07e11..d509a8f7 100644
Binary files a/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu and b/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu differ
diff --git a/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu b/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu
index eebafa11..0897517c 100644
Binary files a/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu and b/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu differ
diff --git a/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr b/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr
index b27bface..89aa2a3f 100644
--- a/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr
+++ b/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr
@@ -253,6 +253,7 @@ var
progress : longword;
regionCnt : longword;
currentWriteCnt : word;
+ sessionStartResult : byte;
bufferOffset : longword;
addr : longword;
len : longword;
@@ -287,7 +288,16 @@ begin
// we now have a socket connected to the target. next attempt to connect to the target
// via XCP.
MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time));
- if not loader.StartProgrammingSession then
+ sessionStartResult := loader.StartProgrammingSession;
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ loader.Disconnect;
+ Exit;
+ end;
+
+ if sessionStartResult <> kProgSessionStarted then
begin
// note that a running user program might have received the connect command and
// performed a software reset to activate the bootloader. this causes a reconfigu-
@@ -322,17 +332,38 @@ begin
//---------------- start the programming session --------------------------------------
MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time));
// try initial connect via XCP
- if not loader.StartProgrammingSession then
+ sessionStartResult := loader.StartProgrammingSession;
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ loader.Disconnect;
+ Exit;
+ end;
+
+
+ if sessionStartResult <> kProgSessionStarted then
begin
// update the user info
MbiCallbackOnInfo('Could not connect. Please reset your target...');
MbiCallbackOnLog('Connect failed. Switching to backdoor entry mode. t='+TimeToStr(Time));
Application.ProcessMessages;
// continuously try to connect via XCP true the backdoor
- while not loader.StartProgrammingSession do
+ sessionStartResult := kProgSessionGenericError;
+ while sessionStartResult <> kProgSessionStarted do
begin
+ sessionStartResult := loader.StartProgrammingSession;
Application.ProcessMessages;
Sleep(5);
+ // don't retry if the error was caused by not being able to unprotect the programming resource
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ Exit;
+ end;
+
+ // check if the user cancelled
if stopRequest then
begin
MbiCallbackOnError('Programming session cancelled by user.');
diff --git a/Host/Source/MicroBoot/interfaces/uart/openblt_uart.dpr b/Host/Source/MicroBoot/interfaces/uart/openblt_uart.dpr
index abb7748b..bb41c3e7 100644
--- a/Host/Source/MicroBoot/interfaces/uart/openblt_uart.dpr
+++ b/Host/Source/MicroBoot/interfaces/uart/openblt_uart.dpr
@@ -253,6 +253,7 @@ var
progress : longword;
regionCnt : longword;
currentWriteCnt : word;
+ sessionStartResult : byte;
bufferOffset : longword;
addr : longword;
len : longword;
@@ -276,17 +277,28 @@ begin
MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time));
// try initial connect via XCP
- if not loader.StartProgrammingSession then
+ if loader.StartProgrammingSession <> kProgSessionStarted then
begin
// update the user info
MbiCallbackOnInfo('Could not connect. Retrying. Reset your target if this takes a long time.');
MbiCallbackOnLog('Connect failed. Switching to backdoor entry mode. t='+TimeToStr(Time));
Application.ProcessMessages;
// continuously try to connect via XCP true the backdoor
- while not loader.StartProgrammingSession do
+ sessionStartResult := kProgSessionGenericError;
+ while sessionStartResult <> kProgSessionStarted do
begin
+ sessionStartResult := loader.StartProgrammingSession;
Application.ProcessMessages;
Sleep(5);
+ // don't retry if the error was caused by not being able to unprotect the programming resource
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ Exit;
+ end;
+
+ // check if the user cancelled
if stopRequest then
begin
MbiCallbackOnError('Programming session cancelled by user.');
diff --git a/Host/Source/MicroBoot/interfaces/usb/openblt_usb.dpr b/Host/Source/MicroBoot/interfaces/usb/openblt_usb.dpr
index 6fcad194..30c8316c 100644
--- a/Host/Source/MicroBoot/interfaces/usb/openblt_usb.dpr
+++ b/Host/Source/MicroBoot/interfaces/usb/openblt_usb.dpr
@@ -253,6 +253,7 @@ var
progress : longword;
regionCnt : longword;
currentWriteCnt : word;
+ sessionStartResult : byte;
bufferOffset : longword;
addr : longword;
len : longword;
@@ -288,17 +289,28 @@ begin
MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time));
// try initial connect via XCP
- if not loader.StartProgrammingSession then
+ if loader.StartProgrammingSession <> kProgSessionStarted then
begin
// update the user info
- MbiCallbackOnInfo('Could not connect. Please reset your target...');
+ MbiCallbackOnInfo('Could not connect. Retrying. Reset your target if this takes a long time.');
MbiCallbackOnLog('Connect failed. Switching to backdoor entry mode. t='+TimeToStr(Time));
Application.ProcessMessages;
// continuously try to connect via XCP true the backdoor
- while not loader.StartProgrammingSession do
+ sessionStartResult := kProgSessionGenericError;
+ while sessionStartResult <> kProgSessionStarted do
begin
+ sessionStartResult := loader.StartProgrammingSession;
Application.ProcessMessages;
Sleep(5);
+ // don't retry if the error was caused by not being able to unprotect the programming resource
+ if sessionStartResult = kProgSessionUnlockError then
+ begin
+ MbiCallbackOnLog('Security issue. Could not unprotect the programming resource. Check your configured XCP protection DLL. t='+TimeToStr(Time));
+ MbiCallbackOnError('Security issue. Could not unprotect the programming resource.');
+ Exit;
+ end;
+
+ // check if the user cancelled
if stopRequest then
begin
MbiCallbackOnError('Programming session cancelled by user.');
diff --git a/Host/Source/MicroBoot/seedkey/SeedNKey.cpp b/Host/Source/MicroBoot/seedkey/SeedNKey.cpp
new file mode 100644
index 00000000..b05a9b09
--- /dev/null
+++ b/Host/Source/MicroBoot/seedkey/SeedNKey.cpp
@@ -0,0 +1,126 @@
+/************************************************************************************//**
+* \file SeedNKey.cpp
+* \brief XCP Seed/Key algorithms
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2014 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT 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 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT 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 OpenBLT.
+* If not, see .
+*
+* A special exception to the GPL is included to allow you to distribute a combined work
+* that includes OpenBLT without being obliged to provide the source code for any
+* proprietary components. The exception text is included at the bottom of the license
+* file .
+*
+* \endinternal
+****************************************************************************************/
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/****************************************************************************************
+* Type definitions
+****************************************************************************************/
+typedef unsigned char BYTE;
+typedef unsigned long DWORD;
+
+
+/****************************************************************************************
+* Defines
+****************************************************************************************/
+/* XCP dll function type info */
+#define XCP_DLL_EXPORT __declspec(dllexport) __cdecl
+
+/* XCP supported resources */
+#define kXcpResPGM 0x10 /* ProGraMing */
+#define kXcpResSTIM 0x08 /* data STIMulation */
+#define kXcpResDAQ 0x04 /* Data AcQuisition */
+#define kXcpResCALPAG 0x01 /* CALibration and PAGing */
+
+
+/****************************************************************************************
+** NAME: XCP_ComputeKeyFromSeed
+** PARAMETER: resource : resource for which the unlock key is requested
+** seedLen : length of the seed
+** seedPtr : pointer to the seed data
+** keyLenPtr: pointer where to store the key length
+** keyPtr : pointer where to store the key data
+** RETURN VALUE: 0: success, 1: error
+** DESCRIPTION: Computes the key for the requested resource.
+**
+****************************************************************************************/
+
+/************************************************************************************//**
+** \brief Computes the key for the requested resource.
+** \param resource resource for which the unlock key is requested
+** \param seedLen length of the seed
+** \param seedPtr pointer to the seed data
+** \param keyLenPtr pointer where to store the key length
+** \param keyPtr pointer where to store the key data
+** \return 0 on success, otherwise 1.
+**
+****************************************************************************************/
+DWORD XCP_DLL_EXPORT XCP_ComputeKeyFromSeed( BYTE resource, BYTE seedLen, BYTE *seedPtr,
+ BYTE *keyLenPtr, BYTE *keyPtr)
+{
+ BYTE i;
+
+ /* Feaser XCP driver example key algorithm for PGM simply
+ * decrements the value of each seed by 1
+ */
+ if ( resource == kXcpResPGM )
+ {
+ /* compute the key */
+ for ( i=0; i
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Host/openblt_can_peak.dll b/Host/openblt_can_peak.dll
index 19eb3c7b..fc39d61e 100644
Binary files a/Host/openblt_can_peak.dll and b/Host/openblt_can_peak.dll differ
diff --git a/Host/openblt_can_peak.ini b/Host/openblt_can_peak.ini
index 99679d0d..98acacfa 100644
--- a/Host/openblt_can_peak.ini
+++ b/Host/openblt_can_peak.ini
@@ -6,7 +6,7 @@ extended=0
txid=1639
rxid=2017
[xcp]
-seedkey=
+seedkey=FeaserKey.dll
t1=1000
t3=2000
t4=10000
diff --git a/Host/openblt_can_vector.dll b/Host/openblt_can_vector.dll
index 0b5ff7f3..10688c4d 100644
Binary files a/Host/openblt_can_vector.dll and b/Host/openblt_can_vector.dll differ
diff --git a/Host/openblt_can_vector.ini b/Host/openblt_can_vector.ini
index b750f89e..571a73bb 100644
--- a/Host/openblt_can_vector.ini
+++ b/Host/openblt_can_vector.ini
@@ -6,7 +6,7 @@ extended=0
txid=1639
rxid=2017
[xcp]
-seedkey=
+seedkey=FeaserKey.dll
t1=1000
t3=2000
t4=10000
diff --git a/Host/openblt_net.dll b/Host/openblt_net.dll
index 6fa5405e..8936b1bc 100644
Binary files a/Host/openblt_net.dll and b/Host/openblt_net.dll differ
diff --git a/Host/openblt_net.ini b/Host/openblt_net.ini
index f319755a..d659c657 100644
--- a/Host/openblt_net.ini
+++ b/Host/openblt_net.ini
@@ -3,7 +3,7 @@ hostname=169.254.19.63
port=1000
retry=1
[xcp]
-seedkey=
+seedkey=FeaserKey.dll
t1=1000
t3=2000
t4=10000
diff --git a/Host/openblt_uart.dll b/Host/openblt_uart.dll
index ccf0bc44..6fde1e8f 100644
Binary files a/Host/openblt_uart.dll and b/Host/openblt_uart.dll differ
diff --git a/Host/openblt_uart.ini b/Host/openblt_uart.ini
index fe11aa00..12b4d97c 100644
--- a/Host/openblt_uart.ini
+++ b/Host/openblt_uart.ini
@@ -2,7 +2,7 @@
port=3
baudrate=8
[xcp]
-seedkey=
+seedkey=FeaserKey.dll
t1=1000
t3=2000
t4=10000
diff --git a/Host/openblt_usb.dll b/Host/openblt_usb.dll
index b7ae27f3..52b30116 100644
Binary files a/Host/openblt_usb.dll and b/Host/openblt_usb.dll differ
diff --git a/Host/openblt_usb.ini b/Host/openblt_usb.ini
index 6a8f24d1..16d7f206 100644
--- a/Host/openblt_usb.ini
+++ b/Host/openblt_usb.ini
@@ -1,5 +1,5 @@
[xcp]
-seedkey=
+seedkey=FeaserKey.dll
t1=1000
t3=2000
t4=10000
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf
index 0d5ee156..92c3c323 100644
Binary files a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf and b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf differ
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/blt_conf.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/blt_conf.h
index 061c92a0..6a941fb5 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/blt_conf.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/blt_conf.h
@@ -155,5 +155,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c
index b3a072a5..a590acdf 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c
@@ -227,4 +227,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/ide/lpc2294_crossworks.hzs b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/ide/lpc2294_crossworks.hzs
index a33a434f..4f2416d1 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/ide/lpc2294_crossworks.hzs
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/ide/lpc2294_crossworks.hzs
@@ -51,12 +51,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf
index d2131ab4..36d0618f 100644
Binary files a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf and b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf differ
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/blt_conf.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/blt_conf.h
index 0a0e3187..00cea9f8 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/blt_conf.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/blt_conf.h
@@ -155,5 +155,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c
index b19c1d11..3bc96cc4 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c
@@ -227,4 +227,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf
index a67dbd0b..89f4ad14 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/blt_conf.h
index 28ca6993..c00c0f6a 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/blt_conf.h
@@ -128,5 +128,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c
index 8e48c033..d6af3f75 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c
@@ -213,4 +213,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs
index 697fcb24..f8a21e17 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf
index 0daebe78..e757137f 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/blt_conf.h
index 53066665..d42b95ad 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/blt_conf.h
@@ -128,5 +128,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c
index 399852ff..b1f16f47 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c
@@ -213,4 +213,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out
index 559120f1..5bb727a6 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/blt_conf.h
index 01329e35..27431e31 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/blt_conf.h
@@ -128,5 +128,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c
index e3cf78c3..52c3cf17 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c
@@ -213,4 +213,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep
index 384de8ca..1325bf38 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep
@@ -82,8 +82,9 @@
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\cpu.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\flash.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\flash.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\nvm.c
+ $PROJ_DIR$\..\obj\efm32_msc.o
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\nvm.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\nvm.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\timer.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\timer.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\types.h
@@ -102,16 +103,16 @@
$PROJ_DIR$\..\..\..\..\Source\plausibility.h
$PROJ_DIR$\..\..\..\..\Source\xcp.c
$PROJ_DIR$\..\..\..\..\Source\xcp.h
- $PROJ_DIR$\..\obj\core_cm3.lst
$PROJ_DIR$\..\config.h
+ $PROJ_DIR$\..\obj\core_cm3.lst
$PROJ_DIR$\..\obj\core_cm3.o
- $PROJ_DIR$\..\obj\main.pbi
- $PROJ_DIR$\..\obj\timer.o
- $PROJ_DIR$\..\obj\boot.lst
$PROJ_DIR$\..\obj\vectors.pbi
- $PROJ_DIR$\..\obj\timer.pbi
$PROJ_DIR$\..\obj\system_efm32.pbi
+ $PROJ_DIR$\..\obj\timer.pbi
+ $PROJ_DIR$\..\obj\boot.lst
$PROJ_DIR$\..\obj\efm32G880.pbd
+ $PROJ_DIR$\..\obj\timer.o
+ $PROJ_DIR$\..\obj\main.pbi
$PROJ_DIR$\..\obj\boot.pbi
$PROJ_DIR$\..\obj\efm32_assert.lst
$PROJ_DIR$\..\obj\uart.pbi
@@ -126,7 +127,6 @@
$PROJ_DIR$\..\obj\efm32_vcmp.pbi
$TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h
$PROJ_DIR$\..\obj\efm32_mpu.o
- $PROJ_DIR$\..\obj\efm32_msc.o
$PROJ_DIR$\..\obj\system_efm32.o
$TOOLKIT_DIR$\inc\c\ycheck.h
$PROJ_DIR$\..\obj\efm32_cmu.o
@@ -270,7 +270,7 @@
ICCARM
- 96 98
+ 98 99
BICOMP
@@ -280,11 +280,11 @@
ICCARM
- 125 122 213 236 118 229 216 214
+ 125 122 213 236 119 229 216 214
BICOMP
- 125 122 213 236 118 229 216 214
+ 125 122 213 236 119 229 216 214
@@ -297,17 +297,17 @@
BICOMP
- 104
+ 101
ICCARM
- 125 122 213 236 118 229 216 214 0 5 3 4 181 180 1 7
+ 125 122 213 236 119 229 216 214 0 5 3 4 181 180 1 7
BICOMP
- 125 122 213 236 118 229 216 214 0 5 3 4 181 180 1 7
+ 125 122 213 236 119 229 216 214 0 5 3 4 181 180 1 7
@@ -326,11 +326,7 @@
ICCARM
- 255 9 125 122 213 236 118 229 216 214 0 5 3 4 181 180 1 7 16 15
-
-
- BICOMP
- 255 9 125 122 213 236 118 229 216 214 0 5 3 4 181 180 1 7 16 15
+ 255 9 125 122 213 236 119 229 216 214 0 5 3 4 181 180 1 7 16 15
@@ -349,7 +345,7 @@
ICCARM
- 11 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 11 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
@@ -368,11 +364,11 @@
ICCARM
- 13 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15
+ 13 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15
BICOMP
- 13 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15
+ 13 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15
@@ -381,7 +377,7 @@
ICCARM
- 107 211
+ 108 211
BICOMP
@@ -414,11 +410,11 @@
ICCARM
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 255 16 15 29
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 255 16 15 29
BICOMP
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 255 16 15 29
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 255 16 15 29
@@ -437,11 +433,11 @@
ICCARM
- 21 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 21 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
BICOMP
- 21 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 21 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
@@ -460,14 +456,23 @@
ICCARM
- 15 23 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 31
+ 15 23 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 31
BICOMP
- 15 23 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 31
+ 15 23 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 31
+
+ [ROOT_NODE]
+
+
+ ILINK
+ 223 237
+
+
+
$PROJ_DIR$\..\lib\efm32lib\src\efm32_dma.c
@@ -483,11 +488,11 @@
ICCARM
- 25 182 122 213 236 118 229 216 214 184 183 255 0 5 3 125 4 181 180 1 7 19 16 15
+ 25 182 122 213 236 119 229 216 214 184 183 255 0 5 3 125 4 181 180 1 7 19 16 15
BICOMP
- 25 182 122 213 236 118 229 216 214 184 183 255 0 5 3 125 4 181 180 1 7 19 16 15
+ 25 182 122 213 236 119 229 216 214 184 183 255 0 5 3 125 4 181 180 1 7 19 16 15
@@ -506,11 +511,11 @@
ICCARM
- 27 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15 255 16 219 184
+ 27 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15 255 16 219 184
BICOMP
- 27 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15 255 16 219 184
+ 27 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15 255 16 219 184
@@ -529,23 +534,14 @@
ICCARM
- 29 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 16 19 15
+ 29 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 16 19 15
BICOMP
- 29 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 16 19 15
+ 29 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 16 19 15
-
- [ROOT_NODE]
-
-
- ILINK
- 223 237
-
-
-
$PROJ_DIR$\..\lib\efm32lib\src\efm32_gpio.c
@@ -561,11 +557,11 @@
ICCARM
- 31 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 16 15
+ 31 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 16 15
BICOMP
- 31 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 16 15
+ 31 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 16 15
@@ -584,11 +580,11 @@
ICCARM
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 33 255 19 16 15
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 33 255 19 16 15
BICOMP
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 33 255 19 16 15
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 33 255 19 16 15
@@ -607,11 +603,11 @@
ICCARM
- 125 122 213 236 118 229 216 214 35 0 5 3 4 181 180 1 7
+ 125 122 213 236 119 229 216 214 35 0 5 3 4 181 180 1 7
BICOMP
- 125 122 213 236 118 229 216 214 35 0 5 3 4 181 180 1 7
+ 125 122 213 236 119 229 216 214 35 0 5 3 4 181 180 1 7
@@ -630,11 +626,11 @@
ICCARM
- 37 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 255 15 16
+ 37 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 255 15 16
BICOMP
- 37 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 255 15 16
+ 37 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 255 15 16
@@ -653,11 +649,11 @@
ICCARM
- 39 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7
+ 39 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7
BICOMP
- 39 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7
+ 39 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7
@@ -676,11 +672,11 @@
ICCARM
- 41 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 41 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
BICOMP
- 41 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 41 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
@@ -699,11 +695,11 @@
ICCARM
- 43 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 43 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
BICOMP
- 43 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 43 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
@@ -712,7 +708,7 @@
ICCARM
- 225 119
+ 225 120
BICOMP
@@ -722,11 +718,11 @@
ICCARM
- 45 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15 255
+ 45 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15 255
BICOMP
- 45 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15 255
+ 45 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15 255
@@ -735,7 +731,7 @@
ICCARM
- 220 120
+ 220 76
BICOMP
@@ -745,11 +741,11 @@
ICCARM
- 47 125 122 213 236 118 229 216 214 255 0 5 3 4 181 180 1 7 16 15
+ 47 125 122 213 236 119 229 216 214 255 0 5 3 4 181 180 1 7 16 15
BICOMP
- 47 125 122 213 236 118 229 216 214 255 0 5 3 4 181 180 1 7 16 15
+ 47 125 122 213 236 119 229 216 214 255 0 5 3 4 181 180 1 7 16 15
@@ -768,11 +764,11 @@
ICCARM
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7
BICOMP
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7
@@ -791,11 +787,11 @@
ICCARM
- 50 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 50 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
BICOMP
- 50 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 50 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
@@ -814,11 +810,11 @@
ICCARM
- 52 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15 16
+ 52 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15 16
BICOMP
- 52 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15 16
+ 52 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15 16
@@ -831,17 +827,17 @@
BICOMP
- 112
+ 113
ICCARM
- 54 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 29 16
+ 54 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 29 16
BICOMP
- 54 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 29 16
+ 54 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 29 16
@@ -854,13 +850,13 @@
BICOMP
- 113
+ 114
ICCARM
- 56 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 15 16
+ 56 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 15 16
@@ -873,17 +869,17 @@
BICOMP
- 114
+ 115
ICCARM
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 58 255 15
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 58 255 15
BICOMP
- 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 58 255 15
+ 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 58 255 15
@@ -896,17 +892,17 @@
BICOMP
- 115
+ 116
ICCARM
- 60 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 60 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
BICOMP
- 60 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 60 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
@@ -919,17 +915,17 @@
BICOMP
- 116
+ 117
ICCARM
- 62 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 62 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
BICOMP
- 62 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 16 15
+ 62 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 16 15
@@ -942,17 +938,17 @@
BICOMP
- 117
+ 118
ICCARM
- 15 64 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 255
+ 15 64 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 255
BICOMP
- 15 64 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 255
+ 15 64 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 255
@@ -971,11 +967,11 @@
ICCARM
- 66 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 16
+ 66 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 16
BICOMP
- 66 255 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 16
+ 66 255 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 16
@@ -994,11 +990,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
@@ -1011,17 +1007,17 @@
BICOMP
- 99
+ 106
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 17 58 255 19 16 31 15
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 17 58 255 19 16 31 15
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 17 58 255 19 16 31 15
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 17 58 255 19 16 31 15
@@ -1030,7 +1026,7 @@
AARM
- 109
+ 110
@@ -1039,21 +1035,21 @@
ICCARM
- 111 110
+ 112 111
BICOMP
- 102
+ 100
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1072,11 +1068,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1095,11 +1091,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95 47 125 122 213 236 118 229 216 214 255 0 5 3 4 181 180 1 7 16
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96 47 125 122 213 236 119 229 216 214 255 0 5 3 4 181 180 1 7 16
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95 47 125 122 213 236 118 229 216 214 255 0 5 3 4 181 180 1 7 16
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96 47 125 122 213 236 119 229 216 214 255 0 5 3 4 181 180 1 7 16
@@ -1118,11 +1114,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1131,21 +1127,21 @@
ICCARM
- 128 100
+ 128 105
BICOMP
- 103
+ 102
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1158,17 +1154,17 @@
BICOMP
- 108
+ 109
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 255 16 31 15 43
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 255 16 31 15 43
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95 0 5 3 125 122 213 236 118 229 216 214 4 181 180 1 7 19 255 16 31 15 43
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96 0 5 3 125 122 213 236 119 229 216 214 4 181 180 1 7 19 255 16 31 15 43
@@ -1187,11 +1183,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1210,11 +1206,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1223,21 +1219,21 @@
ICCARM
- 101 188
+ 103 188
BICOMP
- 106
+ 107
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1256,11 +1252,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95 82
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96 83
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95 82
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96 83
@@ -1279,11 +1275,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1302,11 +1298,11 @@
ICCARM
- 88 80 84 67 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 67 94 73 93 77 75 80 87 257 91 96
BICOMP
- 88 80 84 97 93 73 92 77 75 79 86 257 90 95
+ 89 81 85 97 94 73 93 77 75 80 87 257 91 96
@@ -1325,7 +1321,7 @@
ILINK
- 218 131 194 188 189 193 98 201 109 167 169 168 211 123 227 228 147 148 149 150 173 172 171 170 165 166 119 120 145 146 179 177 178 175 174 176 144 126 202 132 187 200 121 100 203 110 191 186 143 129 142
+ 218 131 194 188 189 193 99 201 110 167 169 168 211 123 227 228 147 148 149 150 173 172 171 170 165 166 120 76 145 146 179 177 178 175 174 176 144 126 202 132 187 200 121 105 203 111 191 186 143 129 142
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt
index 9035b239..8912565e 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt
@@ -29,7 +29,7 @@
-
+
TabID-3636-6432
@@ -41,7 +41,7 @@
- 0
+ 0
TabID-28813-8212
@@ -57,20 +57,20 @@
TabID-20200-19078Debug LogDebug-Log
- 0
+ 0
- TextEditor$WS_DIR$\..\main.c0000036310631060TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_EFM32\timer.h00000000TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_EFM32\timer.c00000000TextEditor$WS_DIR$\..\blt_conf.h0000066339533950100000010000001
+ TextEditor$WS_DIR$\..\main.c0000036310631060TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_EFM32\timer.h00000000TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_EFM32\timer.c00000000TextEditor$WS_DIR$\..\blt_conf.h00000112924992490100000010000001
- iaridepm.enu1-2-2723442-2-2240242125000240079231250719246-2-22401922-2-219242421002083240079125000240079
+ iaridepm.enu1-2-2723442-2-2240242125000240079231250719246-2-22401922-2-219242421002083240079125000240079
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf
index 688a7522..f91837ae 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h
index e02458bf..352c0911 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h
@@ -240,5 +240,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c
index 7612e8e2..18f20ed9 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c
@@ -465,4 +465,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs
index 594a1c1b..b9f7b850 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf
index 44567643..985479c8 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h
index 891230ff..c391cb83 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h
@@ -240,5 +240,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c
index 64b57b49..19a94bda 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c
@@ -465,4 +465,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out
index 6454c983..9b2ca756 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h
index f50307f8..947f20d4 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h
@@ -240,5 +240,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c
index 6f780145..70796895 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c
@@ -465,4 +465,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep
index 5671821e..de638449 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep
@@ -6,10 +6,52 @@
Debug
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc-switch.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c
+ $PROJ_DIR$\..\lib\driverlib\cpulib.h
+ $PROJ_DIR$\..\lib\driverlib\ethernet.h
+ $PROJ_DIR$\..\lib\driverlib\cpulib.c
+ $PROJ_DIR$\..\lib\driverlib\debug.h
+ $PROJ_DIR$\..\lib\driverlib\ethernet.c
+ $PROJ_DIR$\..\lib\driverlib\flashlib.c
+ $PROJ_DIR$\..\lib\driverlib\flashlib.h
+ $PROJ_DIR$\..\lib\driverlib\gpio.c
+ $PROJ_DIR$\..\lib\driverlib\gpio.h
+ $PROJ_DIR$\..\lib\driverlib\interrupt.c
+ $PROJ_DIR$\..\lib\driverlib\interrupt.h
+ $PROJ_DIR$\..\lib\driverlib\pin_map.h
+ $PROJ_DIR$\..\lib\driverlib\ssi.c
+ $PROJ_DIR$\..\lib\driverlib\ssi.h
+ $PROJ_DIR$\..\lib\driverlib\sysctl.c
+ $PROJ_DIR$\..\lib\driverlib\sysctl.h
+ $PROJ_DIR$\..\lib\driverlib\uartlib.c
+ $PROJ_DIR$\..\lib\driverlib\uartlib.h
+ $PROJ_DIR$\..\lib\fatfs\ffconf.h
+ $PROJ_DIR$\..\lib\fatfs\mmc.c
+ $PROJ_DIR$\..\lib\inc\hw_ethernet.h
+ $PROJ_DIR$\..\lib\inc\hw_flash.h
+ $PROJ_DIR$\..\lib\inc\hw_gpio.h
+ $PROJ_DIR$\..\lib\inc\hw_ints.h
+ $PROJ_DIR$\..\lib\inc\hw_memmap.h
+ $PROJ_DIR$\..\lib\inc\hw_nvic.h
+ $PROJ_DIR$\..\lib\inc\hw_ssi.h
+ $PROJ_DIR$\..\lib\inc\hw_sysctl.h
+ $PROJ_DIR$\..\lib\inc\hw_types.h
+ $PROJ_DIR$\..\lib\inc\hw_uart.h
+ $PROJ_DIR$\..\lib\uip\clock-arch.c
+ $PROJ_DIR$\..\lib\uip\clock-arch.h
+ $PROJ_DIR$\..\lib\uip\netdev.c
+ $PROJ_DIR$\..\lib\uip\netdev.h
+ $PROJ_DIR$\..\lib\uip\uip-conf.h
+ $PROJ_DIR$\..\blt_conf.h
+ $PROJ_DIR$\..\hooks.c
+ $PROJ_DIR$\..\main.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s
$PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.h
@@ -21,8 +63,10 @@
$PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.h
$PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\integer.h
$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\pt.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc-switch.h
+ $PROJ_DIR$\..\obj\openbtl_ek_lm3s6965.map
$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\pt.h
$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c
$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h
$PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h
@@ -51,15 +95,15 @@
$PROJ_DIR$\..\..\..\..\Source\xcp.c
$PROJ_DIR$\..\..\..\..\Source\xcp.h
$PROJ_DIR$\..\obj\uip.o
- $PROJ_DIR$\..\obj\uip_timer.o
$TOOLKIT_DIR$\inc\c\DLib_Threads.h
- $PROJ_DIR$\..\obj\netdev.o
- $PROJ_DIR$\..\obj\ssi.lst
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
+ $PROJ_DIR$\..\obj\uip_timer.o
$PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.c
- $PROJ_DIR$\..\obj\netdev.pbi
$TOOLKIT_DIR$\inc\c\wchar.h
+ $PROJ_DIR$\..\obj\netdev.pbi
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
$PROJ_DIR$\..\obj\uip_arp.o
+ $PROJ_DIR$\..\obj\ssi.lst
+ $PROJ_DIR$\..\obj\netdev.o
$PROJ_DIR$\..\obj\netdev.lst
$PROJ_DIR$\..\..\..\..\Source\fatfs\src\integer.h
$PROJ_DIR$\..\obj\nvm.pbi
@@ -71,7 +115,6 @@
$PROJ_DIR$\..\obj\uartlib.lst
$PROJ_DIR$\..\obj\ff.lst
$PROJ_DIR$\..\obj\cpulib.lst
- $PROJ_DIR$\..\obj\openbtl_ek_lm3s6965.map
$PROJ_DIR$\..\obj\nvm.lst
$TOOLKIT_DIR$\inc\c\stdarg.h
$PROJ_DIR$\..\obj\cpulib.o
@@ -79,8 +122,8 @@
$PROJ_DIR$\..\obj\mmc.o
$PROJ_DIR$\..\obj\flashlib.lst
$PROJ_DIR$\..\obj\filesys.pbi
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.h
$PROJ_DIR$\..\obj\mmc.pbi
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.h
$PROJ_DIR$\..\obj\vectors.pbi
$PROJ_DIR$\..\obj\timer.o
$PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.srec
@@ -88,8 +131,8 @@
$PROJ_DIR$\..\obj\assert.lst
$PROJ_DIR$\..\obj\hooks.lst
$PROJ_DIR$\..\obj\nvm.o
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c
$PROJ_DIR$\..\obj\cpu.o
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c
$PROJ_DIR$\..\obj\interrupt.lst
$PROJ_DIR$\..\obj\sysctl.lst
$PROJ_DIR$\..\obj\gpio.lst
@@ -134,8 +177,8 @@
$PROJ_DIR$\..\obj\tapdev.o
$PROJ_DIR$\..\obj\clock-arch.pbi
$PROJ_DIR$\..\obj\tapdev.pbi
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c
$PROJ_DIR$\..\obj\hello-world.pbi
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c
$PROJ_DIR$\..\obj\uip.pbi
$PROJ_DIR$\..\obj\uip_arp.lst
$PROJ_DIR$\..\obj\uiplib.o
@@ -174,8 +217,8 @@
$PROJ_DIR$\..\obj\cpu.lst
$TOOLKIT_DIR$\inc\c\ysizet.h
$TOOLKIT_DIR$\inc\c\xlocaleuse.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
$PROJ_DIR$\..\obj\clock-arch.lst
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
$PROJ_DIR$\..\obj\uip_timer.lst
$PROJ_DIR$\..\obj\uiplib.lst
$PROJ_DIR$\..\obj\uip.lst
@@ -203,49 +246,6 @@
$PROJ_DIR$\..\obj\ff.o
$PROJ_DIR$\..\obj\filesys.o
$PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.h
- $PROJ_DIR$\..\lib\driverlib\debug.h
- $PROJ_DIR$\..\lib\driverlib\ethernet.h
- $PROJ_DIR$\..\lib\driverlib\cpulib.h
- $PROJ_DIR$\..\lib\driverlib\cpulib.c
- $PROJ_DIR$\..\lib\driverlib\ethernet.c
- $PROJ_DIR$\..\lib\driverlib\flashlib.c
- $PROJ_DIR$\..\lib\driverlib\flashlib.h
- $PROJ_DIR$\..\lib\driverlib\gpio.c
- $PROJ_DIR$\..\lib\driverlib\gpio.h
- $PROJ_DIR$\..\lib\driverlib\interrupt.c
- $PROJ_DIR$\..\lib\driverlib\interrupt.h
- $PROJ_DIR$\..\lib\driverlib\pin_map.h
- $PROJ_DIR$\..\lib\driverlib\ssi.c
- $PROJ_DIR$\..\lib\driverlib\ssi.h
- $PROJ_DIR$\..\lib\driverlib\sysctl.c
- $PROJ_DIR$\..\lib\driverlib\sysctl.h
- $PROJ_DIR$\..\lib\driverlib\uartlib.c
- $PROJ_DIR$\..\lib\driverlib\uartlib.h
- $PROJ_DIR$\..\lib\fatfs\ffconf.h
- $PROJ_DIR$\..\lib\fatfs\mmc.c
- $PROJ_DIR$\..\lib\inc\hw_ethernet.h
- $PROJ_DIR$\..\lib\inc\hw_flash.h
- $PROJ_DIR$\..\lib\inc\hw_gpio.h
- $PROJ_DIR$\..\lib\inc\hw_ints.h
- $PROJ_DIR$\..\lib\inc\hw_memmap.h
- $PROJ_DIR$\..\lib\inc\hw_nvic.h
- $PROJ_DIR$\..\lib\inc\hw_ssi.h
- $PROJ_DIR$\..\lib\inc\hw_sysctl.h
- $PROJ_DIR$\..\lib\inc\hw_types.h
- $PROJ_DIR$\..\lib\inc\hw_uart.h
- $PROJ_DIR$\..\lib\uip\clock-arch.c
- $PROJ_DIR$\..\lib\uip\clock-arch.h
- $PROJ_DIR$\..\lib\uip\netdev.c
- $PROJ_DIR$\..\lib\uip\netdev.h
- $PROJ_DIR$\..\lib\uip\uip-conf.h
- $PROJ_DIR$\..\blt_conf.h
- $PROJ_DIR$\..\hooks.c
- $PROJ_DIR$\..\main.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c
$PROJ_DIR$\..\obj\flashlib.o
$PROJ_DIR$\..\obj\gpio.o
$PROJ_DIR$\..\obj\interrupt.o
@@ -264,246 +264,85 @@
ILINK
- 107 65
+ 150 58
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c
+ $PROJ_DIR$\..\lib\driverlib\cpulib.c
ICCARM
- 66 81
+ 108 111
BICOMP
- 56
+ 162
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 0
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 0
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
+ $PROJ_DIR$\..\lib\driverlib\ethernet.c
ICCARM
- 144 101
+ 152 146
BICOMP
- 137
+ 145
ICCARM
- 12 13 215 123
+ 20 23 24 28 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 1 15 10
BICOMP
- 12 13 215 123
+ 20 23 24 28 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 1 15 10
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
+ $PROJ_DIR$\..\lib\driverlib\flashlib.c
ICCARM
- 188 76
+ 114 240
BICOMP
- 189
+ 164
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 21 23 27 28 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 6 10
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 21 23 27 28 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 6 10
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c
+ $PROJ_DIR$\..\lib\driverlib\gpio.c
ICCARM
- 246 180
-
-
- BICOMP
- 60
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 221 225 212 214
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 221 225 212 214
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
-
-
- ICCARM
- 63 194
-
-
- BICOMP
- 251
-
-
-
-
- ICCARM
- 12 13 215 10 67 95 93 58 244 94 177 46
-
-
- BICOMP
- 12 13 215 10 67 95 93 58 244 94 177 46
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c
-
-
- ICCARM
- 172 44
-
-
- BICOMP
- 130
-
-
-
-
- ICCARM
- 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 19 114 95 93 58 244 94 177 46 166 115
-
-
- BICOMP
- 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 19 114 95 93 58 244 94 177 46 166 115
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c
-
-
- ICCARM
- 131 53
-
-
- BICOMP
- 174
-
-
-
-
- ICCARM
- 21 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 114 95 93 58 244 94 177 46 166 115
-
-
- BICOMP
- 21 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 114 95 93 58 244 94 177 46 166 115
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c
-
-
- ICCARM
- 170 45
-
-
- BICOMP
- 175
-
-
-
-
- ICCARM
- 14 228 23
-
-
- BICOMP
- 14 228 23
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c
-
-
- ICCARM
- 171 132
-
-
- BICOMP
- 148
-
-
-
-
- ICCARM
- 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 25
-
-
- BICOMP
- 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 25
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\assert.c
-
-
- ICCARM
- 79 105
-
-
- BICOMP
- 157
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
-
-
- ICCARM
- 164 159
+ 129 241
BICOMP
@@ -513,459 +352,11 @@
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 22 23 24 27 28 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 8 11 10
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\boot.c
-
-
- ICCARM
- 191 155
-
-
- BICOMP
- 151
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\com.c
-
-
- ICCARM
- 248 140
-
-
- BICOMP
- 111
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 9 40
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 9 40
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\cop.c
-
-
- ICCARM
- 247 160
-
-
- BICOMP
- 112
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\file.c
-
-
- ICCARM
- 59 187
-
-
- BICOMP
- 185
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 114 95 93 58 244 94 177 46 166 115 89 88 243 138 142 167 176 52
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 114 95 93 58 244 94 177 46 166 115 89 88 243 138 142 167 176 52
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\net.c
-
-
- ICCARM
- 100 99
-
-
- BICOMP
- 110
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 230 18 26 231 40 21
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 230 18 26 231 40 21
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\xcp.c
-
-
- ICCARM
- 61 158
-
-
- BICOMP
- 113
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
-
-
- ICCARM
- 63 194
-
-
- BICOMP
- 251
-
-
-
-
- ICCARM
- 143 55 215 57 67 95 93 58 244 94 177 46
-
-
- BICOMP
- 143 55 215 57 67 95 93 58 244 94 177 46
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.c
-
-
- ICCARM
- 134
-
-
- BICOMP
- 129
-
-
-
-
- ICCARM
- 196 26 231 32 7 28 232 41 238 36 4 0 6 30 38 34 43 91 73 15 16 1 18 114 95 93 58 244 94 177 46 166 115
-
-
- BICOMP
- 196 26 231 32 7 28 232 41 238 36 4 0 6 30 38 34 43 91 73 15 16 1 18 114 95 93 58 244 94 177 46 166 115
-
-
-
-
- $PROJ_DIR$\..\led.c
-
-
- ICCARM
- 146 104
-
-
- BICOMP
- 98
-
-
-
-
- ICCARM
- 32 7 28 182 41 238 36 4 0 6 30 38 143 55 215 34 43 221 225 212 205 208
-
-
- BICOMP
- 32 7 28 182 41 238 36 4 0 6 30 38 143 55 215 34 43 221 225 212 205 208
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c
-
-
- ICCARM
- 144 101
-
-
- BICOMP
- 137
-
-
-
-
- ICCARM
- 143 55 215 90
-
-
- BICOMP
- 143 55 215 90
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.c
-
-
- ICCARM
- 100 99
-
-
- BICOMP
- 110
-
-
-
-
- ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 34 43 230 18 26 231 91 21
-
-
- BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 34 43 230 18 26 231 91 21
-
-
-
-
- $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out
-
-
- ILINK
- 65
-
-
- OBJCOPY
- 77
-
-
-
-
- ILINK
- 168 105 159 155 124 140 160 83 68 152 103 194 187 162 240 241 141 242 154 70 99 47 81 192 116 76 180 122 44 53 45 132 101 181 158 96 250 190 249
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\filesys.c
-
-
- ICCARM
- 147 195
-
-
- BICOMP
- 72
-
-
-
-
- ICCARM
- 32 7 28 182 41 238 36 4 0 6 30 145 143 55 156 34 43
-
-
- BICOMP
- 32 7 28 182 41 238 36 4 0 6 30 145 143 55 156 34 43
-
-
-
-
- $PROJ_DIR$\..\lib\uip\tapdev.c
-
-
- ICCARM
- 133 125
-
-
- BICOMP
- 127
-
-
-
-
- ICCARM
- 18 26 231 196 73 15 16 1 21 32 7 28 232 41 238 36 4 0 6 30 38 34 43 221 225 217 212 205 208 198
-
-
- BICOMP
- 18 26 231 196 73 15 16 1 21 32 7 28 232 41 238 36 4 0 6 30 38 34 43 221 225 217 212 205 208 198
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c
-
-
- ICCARM
- 135 106
-
-
- BICOMP
- 173
-
-
-
-
- ICCARM
- 149 95 93 58 244 94 177 46 166 150 114 115 26 231 32 7 28 232 41 238 36 4 0 6 30 38 34 43 91 73 15 16 1 18
-
-
- BICOMP
- 149 95 93 58 244 94 177 46 166 150 114 115 26 231 32 7 28 232 41 238 36 4 0 6 30 38 34 43 91 73 15 16 1 18
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.c
-
-
- BICOMP
- 87
-
-
-
-
- ICCARM
- 57 55
-
-
- BICOMP
- 57 55
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\cpulib.c
-
-
- ICCARM
- 64 68
-
-
- BICOMP
- 119
-
-
-
-
- ICCARM
- 199
-
-
- BICOMP
- 199
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\ethernet.c
-
-
- ICCARM
- 109 103
-
-
- BICOMP
- 102
-
-
-
-
- ICCARM
- 217 220 221 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 198 212 207
-
-
- BICOMP
- 217 220 221 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 198 212 207
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\flashlib.c
-
-
- ICCARM
- 71 240
-
-
- BICOMP
- 121
-
-
-
-
- ICCARM
- 218 220 224 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 203 207
-
-
- BICOMP
- 218 220 224 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 203 207
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\gpio.c
-
-
- ICCARM
- 86 241
-
-
- BICOMP
- 118
-
-
-
-
- ICCARM
- 219 220 221 224 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 205 208 207
-
-
- BICOMP
- 219 220 221 224 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 205 208 207
+ 22 23 24 27 28 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 8 11 10
@@ -974,21 +365,21 @@
ICCARM
- 84 242
+ 127 242
BICOMP
- 120
+ 163
ICCARM
- 220 222 225 199 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207
+ 23 25 28 0 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 10
BICOMP
- 220 222 225 199 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207
+ 23 25 28 0 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 10
@@ -997,21 +388,17 @@
ICCARM
- 48 192
+ 96 235
BICOMP
- 193
+ 236
ICCARM
- 220 221 223 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207 210 212
-
-
- BICOMP
- 220 221 223 225 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207 210 212
+ 23 24 26 28 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 10 13 15
@@ -1020,21 +407,21 @@
ICCARM
- 85 116
+ 128 159
BICOMP
- 178
+ 221
ICCARM
- 220 222 224 225 199 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207 212
+ 23 25 27 28 0 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 10 15
BICOMP
- 220 222 224 225 199 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207 212
+ 23 25 27 28 0 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 10 15
@@ -1043,21 +430,21 @@
ICCARM
- 62 122
+ 106 165
BICOMP
- 179
+ 222
ICCARM
- 220 221 224 225 226 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207 214 212
+ 23 24 27 28 29 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 10 17 15
BICOMP
- 220 221 224 225 226 197 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 207 214 212
+ 23 24 27 28 29 3 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 10 17 15
@@ -1066,17 +453,17 @@
ICCARM
- 97 70
+ 140 113
BICOMP
- 74
+ 116
ICCARM
- 221 225 205 208 210 212 10 13 32 7 28 232 41 238 36 4 0 6 30 38 12 215 34 43
+ 24 28 8 11 13 15 52 55 76 49 72 35 85 42 80 46 44 48 74 82 54 18 78 87
@@ -1085,21 +472,21 @@
ICCARM
- 169 124
+ 211 167
BICOMP
- 126
+ 169
ICCARM
- 228 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 31 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
BICOMP
- 228 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 31 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
@@ -1108,21 +495,21 @@
ICCARM
- 54 47
+ 98 97
BICOMP
- 51
+ 93
ICCARM
- 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 21 221 225 217 212 205 208 198 203
+ 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 65 24 28 20 15 8 11 1 6
BICOMP
- 18 26 231 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 40 21 221 225 217 212 205 208 198 203
+ 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 65 24 28 20 15 8 11 1 6
@@ -1131,7 +518,7 @@
ICCARM
- 80 141
+ 123 184
BICOMP
@@ -1141,11 +528,11 @@
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 221 225 214 212
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 24 28 17 15
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 221 225 214 212
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 24 28 17 15
@@ -1154,21 +541,21 @@
ICCARM
- 183 154
+ 226 197
BICOMP
- 69
+ 112
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 220 221 222 224 225 212 205 208 214
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 23 24 25 27 28 15 8 11 17
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 220 221 222 224 225 212 205 208 214
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 23 24 25 27 28 15 8 11 17
@@ -1177,21 +564,21 @@
ICCARM
- 186 181
+ 229 224
BICOMP
- 75
+ 118
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
@@ -1200,30 +587,53 @@
AARM
- 152
+ 195
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
+
+
+ ICCARM
+ 187 144
+
+
+ BICOMP
+ 180
+
+
+
+
+ ICCARM
+ 54 55 18 166
+
+
+ BICOMP
+ 54 55 18 166
+
+
+
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
ICCARM
- 165 83
+ 208 125
BICOMP
- 139
+ 182
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
@@ -1232,21 +642,607 @@
ICCARM
- 163 162
+ 206 205
BICOMP
- 136
+ 179
ICCARM
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 221 225 203
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 24 28 6
BICOMP
- 32 7 28 232 41 238 36 4 0 6 30 38 12 13 215 34 43 221 225 203
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 24 28 6
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c
+
+
+ ICCARM
+ 109 124
+
+
+ BICOMP
+ 100
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
+
+
+ ICCARM
+ 231 119
+
+
+ BICOMP
+ 232
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c
+
+
+ ICCARM
+ 246 223
+
+
+ BICOMP
+ 104
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 24 28 15 17
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 24 28 15 17
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
+
+
+ ICCARM
+ 107 237
+
+
+ BICOMP
+ 251
+
+
+
+
+ ICCARM
+ 54 55 18 52 110 138 136 102 244 137 220 89
+
+
+ BICOMP
+ 54 55 18 52 110 138 136 102 244 137 220 89
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c
+
+
+ ICCARM
+ 215 88
+
+
+ BICOMP
+ 173
+
+
+
+
+ ICCARM
+ 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 63 157 138 136 102 244 137 220 89 209 158
+
+
+ BICOMP
+ 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 63 157 138 136 102 244 137 220 89 209 158
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c
+
+
+ ICCARM
+ 174 95
+
+
+ BICOMP
+ 217
+
+
+
+
+ ICCARM
+ 65 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 157 138 136 102 244 137 220 89 209 158
+
+
+ BICOMP
+ 65 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 157 138 136 102 244 137 220 89 209 158
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c
+
+
+ ICCARM
+ 213 90
+
+
+ BICOMP
+ 218
+
+
+
+
+ ICCARM
+ 56 31 67
+
+
+ BICOMP
+ 56 31 67
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c
+
+
+ ICCARM
+ 214 175
+
+
+ BICOMP
+ 191
+
+
+
+
+ ICCARM
+ 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 69
+
+
+ BICOMP
+ 62 70 34 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 84 69
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+
+
+ ICCARM
+ 122 148
+
+
+ BICOMP
+ 200
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+
+
+ ICCARM
+ 207 202
+
+
+ BICOMP
+ 204
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\boot.c
+
+
+ ICCARM
+ 234 198
+
+
+ BICOMP
+ 194
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\com.c
+
+
+ ICCARM
+ 248 183
+
+
+ BICOMP
+ 154
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 51 84
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 51 84
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\cop.c
+
+
+ ICCARM
+ 247 203
+
+
+ BICOMP
+ 155
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\file.c
+
+
+ ICCARM
+ 103 230
+
+
+ BICOMP
+ 228
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 157 138 136 102 244 137 220 89 209 158 132 131 243 181 185 210 219 92
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 157 138 136 102 244 137 220 89 209 158 132 131 243 181 185 210 219 92
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\net.c
+
+
+ ICCARM
+ 143 142
+
+
+ BICOMP
+ 153
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 33 62 70 34 84 65
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87 33 62 70 34 84 65
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\xcp.c
+
+
+ ICCARM
+ 105 201
+
+
+ BICOMP
+ 156
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 54 55 18 78 87
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.c
+
+
+ ICCARM
+ 177
+
+
+ BICOMP
+ 171
+
+
+
+
+ ICCARM
+ 239 70 34 76 49 72 35 85 42 80 46 44 48 74 82 78 87 134 117 60 59 57 62 157 138 136 102 244 137 220 89 209 158
+
+
+ BICOMP
+ 239 70 34 76 49 72 35 85 42 80 46 44 48 74 82 78 87 134 117 60 59 57 62 157 138 136 102 244 137 220 89 209 158
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
+
+
+ ICCARM
+ 107 237
+
+
+ BICOMP
+ 251
+
+
+
+
+ ICCARM
+ 186 99 18 101 110 138 136 102 244 137 220 89
+
+
+ BICOMP
+ 186 99 18 101 110 138 136 102 244 137 220 89
+
+
+
+
+ $PROJ_DIR$\..\led.c
+
+
+ ICCARM
+ 189 147
+
+
+ BICOMP
+ 141
+
+
+
+
+ ICCARM
+ 76 49 72 225 85 42 80 46 44 48 74 82 186 99 18 78 87 24 28 15 8 11
+
+
+ BICOMP
+ 76 49 72 225 85 42 80 46 44 48 74 82 186 99 18 78 87 24 28 15 8 11
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c
+
+
+ ICCARM
+ 187 144
+
+
+ BICOMP
+ 180
+
+
+
+
+ ICCARM
+ 186 99 18 133
+
+
+ BICOMP
+ 186 99 18 133
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.c
+
+
+ ICCARM
+ 143 142
+
+
+ BICOMP
+ 153
+
+
+
+
+ ICCARM
+ 76 49 72 35 85 42 80 46 44 48 74 82 78 87 33 62 70 34 134 65
+
+
+ BICOMP
+ 76 49 72 35 85 42 80 46 44 48 74 82 78 87 33 62 70 34 134 65
+
+
+
+
+ $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out
+
+
+ ILINK
+ 58
+
+
+ OBJCOPY
+ 120
+
+
+
+
+ ILINK
+ 212 148 202 198 167 183 203 125 111 195 146 237 230 205 240 241 184 242 197 113 142 97 124 235 159 119 223 165 88 95 90 175 144 224 201 139 250 233 249
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\filesys.c
+
+
+ ICCARM
+ 190 238
+
+
+ BICOMP
+ 115
+
+
+
+
+ ICCARM
+ 76 49 72 225 85 42 80 46 44 48 74 188 186 99 199 78 87
+
+
+ BICOMP
+ 76 49 72 225 85 42 80 46 44 48 74 188 186 99 199 78 87
+
+
+
+
+ $PROJ_DIR$\..\lib\uip\tapdev.c
+
+
+ ICCARM
+ 176 168
+
+
+ BICOMP
+ 170
+
+
+
+
+ ICCARM
+ 62 70 34 239 117 60 59 57 65 76 49 72 35 85 42 80 46 44 48 74 82 78 87 24 28 20 15 8 11 1
+
+
+ BICOMP
+ 62 70 34 239 117 60 59 57 65 76 49 72 35 85 42 80 46 44 48 74 82 78 87 24 28 20 15 8 11 1
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c
+
+
+ ICCARM
+ 178 149
+
+
+ BICOMP
+ 216
+
+
+
+
+ ICCARM
+ 192 138 136 102 244 137 220 89 209 193 157 158 70 34 76 49 72 35 85 42 80 46 44 48 74 82 78 87 134 117 60 59 57 62
+
+
+ BICOMP
+ 192 138 136 102 244 137 220 89 209 193 157 158 70 34 76 49 72 35 85 42 80 46 44 48 74 82 78 87 134 117 60 59 57 62
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.c
+
+
+ BICOMP
+ 130
+
+
+
+
+ ICCARM
+ 101 99
+
+
+ BICOMP
+ 101 99
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt
index 02a5e9d6..62710c22 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt
@@ -17,7 +17,7 @@
100Find-All-References2011553087730055278946300- File
- Function
- Line
- 200
- 700
- 100
300BuildFind-in-FilesFind-All-References664941138100Build664941138
-
+
TabID-31649-22318
@@ -29,7 +29,7 @@
- 0TabID-23631-11730BuildBuildTabID-25094-12726Ambiguous DefinitionsSelect-Ambiguous-Definitions0
+ 0TabID-23631-11730BuildBuildTabID-25094-12726Ambiguous DefinitionsSelect-Ambiguous-Definitions0
@@ -42,7 +42,7 @@
- iaridepm.enu1-2-2563326-2-2372353193750350198170833560516004935226449352264-2561258237134375235119170833398810
+ iaridepm.enu1-2-2563326-2-2372353193750350198170833560516004935587249355872-2561258237134375235119170833398810
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf
index 0a52c755..d4b493f4 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/blt_conf.h
index 8e5e2d7e..b3da9d7a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/blt_conf.h
@@ -155,5 +155,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c
index 4d3a3b29..1161f400 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c
@@ -213,4 +213,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs
index f8927e5c..20dd50a9 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs
@@ -19,8 +19,6 @@
-
-
@@ -52,9 +50,9 @@
-
-
-
+
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf
index c8d9d9dc..c84c02ae 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/blt_conf.h
index 52090186..c7159501 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/blt_conf.h
@@ -155,5 +155,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c
index 6b8cabe5..4ab5c499 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c
@@ -213,4 +213,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out
index 1f200ecd..d805c26d 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.sim b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.sim
index 182814c3..77bd68c0 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.sim and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.sim differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/blt_conf.h
index 0db60831..7670b2d8 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/blt_conf.h
@@ -155,5 +155,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c
index 1e54f9d4..2f4100b4 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c
@@ -213,4 +213,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep
index 68a77d37..1e175569 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep
@@ -7,16 +7,82 @@
Debug
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\types.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.h
+ $PROJ_DIR$\..\..\..\..\Source\assert.h
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.h
+ $PROJ_DIR$\..\..\..\..\Source\boot.c
+ $PROJ_DIR$\..\..\..\..\Source\boot.h
+ $PROJ_DIR$\..\..\..\..\Source\com.c
+ $PROJ_DIR$\..\..\..\..\Source\com.h
+ $PROJ_DIR$\..\..\..\..\Source\cop.c
+ $PROJ_DIR$\..\..\..\..\Source\cop.h
+ $PROJ_DIR$\..\..\..\..\Source\plausibility.h
+ $PROJ_DIR$\..\..\..\..\Source\xcp.c
+ $PROJ_DIR$\..\..\..\..\Source\xcp.h
+ $PROJ_DIR$\..\obj\uartlib.lst
+ $PROJ_DIR$\..\obj\cpulib.o
+ $PROJ_DIR$\..\obj\flashlib.o
+ $PROJ_DIR$\..\obj\flashlib.pbi
+ $PROJ_DIR$\..\obj\gpio.pbi
+ $PROJ_DIR$\..\obj\cpulib.pbi
+ $PROJ_DIR$\..\obj\uartlib.o
+ $PROJ_DIR$\..\obj\sysctl.o
+ $PROJ_DIR$\..\obj\interrupt.o
+ $PROJ_DIR$\..\obj\gpio.o
+ $PROJ_DIR$\..\obj\uartlib.pbi
+ $PROJ_DIR$\..\obj\uart.o
+ $PROJ_DIR$\..\obj\flash.pbi
+ $PROJ_DIR$\..\obj\cpu.pbi
+ $PROJ_DIR$\..\obj\nvm.pbi
+ $PROJ_DIR$\..\obj\uart.pbi
+ $PROJ_DIR$\..\obj\lm3s6965.pbd
+ $PROJ_DIR$\..\obj\cstart.o
+ $PROJ_DIR$\..\obj\vectors.o
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
+ $PROJ_DIR$\..\obj\timer.o
+ $PROJ_DIR$\..\obj\boot.lst
+ $PROJ_DIR$\..\obj\main.lst
+ $PROJ_DIR$\..\obj\vectors.lst
+ $PROJ_DIR$\..\obj\vectors.pbi
+ $PROJ_DIR$\..\obj\timer.pbi
+ $PROJ_DIR$\..\obj\main.pbi
+ $PROJ_DIR$\..\obj\boot.pbi
+ $TOOLKIT_DIR$\lib\m7M_tl.a
+ $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.srec
+ $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out
+ $PROJ_DIR$\..\obj\hooks.lst
+ $PROJ_DIR$\..\obj\assert.o
+ $PROJ_DIR$\..\obj\assert.lst
+ $PROJ_DIR$\..\obj\flash.lst
+ $TOOLKIT_DIR$\lib\shb_l.a
+ $PROJ_DIR$\..\obj\main.o
+ $PROJ_DIR$\..\obj\backdoor.lst
+ $PROJ_DIR$\..\obj\hooks.pbi
+ $PROJ_DIR$\..\obj\boot.o
+ $PROJ_DIR$\..\obj\com.o
+ $PROJ_DIR$\..\obj\hooks.o
+ $PROJ_DIR$\..\obj\cpu.lst
+ $PROJ_DIR$\..\obj\uart.lst
+ $PROJ_DIR$\..\obj\cop.lst
+ $PROJ_DIR$\..\obj\com.lst
+ $TOOLKIT_DIR$\lib\dl7M_tln.a
+ $TOOLKIT_DIR$\lib\rt7M_tl.a
$PROJ_DIR$\..\obj\canlib.pbi
$PROJ_DIR$\..\obj\can.o
$PROJ_DIR$\..\obj\canlib.o
- $PROJ_DIR$\..\obj\lm3s8962.pbd
- $PROJ_DIR$\..\obj\can.pbi
- $PROJ_DIR$\..\obj\canlib.lst
- $PROJ_DIR$\..\obj\can.lst
$PROJ_DIR$\..\obj\openbtl_ek_lm3s8962.map
- $PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.srec
$PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.out
+ $PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.srec
+ $PROJ_DIR$\..\obj\can.lst
+ $PROJ_DIR$\..\obj\canlib.lst
+ $PROJ_DIR$\..\obj\can.pbi
+ $PROJ_DIR$\..\obj\lm3s8962.pbd
$PROJ_DIR$\..\..\..\..\Source\file.h
$PROJ_DIR$\..\obj\interrupt.pbi
$PROJ_DIR$\..\obj\sysctl.pbi
@@ -38,72 +104,6 @@
$PROJ_DIR$\..\obj\flashlib.lst
$PROJ_DIR$\..\obj\interrupt.lst
$PROJ_DIR$\..\obj\sysctl.lst
- $PROJ_DIR$\..\obj\uartlib.lst
- $PROJ_DIR$\..\obj\cpulib.o
- $PROJ_DIR$\..\obj\flashlib.o
- $PROJ_DIR$\..\obj\gpio.o
- $PROJ_DIR$\..\obj\interrupt.o
- $PROJ_DIR$\..\obj\sysctl.o
- $PROJ_DIR$\..\obj\uartlib.o
- $PROJ_DIR$\..\obj\flashlib.pbi
- $PROJ_DIR$\..\obj\cpulib.pbi
- $PROJ_DIR$\..\obj\gpio.pbi
- $PROJ_DIR$\..\obj\uartlib.pbi
- $PROJ_DIR$\..\obj\uart.o
- $PROJ_DIR$\..\obj\flash.pbi
- $PROJ_DIR$\..\obj\cpu.pbi
- $PROJ_DIR$\..\obj\nvm.pbi
- $PROJ_DIR$\..\obj\uart.pbi
- $PROJ_DIR$\..\obj\lm3s6965.pbd
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
- $PROJ_DIR$\..\..\..\..\Source\assert.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\types.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.h
- $PROJ_DIR$\..\..\..\..\Source\assert.h
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
- $PROJ_DIR$\..\..\..\..\Source\backdoor.h
- $PROJ_DIR$\..\..\..\..\Source\boot.c
- $PROJ_DIR$\..\..\..\..\Source\boot.h
- $PROJ_DIR$\..\..\..\..\Source\com.c
- $PROJ_DIR$\..\..\..\..\Source\com.h
- $PROJ_DIR$\..\..\..\..\Source\cop.c
- $PROJ_DIR$\..\..\..\..\Source\cop.h
- $PROJ_DIR$\..\..\..\..\Source\plausibility.h
- $PROJ_DIR$\..\..\..\..\Source\xcp.c
- $PROJ_DIR$\..\..\..\..\Source\xcp.h
- $PROJ_DIR$\..\obj\cstart.o
- $PROJ_DIR$\..\obj\vectors.o
- $PROJ_DIR$\..\obj\timer.o
- $PROJ_DIR$\..\obj\boot.lst
- $PROJ_DIR$\..\obj\main.lst
- $PROJ_DIR$\..\obj\vectors.lst
- $PROJ_DIR$\..\obj\vectors.pbi
- $PROJ_DIR$\..\obj\timer.pbi
- $PROJ_DIR$\..\obj\main.pbi
- $PROJ_DIR$\..\obj\boot.pbi
- $PROJ_DIR$\..\obj\timer.lst
- $TOOLKIT_DIR$\lib\m7M_tl.a
- $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.srec
- $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out
- $PROJ_DIR$\..\obj\hooks.lst
- $PROJ_DIR$\..\obj\assert.o
- $PROJ_DIR$\..\obj\assert.lst
- $PROJ_DIR$\..\obj\flash.lst
- $TOOLKIT_DIR$\lib\shb_l.a
- $PROJ_DIR$\..\obj\main.o
- $PROJ_DIR$\..\obj\backdoor.lst
- $PROJ_DIR$\..\obj\hooks.pbi
- $PROJ_DIR$\..\obj\boot.o
- $PROJ_DIR$\..\obj\com.o
- $PROJ_DIR$\..\obj\hooks.o
- $PROJ_DIR$\..\obj\cpu.lst
- $PROJ_DIR$\..\obj\uart.lst
- $PROJ_DIR$\..\obj\cop.lst
- $PROJ_DIR$\..\obj\com.lst
- $TOOLKIT_DIR$\lib\dl7M_tln.a
$PROJ_DIR$\..\lib\driverlib\cpulib.c
$PROJ_DIR$\..\lib\driverlib\debug.h
$PROJ_DIR$\..\lib\driverlib\canlib.h
@@ -133,7 +133,7 @@
$PROJ_DIR$\..\main.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s
- $TOOLKIT_DIR$\lib\rt7M_tl.a
+ $PROJ_DIR$\..\obj\timer.lst
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
@@ -147,58 +147,30 @@
ILINK
- 10 8
+ 71 70
-
- $PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.out
-
-
- ILINK
- 8
-
-
- OBJCOPY
- 9
-
-
-
-
- ILINK
- 49 83 18 90 2 3 91 17 25 33 68 26 34 35 92 36 87 24 37 70 43 38 69 21 86 127 79 97
-
-
-
-
- $PROJ_DIR$\..\obj\lm3s6965.pbd
-
-
- BILINK
- 15 16 77 14 19 45 40 44 39 41 89 12 76 46 13 75 47 42 74 20
-
-
-
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
ICCARM
- 78 70
+ 127 39
BICOMP
- 75
+ 44
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
@@ -207,21 +179,21 @@
ICCARM
- 84 83
+ 52 51
BICOMP
- 15
+ 81
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
@@ -230,21 +202,21 @@
ICCARM
- 94 43
+ 62 30
BICOMP
- 47
+ 34
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 117 120 110 112
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 117 120 110 112
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 117 120 110 112
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 117 120 110 112
@@ -253,21 +225,21 @@
ICCARM
- 88 18
+ 56 84
BICOMP
- 16
+ 82
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
@@ -276,21 +248,21 @@
ICCARM
- 71 90
+ 40 58
BICOMP
- 77
+ 46
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
@@ -299,21 +271,21 @@
ICCARM
- 96 91
+ 64 59
BICOMP
- 14
+ 80
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 129 55
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 129 6
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 129 55
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 129 6
@@ -322,21 +294,21 @@
ICCARM
- 95 17
+ 63 83
BICOMP
- 19
+ 85
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
@@ -345,21 +317,30 @@
ICCARM
- 22 21
+ 88 87
BICOMP
- 20
+ 86
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
+
+
+
+
+ $PROJ_DIR$\..\obj\lm3s6965.pbd
+
+
+ BILINK
+ 81 82 46 80 85 32 24 31 22 23 57 78 45 33 79 44 34 29 43 86
@@ -368,13 +349,32 @@
OBJCOPY
- 80
+ 48
ILINK
- 49 83 18 90 91 17 25 33 68 26 34 35 92 36 87 24 37 70 43 38 69 21 86 127 79 97
+ 38 51 84 58 59 83 91 20 36 92 21 28 60 27 55 90 26 39 30 25 37 87 54 66 47 65
+
+
+
+
+ $PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.out
+
+
+ ILINK
+ 70
+
+
+ OBJCOPY
+ 72
+
+
+
+
+ ILINK
+ 38 51 84 58 68 69 59 83 91 20 36 92 21 28 60 27 55 90 26 39 30 25 37 87 54 66 47 65
@@ -383,11 +383,11 @@
ICCARM
- 28 33
+ 94 20
BICOMP
- 40
+ 24
@@ -406,21 +406,17 @@
ICCARM
- 6 3
+ 74 69
BICOMP
- 1
+ 67
ICCARM
- 113 116 118 117 120 100 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108
-
-
- BICOMP
- 113 116 118 117 120 100 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108
+ 113 116 118 117 120 100 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 108
@@ -429,21 +425,21 @@
ICCARM
- 29 34
+ 95 21
BICOMP
- 39
+ 22
ICCARM
- 114 116 119 120 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 104 108
+ 114 116 119 120 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 104 108
BICOMP
- 114 116 119 120 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 104 108
+ 114 116 119 120 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 104 108
@@ -452,21 +448,21 @@
ICCARM
- 27 35
+ 93 28
BICOMP
- 41
+ 23
ICCARM
- 115 116 117 119 120 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 106 108
+ 115 116 117 119 120 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 106 108
BICOMP
- 115 116 117 119 120 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 106 108
+ 115 116 117 119 120 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 106 108
@@ -475,21 +471,21 @@
ICCARM
- 30 36
+ 96 27
BICOMP
- 12
+ 78
ICCARM
- 116 118 120 102 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108
+ 116 118 120 102 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 108
BICOMP
- 116 118 120 102 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108
+ 116 118 120 102 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 108
@@ -498,21 +494,21 @@
ICCARM
- 31 37
+ 97 26
BICOMP
- 13
+ 79
ICCARM
- 116 118 119 120 102 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108 110
+ 116 118 119 120 102 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 108 110
BICOMP
- 116 118 119 120 102 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108 110
+ 116 118 119 120 102 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 108 110
@@ -521,21 +517,21 @@
ICCARM
- 32 38
+ 19 25
BICOMP
- 42
+ 29
ICCARM
- 116 117 119 120 121 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108 112 110
+ 116 117 119 120 121 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 108 112 110
BICOMP
- 116 117 119 120 121 99 60 53 56 122 65 131 64 0 133 52 58 11 62 67 108 112 110
+ 116 117 119 120 121 99 11 4 7 122 16 131 15 0 133 3 9 77 13 18 108 112 110
@@ -544,21 +540,21 @@
ICCARM
- 82 92
+ 50 60
BICOMP
- 89
+ 57
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
@@ -567,85 +563,7 @@
ICCARM
- 72 87
-
-
- BICOMP
- 76
-
-
-
-
- ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 116 117 118 119 120 110 106
-
-
- BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 116 117 118 119 120 110 106
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c
-
-
- ICCARM
- 73 69
-
-
- BICOMP
- 74
-
-
-
-
- ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
-
-
- BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s
-
-
- AARM
- 68
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.c
-
-
- ICCARM
- 7 2
-
-
- BICOMP
- 5
-
-
-
-
- ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 117 120 110 100
-
-
- BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 117 120 110 100
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
-
-
- ICCARM
- 93 25
+ 41 55
BICOMP
@@ -655,11 +573,89 @@
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 116 117 118 119 120 110 106
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 116 117 118 119 120 110 106
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c
+
+
+ ICCARM
+ 42 37
+
+
+ BICOMP
+ 43
+
+
+
+
+ ICCARM
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
+
+
+ BICOMP
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s
+
+
+ AARM
+ 36
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.c
+
+
+ ICCARM
+ 73 68
+
+
+ BICOMP
+ 75
+
+
+
+
+ ICCARM
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 117 120 110 100
+
+
+ BICOMP
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 117 120 110 100
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
+
+
+ ICCARM
+ 61 91
+
+
+ BICOMP
+ 32
+
+
+
+
+ ICCARM
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
+
+
+ BICOMP
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
@@ -668,21 +664,21 @@
ICCARM
- 85 26
+ 53 92
BICOMP
- 44
+ 31
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 117 120 104
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 117 120 104
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67 117 120 104
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18 117 120 104
@@ -691,21 +687,21 @@
ICCARM
- 23 24
+ 89 90
BICOMP
- 46
+ 33
ICCARM
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
BICOMP
- 60 53 56 122 65 131 64 0 133 52 58 11 62 67
+ 11 4 7 122 16 131 15 0 133 3 9 77 13 18
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dbgdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dbgdt
index 1863d7d1..fd65dc8f 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dbgdt
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dbgdt
@@ -39,7 +39,7 @@
-
+
TabID-23054-22949
@@ -55,7 +55,7 @@
- 0
+ 0
TabID-1035-22952
@@ -67,7 +67,7 @@
- 0
+ 0
TabID-11783-22956
@@ -77,20 +77,20 @@
- 0
+ 0
- TextEditor$WS_DIR$\..\main.c0000045296429640TextEditor$WS_DIR$\..\..\..\..\Source\com.h0000010559875987TextEditor$WS_DIR$\..\..\..\..\Source\com.c000005035483548TextEditor$WS_DIR$\..\..\..\..\Source\assert.c000002724262426TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s000003024992499TextEditor$WS_DIR$\..\blt_conf.h0000010592829282TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c000006102837128371TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000001832923292TextEditor$WS_DIR$\..\..\..\..\Source\boot.c0000018262826360100000010000001
+ TextEditor$WS_DIR$\..\main.c0000045296429640TextEditor$WS_DIR$\..\..\..\..\Source\com.h000009759875987TextEditor$WS_DIR$\..\..\..\..\Source\com.c000005035483548TextEditor$WS_DIR$\..\..\..\..\Source\assert.c000002724262426TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s000002524992499TextEditor$WS_DIR$\..\blt_conf.h0000010592829282TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c000006102837128371TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000001832923292TextEditor$WS_DIR$\..\..\..\..\Source\boot.c0000018262826360100000010000001
- iaridepm.enu1debuggergui.enu1-2-2698238-2-2240243125000241071125000694444-2-2698238-2-2240243125000241071125000694444-2-22411922-2-219242431002083241071125000241071
+ iaridepm.enu1debuggergui.enu1-2-2698238-2-2240243125000241071125000694444-2-2698238-2-2240243125000241071125000694444-2-22411922-2-219242431002083241071125000241071
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dni b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dni
index 353c3c1e..706f4b7f 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dni
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.dni
@@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
-Checksum=-1720845113
+Checksum=-969169161
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt
index 69d85d6d..fbfa4871 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt
@@ -25,7 +25,7 @@
-
+
TabID-17931-22022
@@ -37,7 +37,7 @@
- 0
+ 0
TabID-24560-22511
@@ -47,20 +47,20 @@
TabID-23843-13527Debug LogDebug-Log
- 0
+ 0
- TextEditor$WS_DIR$\..\main.c0000045296429640TextEditor$WS_DIR$\..\..\..\..\Source\com.h0000010559875987TextEditor$WS_DIR$\..\..\..\..\Source\com.c000005035483548TextEditor$WS_DIR$\..\..\..\..\Source\assert.c000002724262426TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s000003024992499TextEditor$WS_DIR$\..\blt_conf.h0000010592829282TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c000006102837128371TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000001832923292TextEditor$WS_DIR$\..\..\..\..\Source\boot.c0000018262826360100000010000001
+ TextEditor$WS_DIR$\..\main.c000004529642964TextEditor$WS_DIR$\..\blt_conf.h000001369086908610100000010000001
- iaridepm.enu1-2-2775335-2-218716997396167659175521770833-2-21881922-2-21924190100208318849297396167659
+ iaridepm.enu1-2-2775335-2-218716997396167659175521770833-2-21881922-2-21924190100208318849297396167659
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf
index 8a258ea4..ea4d8885 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/blt_conf.h
index ad2adfa2..f538af8b 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/blt_conf.h
@@ -122,5 +122,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c
index b3aef8b6..fd73cee7 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c
@@ -298,4 +298,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
index d8ef1965..3f8c30a8 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
@@ -40,8 +40,8 @@
-
+
@@ -54,8 +54,8 @@
-
-
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf
index 6176abd3..32c0fbe1 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/blt_conf.h
index 78f85297..63a50814 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/blt_conf.h
@@ -122,5 +122,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c
index 27a8d774..47189f07 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c
@@ -298,4 +298,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out
index db825dbc..6f274814 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/blt_conf.h
index bba8fc6c..a7ccb7a5 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/blt_conf.h
@@ -122,5 +122,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c
index 3e6c68cd..a7b4fa70 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c
@@ -298,4 +298,64 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dbgdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dbgdt
index 9ac15e16..27b949a5 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dbgdt
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dbgdt
@@ -75,14 +75,14 @@
- TextEditor$WS_DIR$\..\main.c0000032287228720TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c00000110583758510100000010000001
+ TextEditor$WS_DIR$\..\main.c0000032287228720TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c0000011058375851TextEditor$WS_DIR$\..\hooks.c00000000TextEditor$WS_DIR$\..\blt_conf.h0000093864286420100000010000001
- iaridepm.enu1debuggergui.enu1-2-2737259-2-2261204135938202381135938733135-2-2737462-2-2261204135938202381241667733135-2460737795460-2200200104167198413174479733135-2-22021922-2-219242041002083202381135938202381
+ iaridepm.enu1debuggergui.enu1-2-2737259-2-2261204135938202381135938733135-2-2737462-2-2261204135938202381241667733135-2460737795460-2200200104167198413174479733135-2-22021922-2-219242041002083202381135938202381
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dni b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dni
index 001ad2c5..2c9eb200 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dni
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.dni
@@ -18,7 +18,7 @@ ActionState=1
Enabled=0
ShowSource=1
[DebugChecksum]
-Checksum=1854575004
+Checksum=1209114256
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt
index 8cda8e19..2055f906 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt
@@ -17,7 +17,7 @@
20105928270201413664941138
-
+
TabID-32216-31616
@@ -29,20 +29,20 @@
- 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-LogTabID-24296-22939Ambiguous DefinitionsSelect-Ambiguous-Definitions0
+ 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-LogTabID-24296-22939Ambiguous DefinitionsSelect-Ambiguous-Definitions0
- TextEditor$WS_DIR$\..\main.c000003228722872TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c0000011058375851TextEditor$WS_DIR$\..\hooks.c00000000TextEditor$WS_DIR$\..\blt_conf.h00000433647364730100000010000001
+ TextEditor$WS_DIR$\..\main.c0000032287228720TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c0000011058375851TextEditor$WS_DIR$\..\hooks.c00000000TextEditor$WS_DIR$\..\blt_conf.h0000093864286420100000010000001
- iaridepm.enu1-2-2726454-2-2261203135938201389237500722222-2-22371922-2-219242391002083237103135938201389
+ iaridepm.enu1-2-2726454-2-2261203135938201389237500722222-2-22371922-2-219242391002083237103135938201389
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep
index 2d5d4644..fd8e3852 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep
@@ -6,11 +6,10 @@
Debug
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
- $PROJ_DIR$\..\lib\USB_FS_DEVICE\inc\usb_def.h
- $PROJ_DIR$\..\lib\USB_FS_DEVICE\inc\usb_init.h
$PROJ_DIR$\..\lib\USB_FS_DEVICE\inc\usb_core.h
+ $PROJ_DIR$\..\lib\USB_FS_DEVICE\inc\usb_init.h
$PROJ_DIR$\..\lib\USB_FS_DEVICE\src\usb_core.c
+ $PROJ_DIR$\..\lib\USB_FS_DEVICE\inc\usb_def.h
$PROJ_DIR$\..\lib\USB_FS_DEVICE\src\usb_init.c
$PROJ_DIR$\..\lib\USB_FS_DEVICE\src\usb_int.c
$PROJ_DIR$\..\lib\USB_FS_DEVICE\inc\usb_int.h
@@ -40,6 +39,7 @@
$PROJ_DIR$\..\usb_prop.h
$PROJ_DIR$\..\usb_pwr.c
$PROJ_DIR$\..\usb_pwr.h
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\cstart.s
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\vectors.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\can.c
@@ -48,7 +48,6 @@
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\flash.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\flash.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\nvm.c
- $PROJ_DIR$\..\..\..\..\Source\assert.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\nvm.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\timer.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\timer.h
@@ -57,6 +56,7 @@
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\usb.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\usb.h
$PROJ_DIR$\..\..\..\..\Source\assert.h
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
$PROJ_DIR$\..\..\..\..\Source\backdoor.h
$PROJ_DIR$\..\..\..\..\Source\boot.c
$PROJ_DIR$\..\..\..\..\Source\boot.h
@@ -70,13 +70,13 @@
$TOOLKIT_DIR$\lib\shb_l.a
$PROJ_DIR$\..\obj\stm32f10x_adc.o
$PROJ_DIR$\Debug\Obj\stm32f10x_crc.o
- $TOOLKIT_DIR$\inc\c\stdint.h
- $PROJ_DIR$\..\obj\core_cm3.lst
- $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.o
$TOOLKIT_DIR$\inc\c\ycheck.h
- $PROJ_DIR$\..\memory.x
$PROJ_DIR$\..\obj\system_stm32f10x.lst
+ $PROJ_DIR$\..\memory.x
+ $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.o
$PROJ_DIR$\Debug\Obj\stm32f10x_tim.pbi
+ $PROJ_DIR$\..\obj\core_cm3.lst
+ $TOOLKIT_DIR$\inc\c\stdint.h
$PROJ_DIR$\..\obj\hw.lst
$PROJ_DIR$\..\obj\os.lst
$PROJ_DIR$\Debug\Obj\stm32f10x_spi.pbi
@@ -119,6 +119,44 @@
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h
+ $PROJ_DIR$\..\obj\usb.lst
+ $PROJ_DIR$\..\obj\nvm.o
+ $PROJ_DIR$\..\obj\can.o
+ $PROJ_DIR$\..\obj\usb.o
+ $PROJ_DIR$\..\obj\cpu.o
+ $PROJ_DIR$\..\obj\flash.o
+ $PROJ_DIR$\..\obj\can.pbi
+ $PROJ_DIR$\..\obj\uart.o
+ $PROJ_DIR$\..\obj\flash.pbi
+ $PROJ_DIR$\..\obj\cpu.pbi
+ $PROJ_DIR$\..\obj\nvm.pbi
+ $PROJ_DIR$\..\obj\uart.pbi
+ $PROJ_DIR$\..\obj\usb.pbi
+ $PROJ_DIR$\..\obj\usb_desc.pbi
+ $PROJ_DIR$\..\obj\usb_pwr.o
+ $PROJ_DIR$\..\obj\usb_pwr.pbi
+ $PROJ_DIR$\..\obj\usb_desc.o
+ $PROJ_DIR$\..\obj\usb_prop.pbi
+ $PROJ_DIR$\..\obj\usb_istr.o
+ $PROJ_DIR$\..\obj\usb_prop.o
+ $PROJ_DIR$\..\obj\usb_istr.pbi
+ $PROJ_DIR$\..\obj\usb_endp.o
+ $PROJ_DIR$\..\obj\usb_endp.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_dma.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_flash.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_tim.o
+ $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_bkp.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_can.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_cec.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_crc.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_dac.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_dma.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_exti.pbi
+ $PROJ_DIR$\..\obj\hw.pbi
+ $PROJ_DIR$\Debug\Obj\os.pbi
+ $PROJ_DIR$\..\..\..\..\Source\file.h
+ $PROJ_DIR$\..\obj\cop.o
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
@@ -307,9 +345,9 @@
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h
$PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h
$PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h
$PROJ_DIR$\..\lib\stdperiphlib\stm32f10x_conf.h
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h
@@ -340,8 +378,8 @@
$PROJ_DIR$\..\obj\cpu.lst
$PROJ_DIR$\..\obj\uart.lst
$PROJ_DIR$\..\obj\can.lst
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x
$PROJ_DIR$\..\obj\cop.lst
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x
$PROJ_DIR$\..\obj\com.lst
$PROJ_DIR$\..\obj\stm32f10x_sdio.o
$PROJ_DIR$\..\obj\stm32f10x_spi.o
@@ -357,74 +395,13 @@
$PROJ_DIR$\..\obj\xcp.pbi
$PROJ_DIR$\..\obj\xcp.lst
$PROJ_DIR$\..\obj\nvm.lst
- $PROJ_DIR$\..\obj\usb.lst
- $PROJ_DIR$\..\obj\nvm.o
- $PROJ_DIR$\..\obj\can.o
- $PROJ_DIR$\..\obj\usb.o
- $PROJ_DIR$\..\obj\cpu.o
- $PROJ_DIR$\..\obj\flash.o
- $PROJ_DIR$\..\obj\can.pbi
- $PROJ_DIR$\..\obj\uart.o
- $PROJ_DIR$\..\obj\flash.pbi
- $PROJ_DIR$\..\obj\cpu.pbi
- $PROJ_DIR$\..\obj\nvm.pbi
- $PROJ_DIR$\..\obj\uart.pbi
- $PROJ_DIR$\..\obj\usb.pbi
- $PROJ_DIR$\..\obj\usb_desc.pbi
- $PROJ_DIR$\..\obj\usb_pwr.o
- $PROJ_DIR$\..\obj\usb_pwr.pbi
- $PROJ_DIR$\..\obj\usb_desc.o
- $PROJ_DIR$\..\obj\usb_prop.pbi
- $PROJ_DIR$\..\obj\usb_istr.o
- $PROJ_DIR$\..\obj\usb_prop.o
- $PROJ_DIR$\..\obj\usb_istr.pbi
- $PROJ_DIR$\..\obj\usb_endp.o
- $PROJ_DIR$\..\obj\usb_endp.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_dma.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_flash.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_tim.o
- $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi
- $PROJ_DIR$\..\obj\stm32f10x_bkp.pbi
- $PROJ_DIR$\..\obj\stm32f10x_can.pbi
- $PROJ_DIR$\..\obj\stm32f10x_cec.pbi
- $PROJ_DIR$\..\obj\stm32f10x_crc.pbi
- $PROJ_DIR$\..\obj\stm32f10x_dac.pbi
- $PROJ_DIR$\..\obj\stm32f10x_dma.pbi
- $PROJ_DIR$\..\obj\stm32f10x_exti.pbi
- $PROJ_DIR$\..\obj\hw.pbi
- $PROJ_DIR$\Debug\Obj\os.pbi
- $PROJ_DIR$\..\..\..\..\Source\file.h
- $PROJ_DIR$\..\obj\cop.o
-
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
-
-
- ICCARM
- 327 265
-
-
- BICOMP
- 141
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
- BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
-
[ROOT_NODE]
ILINK
- 130 199
+ 168 237
@@ -433,21 +410,21 @@
ICCARM
- 134 142
+ 172 180
BICOMP
- 122
+ 160
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
@@ -456,21 +433,21 @@
ICCARM
- 198 143
+ 236 181
BICOMP
- 148
+ 186
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
@@ -479,17 +456,21 @@
ICCARM
- 132 144
+ 170 182
BICOMP
- 123
+ 161
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
+
+
+ BICOMP
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
@@ -498,21 +479,21 @@
ICCARM
- 196 145
+ 234 183
BICOMP
- 124
+ 162
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
@@ -521,21 +502,21 @@
ICCARM
- 128 146
+ 166 184
BICOMP
- 125
+ 163
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
@@ -544,7 +525,122 @@
ICCARM
- 127 147
+ 165 185
+
+
+ BICOMP
+ 164
+
+
+
+
+ ICCARM
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
+
+
+ BICOMP
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13
+
+
+
+
+ $PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cm3.c
+
+
+ ICCARM
+ 69 206
+
+
+ BICOMP
+ 382
+
+
+
+
+ ICCARM
+ 70 64 317 195 74 312 107 283
+
+
+ BICOMP
+ 70 64 317 195 74 312 107 283
+
+
+
+
+ $PROJ_DIR$\..\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
+
+
+ ICCARM
+ 65 380
+
+
+ BICOMP
+ 328
+
+
+
+
+ ICCARM
+ 17 16 70 64 317 195 74 312 107 283 345 19
+
+
+ BICOMP
+ 17 16 70 64 317 195 74 312 107 283 345 19
+
+
+
+
+ $PROJ_DIR$\..\hooks.c
+
+
+ ICCARM
+ 360 368
+
+
+ BICOMP
+ 367
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 17 16 70 64 317 195 74 312 107 283 345 19
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 17 16 70 64 317 195 74 312 107 283 345 19
+
+
+
+
+ $PROJ_DIR$\..\main.c
+
+
+ ICCARM
+ 260 297
+
+
+ BICOMP
+ 254
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 17 16 70 64 317 195 74 312 107 283 345 19
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 17 16 70 64 317 195 74 312 107 283 345 19
+
+
+
+
+ $PROJ_DIR$\..\usb_desc.c
+
+
+ ICCARM
+ 235 129
BICOMP
@@ -554,126 +650,11 @@
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 25
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14
-
-
-
-
- $PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cm3.c
-
-
- ICCARM
- 65 168
-
-
- BICOMP
- 344
-
-
-
-
- ICCARM
- 64 67 279 157 74 274 107 245
-
-
- BICOMP
- 64 67 279 157 74 274 107 245
-
-
-
-
- $PROJ_DIR$\..\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
-
-
- ICCARM
- 69 342
-
-
- BICOMP
- 290
-
-
-
-
- ICCARM
- 18 17 64 67 279 157 74 274 107 245 307 20
-
-
- BICOMP
- 18 17 64 67 279 157 74 274 107 245 307 20
-
-
-
-
- $PROJ_DIR$\..\hooks.c
-
-
- ICCARM
- 322 330
-
-
- BICOMP
- 329
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 18 17 64 67 279 157 74 274 107 245 307 20
-
-
- BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 18 17 64 67 279 157 74 274 107 245 307 20
-
-
-
-
- $PROJ_DIR$\..\main.c
-
-
- ICCARM
- 222 259
-
-
- BICOMP
- 216
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 18 17 64 67 279 157 74 274 107 245 307 20
-
-
- BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 18 17 64 67 279 157 74 274 107 245 307 20
-
-
-
-
- $PROJ_DIR$\..\usb_desc.c
-
-
- ICCARM
- 197 367
-
-
- BICOMP
- 364
-
-
-
-
- ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 26
-
-
- BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 26
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 25
@@ -682,21 +663,21 @@
ICCARM
- 133 372
+ 171 134
BICOMP
- 373
+ 135
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 26 29 33
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 25 28 32
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 26 29 33
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 25 28 32
@@ -705,21 +686,21 @@
ICCARM
- 195 369
+ 233 131
BICOMP
- 371
+ 133
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 31 33 29
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 30 32 28
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 31 33 29
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 30 32 28
@@ -728,21 +709,21 @@
ICCARM
- 200 370
+ 238 132
BICOMP
- 368
+ 130
ICCARM
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 31 26 33
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 30 25 32
BICOMP
- 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 31 26 33
+ 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 30 25 32
@@ -751,141 +732,21 @@
ICCARM
- 131 365
+ 169 127
BICOMP
- 366
+ 128
ICCARM
- 18 17 64 67 279 157 74 274 107 245 307 20 8 15 24 12 1 3 2 10 7 14 33 46
+ 17 16 70 64 317 195 74 312 107 283 345 19 7 14 23 11 3 0 1 9 6 13 32 45
BICOMP
- 18 17 64 67 279 157 74 274 107 245 307 20 8 15 24 12 1 3 2 10 7 14 33 46
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\cstart.s
-
-
- AARM
- 177
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\vectors.c
-
-
- ICCARM
- 221 211
-
-
- BICOMP
- 218
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\can.c
-
-
- ICCARM
- 333 353
-
-
- BICOMP
- 357
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
- BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\cpu.c
-
-
- ICCARM
- 331 355
-
-
- BICOMP
- 360
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
- BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\flash.c
-
-
- ICCARM
- 326 356
-
-
- BICOMP
- 359
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
- BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\nvm.c
-
-
- ICCARM
- 350 352
-
-
- BICOMP
- 361
-
-
-
-
- ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
-
-
- BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 17 16 70 64 317 195 74 312 107 283 345 19 7 14 23 11 3 0 1 9 6 13 32 45
@@ -894,21 +755,145 @@
ICCARM
- 325 324
+ 363 362
BICOMP
- 285
+ 323
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\cstart.s
+
+
+ AARM
+ 215
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\vectors.c
+
+
+ ICCARM
+ 259 249
+
+
+ BICOMP
+ 256
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\can.c
+
+
+ ICCARM
+ 371 115
+
+
+ BICOMP
+ 119
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\cpu.c
+
+
+ ICCARM
+ 369 117
+
+
+ BICOMP
+ 122
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\flash.c
+
+
+ ICCARM
+ 364 118
+
+
+ BICOMP
+ 121
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\nvm.c
+
+
+ ICCARM
+ 388 114
+
+
+ BICOMP
+ 123
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
@@ -917,21 +902,21 @@
ICCARM
- 223 212
+ 261 250
BICOMP
- 217
+ 255
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
@@ -940,21 +925,21 @@
ICCARM
- 332 358
+ 370 120
BICOMP
- 362
+ 124
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
@@ -963,21 +948,44 @@
ICCARM
- 351 354
+ 113 116
BICOMP
- 363
+ 125
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 26 33 29
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 25 32 28
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 8 18 17 64 67 279 157 74 274 107 245 307 20 15 24 12 1 3 2 10 7 14 26 33 29
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 7 17 16 70 64 317 195 74 312 107 283 345 19 14 23 11 3 0 1 9 6 13 25 32 28
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+
+
+ ICCARM
+ 365 303
+
+
+ BICOMP
+ 179
+
+
+
+
+ ICCARM
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
+
+
+ BICOMP
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
@@ -986,21 +994,21 @@
ICCARM
- 219 261
+ 257 299
BICOMP
- 213
+ 251
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
@@ -1009,21 +1017,21 @@
ICCARM
- 336 140
+ 374 178
BICOMP
- 286
+ 324
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 49
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 48
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60 49
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60 48
@@ -1032,21 +1040,21 @@
ICCARM
- 335 388
+ 372 150
BICOMP
- 347
+ 385
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
@@ -1055,21 +1063,21 @@
ICCARM
- 349 264
+ 387 302
BICOMP
- 348
+ 386
ICCARM
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
BICOMP
- 53 46 50 21 58 38 57 43 40 45 51 387 55 60
+ 53 45 49 20 58 38 57 42 40 44 51 149 55 60
@@ -1078,17 +1086,17 @@
ICCARM
- 100 320
+ 100 358
BICOMP
- 230
+ 268
ICCARM
- 207 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 206 208 112 114 116 118 297
+ 245 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 244 246 112 152 154 156 335
@@ -1097,17 +1105,17 @@
ICCARM
- 103 338
+ 103 376
BICOMP
- 238
+ 276
ICCARM
- 112 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 114 116 118 297
+ 112 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 152 154 156 335
@@ -1116,17 +1124,17 @@
ICCARM
- 105 339
+ 105 377
BICOMP
- 235
+ 273
ICCARM
- 114 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 116 118 297
+ 152 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 154 156 335
@@ -1135,17 +1143,17 @@
ICCARM
- 106 340
+ 106 378
BICOMP
- 234
+ 272
ICCARM
- 116 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 118 297
+ 154 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 156 335
@@ -1154,17 +1162,17 @@
ICCARM
- 83 341
+ 83 379
BICOMP
- 231
+ 269
ICCARM
- 118 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 297
+ 156 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 335
@@ -1173,17 +1181,17 @@
ICCARM
- 69 342
+ 65 380
BICOMP
- 290
+ 328
ICCARM
- 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1192,17 +1200,17 @@
ICCARM
- 219 261
+ 257 299
BICOMP
- 213
+ 251
ICCARM
- 275 266 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297 268 269 270 276
+ 313 304 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335 306 307 308 314
@@ -1211,17 +1219,17 @@
ILINK
- 199
+ 237
OBJCOPY
- 129
+ 167
ILINK
- 334 324 265 261 353 140 388 168 355 177 356 330 259 352 342 212 358 354 142 367 372 143 144 369 145 370 365 146 147 211 264 61 248 228 244
+ 373 362 303 299 115 178 150 206 117 215 118 368 297 114 380 250 120 116 180 129 134 181 182 131 183 132 127 184 185 249 302 61 286 266 282
@@ -1230,7 +1238,7 @@
BILINK
- 173 309 172 243 386 312 313 314 78 277 256 257 374 85 375 249 164 108 76 79 77 280 75 73 70 281 252 137
+ 211 347 210 281 148 350 351 352 78 315 294 295 136 85 137 287 202 108 76 79 77 318 75 73 68 319 290 175
@@ -1239,17 +1247,17 @@
ICCARM
- 221 211
+ 259 249
BICOMP
- 218
+ 256
ICCARM
- 275 266 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297 268 269 270 276
+ 313 304 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335 306 307 308 314
@@ -1258,17 +1266,17 @@
ICCARM
- 169 343
+ 207 381
BICOMP
- 236
+ 274
ICCARM
- 155 153 158 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297 151
+ 193 191 196 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335 189
@@ -1277,7 +1285,7 @@
AARM
- 177
+ 215
@@ -1290,13 +1298,13 @@
BICOMP
- 289
+ 327
ICCARM
- 153
+ 191
@@ -1305,17 +1313,17 @@
ICCARM
- 71 346
+ 71 384
BICOMP
- 385
+ 147
ICCARM
- 155 153 158 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297 151
+ 193 191 196 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335 189
@@ -1324,17 +1332,17 @@
ICCARM
- 91 209
+ 91 247
BICOMP
- 382
+ 144
ICCARM
- 179 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 217 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1343,17 +1351,17 @@
ICCARM
- 92 139
+ 92 177
BICOMP
- 377
+ 139
ICCARM
- 188 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 226 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1362,17 +1370,17 @@
ICCARM
- 93 225
+ 93 263
BICOMP
- 384
+ 146
ICCARM
- 184 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 222 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1381,17 +1389,17 @@
ICCARM
- 94 226
+ 94 264
BICOMP
- 227
+ 265
ICCARM
- 186 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 224 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1400,7 +1408,264 @@
ICCARM
- 104 210
+ 104 248
+
+
+ BICOMP
+ 145
+
+
+
+
+ ICCARM
+ 223 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
+
+
+ ICCARM
+ 95 216
+
+
+ BICOMP
+ 270
+
+
+
+
+ ICCARM
+ 228 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 230 232 240 110 245 244 246 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
+
+
+ ICCARM
+ 96 354
+
+
+ BICOMP
+ 325
+
+
+
+
+ ICCARM
+ 230 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 232 240 110 245 244 246 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
+
+
+ ICCARM
+ 97 355
+
+
+ BICOMP
+ 278
+
+
+
+
+ ICCARM
+ 232 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 240 110 245 244 246 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
+
+
+ ICCARM
+ 98 356
+
+
+ BICOMP
+ 277
+
+
+
+
+ ICCARM
+ 240 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 110 245 244 246 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
+
+
+ ICCARM
+ 99 357
+
+
+ BICOMP
+ 279
+
+
+
+
+ ICCARM
+ 110 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 245 244 246 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
+
+
+ ICCARM
+ 101 359
+
+
+ BICOMP
+ 267
+
+
+
+
+ ICCARM
+ 244 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 246 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
+
+
+ ICCARM
+ 102 375
+
+
+ BICOMP
+ 280
+
+
+
+
+ ICCARM
+ 246 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 112 152 154 156 335
+
+
+
+
+ $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out
+
+
+ OBJCOPY
+ 301
+
+
+
+
+ ILINK
+ 66 299 206 215 296 298 297 203 62 204 201 200 199 247 177 248 263 264 216 354 355 356 357 358 359 375 376 377 378 379 380 250 249 61 286 266 282
+
+
+
+
+ $PROJ_DIR$\..\cstart.s
+
+
+ AARM
+ 215
+
+
+
+
+ $PROJ_DIR$\..\led.c
+
+
+ ICCARM
+ 258 298
+
+
+ BICOMP
+ 253
+
+
+
+
+ ICCARM
+ 313 304 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335 306 307 308 314
+
+
+
+
+ $PROJ_DIR$\..\timer.c
+
+
+ ICCARM
+ 261 250
+
+
+ BICOMP
+ 255
+
+
+
+
+ ICCARM
+ 313 304 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335 306 307 308 314
+
+
+
+
+ $PROJ_DIR$\..\irq.c
+
+
+ ICCARM
+ 262 296
+
+
+ BICOMP
+ 252
+
+
+
+
+ ICCARM
+ 313 304 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335 306 307 308 314
+
+
+
+
+ $PROJ_DIR$\Debug\Exe\stm32f103.out
+
+
+ ILINK
+ 66 173 316 205 213 198 214 209 320 321 63 208 289 291 292 293 192 288 67 212 80 284 285 81 348 138 346 349 353 61 286 266 282
+
+
+
+
+ $PROJ_DIR$\..\bin\stm32f103.out
+
+
+ OBJCOPY
+ 271
+
+
+
+
+ ILINK
+ 66 299 206 215 296 298 297 203 62 204 201 200 199 247 177 248 263 264 216 354 355 356 357 358 359 375 376 377 378 379 380 250 249 61 286 266 282
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
+
+
+ ICCARM
+ 90 203
BICOMP
@@ -1410,264 +1675,7 @@
ICCARM
- 185 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
-
-
- ICCARM
- 95 178
-
-
- BICOMP
- 232
-
-
-
-
- ICCARM
- 190 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 192 194 202 110 207 206 208 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
-
-
- ICCARM
- 96 316
-
-
- BICOMP
- 287
-
-
-
-
- ICCARM
- 192 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 194 202 110 207 206 208 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
-
-
- ICCARM
- 97 317
-
-
- BICOMP
- 240
-
-
-
-
- ICCARM
- 194 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 202 110 207 206 208 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
-
-
- ICCARM
- 98 318
-
-
- BICOMP
- 239
-
-
-
-
- ICCARM
- 202 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 110 207 206 208 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
-
-
- ICCARM
- 99 319
-
-
- BICOMP
- 241
-
-
-
-
- ICCARM
- 110 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 207 206 208 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
-
-
- ICCARM
- 101 321
-
-
- BICOMP
- 229
-
-
-
-
- ICCARM
- 206 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 208 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
-
-
- ICCARM
- 102 337
-
-
- BICOMP
- 242
-
-
-
-
- ICCARM
- 208 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 112 114 116 118 297
-
-
-
-
- $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out
-
-
- OBJCOPY
- 263
-
-
-
-
- ILINK
- 68 261 168 177 258 260 259 165 62 166 163 162 161 209 139 210 225 226 178 316 317 318 319 320 321 337 338 339 340 341 342 212 211 61 248 228 244
-
-
-
-
- $PROJ_DIR$\..\cstart.s
-
-
- AARM
- 177
-
-
-
-
- $PROJ_DIR$\..\led.c
-
-
- ICCARM
- 220 260
-
-
- BICOMP
- 215
-
-
-
-
- ICCARM
- 275 266 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297 268 269 270 276
-
-
-
-
- $PROJ_DIR$\..\timer.c
-
-
- ICCARM
- 223 212
-
-
- BICOMP
- 217
-
-
-
-
- ICCARM
- 275 266 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297 268 269 270 276
-
-
-
-
- $PROJ_DIR$\..\irq.c
-
-
- ICCARM
- 224 258
-
-
- BICOMP
- 214
-
-
-
-
- ICCARM
- 275 266 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297 268 269 270 276
-
-
-
-
- $PROJ_DIR$\Debug\Exe\stm32f103.out
-
-
- ILINK
- 68 135 278 167 175 160 176 171 282 283 63 170 251 253 254 255 154 250 66 174 80 246 247 81 310 376 308 311 315 61 248 228 244
-
-
-
-
- $PROJ_DIR$\..\bin\stm32f103.out
-
-
- OBJCOPY
- 233
-
-
-
-
- ILINK
- 68 261 168 177 258 260 259 165 62 166 163 162 161 209 139 210 225 226 178 316 317 318 319 320 321 337 338 339 340 341 342 212 211 61 248 228 244
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
-
-
- ICCARM
- 90 165
-
-
- BICOMP
- 345
-
-
-
-
- ICCARM
- 297 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118
+ 335 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156
@@ -1676,17 +1684,17 @@
ICCARM
- 86 166
+ 86 204
BICOMP
- 378
+ 140
ICCARM
- 293 292 301 64 67 279 157 74 274 107 245 307 120 304 298 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 331 330 340 70 64 317 195 74 312 107 283 345 158 342 336 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1699,13 +1707,13 @@
BICOMP
- 136
+ 174
ICCARM
- 298 292 301 64 67 279 157 74 274 107 245 307 120 304 293 299 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 336 330 340 70 64 317 195 74 312 107 283 345 158 342 331 337 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1714,17 +1722,17 @@
ICCARM
- 87 163
+ 87 201
BICOMP
- 379
+ 141
ICCARM
- 299 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 303 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 337 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 339 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1733,17 +1741,17 @@
ICCARM
- 84 162
+ 84 200
BICOMP
- 380
+ 142
ICCARM
- 303 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 306 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 339 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 344 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1752,17 +1760,17 @@
ICCARM
- 65 168
+ 69 206
BICOMP
- 344
+ 382
ICCARM
- 64 67 279 157 74 274 107 245
+ 70 64 317 195 74 312 107 283
@@ -1771,17 +1779,17 @@
ICCARM
- 89 161
+ 89 199
BICOMP
- 381
+ 143
ICCARM
- 306 292 301 64 67 279 157 74 274 107 245 307 120 304 298 293 299 303 179 188 185 184 186 190 192 194 202 110 207 206 208 112 114 116 118 297
+ 344 330 340 70 64 317 195 74 312 107 283 345 158 342 336 331 337 339 217 226 223 222 224 228 230 232 240 110 245 244 246 112 152 154 156 335
@@ -1790,13 +1798,13 @@
OBJCOPY
- 328
+ 366
ILINK
- 334 324 265 261 353 140 388 168 355 177 356 330 259 352 342 212 358 354 211 264 61 248 228 244
+ 373 362 303 299 115 178 150 206 117 215 118 368 297 114 380 250 120 116 249 302 61 286 266 282
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf
index 5e3d01c3..1cb8435f 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/blt_conf.h
index df194691..cfb59c10 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/blt_conf.h
@@ -191,5 +191,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/hooks.c
index 4ad04ef7..bc2d77d1 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/hooks.c
@@ -391,4 +391,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
index 81e02cba..a7ac3c43 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
@@ -40,9 +40,9 @@
-
-
+
+
@@ -55,8 +55,8 @@
-
-
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf
index 309baf97..7ed08dec 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/blt_conf.h
index 0811e190..e5205f0a 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/blt_conf.h
@@ -191,5 +191,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/hooks.c
index 93c52089..10f131ef 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/hooks.c
@@ -391,4 +391,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out
index 67b3d340..13756655 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/blt_conf.h
index 3c515dd3..994b9f9e 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/blt_conf.h
@@ -191,5 +191,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/hooks.c
index 0f0b1596..725c6f1b 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/hooks.c
@@ -391,4 +391,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.dbgdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.dbgdt
index 059e0de2..087f43ba 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.dbgdt
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.dbgdt
@@ -26,7 +26,7 @@
111- Disassembly
- _I0
- 500
- 20
11
- 200100100100100200- res
- dir
- c
- Expression
- Location
- Type
- Value
- 100
- 150
- 100
- 207
+ 200100100100100200- res
- dir
- c
- Expression
- Location
- Type
- Value
- 100
- 150
- 100
- 207
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt
index 0e6fb373..fa68ea6b 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt
@@ -17,7 +17,7 @@
300Debug-Log20105928270300Build201413664941138
-
+
TabID-32216-31616
@@ -29,7 +29,7 @@
- 0TabID-13144-32069BuildBuildTabID-25023-6652Debug LogDebug-LogTabID-18334-26223Find in FilesFind-in-Files0
+ 0TabID-13144-32069BuildBuildTabID-25023-6652Debug LogDebug-LogTabID-18334-26223Find in FilesFind-in-Files0
@@ -42,7 +42,7 @@
- iaridepm.enu1-2-2752400-2-215416480208162698209375748016-2-22111922-2-219242131002083211310209375352183
+ iaridepm.enu1-2-2752400-2-215416480208162698209375748016-2-22111922-2-219242131002083211310209375352183
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep
index 2549e01a..452fa117 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep
@@ -62,13 +62,13 @@
$PROJ_DIR$\..\..\..\..\Source\file.h
$PROJ_DIR$\..\..\..\..\Source\plausibility.h
$PROJ_DIR$\..\..\..\..\Source\xcp.h
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
$PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.h
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
$PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
$PROJ_DIR$\..\..\..\..\Source\fatfs\src\integer.h
$PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.h
$PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
$PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
$PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h
$PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h
@@ -86,6 +86,42 @@
$PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h
$PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h
$PROJ_DIR$\..\obj\xcp.lst
+ $PROJ_DIR$\..\irq.h
+ $PROJ_DIR$\..\led.c
+ $PROJ_DIR$\..\led.h
+ $PROJ_DIR$\..\timer.c
+ $PROJ_DIR$\..\timer.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h
+ $PROJ_DIR$\..\obj\unicode.o
+ $PROJ_DIR$\..\obj\unicode.pbi
+ $PROJ_DIR$\..\obj\mmc.lst
+ $PROJ_DIR$\..\obj\ff.o
+ $PROJ_DIR$\..\obj\ff.pbi
+ $PROJ_DIR$\..\vectors.c
+ $PROJ_DIR$\..\src\app\app.c
$PROJ_DIR$\..\src\app\app.h
$PROJ_DIR$\..\src\hw\cstart.s
$PROJ_DIR$\..\src\os\os.h
@@ -116,8 +152,8 @@
$TOOLKIT_DIR$\inc\c\xencoding_limits.h
$PROJ_DIR$\Debug\Obj\stm32f10x_i2c.pbi
$TOOLKIT_DIR$\lib\dl7M_tln.a
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x
$PROJ_DIR$\Debug\Obj\misc.pbi
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x
$TOOLKIT_DIR$\inc\c\DLib_Threads.h
$PROJ_DIR$\Debug\Obj\stm32f10x_rcc.o
$PROJ_DIR$\Debug\Obj\stm32f10x_rtc.o
@@ -187,8 +223,8 @@
$PROJ_DIR$\..\obj\irq.o
$PROJ_DIR$\..\obj\main.o
$PROJ_DIR$\..\obj\led.o
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c
$PROJ_DIR$\..\obj\boot.o
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c
$PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out
$PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.srec
$PROJ_DIR$\..\obj\xcp.o
@@ -334,10 +370,10 @@
$PROJ_DIR$\Debug\Obj\stm32f10x_spi.o
$PROJ_DIR$\Debug\Obj\stm32f10x_wwdg.o
$PROJ_DIR$\Debug\Obj\stm32f10x_adc.pbi
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h
$PROJ_DIR$\Debug\Obj\stm32f10x_bkp.pbi
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h
$PROJ_DIR$\Debug\Obj\stm32f10x_can.pbi
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
$PROJ_DIR$\Debug\Obj\system_stm32f10x.o
$PROJ_DIR$\..\obj\stm32f10x_gpio.o
$PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h
@@ -365,8 +401,8 @@
$PROJ_DIR$\..\cstart.s
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
@@ -386,49 +422,13 @@
$PROJ_DIR$\..\boot.h
$PROJ_DIR$\..\header.h
$PROJ_DIR$\..\irq.c
- $PROJ_DIR$\..\irq.h
- $PROJ_DIR$\..\led.c
- $PROJ_DIR$\..\led.h
- $PROJ_DIR$\..\timer.c
- $PROJ_DIR$\..\timer.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h
- $PROJ_DIR$\..\obj\unicode.o
- $PROJ_DIR$\..\obj\unicode.pbi
- $PROJ_DIR$\..\obj\mmc.lst
- $PROJ_DIR$\..\obj\ff.o
- $PROJ_DIR$\..\obj\ff.pbi
- $PROJ_DIR$\..\vectors.c
- $PROJ_DIR$\..\src\app\app.c
[ROOT_NODE]
ILINK
- 251 90
+ 287 126
@@ -437,21 +437,21 @@
ICCARM
- 369 217
+ 405 253
BICOMP
- 129
+ 165
ICCARM
- 371 255 201 86 263 198 107 112
+ 407 291 237 122 299 234 143 148
BICOMP
- 371 255 201 86 263 198 107 112
+ 407 291 237 122 299 234 143 148
@@ -460,21 +460,21 @@
ICCARM
- 176 127
+ 212 163
BICOMP
- 307
+ 343
ICCARM
- 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
BICOMP
- 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
@@ -483,21 +483,21 @@
ICCARM
- 411 339
+ 111 375
BICOMP
- 340
+ 376
ICCARM
- 25 38 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15 47 33 43 16 54 26 51 30 28 32 45 53 40 5 49 55
+ 25 38 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15 47 33 43 16 54 26 51 30 28 32 45 53 40 5 49 55
BICOMP
- 25 38 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15 47 33 43 16 54 26 51 30 28 32 45 53 40 5 49 55
+ 25 38 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15 47 33 43 16 54 26 51 30 28 32 45 53 40 5 49 55
@@ -506,21 +506,17 @@
ICCARM
- 146 333
+ 182 369
BICOMP
- 253
+ 289
ICCARM
- 9 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
-
-
- BICOMP
- 9 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 9 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
@@ -529,21 +525,21 @@
ICCARM
- 150 248
+ 186 284
BICOMP
- 276
+ 312
ICCARM
- 11 3 0 371 255 201 86 263 198 107 112 322 1 7 9 13 15
+ 11 3 0 407 291 237 122 299 234 143 148 358 1 7 9 13 15
BICOMP
- 11 3 0 371 255 201 86 263 198 107 112 322 1 7 9 13 15
+ 11 3 0 407 291 237 122 299 234 143 148 358 1 7 9 13 15
@@ -552,21 +548,21 @@
ICCARM
- 153 102
+ 189 138
BICOMP
- 284
+ 320
ICCARM
- 13 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 15
+ 13 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 15
BICOMP
- 13 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 15
+ 13 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 15
@@ -575,21 +571,21 @@
ICCARM
- 106 104
+ 142 140
BICOMP
- 280
+ 316
ICCARM
- 15 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13
+ 15 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13
BICOMP
- 15 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13
+ 15 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13
@@ -598,21 +594,21 @@
ICCARM
- 250 95
+ 286 131
BICOMP
- 94
+ 130
ICCARM
- 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
BICOMP
- 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
@@ -621,21 +617,21 @@
ICCARM
- 268 179
+ 304 215
BICOMP
- 300
+ 336
ICCARM
- 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
BICOMP
- 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
@@ -644,11 +640,11 @@
ICCARM
- 79 185
+ 79 221
BICOMP
- 231
+ 267
@@ -667,7 +663,7 @@
AARM
- 286
+ 322
@@ -676,11 +672,11 @@
ICCARM
- 267 295
+ 303 331
BICOMP
- 233
+ 269
@@ -699,11 +695,11 @@
ICCARM
- 98 239
+ 134 275
BICOMP
- 243
+ 279
@@ -722,11 +718,11 @@
ICCARM
- 96 241
+ 132 277
BICOMP
- 208
+ 244
@@ -745,11 +741,11 @@
ICCARM
- 91 242
+ 127 278
BICOMP
- 207
+ 243
@@ -768,11 +764,11 @@
ICCARM
- 236 238
+ 272 274
BICOMP
- 265
+ 301
@@ -791,11 +787,11 @@
ICCARM
- 269 296
+ 305 332
BICOMP
- 232
+ 268
@@ -814,11 +810,11 @@
ICCARM
- 97 244
+ 133 280
BICOMP
- 266
+ 302
@@ -837,11 +833,11 @@
ICCARM
- 237 240
+ 273 276
BICOMP
- 338
+ 374
@@ -860,21 +856,21 @@
ICCARM
- 342 412
+ 378 112
BICOMP
- 413
+ 113
ICCARM
- 40 38 5 25 343 255 201 86 263 198 107 112
+ 40 38 5 25 379 291 237 122 299 234 143 148
BICOMP
- 40 38 5 25 343 255 201 86 263 198 107 112
+ 40 38 5 25 379 291 237 122 299 234 143 148
@@ -883,21 +879,21 @@
ICCARM
- 341 409
+ 377 109
BICOMP
- 410
+ 110
ICCARM
- 40 38 5 301
+ 40 38 5 337
BICOMP
- 40 38 5 301
+ 40 38 5 337
@@ -906,11 +902,11 @@
ICCARM
- 89 252
+ 125 288
BICOMP
- 225
+ 261
@@ -929,11 +925,11 @@
ICCARM
- 92 186
+ 128 222
BICOMP
- 228
+ 264
@@ -948,11 +944,11 @@
ICCARM
- 234 182
+ 270 217
BICOMP
- 297
+ 333
@@ -971,11 +967,11 @@
ICCARM
- 100 227
+ 136 263
BICOMP
- 229
+ 265
@@ -994,11 +990,11 @@
ICCARM
- 99 226
+ 135 262
BICOMP
- 230
+ 266
@@ -1017,21 +1013,21 @@
ICCARM
- 351 344
+ 387 380
BICOMP
- 345
+ 381
ICCARM
- 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 375 255 201 86 263 198 107 112 372 373 374 349 346 347 350 348 352 353
+ 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 411 291 237 122 299 234 143 148 408 409 410 385 382 383 386 384 388 389
BICOMP
- 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 375 255 201 86 263 198 107 112 372 373 374 349 346 347 350 348 352 353
+ 47 33 43 16 54 26 51 30 28 32 45 53 40 38 5 49 55 411 291 237 122 299 234 143 148 408 409 410 385 382 383 386 384 388 389
@@ -1040,17 +1036,17 @@
ICCARM
- 342 412
+ 378 112
BICOMP
- 413
+ 113
ICCARM
- 61 60 5 57 343 255 201 86 263 198 107 112
+ 60 59 5 56 379 291 237 122 299 234 143 148
@@ -1059,17 +1055,17 @@
ICCARM
- 341 409
+ 377 109
BICOMP
- 410
+ 110
ICCARM
- 61 60 5 359
+ 60 59 5 396
@@ -1078,21 +1074,21 @@
ICCARM
- 138 160
+ 174 196
BICOMP
- 289
+ 325
ICCARM
- 164 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 200 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
BICOMP
- 164 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 200 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
@@ -1101,21 +1097,21 @@
ICCARM
- 143 271
+ 179 307
BICOMP
- 195
+ 231
ICCARM
- 62 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 61 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
BICOMP
- 62 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 61 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
@@ -1124,21 +1120,21 @@
ICCARM
- 147 245
+ 183 281
BICOMP
- 303
+ 339
ICCARM
- 65 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 65 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
BICOMP
- 65 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 65 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
@@ -1147,21 +1143,21 @@
ICCARM
- 145 287
+ 181 323
BICOMP
- 278
+ 314
ICCARM
- 64 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 64 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
BICOMP
- 64 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 64 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
@@ -1170,21 +1166,21 @@
ICCARM
- 148 246
+ 184 282
BICOMP
- 302
+ 338
ICCARM
- 71 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 71 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
BICOMP
- 71 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 71 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
@@ -1193,21 +1189,21 @@
ICCARM
- 144 272
+ 180 308
BICOMP
- 273
+ 309
ICCARM
- 69 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 69 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
BICOMP
- 69 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 69 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
@@ -1216,21 +1212,21 @@
ICCARM
- 149 247
+ 185 283
BICOMP
- 304
+ 340
ICCARM
- 73 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 73 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
BICOMP
- 73 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 73 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
@@ -1239,21 +1235,21 @@
ICCARM
- 151 249
+ 187 285
BICOMP
- 275
+ 311
ICCARM
- 75 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 75 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
BICOMP
- 75 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 75 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
@@ -1262,352 +1258,68 @@
ICCARM
- 152 101
+ 188 137
BICOMP
- 305
+ 341
ICCARM
- 77 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 77 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
BICOMP
- 77 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
+ 77 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
- $PROJ_DIR$\..\src\hw\cstart.s
-
-
- AARM
- 286
-
-
-
-
- $PROJ_DIR$\..\src\os\os.c
+ $PROJ_DIR$\..\led.c
ICCARM
- 177 132
+ 271 216
BICOMP
- 306
+ 335
ICCARM
- 82
+ 414 199 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350 413 80 82 84
- $PROJ_DIR$\..\src\hw\hw.c
+ $PROJ_DIR$\..\timer.c
ICCARM
- 368 131
+ 305 332
BICOMP
- 196
+ 268
ICCARM
- 84 82 87 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314 80
+ 414 199 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350 413 80 82 84
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
ICCARM
- 155 103
-
-
- BICOMP
- 281
-
-
-
-
- ICCARM
- 157 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
-
-
- BICOMP
- 157 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
-
-
-
-
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
-
-
- ICCARM
- 133 105
-
-
- BICOMP
- 277
-
-
-
-
- ICCARM
- 159 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
-
-
- BICOMP
- 159 3 0 371 255 201 86 263 198 107 112 322 1 7 11 13 15
-
-
-
-
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
-
-
- ICCARM
- 137 212
-
-
- BICOMP
- 190
-
-
-
-
- ICCARM
- 172 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
- BICOMP
- 172 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
-
-
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
-
-
- ICCARM
- 136 215
-
-
- BICOMP
- 189
-
-
-
-
- ICCARM
- 170 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
- BICOMP
- 170 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
-
-
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
-
-
- ICCARM
- 139 210
-
-
- BICOMP
- 192
-
-
-
-
- ICCARM
- 168 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
- BICOMP
- 168 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
-
-
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
-
-
- ICCARM
- 134 211
-
-
- BICOMP
- 191
-
-
-
-
- ICCARM
- 166 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
- BICOMP
- 166 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
-
-
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
-
-
- ICCARM
- 141 293
-
-
- BICOMP
- 193
-
-
-
-
- ICCARM
- 334 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
- BICOMP
- 334 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
-
-
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c
-
-
- BICOMP
- 130
-
-
-
-
- $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out
-
-
- OBJCOPY
- 184
-
-
-
-
- ILINK
- 162 182 217 286 178 180 179 214 160 215 212 211 210 293 292 294 271 272 287 333 245 246 247 248 249 101 102 103 104 105 127 296 295 161 115 274 109
-
-
-
-
- $PROJ_DIR$\Debug\Exe\stm32f103.out
-
-
- ILINK
- 162 288 200 216 224 209 285 220 204 205 174 219 118 120 121 122 83 117 175 223 257 113 114 264 325 187 323 326 332 161 115 274 109
-
-
-
-
- $PROJ_DIR$\..\bin\openbtl_olimex_stm32p103.out
-
-
- ILINK
- 90
-
-
- OBJCOPY
- 93
-
-
-
-
- ILINK
- 110 252 186 182 239 227 226 217 241 286 412 344 242 95 179 339 238 333 248 102 104 127 296 244 409 240 295 185 161 115 274 109
-
-
-
-
- $PROJ_DIR$\..\bin\stm32f103.out
-
-
- OBJCOPY
- 279
-
-
-
-
- ILINK
- 162 182 217 286 178 180 179 214 160 215 212 211 210 293 292 294 271 272 287 333 245 246 247 248 249 101 102 103 104 105 127 296 295 161 115 274 109
-
-
-
-
- $PROJ_DIR$\Debug\Obj\stm32f103.pbd
-
-
- BILINK
- 222 324 221 111 197 327 329 331 256 199 123 124 125 135 126 116 213 108 258 259 261 202 260 262 370 203 119 290
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
-
-
- ICCARM
- 140 214
-
-
- BICOMP
- 130
-
-
-
-
- ICCARM
- 314 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
-
-
- ICCARM
- 136 215
-
-
- BICOMP
- 189
-
-
-
-
- ICCARM
- 310 309 328 371 255 201 86 263 198 107 112 322 355 319 315 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
-
-
- ICCARM
- 138 160
+ 182 369
BICOMP
@@ -1617,318 +1329,291 @@
ICCARM
- 315 309 328 371 255 201 86 263 198 107 112 322 355 319 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 99 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
ICCARM
- 137 212
+ 177 329
BICOMP
- 190
+ 229
ICCARM
- 316 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 85 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
ICCARM
- 134 211
+ 180 308
BICOMP
- 191
+ 309
ICCARM
- 318 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 89 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
ICCARM
- 139 210
+ 190 330
BICOMP
- 192
+ 230
ICCARM
- 321 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 90 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
ICCARM
- 369 217
+ 179 307
BICOMP
- 129
+ 231
ICCARM
- 371 255 201 86 263 198 107 112
+ 88 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
ICCARM
- 142 292
+ 178 328
BICOMP
- 188
+ 224
ICCARM
- 336 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
- BICOMP
- 336 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 95 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
ICCARM
- 154 294
+ 181 323
BICOMP
- 194
+ 314
ICCARM
- 78 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
-
-
- BICOMP
- 78 3 0 371 255 201 86 263 198 107 112 322 1 7 9 11 13 15
+ 98 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
ICCARM
- 176 127
+ 183 281
BICOMP
- 307
+ 339
ICCARM
- 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 106 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\cstart.s
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
+
+
+ ICCARM
+ 185 283
+
+
+ BICOMP
+ 340
+
+
+
+
+ ICCARM
+ 102 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 104 108 402 403 394 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c
+
+
+ ICCARM
+ 186 284
+
+
+ BICOMP
+ 312
+
+
+
+
+ ICCARM
+ 104 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 108 402 403 394 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
+
+
+ ICCARM
+ 184 282
+
+
+ BICOMP
+ 338
+
+
+
+
+ ICCARM
+ 103 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 102 104 108 402 403 394 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
+
+
+ ICCARM
+ 187 285
+
+
+ BICOMP
+ 311
+
+
+
+
+ ICCARM
+ 108 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 402 403 394 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\vectors.c
+
+
+ ICCARM
+ 303 331
+
+
+ BICOMP
+ 269
+
+
+
+
+ ICCARM
+ 414 199 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350 413 80 82 84
+
+
+
+
+ $PROJ_DIR$\..\src\app\app.c
+
+
+ ICCARM
+ 254 164
+
+
+ BICOMP
+ 318
+
+
+
+
+ ICCARM
+ 120 118 123 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350 116
+
+
+
+
+ $PROJ_DIR$\..\src\hw\cstart.s
AARM
- 286
+ 322
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
+ $PROJ_DIR$\..\src\os\os.c
ICCARM
- 152 101
+ 213 168
BICOMP
- 305
+ 342
ICCARM
- 366 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 367 358 364 362 314
+ 118
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
+ $PROJ_DIR$\..\src\hw\hw.c
ICCARM
- 155 103
-
-
- BICOMP
- 281
-
-
-
-
- ICCARM
- 358 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 364 362 314
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
-
-
- ICCARM
- 133 105
-
-
- BICOMP
- 277
-
-
-
-
- ICCARM
- 362 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 314
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
-
-
- ICCARM
- 106 104
-
-
- BICOMP
- 280
-
-
-
-
- ICCARM
- 364 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 362 314
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c
-
-
- ICCARM
- 153 102
-
-
- BICOMP
- 284
-
-
-
-
- ICCARM
- 367 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 358 364 362 314
-
-
-
-
- $PROJ_DIR$\..\boot.c
-
-
- ICCARM
- 234 182
-
-
- BICOMP
- 297
-
-
-
-
- ICCARM
- 378 163 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314 377 380 382 384
-
-
-
-
- $PROJ_DIR$\..\irq.c
-
-
- ICCARM
- 270 178
-
-
- BICOMP
- 298
-
-
-
-
- ICCARM
- 378 163 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314 377 380 382 384
-
-
-
-
- $PROJ_DIR$\..\led.c
-
-
- ICCARM
- 235 180
-
-
- BICOMP
- 299
-
-
-
-
- ICCARM
- 378 163 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314 377 380 382 384
-
-
-
-
- $PROJ_DIR$\..\timer.c
-
-
- ICCARM
- 269 296
+ 404 167
BICOMP
@@ -1938,273 +1623,584 @@
ICCARM
- 378 163 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314 377 380 382 384
+ 120 118 123 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350 116
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
ICCARM
- 146 333
+ 191 139
BICOMP
- 253
+ 317
ICCARM
- 399 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 406 403 402 404 408 366 367 358 364 362 314
+ 193 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
+
+
+ BICOMP
+ 193 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
ICCARM
- 141 293
+ 169 141
BICOMP
- 193
+ 313
ICCARM
- 385 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 195 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
+
+
+ BICOMP
+ 195 3 0 407 291 237 122 299 234 143 148 358 1 7 11 13 15
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
ICCARM
- 144 272
+ 173 248
BICOMP
- 273
+ 226
ICCARM
- 389 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 208 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+ BICOMP
+ 208 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
ICCARM
- 154 294
+ 172 251
BICOMP
- 194
+ 225
ICCARM
- 390 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 206 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+ BICOMP
+ 206 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
ICCARM
- 143 271
+ 175 246
BICOMP
- 195
+ 228
ICCARM
- 388 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 204 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+ BICOMP
+ 204 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
ICCARM
- 142 292
+ 170 247
BICOMP
- 188
+ 227
ICCARM
- 395 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314
+ 202 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+ BICOMP
+ 202 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
ICCARM
- 145 287
+ 177 329
BICOMP
- 278
+ 229
ICCARM
- 398 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 399 406 403 402 404 408 366 367 358 364 362 314
+ 370 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+ BICOMP
+ 370 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c
+
+
+ BICOMP
+ 166
+
+
+
+
+ $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out
+
+
+ OBJCOPY
+ 220
+
+
+
+
+ ILINK
+ 198 217 253 322 214 216 215 250 196 251 248 247 246 329 328 330 307 308 323 369 281 282 283 284 285 137 138 139 140 141 163 332 331 197 151 310 145
+
+
+
+
+ $PROJ_DIR$\Debug\Exe\stm32f103.out
+
+
+ ILINK
+ 198 324 236 252 260 245 321 256 240 241 210 255 154 156 157 158 119 153 211 259 293 149 150 300 361 223 359 362 368 197 151 310 145
+
+
+
+
+ $PROJ_DIR$\..\bin\openbtl_olimex_stm32p103.out
+
+
+ ILINK
+ 126
+
+
+ OBJCOPY
+ 129
+
+
+
+
+ ILINK
+ 147 288 222 217 275 263 262 253 277 322 112 380 278 131 215 375 274 369 284 138 140 163 332 280 109 276 331 221 197 151 310 145
+
+
+
+
+ $PROJ_DIR$\..\bin\stm32f103.out
+
+
+ OBJCOPY
+ 315
+
+
+
+
+ ILINK
+ 198 217 253 322 214 216 215 250 196 251 248 247 246 329 328 330 307 308 323 369 281 282 283 284 285 137 138 139 140 141 163 332 331 197 151 310 145
+
+
+
+
+ $PROJ_DIR$\Debug\Obj\stm32f103.pbd
+
+
+ BILINK
+ 258 360 257 146 233 363 364 366 292 235 159 160 161 171 162 152 249 144 294 295 297 238 296 298 406 239 155 326
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
ICCARM
- 147 245
+ 176 250
BICOMP
- 303
+ 166
ICCARM
- 406 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 403 402 404 408 366 367 358 364 362 314
+ 350 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
ICCARM
- 149 247
+ 172 251
BICOMP
- 304
+ 225
ICCARM
- 402 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 404 408 366 367 358 364 362 314
+ 346 345 365 407 291 237 122 299 234 143 148 358 391 355 351 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
ICCARM
- 150 248
+ 174 196
BICOMP
- 276
+ 325
ICCARM
- 404 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 408 366 367 358 364 362 314
+ 351 345 365 407 291 237 122 299 234 143 148 358 391 355 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
ICCARM
- 148 246
+ 173 248
BICOMP
- 302
+ 226
ICCARM
- 403 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 402 404 408 366 367 358 364 362 314
+ 352 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
ICCARM
- 151 249
+ 170 247
BICOMP
- 275
+ 227
ICCARM
- 408 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 366 367 358 364 362 314
+ 354 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\vectors.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
ICCARM
- 267 295
+ 175 246
BICOMP
- 233
+ 228
ICCARM
- 378 163 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314 377 380 382 384
+ 357 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
- $PROJ_DIR$\..\src\app\app.c
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
ICCARM
- 218 128
+ 405 253
BICOMP
- 282
+ 165
ICCARM
- 84 82 87 309 328 371 255 201 86 263 198 107 112 322 355 319 315 310 316 318 321 385 395 390 388 389 398 399 406 403 402 404 408 366 367 358 364 362 314 80
+ 407 291 237 122 299 234 143 148
+
+
+
+
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
+
+
+ ICCARM
+ 178 328
+
+
+ BICOMP
+ 224
+
+
+
+
+ ICCARM
+ 372 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+ BICOMP
+ 372 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+
+
+ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
+
+
+ ICCARM
+ 190 330
+
+
+ BICOMP
+ 230
+
+
+
+
+ ICCARM
+ 78 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+ BICOMP
+ 78 3 0 407 291 237 122 299 234 143 148 358 1 7 9 11 13 15
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
+
+
+ ICCARM
+ 212 163
+
+
+ BICOMP
+ 343
+
+
+
+
+ ICCARM
+ 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\cstart.s
+
+
+ AARM
+ 322
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
+
+
+ ICCARM
+ 188 137
+
+
+ BICOMP
+ 341
+
+
+
+
+ ICCARM
+ 402 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 403 394 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
+
+
+ ICCARM
+ 191 139
+
+
+ BICOMP
+ 317
+
+
+
+
+ ICCARM
+ 394 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
+
+
+ ICCARM
+ 169 141
+
+
+ BICOMP
+ 313
+
+
+
+
+ ICCARM
+ 398 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 350
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
+
+
+ ICCARM
+ 142 140
+
+
+ BICOMP
+ 316
+
+
+
+
+ ICCARM
+ 400 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 398 350
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c
+
+
+ ICCARM
+ 189 138
+
+
+ BICOMP
+ 320
+
+
+
+
+ ICCARM
+ 403 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 394 400 398 350
+
+
+
+
+ $PROJ_DIR$\..\boot.c
+
+
+ ICCARM
+ 270 217
+
+
+ BICOMP
+ 333
+
+
+
+
+ ICCARM
+ 414 199 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350 413 80 82 84
+
+
+
+
+ $PROJ_DIR$\..\irq.c
+
+
+ ICCARM
+ 306 214
+
+
+ BICOMP
+ 334
+
+
+
+
+ ICCARM
+ 414 199 345 365 407 291 237 122 299 234 143 148 358 391 355 351 346 352 354 357 85 95 90 88 89 98 99 106 103 102 104 108 402 403 394 400 398 350 413 80 82 84
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf
index a523cdfe..f8883a1b 100644
Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf differ
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h
index 3acb7769..de43df14 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h
@@ -267,5 +267,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/hooks.c
index 847c8694..36fbe521 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/hooks.c
@@ -391,4 +391,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs
index 360a42a1..5d09cabd 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs
@@ -48,9 +48,9 @@
-
-
+
+
@@ -63,8 +63,8 @@
-
-
+
+
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf
index ae8af72c..2db8def8 100644
Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf differ
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h
index 1bc54a2b..a9d0e997 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h
@@ -267,5 +267,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/hooks.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/hooks.c
index 616323f4..0f9671bc 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/hooks.c
@@ -391,4 +391,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out
index f29fcef0..fa1ebd26 100644
Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out differ
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h
index e9f0bef4..8b37fafe 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h
@@ -267,5 +267,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/hooks.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/hooks.c
index 8df5e3b6..42cdf9b3 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/hooks.c
@@ -391,4 +391,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt
index 06316c68..1a567810 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt
@@ -30,7 +30,7 @@
-
+
TabID-10231-8055
@@ -42,7 +42,7 @@
- 0TabID-19870-1384BuildBuildTabID-11216-22197Debug LogDebug-Log0
+ 0TabID-19870-1384BuildBuildTabID-11216-22197Debug LogDebug-Log0
@@ -55,7 +55,7 @@
- iaridepm.enu1-2-2963413-2-2200200104167198413216146957341-2-2963413-2-2200200104167198413216146957341
+ iaridepm.enu1-2-2963413-2-2200200104167198413216146957341-2-2963413-2-2200200104167198413216146957341
diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep
index 483d80df..f9d39a1a 100644
--- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep
+++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep
@@ -6,97 +6,10 @@
Debug
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rng.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_syscfg.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_tim.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_usart.h
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h
- $PROJ_DIR$\..\lib\uip\clock-arch.c
- $PROJ_DIR$\..\lib\uip\clock-arch.h
- $PROJ_DIR$\..\lib\uip\netdev.c
- $PROJ_DIR$\..\lib\uip\netdev.h
- $PROJ_DIR$\..\lib\uip\uip-conf.h
- $PROJ_DIR$\..\blt_conf.h
- $PROJ_DIR$\..\hooks.c
- $PROJ_DIR$\..\main.c
- $TOOLKIT_DIR$\inc\c\ctype.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\cstart.s
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\types.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\diskio.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\integer.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.h
- $PROJ_DIR$\..\..\..\..\Source\assert.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uipopt.h
- $PROJ_DIR$\..\..\..\..\Source\assert.h
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
- $PROJ_DIR$\..\..\..\..\Source\backdoor.h
- $PROJ_DIR$\..\..\..\..\Source\boot.c
- $PROJ_DIR$\..\..\..\..\Source\boot.h
- $PROJ_DIR$\..\..\..\..\Source\com.c
- $PROJ_DIR$\..\..\..\..\Source\com.h
- $PROJ_DIR$\..\..\..\..\Source\cop.c
- $PROJ_DIR$\..\..\..\..\Source\cop.h
- $PROJ_DIR$\..\..\..\..\Source\file.c
- $PROJ_DIR$\..\..\..\..\Source\file.h
- $PROJ_DIR$\..\..\..\..\Source\net.c
- $PROJ_DIR$\..\..\..\..\Source\net.h
- $PROJ_DIR$\..\..\..\..\Source\plausibility.h
- $PROJ_DIR$\..\..\..\..\Source\xcp.c
- $PROJ_DIR$\..\..\..\..\Source\xcp.h
- $PROJ_DIR$\..\obj\nvm.pbi
- $PROJ_DIR$\..\obj\misc.lst
- $PROJ_DIR$\..\obj\net.pbi
- $TOOLKIT_DIR$\inc\c\wchar.h
- $PROJ_DIR$\..\obj\stm32f4x7_eth.o
- $TOOLKIT_DIR$\inc\c\xlocale.h
- $PROJ_DIR$\..\obj\system_stm32f4xx.pbi
- $PROJ_DIR$\..\obj\vectors.lst
- $PROJ_DIR$\..\obj\stm32f4x7_eth.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.o
- $PROJ_DIR$\..\lib\fatfs\ffconf.h
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cm4_simd.h
$PROJ_DIR$\..\lib\ethernetlib\inc\stm32_eth.h
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cm4_simd.h
$PROJ_DIR$\..\lib\ethernetlib\src\stm32_eth.c
+ $PROJ_DIR$\..\lib\fatfs\ffconf.h
$PROJ_DIR$\..\lib\fatfs\mmc.c
$PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cm4.h
$PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cmInstr.h
@@ -144,95 +57,64 @@
$PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_pwr.h
$PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rcc.h
- $TOOLKIT_DIR$\inc\c\xtls.h
- $PROJ_DIR$\..\obj\system_stm32f4xx.o
- $PROJ_DIR$\..\obj\clock-arch.lst
- $PROJ_DIR$\..\obj\nvm.o
- $PROJ_DIR$\..\obj\stm32f4x7_eth.lst
- $PROJ_DIR$\..\obj\uip.lst
- $PROJ_DIR$\..\obj\netdev.o
- $PROJ_DIR$\..\obj\net.lst
- $PROJ_DIR$\..\obj\netdev.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_cryp_aes.o
- $PROJ_DIR$\..\obj\uip_arp.o
- $PROJ_DIR$\..\obj\uip_timer.lst
- $PROJ_DIR$\..\obj\uiplib.o
- $PROJ_DIR$\..\obj\netdev.lst
- $PROJ_DIR$\..\obj\uiplib.lst
- $PROJ_DIR$\..\obj\uip.o
- $PROJ_DIR$\..\obj\uip-fw.lst
- $TOOLKIT_DIR$\inc\c\DLib_Product.h
- $PROJ_DIR$\..\obj\stm32f4xx_exti.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_iwdg.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_fsmc.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_fsmc.lst
- $TOOLKIT_DIR$\lib\rt7M_tl.a
- $PROJ_DIR$\..\obj\stm32f4xx_syscfg.lst
- $PROJ_DIR$\..\obj\uart.o
- $PROJ_DIR$\..\obj\stm32f4xx_sdio.lst
- $PROJ_DIR$\..\obj\stm32f4xx_hash.lst
- $PROJ_DIR$\..\obj\stm32f4xx_dac.lst
- $PROJ_DIR$\..\obj\stm32f4xx_dma.lst
- $PROJ_DIR$\..\obj\stm32f4xx_dcmi.lst
- $TOOLKIT_DIR$\lib\dl7M_tln.a
- $PROJ_DIR$\..\obj\stm32f4xx_rng.lst
- $PROJ_DIR$\..\obj\stm32f4xx_hash_sha1.lst
- $PROJ_DIR$\..\obj\system_stm32f4xx.lst
- $PROJ_DIR$\..\obj\stm32f4xx_rtc.lst
- $PROJ_DIR$\..\obj\stm32f4xx_iwdg.lst
- $PROJ_DIR$\..\obj\stm32f4xx_rcc.lst
- $PROJ_DIR$\..\obj\stm32f4xx_pwr.lst
- $PROJ_DIR$\..\obj\stm32f4xx_gpio.lst
- $PROJ_DIR$\..\obj\stm32f4xx_wwdg.lst
- $PROJ_DIR$\..\obj\stm32f4xx_flash.lst
- $PROJ_DIR$\..\obj\stm32f4xx_usart.lst
- $PROJ_DIR$\..\obj\stm32f4xx_i2c.lst
- $PROJ_DIR$\..\obj\clock-arch.o
- $PROJ_DIR$\..\obj\nvm.lst
- $PROJ_DIR$\..\obj\stm32f4xx_cryp_tdes.lst
- $PROJ_DIR$\..\obj\uip-fw.pbi
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\memory.x
- $PROJ_DIR$\..\obj\uip.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_syscfg.pbi
- $PROJ_DIR$\..\lib\ethernetlib\inc\stm32f4x7_eth_conf.h
- $PROJ_DIR$\..\obj\stm32f4xx_cryp.lst
- $PROJ_DIR$\..\obj\openbtl_olimex_stm32e407.map
- $PROJ_DIR$\..\lib\ethernetlib\inc\stm32f4x7_eth.h
- $PROJ_DIR$\..\obj\unicode.lst
- $PROJ_DIR$\..\obj\uip_timer.o
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
- $PROJ_DIR$\..\obj\stm32_eth.pbi
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.h
- $PROJ_DIR$\..\obj\stm32_eth.lst
- $PROJ_DIR$\..\obj\stm32f4xx_flash.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_rng.o
- $PROJ_DIR$\..\obj\stm32f4xx_rtc.o
- $PROJ_DIR$\..\obj\stm32f4xx_sdio.o
- $PROJ_DIR$\..\obj\stm32f4xx_cryp_tdes.pbi
- $PROJ_DIR$\..\obj\stm32f4xx_spi.o
- $PROJ_DIR$\..\obj\can.pbi
- $PROJ_DIR$\..\obj\can.o
- $PROJ_DIR$\..\obj\can.lst
- $PROJ_DIR$\..\obj\stm32f4xx_cryp_tdes.o
- $PROJ_DIR$\..\obj\stm32f4xx_adc.o
- $PROJ_DIR$\..\obj\stm32f4xx_dbgmcu.o
- $PROJ_DIR$\..\obj\stm32f4xx_can.o
- $PROJ_DIR$\..\obj\stm32f4xx_cryp.o
- $PROJ_DIR$\..\obj\stm32f4xx_hash_md5.o
- $PROJ_DIR$\..\obj\stm32f4xx_hash_sha1.o
- $PROJ_DIR$\..\obj\stm32f4xx_crc.o
- $PROJ_DIR$\..\obj\stm32f4xx_dcmi.pbi
- $TOOLKIT_DIR$\inc\c\yvals.h
- $TOOLKIT_DIR$\inc\c\xencoding_limits.h
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c
- $PROJ_DIR$\..\obj\stm32f4xx_dac.o
- $PROJ_DIR$\..\obj\stm32f4xx_dcmi.o
- $PROJ_DIR$\..\obj\stm32f4xx_dma.o
- $PROJ_DIR$\..\obj\stm32f4xx_flash.o
- $PROJ_DIR$\..\obj\stm32f4xx_exti.o
- $PROJ_DIR$\..\obj\stm32f4xx_fsmc.o
- $PROJ_DIR$\..\obj\file.o
- $PROJ_DIR$\..\obj\boot.pbi
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rng.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_syscfg.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_tim.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_usart.h
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h
+ $PROJ_DIR$\..\lib\uip\clock-arch.c
+ $PROJ_DIR$\..\lib\uip\clock-arch.h
+ $PROJ_DIR$\..\lib\uip\netdev.c
+ $PROJ_DIR$\..\lib\uip\netdev.h
+ $PROJ_DIR$\..\lib\uip\uip-conf.h
+ $PROJ_DIR$\..\blt_conf.h
+ $PROJ_DIR$\..\hooks.c
+ $PROJ_DIR$\..\main.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\cstart.s
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\diskio.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\types.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\integer.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.h
$PROJ_DIR$\..\obj\timer.o
$PROJ_DIR$\..\obj\cop.o
$PROJ_DIR$\..\obj\xcp.o
@@ -358,560 +240,274 @@
$PROJ_DIR$\..\obj\stm32f4xx_cryp_des.lst
$PROJ_DIR$\..\obj\stm32f4xx_gpio.pbi
$PROJ_DIR$\..\obj\stm32_eth.o
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uipopt.h
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+ $PROJ_DIR$\..\..\..\..\Source\assert.h
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.h
+ $PROJ_DIR$\..\..\..\..\Source\boot.c
+ $PROJ_DIR$\..\..\..\..\Source\boot.h
+ $PROJ_DIR$\..\..\..\..\Source\com.c
+ $PROJ_DIR$\..\..\..\..\Source\com.h
+ $PROJ_DIR$\..\..\..\..\Source\cop.c
+ $PROJ_DIR$\..\..\..\..\Source\cop.h
+ $PROJ_DIR$\..\..\..\..\Source\file.c
+ $PROJ_DIR$\..\..\..\..\Source\file.h
+ $PROJ_DIR$\..\..\..\..\Source\net.c
+ $PROJ_DIR$\..\..\..\..\Source\net.h
+ $PROJ_DIR$\..\..\..\..\Source\plausibility.h
+ $PROJ_DIR$\..\..\..\..\Source\xcp.c
+ $PROJ_DIR$\..\..\..\..\Source\xcp.h
+ $TOOLKIT_DIR$\inc\c\ctype.h
+ $PROJ_DIR$\..\obj\nvm.pbi
+ $PROJ_DIR$\..\obj\misc.lst
+ $TOOLKIT_DIR$\inc\c\xlocale.h
+ $PROJ_DIR$\..\obj\vectors.lst
+ $PROJ_DIR$\..\obj\system_stm32f4xx.pbi
+ $PROJ_DIR$\..\obj\stm32f4x7_eth.o
+ $PROJ_DIR$\..\obj\stm32f4x7_eth.pbi
+ $TOOLKIT_DIR$\inc\c\wchar.h
+ $PROJ_DIR$\..\obj\net.pbi
+ $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.o
+ $PROJ_DIR$\..\obj\system_stm32f4xx.o
+ $TOOLKIT_DIR$\inc\c\xtls.h
+ $PROJ_DIR$\..\obj\clock-arch.lst
+ $PROJ_DIR$\..\obj\nvm.o
+ $PROJ_DIR$\..\obj\stm32f4x7_eth.lst
+ $PROJ_DIR$\..\obj\uip.lst
+ $PROJ_DIR$\..\obj\netdev.o
+ $PROJ_DIR$\..\obj\net.lst
+ $PROJ_DIR$\..\obj\netdev.pbi
+ $PROJ_DIR$\..\obj\stm32f4xx_cryp_aes.o
+ $PROJ_DIR$\..\obj\uip_arp.o
+ $PROJ_DIR$\..\obj\uip_timer.lst
+ $PROJ_DIR$\..\obj\uiplib.o
+ $PROJ_DIR$\..\obj\netdev.lst
+ $PROJ_DIR$\..\obj\uiplib.lst
+ $PROJ_DIR$\..\obj\uip.o
+ $PROJ_DIR$\..\obj\uip-fw.lst
+ $TOOLKIT_DIR$\inc\c\DLib_Product.h
+ $PROJ_DIR$\..\obj\stm32f4xx_exti.pbi
+ $PROJ_DIR$\..\obj\stm32f4xx_iwdg.pbi
+ $PROJ_DIR$\..\obj\stm32f4xx_fsmc.pbi
+ $PROJ_DIR$\..\obj\stm32f4xx_fsmc.lst
+ $TOOLKIT_DIR$\lib\rt7M_tl.a
+ $PROJ_DIR$\..\obj\stm32f4xx_syscfg.lst
+ $PROJ_DIR$\..\obj\uart.o
+ $PROJ_DIR$\..\obj\stm32f4xx_sdio.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_hash.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_dac.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_dma.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_dcmi.lst
+ $TOOLKIT_DIR$\lib\dl7M_tln.a
+ $PROJ_DIR$\..\obj\stm32f4xx_rng.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_hash_sha1.lst
+ $PROJ_DIR$\..\obj\system_stm32f4xx.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_rtc.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_iwdg.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_rcc.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_pwr.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_gpio.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_wwdg.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_flash.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_usart.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_i2c.lst
+ $PROJ_DIR$\..\obj\clock-arch.o
+ $PROJ_DIR$\..\obj\nvm.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_cryp_tdes.lst
+ $PROJ_DIR$\..\obj\uip-fw.pbi
+ $PROJ_DIR$\..\obj\uip.pbi
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\memory.x
+ $PROJ_DIR$\..\obj\stm32f4xx_syscfg.pbi
+ $PROJ_DIR$\..\lib\ethernetlib\inc\stm32f4x7_eth_conf.h
+ $PROJ_DIR$\..\obj\stm32f4xx_cryp.lst
+ $PROJ_DIR$\..\obj\openbtl_olimex_stm32e407.map
+ $PROJ_DIR$\..\lib\ethernetlib\inc\stm32f4x7_eth.h
+ $PROJ_DIR$\..\obj\unicode.lst
+ $PROJ_DIR$\..\obj\uip_timer.o
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c
+ $PROJ_DIR$\..\obj\stm32_eth.pbi
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.h
+ $PROJ_DIR$\..\obj\stm32_eth.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_flash.pbi
+ $PROJ_DIR$\..\obj\stm32f4xx_rng.o
+ $PROJ_DIR$\..\obj\stm32f4xx_rtc.o
+ $PROJ_DIR$\..\obj\stm32f4xx_sdio.o
+ $PROJ_DIR$\..\obj\stm32f4xx_cryp_tdes.pbi
+ $PROJ_DIR$\..\obj\stm32f4xx_spi.o
+ $PROJ_DIR$\..\obj\can.pbi
+ $PROJ_DIR$\..\obj\can.o
+ $PROJ_DIR$\..\obj\can.lst
+ $PROJ_DIR$\..\obj\stm32f4xx_cryp_tdes.o
+ $PROJ_DIR$\..\obj\stm32f4xx_adc.o
+ $PROJ_DIR$\..\obj\stm32f4xx_dbgmcu.o
+ $PROJ_DIR$\..\obj\stm32f4xx_can.o
+ $PROJ_DIR$\..\obj\stm32f4xx_cryp.o
+ $PROJ_DIR$\..\obj\stm32f4xx_hash_md5.o
+ $PROJ_DIR$\..\obj\stm32f4xx_hash_sha1.o
+ $PROJ_DIR$\..\obj\stm32f4xx_crc.o
+ $PROJ_DIR$\..\obj\stm32f4xx_dcmi.pbi
+ $TOOLKIT_DIR$\inc\c\yvals.h
+ $TOOLKIT_DIR$\inc\c\xencoding_limits.h
+ $PROJ_DIR$\..\obj\stm32f4xx_dac.o
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c
+ $PROJ_DIR$\..\obj\stm32f4xx_dcmi.o
+ $PROJ_DIR$\..\obj\stm32f4xx_dma.o
+ $PROJ_DIR$\..\obj\stm32f4xx_flash.o
+ $PROJ_DIR$\..\obj\stm32f4xx_exti.o
+ $PROJ_DIR$\..\obj\stm32f4xx_fsmc.o
+ $PROJ_DIR$\..\obj\file.o
+ $PROJ_DIR$\..\obj\boot.pbi
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c
-
-
- ICCARM
- 169 199
-
-
- BICOMP
- 301
-
-
-
-
- ICCARM
- 0 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 0 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c
-
-
- ICCARM
- 172 200
-
-
- BICOMP
- 263
-
-
-
-
- ICCARM
- 3 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 5 7 9 11 13 15 96
-
-
- BICOMP
- 3 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 5 7 9 11 13 15 96
-
-
-
[ROOT_NODE]
ILINK
- 286 190
+ 168 315
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c
+ $PROJ_DIR$\..\lib\ethernetlib\src\stm32_eth.c
ICCARM
- 163 201
+ 322 233
BICOMP
- 262
+ 320
ICCARM
- 5 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 7 9 11 13 15 96
+ 0 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 5 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 7 9 11 13 15 96
+ 0 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c
+ $PROJ_DIR$\..\lib\fatfs\mmc.c
ICCARM
- 335 203
+ 213 208
BICOMP
- 296
+ 224
ICCARM
- 7 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 9 11 13 15 96
-
-
- BICOMP
- 7 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 9 11 13 15 96
+ 120 121 341 115 167 280 342 185 161 211 83 94 10 5 131 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c
ICCARM
- 161 299
+ 254 166
BICOMP
- 187
+ 132
ICCARM
- 9 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 11 13 15 96
+ 9 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66
BICOMP
- 9 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 11 13 15 96
+ 9 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c
ICCARM
- 334 343
+ 137 333
BICOMP
- 264
+ 119
ICCARM
- 11 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 13 15 96
+ 12 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 11 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 13 15 96
+ 12 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c
ICCARM
- 179 298
+ 228 335
BICOMP
- 338
+ 116
ICCARM
- 13 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 15 96
+ 14 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 13 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 15 96
+ 14 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c
ICCARM
- 177 242
+ 176 339
BICOMP
- 240
+ 123
ICCARM
- 15 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 96
+ 17 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 15 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 96
+ 17 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c
ICCARM
- 171 139
-
-
- BICOMP
- 83
-
-
-
-
- ICCARM
- 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\uip\clock-arch.c
-
-
- ICCARM
- 140 181
-
-
- BICOMP
- 252
-
-
-
-
- ICCARM
- 19 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
- BICOMP
- 19 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
-
-
- $PROJ_DIR$\..\lib\uip\netdev.c
-
-
- ICCARM
- 151 144
-
-
- BICOMP
- 146
-
-
-
-
- ICCARM
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 54 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96 89 238 279 329
-
-
- BICOMP
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 54 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96 89 238 279 329
-
-
-
-
- $PROJ_DIR$\..\hooks.c
-
-
- ICCARM
- 318 312
-
-
- BICOMP
- 272
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\main.c
-
-
- ICCARM
- 321 311
-
-
- BICOMP
- 273
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\cstart.s
-
-
- AARM
- 274
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c
-
-
- ICCARM
- 84 245
-
-
- BICOMP
- 268
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.c
-
-
- ICCARM
- 206 205
-
-
- BICOMP
- 204
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c
-
-
- ICCARM
- 320 269
-
-
- BICOMP
- 277
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c
-
-
- ICCARM
- 322 276
-
-
- BICOMP
- 275
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c
-
-
- ICCARM
- 182 141
-
-
- BICOMP
- 77
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c
-
-
- ICCARM
- 289 227
-
-
- BICOMP
- 323
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c
-
-
- ICCARM
- 337 162
-
-
- BICOMP
- 330
-
-
-
-
- ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
-
-
- ICCARM
- 333 302
-
-
- BICOMP
- 344
-
-
-
-
- ICCARM
- 45 43 87 42 328 239 216 233 285 155 217 303
-
-
- BICOMP
- 45 43 87 42 328 239 216 233 285 155 217 303
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
-
-
- ICCARM
- 192 300
-
-
- BICOMP
- 260
-
-
-
-
- ICCARM
- 45 43 87 248
-
-
- BICOMP
- 45 43 87 248
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c
-
-
- ICCARM
- 154 292
-
-
- BICOMP
- 184
-
-
-
-
- ICCARM
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 50 49 238 239 216 233 285 155 217 303 279 329
-
-
- BICOMP
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 50 49 238 239 216 233 285 155 217 303 279 329
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c
-
-
- ICCARM
- 143 153
+ 314 336
BICOMP
@@ -921,66 +517,181 @@
ICCARM
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 50 238 239 216 233 285 155 217 303 279 329
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 50 238 239 216 233 285 155 217 303 279 329
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c
ICCARM
- 257 148
+ 229 272
BICOMP
- 254
+ 160
ICCARM
- 54 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 238 239 216 233 285 155 217 303 279 329
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 54 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 238 239 216 233 285 155 217 303 279 329
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c
ICCARM
- 149 193
+ 231 262
BICOMP
- 258
+ 223
ICCARM
- 47 19 56
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 47 19 56
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\assert.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c
ICCARM
- 282 280
+ 308 332
+
+
+ BICOMP
+ 327
+
+
+
+
+ ICCARM
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 19 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c
+
+
+ ICCARM
+ 290 343
+
+
+ BICOMP
+ 133
+
+
+
+
+ ICCARM
+ 24 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 24 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c
+
+
+ ICCARM
+ 175 334
+
+
+ BICOMP
+ 147
+
+
+
+
+ ICCARM
+ 26 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 26 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c
+
+
+ ICCARM
+ 292 345
+
+
+ BICOMP
+ 340
+
+
+
+
+ ICCARM
+ 28 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 28 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c
+
+
+ ICCARM
+ 291 346
+
+
+ BICOMP
+ 190
+
+
+
+
+ ICCARM
+ 30 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 30 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c
+
+
+ ICCARM
+ 141 348
BICOMP
@@ -990,43 +701,62 @@
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 32 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 32 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c
ICCARM
- 152 150
+ 303 347
BICOMP
- 256
+ 323
ICCARM
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 59
+ 34 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 52 60 22 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 73 59
+ 34 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c
ICCARM
- 315 309
+ 284 349
+
+
+ BICOMP
+ 283
+
+
+
+
+ ICCARM
+ 36 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c
+
+
+ ICCARM
+ 301 113
BICOMP
@@ -1036,135 +766,411 @@
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 38 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 38 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\boot.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c
ICCARM
- 316 310
+ 289 112
BICOMP
- 226
+ 230
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 40 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 40 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\com.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c
ICCARM
- 319 313
+ 172 337
BICOMP
- 267
+ 227
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 30 41 73
+ 40 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 30 41 73
+ 40 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\cop.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c
ICCARM
- 317 228
+ 295 338
BICOMP
- 243
+ 173
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 40 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 40 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\file.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c
ICCARM
- 314 225
+ 305 222
BICOMP
- 244
+ 188
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 238 239 216 233 285 155 217 303 279 329 26 82 138 324 270 247 246 80
+ 44 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 238 239 216 233 285 155 217 303 279 329 26 82 138 324 270 247 246 80
+ 44 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\net.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c
ICCARM
- 145 253
+ 298 187
BICOMP
- 79
+ 282
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 21 52 60 22 73 54
+ 46 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76 21 52 60 22 73 54
+ 46 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\..\..\..\Source\xcp.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c
ICCARM
- 287 229
+ 300 117
+
+
+ BICOMP
+ 143
+
+
+
+
+ ICCARM
+ 48 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 48 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c
+
+
+ ICCARM
+ 299 189
+
+
+ BICOMP
+ 118
+
+
+
+
+ ICCARM
+ 50 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 50 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c
+
+
+ ICCARM
+ 294 324
+
+
+ BICOMP
+ 183
+
+
+
+
+ ICCARM
+ 52 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 52 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c
+
+
+ ICCARM
+ 297 325
+
+
+ BICOMP
+ 145
+
+
+
+
+ ICCARM
+ 54 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 54 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c
+
+
+ ICCARM
+ 288 326
+
+
+ BICOMP
+ 144
+
+
+
+
+ ICCARM
+ 56 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 58 60 62 64 66 9
+
+
+ BICOMP
+ 56 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c
+
+
+ ICCARM
+ 217 328
+
+
+ BICOMP
+ 178
+
+
+
+
+ ICCARM
+ 58 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 60 62 64 66 9
+
+
+ BICOMP
+ 58 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c
+
+
+ ICCARM
+ 286 181
+
+
+ BICOMP
+ 312
+
+
+
+
+ ICCARM
+ 60 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 62 64 66 9
+
+
+ BICOMP
+ 60 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c
+
+
+ ICCARM
+ 216 225
+
+
+ BICOMP
+ 146
+
+
+
+
+ ICCARM
+ 62 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 64 66 9
+
+
+ BICOMP
+ 62 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c
+
+
+ ICCARM
+ 304 180
+
+
+ BICOMP
+ 220
+
+
+
+
+ ICCARM
+ 64 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 66 9
+
+
+ BICOMP
+ 64 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c
+
+
+ ICCARM
+ 302 124
+
+
+ BICOMP
+ 122
+
+
+
+
+ ICCARM
+ 66 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 9
+
+
+ BICOMP
+ 66 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 9
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c
+
+
+ ICCARM
+ 296 263
+
+
+ BICOMP
+ 257
+
+
+
+
+ ICCARM
+ 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\lib\uip\clock-arch.c
+
+
+ ICCARM
+ 265 306
+
+
+ BICOMP
+ 134
+
+
+
+
+ ICCARM
+ 70 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+ BICOMP
+ 70 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+
+
+ $PROJ_DIR$\..\lib\uip\netdev.c
+
+
+ ICCARM
+ 276 269
BICOMP
@@ -1174,518 +1180,167 @@
ICCARM
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 105 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9 0 120 161 211
BICOMP
- 65 39 61 23 74 32 69 36 34 38 63 71 45 43 87 67 76
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 105 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9 0 120 161 211
- $PROJ_DIR$\..\lib\ethernetlib\src\stm32_eth.c
+ $PROJ_DIR$\..\hooks.c
ICCARM
- 197 351
+ 200 194
BICOMP
- 195
+ 154
ICCARM
- 89 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 89 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\fatfs\mmc.c
+ $PROJ_DIR$\..\main.c
ICCARM
- 331 326
+ 203 193
BICOMP
- 342
+ 155
ICCARM
- 238 239 216 233 285 155 217 303 279 329 42 43 97 92 249 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 238 239 216 233 285 155 217 303 279 329 42 43 97 92 249 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c
ICCARM
- 78 284
+ 277 275
BICOMP
- 250
+ 138
ICCARM
- 96 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 108
BICOMP
- 96 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 108
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\cstart.s
- ICCARM
- 255 208
-
-
- BICOMP
- 237
-
-
-
-
- ICCARM
- 99 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 99 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c
-
-
- ICCARM
- 346 210
-
-
- BICOMP
- 234
-
-
-
-
- ICCARM
- 101 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 101 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c
-
-
- ICCARM
- 294 214
-
-
- BICOMP
- 241
-
-
-
-
- ICCARM
- 104 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 104 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c
-
-
- ICCARM
- 189 211
-
-
- BICOMP
- 304
-
-
-
-
- ICCARM
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c
-
-
- ICCARM
- 347 147
-
-
- BICOMP
- 278
-
-
-
-
- ICCARM
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c
-
-
- ICCARM
- 349 86
-
-
- BICOMP
- 341
-
-
-
-
- ICCARM
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c
-
-
- ICCARM
- 183 207
-
-
- BICOMP
- 202
-
-
-
-
- ICCARM
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 106 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c
-
-
- ICCARM
- 165 219
-
-
- BICOMP
- 251
-
-
-
-
- ICCARM
- 111 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 111 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c
-
-
- ICCARM
- 293 209
-
-
- BICOMP
- 265
-
-
-
-
- ICCARM
- 113 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 113 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c
-
-
- ICCARM
- 167 220
-
-
- BICOMP
- 215
-
-
-
-
- ICCARM
- 115 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 115 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c
-
-
- ICCARM
- 166 221
-
-
- BICOMP
- 308
-
-
-
-
- ICCARM
- 117 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 117 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c
-
-
- ICCARM
- 259 223
-
-
- BICOMP
+ AARM
156
-
-
- ICCARM
- 119 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 119 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c
ICCARM
- 178 222
+ 256 127
BICOMP
- 198
+ 150
ICCARM
- 121 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
BICOMP
- 121 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.c
ICCARM
- 159 224
+ 331 330
BICOMP
- 158
+ 329
ICCARM
- 123 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c
ICCARM
- 176 231
+ 202 151
BICOMP
- 350
+ 159
ICCARM
- 125 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
BICOMP
- 125 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 131 133 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c
ICCARM
- 164 230
-
-
- BICOMP
- 348
-
-
-
-
- ICCARM
- 127 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c
-
-
- ICCARM
- 290 212
-
-
- BICOMP
- 345
-
-
-
-
- ICCARM
- 127 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 127 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c
-
-
- ICCARM
- 170 213
-
-
- BICOMP
- 291
-
-
-
-
- ICCARM
- 127 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 127 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 125 131 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c
-
-
- ICCARM
- 180 340
-
-
- BICOMP
- 306
-
-
-
-
- ICCARM
- 131 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 133 135 137 0 3 5 7 9 11 13 15 96
-
-
- BICOMP
- 131 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 133 135 137 0 3 5 7 9 11 13 15 96
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c
-
-
- ICCARM
- 173 305
+ 204 158
BICOMP
@@ -1695,20 +1350,430 @@
ICCARM
- 133 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
BICOMP
- 133 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 135 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c
ICCARM
- 175 235
+ 307 266
+
+
+ BICOMP
+ 253
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c
+
+
+ ICCARM
+ 171 109
+
+
+ BICOMP
+ 205
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c
+
+
+ ICCARM
+ 219 287
+
+
+ BICOMP
+ 212
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
+
+
+ ICCARM
+ 215 184
+
+
+ BICOMP
+ 226
+
+
+
+
+ ICCARM
+ 96 94 3 83 210 121 341 115 167 280 342 185
+
+
+ BICOMP
+ 96 94 3 83 210 121 341 115 167 280 342 185
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
+
+
+ ICCARM
+ 317 182
+
+
+ BICOMP
+ 142
+
+
+
+
+ ICCARM
+ 96 94 3 130
+
+
+ BICOMP
+ 96 94 3 130
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c
+
+
+ ICCARM
+ 279 174
+
+
+ BICOMP
+ 309
+
+
+
+
+ ICCARM
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 101 100 120 121 341 115 167 280 342 185 161 211
+
+
+ BICOMP
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 101 100 120 121 341 115 167 280 342 185 161 211
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c
+
+
+ ICCARM
+ 268 278
+
+
+ BICOMP
+ 310
+
+
+
+
+ ICCARM
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 101 120 121 341 115 167 280 342 185 161 211
+
+
+ BICOMP
+ 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 101 120 121 341 115 167 280 342 185 161 211
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c
+
+
+ ICCARM
+ 139 273
+
+
+ BICOMP
+ 136
+
+
+
+
+ ICCARM
+ 105 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 120 121 341 115 167 280 342 185 161 211
+
+
+ BICOMP
+ 105 103 234 73 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 248 120 121 341 115 167 280 342 185 161 211
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c
+
+
+ ICCARM
+ 274 318
+
+
+ BICOMP
+ 140
+
+
+
+
+ ICCARM
+ 98 70 107
+
+
+ BICOMP
+ 98 70 107
+
+
+
+
+ $PROJ_DIR$\..\bin\openbtl_olimex_stm32e407.out
+
+
+ ILINK
+ 315
+
+
+ OBJCOPY
+ 148
+
+
+
+
+ ILINK
+ 311 162 191 192 330 306 195 110 151 156 184 350 158 194 193 166 208 135 269 266 233 333 335 339 336 272 262 332 343 334 345 346 348 347 349 113 112 337 338 222 187 117 189 324 325 326 328 181 225 180 124 263 109 287 174 278 273 318 275 182 127 111 170 285 209 293
+
+
+
+
+ $PROJ_DIR$\..\lib\ethernetlib\src\stm32f4x7_eth.c
+
+
+ ICCARM
+ 267 258
+
+
+ BICOMP
+ 259
+
+
+
+
+ ICCARM
+ 316 313 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9 120 161 211
+
+
+ BICOMP
+ 316 313 10 5 131 121 341 115 167 280 342 185 6 179 165 7 1 68 15 12 14 17 19 24 26 28 30 32 34 36 40 38 44 46 48 50 52 54 56 58 60 62 64 66 9 120 161 211
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c
+
+
+ ICCARM
+ 317 182
+
+
+ BICOMP
+ 142
+
+
+
+
+ ICCARM
+ 207 218 3 344
+
+
+ BICOMP
+ 207 218 3 344
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+
+
+ ICCARM
+ 164 162
+
+
+ BICOMP
+ 163
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+
+
+ ICCARM
+ 197 191
+
+
+ BICOMP
+ 114
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\boot.c
+
+
+ ICCARM
+ 198 192
+
+
+ BICOMP
+ 351
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\com.c
+
+
+ ICCARM
+ 201 195
+
+
+ BICOMP
+ 149
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 81 93 248
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 81 93 248
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\cop.c
+
+
+ ICCARM
+ 199 110
+
+
+ BICOMP
+ 125
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\file.c
+
+
+ ICCARM
+ 196 350
+
+
+ BICOMP
+ 126
+
+
+
+
+ ICCARM
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 120 121 341 115 167 280 342 185 161 211 252 255 264 206 152 129 128 260
+
+
+ BICOMP
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 120 121 341 115 167 280 342 185 161 211 252 255 264 206 152 129 128 260
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\net.c
+
+
+ ICCARM
+ 270 135
BICOMP
@@ -1718,34 +1783,34 @@
ICCARM
- 135 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 72 103 234 73 248 105
BICOMP
- 135 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 137 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251 72 103 234 73 248 105
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c
+ $PROJ_DIR$\..\..\..\..\Source\xcp.c
ICCARM
- 174 307
+ 169 111
BICOMP
- 236
+ 153
ICCARM
- 137 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
BICOMP
- 137 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 0 3 5 7 9 11 13 15 96
+ 240 91 236 74 249 84 244 88 86 90 238 246 96 94 3 242 251
@@ -1754,86 +1819,21 @@
ICCARM
- 333 302
+ 215 184
BICOMP
- 344
+ 226
ICCARM
- 325 336 87 196 328 239 216 233 285 155 217 303
+ 207 218 3 321 210 121 341 115 167 280 342 185
BICOMP
- 325 336 87 196 328 239 216 233 285 155 217 303
-
-
-
-
- $PROJ_DIR$\..\bin\openbtl_olimex_stm32e407.out
-
-
- ILINK
- 190
-
-
- OBJCOPY
- 266
-
-
-
-
- ILINK
- 185 280 309 310 205 181 313 228 269 274 302 225 276 312 311 284 326 253 144 141 351 208 210 214 211 147 86 207 219 209 220 221 223 222 224 231 230 212 213 340 305 235 307 199 200 201 203 299 343 298 242 139 227 162 292 153 148 193 150 300 245 229 288 160 327 168
-
-
-
-
- $PROJ_DIR$\..\lib\ethernetlib\src\stm32f4x7_eth.c
-
-
- ICCARM
- 142 81
-
-
- BICOMP
- 85
-
-
-
-
- ICCARM
- 191 188 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96 238 279 329
-
-
- BICOMP
- 191 188 97 92 249 239 216 233 285 155 217 303 93 297 283 94 88 17 102 99 101 104 106 111 113 115 117 119 121 123 127 125 131 133 135 137 0 3 5 7 9 11 13 15 96 238 279 329
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c
-
-
- ICCARM
- 192 300
-
-
- BICOMP
- 260
-
-
-
-
- ICCARM
- 325 336 87 218
-
-
- BICOMP
- 325 336 87 218
+ 207 218 3 321 210 121 341 115 167 280 342 185
diff --git a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/bin/openblt_dk_tm4c123g.out b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/bin/openblt_dk_tm4c123g.out
index ed43a21f..f79f587a 100644
Binary files a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/bin/openblt_dk_tm4c123g.out and b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/bin/openblt_dk_tm4c123g.out differ
diff --git a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/blt_conf.h
index 986a0591..b0a7f739 100644
--- a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/blt_conf.h
+++ b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/blt_conf.h
@@ -177,5 +177,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/hooks.c b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/hooks.c
index 746b79d8..ffbaafc7 100644
--- a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/hooks.c
@@ -460,4 +460,63 @@ void FileFirmwareUpdateLogHook(blt_char *info_string)
#endif /* BOOT_FILE_SYS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/settings/tm4c123g.wsdt b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/settings/tm4c123g.wsdt
index 71a6daff..a8ee49a4 100644
--- a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/settings/tm4c123g.wsdt
+++ b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/settings/tm4c123g.wsdt
@@ -17,7 +17,7 @@
20139537293142202431837113619234300- File
- Function
- Line
- 200
- 700
- 100
13619234
-
+
TabID-23736-13759
@@ -29,7 +29,7 @@
- 0TabID-11003-23003BuildBuildTabID-13665-29690Find All DeclarationsFind-All-DeclarationsTabID-2562-1429Debug LogDebug-LogTabID-23273-22207Find in FilesFind-in-FilesTabID-14368-8233Ambiguous DefinitionsSelect-Ambiguous-Definitions2
+ 0TabID-11003-23003BuildBuildTabID-13665-29690Find All DeclarationsFind-All-DeclarationsTabID-2562-1429Debug LogDebug-LogTabID-23273-22207Find in FilesFind-in-FilesTabID-14368-8233Ambiguous DefinitionsSelect-Ambiguous-Definitions0
@@ -42,7 +42,7 @@
- iaridepm.enu1-2-2579403-2-22002001041671984132109385763890011765302731919381362-257719242001002083198413210938382937
+ iaridepm.enu1-2-2579403-2-22002001041671984132109385763890011765302731919381362-257719242001002083198413210938382937
diff --git a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/tm4c123g.dep b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/tm4c123g.dep
index 9f7914f4..3ca7df35 100644
--- a/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/tm4c123g.dep
+++ b/Target/Demo/ARMCM4_TM4C_DK_TM4C123G_IAR/Boot/ide/tm4c123g.dep
@@ -36,60 +36,34 @@
$PROJ_DIR$\..\lib\driverlib\qei.c
$PROJ_DIR$\..\lib\driverlib\qei.h
$PROJ_DIR$\..\lib\driverlib\rom.h
- $PROJ_DIR$\..\lib\driverlib\rom_map.h
- $PROJ_DIR$\..\lib\driverlib\rtos_bindings.h
- $PROJ_DIR$\..\lib\driverlib\ssi.c
- $PROJ_DIR$\..\lib\driverlib\ssi.h
- $PROJ_DIR$\..\lib\driverlib\sw_crc.c
- $PROJ_DIR$\..\lib\driverlib\sw_crc.h
- $PROJ_DIR$\..\lib\driverlib\sysctl.c
- $PROJ_DIR$\..\lib\driverlib\sysctl.h
- $PROJ_DIR$\..\lib\driverlib\sysexc.c
- $PROJ_DIR$\..\lib\driverlib\systick.c
- $PROJ_DIR$\..\lib\driverlib\systick.h
- $PROJ_DIR$\..\lib\driverlib\timerlib.c
- $PROJ_DIR$\..\lib\driverlib\timerlib.h
- $PROJ_DIR$\..\lib\driverlib\uartlib.c
- $PROJ_DIR$\..\lib\driverlib\uartlib.h
- $PROJ_DIR$\..\lib\driverlib\udma.c
- $PROJ_DIR$\..\lib\driverlib\udma.h
- $PROJ_DIR$\..\lib\driverlib\usbdrv.c
- $PROJ_DIR$\..\lib\driverlib\usbdrv.h
- $PROJ_DIR$\..\lib\driverlib\watchdog.c
- $PROJ_DIR$\..\lib\driverlib\watchdog.h
- $PROJ_DIR$\..\lib\fatfs\ffconf.h
- $PROJ_DIR$\..\lib\fatfs\mmc.c
- $PROJ_DIR$\..\lib\inc\hw_adc.h
- $PROJ_DIR$\..\lib\inc\hw_can.h
- $PROJ_DIR$\..\lib\inc\hw_comp.h
- $PROJ_DIR$\..\lib\inc\hw_eeprom.h
- $PROJ_DIR$\..\lib\inc\hw_flash.h
- $PROJ_DIR$\..\lib\inc\hw_gpio.h
- $PROJ_DIR$\..\lib\inc\hw_hibernate.h
- $PROJ_DIR$\..\lib\inc\hw_i2c.h
- $PROJ_DIR$\..\lib\inc\hw_ints.h
- $PROJ_DIR$\..\lib\inc\hw_memmap.h
- $PROJ_DIR$\..\lib\inc\hw_nvic.h
- $PROJ_DIR$\..\lib\inc\hw_pwm.h
- $PROJ_DIR$\..\lib\inc\hw_qei.h
- $PROJ_DIR$\..\lib\inc\hw_ssi.h
- $PROJ_DIR$\..\lib\inc\hw_sysctl.h
- $PROJ_DIR$\..\lib\inc\hw_sysexc.h
- $PROJ_DIR$\..\lib\inc\hw_timer.h
- $PROJ_DIR$\..\lib\inc\hw_types.h
- $PROJ_DIR$\..\lib\inc\hw_uart.h
- $PROJ_DIR$\..\lib\inc\hw_udma.h
- $PROJ_DIR$\..\lib\inc\hw_usb.h
- $PROJ_DIR$\..\lib\inc\hw_watchdog.h
- $PROJ_DIR$\..\lib\usblib\config\usb_bulk_structs.c
- $PROJ_DIR$\..\lib\usblib\config\usb_bulk_structs.h
- $PROJ_DIR$\..\lib\usblib\device\usbdaudio.c
- $PROJ_DIR$\..\lib\usblib\device\usbdaudio.h
- $PROJ_DIR$\..\lib\usblib\device\usbdbulk.c
- $PROJ_DIR$\..\lib\usblib\device\usbdbulk.h
- $PROJ_DIR$\..\lib\usblib\device\usbdcdc.c
- $PROJ_DIR$\..\lib\usblib\device\usbdcdc.h
- $PROJ_DIR$\..\lib\usblib\device\usbdcdesc.c
+ $PROJ_DIR$\flashstore.c
+ $PROJ_DIR$\qs-logger.c
+ $PROJ_DIR$\..\drivers\slidemenuwidget.c
+ $PROJ_DIR$\startup_ewarm.c
+ $PROJ_DIR$\stripchartmanager.c
+ $PROJ_DIR$\..\drivers\stripchartwidget.c
+ $PROJ_DIR$\..\..\..\..\utils\uartstdio.c
+ $PROJ_DIR$\usb_serial_structs.c
+ $PROJ_DIR$\usbserial.c
+ $PROJ_DIR$\usbstick.c
+ $PROJ_DIR$\..\..\..\..\utils\ustdlib.c
+ $PROJ_DIR$\..\obj\images.o
+ $PROJ_DIR$\..\obj\buttons.o
+ $PROJ_DIR$\..\obj\clocksetwidget.o
+ $PROJ_DIR$\..\obj\acquire.o
+ $PROJ_DIR$\..\obj\cfal96x64x16.o
+ $PROJ_DIR$\..\obj\i2c.pbi
+ $PROJ_DIR$\..\..\..\..\third_party\fatfs\port\fat_usbmsc.c
+ $PROJ_DIR$\..\obj\interrupt.pbi
+ $PROJ_DIR$\..\obj\mpu.pbi
+ $PROJ_DIR$\..\obj\pwm.pbi
+ $PROJ_DIR$\..\obj\qei.pbi
+ $PROJ_DIR$\..\obj\usbdbulk.o
+ $PROJ_DIR$\..\lib\driverlib\usblib.c
+ $PROJ_DIR$\..\lib\driverlib\usblib.h
+ $PROJ_DIR$\..\obj\usbbuffer.o
+ $PROJ_DIR$\..\obj\ssi.pbi
+ $PROJ_DIR$\..\obj\sw_crc.pbi
$PROJ_DIR$\..\lib\usblib\device\usbdcomp.c
$PROJ_DIR$\..\lib\usblib\device\usbdcomp.h
$PROJ_DIR$\..\lib\usblib\device\usbdconfig.c
@@ -144,11 +118,11 @@
$PROJ_DIR$\..\main.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\vectors.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\cstart.s
- $PROJ_DIR$\..\obj\usbdconfig.o
+ $PROJ_DIR$\..\..\..\..\Source\xcp.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\cpu.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\cpu.h
+ $PROJ_DIR$\..\obj\usbdconfig.o
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\flash.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\flash.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\nvm.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\nvm.h
@@ -156,28 +130,6 @@
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\timer.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\types.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\uart.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\uart.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\usb.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\usb.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\diskio.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.h
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\integer.h
- $PROJ_DIR$\..\..\..\..\Source\assert.c
- $PROJ_DIR$\..\..\..\..\Source\assert.h
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
- $PROJ_DIR$\..\..\..\..\Source\backdoor.h
- $PROJ_DIR$\..\..\..\..\Source\boot.c
- $PROJ_DIR$\..\..\..\..\Source\boot.h
- $PROJ_DIR$\..\..\..\..\Source\com.c
- $PROJ_DIR$\..\..\..\..\Source\com.h
- $PROJ_DIR$\..\..\..\..\Source\cop.c
- $PROJ_DIR$\..\..\..\..\Source\cop.h
- $PROJ_DIR$\..\..\..\..\Source\file.c
- $PROJ_DIR$\..\..\..\..\Source\file.h
- $PROJ_DIR$\..\..\..\..\Source\plausibility.h
- $PROJ_DIR$\..\..\..\..\Source\xcp.c
- $PROJ_DIR$\..\..\..\..\Source\xcp.h
$TOOLKIT_DIR$\lib\shb_l.a
$PROJ_DIR$\..\obj\openblt_dk_tm4c123g.map
$PROJ_DIR$\..\obj\fpu.o
@@ -207,6 +159,147 @@
$PROJ_DIR$\..\obj\usbdmsc.pbi
$PROJ_DIR$\..\obj\usbhaudio.o
$PROJ_DIR$\..\obj\usbhhid.o
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\uart.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\usb.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\usb.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\diskio.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.h
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\integer.h
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+ $PROJ_DIR$\..\..\..\..\Source\assert.h
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.h
+ $PROJ_DIR$\..\..\..\..\Source\boot.c
+ $PROJ_DIR$\..\..\..\..\Source\boot.h
+ $PROJ_DIR$\..\..\..\..\Source\com.c
+ $PROJ_DIR$\..\..\..\..\Source\com.h
+ $PROJ_DIR$\..\..\..\..\Source\cop.c
+ $PROJ_DIR$\..\..\..\..\Source\cop.h
+ $PROJ_DIR$\..\..\..\..\Source\file.c
+ $PROJ_DIR$\..\..\..\..\Source\file.h
+ $PROJ_DIR$\..\..\..\..\Source\plausibility.h
+ $PROJ_DIR$\..\..\..\..\Source\xcp.c
+ $PROJ_DIR$\..\obj\usbdesc.pbi
+ $PROJ_DIR$\..\obj\usbdma.pbi
+ $PROJ_DIR$\..\obj\usbkeyboardmap.pbi
+ $PROJ_DIR$\..\obj\usbmode.pbi
+ $PROJ_DIR$\..\obj\usbringbuf.pbi
+ $PROJ_DIR$\..\obj\usbtick.pbi
+ $PROJ_DIR$\..\obj\usblib.o
+ $PROJ_DIR$\..\obj\usblib.pbi
+ $PROJ_DIR$\..\obj\comp.pbi
+ $PROJ_DIR$\..\obj\cpu.pbi
+ $PROJ_DIR$\..\obj\eeprom.pbi
+ $PROJ_DIR$\..\obj\flash.pbi
+ $PROJ_DIR$\..\obj\fpu.pbi
+ $PROJ_DIR$\..\obj\gpio.pbi
+ $PROJ_DIR$\..\obj\hibernate.pbi
+ $TOOLKIT_DIR$\inc\c\xtls.h
+ $TOOLKIT_DIR$\inc\c\xmtx.h
+ $TOOLKIT_DIR$\inc\c\stdlib.h
+ $TOOLKIT_DIR$\inc\c\xlocaleuse.h
+ $TOOLKIT_DIR$\inc\c\xlocale_c.h
+ $TOOLKIT_DIR$\inc\c\wchar.h
+ $PROJ_DIR$\..\obj\nvm.o
+ $PROJ_DIR$\..\obj\cpulib.o
+ $PROJ_DIR$\..\obj\cpulib.pbi
+ $PROJ_DIR$\..\obj\timerlib.o
+ $PROJ_DIR$\..\obj\timerlib.pbi
+ $PROJ_DIR$\..\obj\flashlib.o
+ $PROJ_DIR$\..\obj\flashlib.pbi
+ $PROJ_DIR$\..\obj\uartlib.o
+ $PROJ_DIR$\..\obj\uartlib.pbi
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\ccsbcs.c
+ $PROJ_DIR$\..\obj\unicode.pbi
+ $PROJ_DIR$\..\obj\unicode.o
+ $TOOLKIT_DIR$\inc\c\stdarg.h
+ $PROJ_DIR$\..\obj\mmc.pbi
+ $PROJ_DIR$\..\obj\mmc.o
+ $PROJ_DIR$\..\obj\cstart.o
+ $PROJ_DIR$\..\lib\driverlib\timer.h
+ $PROJ_DIR$\..\lib\driverlib\timer.c
+ $PROJ_DIR$\..\obj\adc.o
+ $PROJ_DIR$\..\obj\vectors.o
+ $PROJ_DIR$\..\lib\driverlib\uart.c
+ $PROJ_DIR$\..\lib\driverlib\uart.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\memory.x
+ $PROJ_DIR$\..\lib\driverlib\cpu.c
+ $PROJ_DIR$\..\lib\driverlib\flash.c
+ $PROJ_DIR$\..\obj\led.pbi
+ $PROJ_DIR$\..\obj\time.pbi
+ $PROJ_DIR$\..\obj\main.pbi
+ $PROJ_DIR$\..\obj\irq.pbi
+ $PROJ_DIR$\..\obj\vectors.pbi
+ $PROJ_DIR$\..\obj\boot.pbi
+ $PROJ_DIR$\..\obj\buttons.pbi
+ $PROJ_DIR$\..\obj\cfal96x64x16.pbi
+ $PROJ_DIR$\..\obj\clocksetwidget.pbi
+ $PROJ_DIR$\..\obj\fat_usbmsc.pbi
+ $PROJ_DIR$\..\boot.c
+ $PROJ_DIR$\..\boot.h
+ $PROJ_DIR$\..\obj\sysctl.pbi
+ $PROJ_DIR$\..\obj\stripchartwidget.pbi
+ $PROJ_DIR$\..\obj\menus.o
+ $PROJ_DIR$\..\obj\qs-logger.o
+ $PROJ_DIR$\..\obj\slidemenuwidget.o
+ $PROJ_DIR$\..\obj\usbdrv.o
+ $PROJ_DIR$\..\obj\usbdrv.pbi
+ $PROJ_DIR$\..\obj\usbhostenum.o
+ $PROJ_DIR$\..\obj\usbhmsc.o
+ $PROJ_DIR$\..\obj\usbhscsi.o
+ $PROJ_DIR$\..\obj\usbhaudio.pbi
+ $PROJ_DIR$\..\obj\usbhhid.pbi
+ $PROJ_DIR$\..\obj\usbhhidkeyboard.pbi
+ $PROJ_DIR$\..\obj\usbhhidmouse.pbi
+ $PROJ_DIR$\..\obj\usbhhub.pbi
+ $PROJ_DIR$\..\obj\usbhmsc.pbi
+ $PROJ_DIR$\..\obj\usbhostenum.pbi
+ $PROJ_DIR$\..\obj\usbhscsi.pbi
+ $PROJ_DIR$\..\obj\usb_bulk_structs.o
+ $PROJ_DIR$\..\obj\usb_bulk_structs.pbi
+ $PROJ_DIR$\..\obj\usbdaudio.o
+ $PROJ_DIR$\..\obj\usbdcdc.o
+ $PROJ_DIR$\..\obj\usbdesc.o
+ $PROJ_DIR$\..\obj\usbdma.o
+ $PROJ_DIR$\..\obj\usbkeyboardmap.o
+ $PROJ_DIR$\..\obj\usbmode.o
+ $PROJ_DIR$\..\obj\usbringbuf.o
+ $PROJ_DIR$\..\obj\usbtick.o
+ $PROJ_DIR$\..\obj\usbbuffer.pbi
+ $PROJ_DIR$\..\cstart.s
+ $PROJ_DIR$\..\header.h
+ $PROJ_DIR$\..\irq.c
+ $PROJ_DIR$\..\irq.h
+ $PROJ_DIR$\..\led.c
+ $PROJ_DIR$\..\led.h
+ $PROJ_DIR$\..\obj\fat_usbmsc.o
+ $PROJ_DIR$\..\obj\flashstore.o
+ $PROJ_DIR$\..\obj\startup_ewarm.pbi
+ $PROJ_DIR$\..\obj\slidemenuwidget.pbi
+ $PROJ_DIR$\..\obj\uartstdio.pbi
+ $PROJ_DIR$\..\obj\usbserial.pbi
+ $PROJ_DIR$\..\obj\usb_serial_structs.pbi
+ $PROJ_DIR$\..\obj\usbstick.pbi
+ $TOOLKIT_DIR$\inc\c\yvals.h
+ $TOOLKIT_DIR$\inc\c\ycheck.h
+ $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
+ $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h
+ $TOOLKIT_DIR$\inc\c\DLib_Product.h
+ $TOOLKIT_DIR$\inc\c\xencoding_limits.h
+ $TOOLKIT_DIR$\inc\c\DLib_Threads.h
+ $PROJ_DIR$\..\lib\driverlib\usb.h
+ $PROJ_DIR$\..\lib\driverlib\flash.h
+ $PROJ_DIR$\..\lib\driverlib\cpu.h
+ $PROJ_DIR$\..\obj\stripchartmanager.o
+ $PROJ_DIR$\..\obj\ff.o
+ $PROJ_DIR$\..\obj\usb_serial_structs.o
+ $PROJ_DIR$\..\obj\startup_ewarm.o
+ $PROJ_DIR$\..\lib\driverlib\usb.c
+ $PROJ_DIR$\..\obj\uartstdio.o
+ $PROJ_DIR$\..\obj\stripchartwidget.o
+ $PROJ_DIR$\..\obj\usbserial.o
$PROJ_DIR$\..\obj\usbhhidmouse.o
$PROJ_DIR$\..\obj\usbhhidkeyboard.o
$PROJ_DIR$\..\obj\usbhhub.o
@@ -293,174 +386,90 @@
$PROJ_DIR$\images.c
$PROJ_DIR$\..\..\..\..\third_party\fatfs\src\ff.c
$PROJ_DIR$\menus.c
- $PROJ_DIR$\flashstore.c
- $PROJ_DIR$\qs-logger.c
- $PROJ_DIR$\..\drivers\slidemenuwidget.c
- $PROJ_DIR$\startup_ewarm.c
- $PROJ_DIR$\stripchartmanager.c
- $PROJ_DIR$\..\drivers\stripchartwidget.c
- $PROJ_DIR$\..\..\..\..\utils\uartstdio.c
- $PROJ_DIR$\usb_serial_structs.c
- $PROJ_DIR$\usbserial.c
- $PROJ_DIR$\usbstick.c
- $PROJ_DIR$\..\..\..\..\utils\ustdlib.c
- $PROJ_DIR$\..\obj\images.o
- $PROJ_DIR$\..\obj\buttons.o
- $PROJ_DIR$\..\obj\clocksetwidget.o
- $PROJ_DIR$\..\obj\acquire.o
- $PROJ_DIR$\..\obj\cfal96x64x16.o
- $PROJ_DIR$\..\..\..\..\third_party\fatfs\port\fat_usbmsc.c
- $PROJ_DIR$\..\obj\i2c.pbi
- $PROJ_DIR$\..\obj\interrupt.pbi
- $PROJ_DIR$\..\obj\mpu.pbi
- $PROJ_DIR$\..\obj\pwm.pbi
- $PROJ_DIR$\..\obj\qei.pbi
- $PROJ_DIR$\..\obj\usbdbulk.o
- $PROJ_DIR$\..\lib\driverlib\usblib.c
- $PROJ_DIR$\..\lib\driverlib\usblib.h
- $PROJ_DIR$\..\obj\usbbuffer.o
- $PROJ_DIR$\..\obj\ssi.pbi
- $PROJ_DIR$\..\obj\sw_crc.pbi
- $PROJ_DIR$\..\obj\sysctl.pbi
- $PROJ_DIR$\..\obj\stripchartwidget.pbi
- $PROJ_DIR$\..\obj\menus.o
- $PROJ_DIR$\..\obj\qs-logger.o
- $PROJ_DIR$\..\obj\slidemenuwidget.o
- $PROJ_DIR$\..\obj\usbdrv.o
- $PROJ_DIR$\..\obj\usbdrv.pbi
- $PROJ_DIR$\..\obj\usbhostenum.o
- $PROJ_DIR$\..\obj\usbhmsc.o
- $PROJ_DIR$\..\obj\usbhscsi.o
- $PROJ_DIR$\..\obj\usbhaudio.pbi
- $PROJ_DIR$\..\obj\usbhhid.pbi
- $PROJ_DIR$\..\obj\usbhhidkeyboard.pbi
- $PROJ_DIR$\..\obj\usbhhidmouse.pbi
- $PROJ_DIR$\..\obj\usbhhub.pbi
- $PROJ_DIR$\..\obj\usbhmsc.pbi
- $PROJ_DIR$\..\obj\usbhostenum.pbi
- $PROJ_DIR$\..\obj\usbhscsi.pbi
- $PROJ_DIR$\..\obj\usb_bulk_structs.o
- $PROJ_DIR$\..\obj\usb_bulk_structs.pbi
- $PROJ_DIR$\..\obj\usbdaudio.o
- $PROJ_DIR$\..\obj\usbdcdc.o
- $PROJ_DIR$\..\obj\usbdesc.o
- $PROJ_DIR$\..\obj\usbdma.o
- $PROJ_DIR$\..\obj\usbkeyboardmap.o
- $PROJ_DIR$\..\obj\usbmode.o
- $PROJ_DIR$\..\obj\usbringbuf.o
- $PROJ_DIR$\..\obj\usbtick.o
- $PROJ_DIR$\..\obj\usbbuffer.pbi
- $PROJ_DIR$\..\obj\usbdesc.pbi
- $PROJ_DIR$\..\obj\usbdma.pbi
- $PROJ_DIR$\..\obj\usbkeyboardmap.pbi
- $PROJ_DIR$\..\obj\usbmode.pbi
- $PROJ_DIR$\..\obj\usbringbuf.pbi
- $PROJ_DIR$\..\obj\usbtick.pbi
- $PROJ_DIR$\..\obj\usblib.o
- $PROJ_DIR$\..\obj\usblib.pbi
- $PROJ_DIR$\..\obj\comp.pbi
- $PROJ_DIR$\..\obj\cpu.pbi
- $PROJ_DIR$\..\obj\eeprom.pbi
- $PROJ_DIR$\..\obj\flash.pbi
- $PROJ_DIR$\..\obj\fpu.pbi
- $PROJ_DIR$\..\obj\gpio.pbi
- $PROJ_DIR$\..\obj\hibernate.pbi
- $TOOLKIT_DIR$\inc\c\xtls.h
- $TOOLKIT_DIR$\inc\c\xmtx.h
- $TOOLKIT_DIR$\inc\c\stdlib.h
- $TOOLKIT_DIR$\inc\c\xlocaleuse.h
- $TOOLKIT_DIR$\inc\c\xlocale_c.h
- $TOOLKIT_DIR$\inc\c\wchar.h
- $PROJ_DIR$\..\obj\nvm.o
- $PROJ_DIR$\..\obj\cpulib.o
- $PROJ_DIR$\..\obj\cpulib.pbi
- $PROJ_DIR$\..\obj\timerlib.o
- $PROJ_DIR$\..\obj\timerlib.pbi
- $PROJ_DIR$\..\obj\flashlib.o
- $PROJ_DIR$\..\obj\flashlib.pbi
- $PROJ_DIR$\..\obj\uartlib.o
- $PROJ_DIR$\..\obj\uartlib.pbi
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\ccsbcs.c
- $PROJ_DIR$\..\obj\unicode.pbi
- $PROJ_DIR$\..\obj\unicode.o
- $TOOLKIT_DIR$\inc\c\stdarg.h
- $PROJ_DIR$\..\obj\mmc.pbi
- $PROJ_DIR$\..\obj\mmc.o
- $PROJ_DIR$\..\obj\cstart.o
- $PROJ_DIR$\..\lib\driverlib\timer.h
- $PROJ_DIR$\..\lib\driverlib\timer.c
- $PROJ_DIR$\..\obj\adc.o
- $PROJ_DIR$\..\obj\vectors.o
- $PROJ_DIR$\..\lib\driverlib\uart.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\memory.x
- $PROJ_DIR$\..\lib\driverlib\uart.h
- $PROJ_DIR$\..\lib\driverlib\cpu.c
- $PROJ_DIR$\..\lib\driverlib\flash.c
- $PROJ_DIR$\..\obj\led.pbi
- $PROJ_DIR$\..\obj\time.pbi
- $PROJ_DIR$\..\obj\main.pbi
- $PROJ_DIR$\..\obj\irq.pbi
- $PROJ_DIR$\..\obj\vectors.pbi
- $PROJ_DIR$\..\obj\boot.pbi
- $PROJ_DIR$\..\obj\buttons.pbi
- $PROJ_DIR$\..\obj\cfal96x64x16.pbi
- $PROJ_DIR$\..\obj\clocksetwidget.pbi
- $PROJ_DIR$\..\obj\fat_usbmsc.pbi
- $PROJ_DIR$\..\boot.c
- $PROJ_DIR$\..\boot.h
- $PROJ_DIR$\..\cstart.s
- $PROJ_DIR$\..\header.h
- $PROJ_DIR$\..\irq.c
- $PROJ_DIR$\..\irq.h
- $PROJ_DIR$\..\led.c
- $PROJ_DIR$\..\led.h
- $PROJ_DIR$\..\obj\fat_usbmsc.o
- $PROJ_DIR$\..\obj\flashstore.o
- $PROJ_DIR$\..\obj\startup_ewarm.pbi
- $PROJ_DIR$\..\obj\slidemenuwidget.pbi
- $PROJ_DIR$\..\obj\uartstdio.pbi
- $PROJ_DIR$\..\obj\usbserial.pbi
- $PROJ_DIR$\..\obj\usb_serial_structs.pbi
- $PROJ_DIR$\..\obj\usbstick.pbi
- $TOOLKIT_DIR$\inc\c\yvals.h
- $TOOLKIT_DIR$\inc\c\ycheck.h
- $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
- $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h
- $TOOLKIT_DIR$\inc\c\DLib_Product.h
- $TOOLKIT_DIR$\inc\c\xencoding_limits.h
- $TOOLKIT_DIR$\inc\c\DLib_Threads.h
- $PROJ_DIR$\..\lib\driverlib\usb.h
- $PROJ_DIR$\..\lib\driverlib\flash.h
- $PROJ_DIR$\..\lib\driverlib\cpu.h
- $PROJ_DIR$\..\obj\stripchartmanager.o
- $PROJ_DIR$\..\obj\ff.o
- $PROJ_DIR$\..\obj\usb_serial_structs.o
- $PROJ_DIR$\..\obj\startup_ewarm.o
- $PROJ_DIR$\..\lib\driverlib\usb.c
- $PROJ_DIR$\..\obj\uartstdio.o
- $PROJ_DIR$\..\obj\stripchartwidget.o
- $PROJ_DIR$\..\obj\usbserial.o
+ $PROJ_DIR$\..\lib\driverlib\rom_map.h
+ $PROJ_DIR$\..\lib\driverlib\rtos_bindings.h
+ $PROJ_DIR$\..\lib\driverlib\ssi.c
+ $PROJ_DIR$\..\lib\driverlib\ssi.h
+ $PROJ_DIR$\..\lib\driverlib\sw_crc.c
+ $PROJ_DIR$\..\lib\driverlib\sw_crc.h
+ $PROJ_DIR$\..\lib\driverlib\sysctl.c
+ $PROJ_DIR$\..\lib\driverlib\sysctl.h
+ $PROJ_DIR$\..\lib\driverlib\sysexc.c
+ $PROJ_DIR$\..\lib\driverlib\systick.c
+ $PROJ_DIR$\..\lib\driverlib\systick.h
+ $PROJ_DIR$\..\lib\driverlib\timerlib.c
+ $PROJ_DIR$\..\lib\driverlib\timerlib.h
+ $PROJ_DIR$\..\lib\driverlib\uartlib.c
+ $PROJ_DIR$\..\lib\driverlib\uartlib.h
+ $PROJ_DIR$\..\lib\driverlib\udma.c
+ $PROJ_DIR$\..\lib\driverlib\udma.h
+ $PROJ_DIR$\..\lib\driverlib\usbdrv.c
+ $PROJ_DIR$\..\lib\driverlib\usbdrv.h
+ $PROJ_DIR$\..\lib\driverlib\watchdog.c
+ $PROJ_DIR$\..\lib\driverlib\watchdog.h
+ $PROJ_DIR$\..\lib\fatfs\ffconf.h
+ $PROJ_DIR$\..\lib\fatfs\mmc.c
+ $PROJ_DIR$\..\lib\inc\hw_adc.h
+ $PROJ_DIR$\..\lib\inc\hw_can.h
+ $PROJ_DIR$\..\lib\inc\hw_comp.h
+ $PROJ_DIR$\..\lib\inc\hw_eeprom.h
+ $PROJ_DIR$\..\lib\inc\hw_flash.h
+ $PROJ_DIR$\..\lib\inc\hw_gpio.h
+ $PROJ_DIR$\..\lib\inc\hw_hibernate.h
+ $PROJ_DIR$\..\lib\inc\hw_i2c.h
+ $PROJ_DIR$\..\lib\inc\hw_ints.h
+ $PROJ_DIR$\..\lib\inc\hw_memmap.h
+ $PROJ_DIR$\..\lib\inc\hw_nvic.h
+ $PROJ_DIR$\..\lib\inc\hw_pwm.h
+ $PROJ_DIR$\..\lib\inc\hw_qei.h
+ $PROJ_DIR$\..\lib\inc\hw_ssi.h
+ $PROJ_DIR$\..\lib\inc\hw_sysctl.h
+ $PROJ_DIR$\..\lib\inc\hw_sysexc.h
+ $PROJ_DIR$\..\lib\inc\hw_timer.h
+ $PROJ_DIR$\..\lib\inc\hw_types.h
+ $PROJ_DIR$\..\lib\inc\hw_uart.h
+ $PROJ_DIR$\..\lib\inc\hw_udma.h
+ $PROJ_DIR$\..\lib\inc\hw_usb.h
+ $PROJ_DIR$\..\lib\inc\hw_watchdog.h
+ $PROJ_DIR$\..\lib\usblib\config\usb_bulk_structs.c
+ $PROJ_DIR$\..\lib\usblib\config\usb_bulk_structs.h
+ $PROJ_DIR$\..\lib\usblib\device\usbdaudio.c
+ $PROJ_DIR$\..\lib\usblib\device\usbdaudio.h
+ $PROJ_DIR$\..\lib\usblib\device\usbdbulk.c
+ $PROJ_DIR$\..\lib\usblib\device\usbdbulk.h
+ $PROJ_DIR$\..\lib\usblib\device\usbdcdc.c
+ $PROJ_DIR$\..\lib\usblib\device\usbdcdc.h
+ $PROJ_DIR$\..\lib\usblib\device\usbdcdesc.c
+
+ [ROOT_NODE]
+
+
+ ILINK
+ 327 125
+
+
+
$PROJ_DIR$\..\lib\driverlib\adc.c
ICCARM
- 383
+ 214
BICOMP
- 275
+ 368
ICCARM
- 252 251 417 416 418 419 420 421 422 53 61 62 70 67 3 8 22
+ 345 344 277 276 278 279 280 281 282 403 411 412 420 417 3 8 22
BICOMP
- 252 251 417 416 418 419 420 421 422 53 61 62 70 67 3 8 22
+ 345 344 277 276 278 279 280 281 282 403 411 412 420 417 3 8 22
@@ -469,430 +478,7 @@
ICCARM
- 253
-
-
- BICOMP
- 276
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 54 61 63 62 67 70 1 8 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 54 61 63 62 67 70 1 8 22
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\comp.c
-
-
- ICCARM
- 254
-
-
- BICOMP
- 352
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 55 61 62 70 5 8 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 55 61 62 70 5 8 22
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\cpulib.c
-
-
- ICCARM
- 366
-
-
- BICOMP
- 367
-
-
-
-
- ICCARM
- 251 417 416 418 419 420 421 422 7
-
-
- BICOMP
- 251 417 416 418 419 420 421 422 7
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\eeprom.c
-
-
- ICCARM
- 256
-
-
- BICOMP
- 354
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 56 57 61 67 70 8 12 22 37 10
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 56 57 61 67 70 8 12 22 37 10
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\flashlib.c
-
-
- ICCARM
- 370
-
-
- BICOMP
- 371
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 57 61 67 70 8 12 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 57 61 67 70 8 12 22
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\fpu.c
-
-
- ICCARM
- 174
-
-
- BICOMP
- 356
-
-
-
-
- ICCARM
- 251 417 416 418 419 420 421 422 63 70 14
-
-
- BICOMP
- 251 417 416 418 419 420 421 422 63 70 14
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\gpio.c
-
-
- ICCARM
- 258
-
-
- BICOMP
- 357
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 58 61 62 67 70 8 16 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 58 61 62 67 70 8 16 22
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\hibernate.c
-
-
- ICCARM
- 259
-
-
- BICOMP
- 358
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 209 210 59 61 67 70 8 18 22 37
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 209 210 59 61 67 70 8 18 22 37
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\i2c.c
-
-
- ICCARM
- 260
-
-
- BICOMP
- 304
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 60 61 62 67 70 8 20 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 60 61 62 67 70 8 20 22
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\interrupt.c
-
-
- ICCARM
- 261
-
-
- BICOMP
- 305
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 63 70 7 8 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 63 70 7 8 22
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\mpu.c
-
-
- ICCARM
- 262
-
-
- BICOMP
- 306
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 63 70 8 22 24
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 63 70 8 22 24
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\pwm.c
-
-
- ICCARM
- 263
-
-
- BICOMP
- 307
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 64 67 70 8 22 26
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 64 67 70 8 22 26
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\qei.c
-
-
- ICCARM
- 264
-
-
- BICOMP
- 308
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 65 70 67 8 22 28
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 65 70 67 8 22 28
-
-
-
-
- [ROOT_NODE]
-
-
- ILINK
- 234 173
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\ssi.c
-
-
- ICCARM
- 265
-
-
- BICOMP
- 313
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 66 67 70 8 22 33
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 66 67 70 8 22 33
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\sw_crc.c
-
-
- ICCARM
- 266
-
-
- BICOMP
- 314
-
-
-
-
- ICCARM
- 251 417 416 418 419 420 421 422 35
-
-
- BICOMP
- 251 417 416 418 419 420 421 422 35
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\sysctl.c
-
-
- ICCARM
- 267
-
-
- BICOMP
- 315
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 63 67 70 57 7 8 22 37
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 63 67 70 57 7 8 22 37
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\sysexc.c
-
-
- ICCARM
- 268
-
-
- BICOMP
- 244
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 67 68 70 8 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 67 68 70 8 22
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\systick.c
-
-
- ICCARM
- 269
-
-
- BICOMP
- 245
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 63 70 8 22 40
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 63 70 8 22 40
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\timerlib.c
-
-
- ICCARM
- 368
+ 346
BICOMP
@@ -902,435 +488,44 @@
ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 69 70 8 22 42
+ 345 344 277 276 278 279 280 281 282 404 411 413 412 417 420 1 8 22
BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 69 70 8 22 42
+ 345 344 277 276 278 279 280 281 282 404 411 413 412 417 420 1 8 22
- $PROJ_DIR$\..\lib\driverlib\uartlib.c
+ $PROJ_DIR$\..\lib\driverlib\comp.c
ICCARM
- 372
+ 347
BICOMP
- 373
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 67 70 71 8 22 44
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 67 70 71 8 22 44
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\udma.c
-
-
- ICCARM
- 272
-
-
- BICOMP
- 248
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 67 70 72 8 22 46
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 67 70 72 8 22 46
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\usbdrv.c
-
-
- ICCARM
- 320
-
-
- BICOMP
- 321
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 37 46 48
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 37 46 48
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\watchdog.c
-
-
- ICCARM
- 274
-
-
- BICOMP
- 250
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 70 74 8 22 50
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 70 74 8 22 50
-
-
-
-
- $PROJ_DIR$\..\lib\fatfs\mmc.c
-
-
- ICCARM
- 379
-
-
- BICOMP
- 378
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 16 33 37 153 156 162 148 158 133 169 140 166 145 143 147 160 168 155 51 164 171
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 16 33 37 153 156 162 148 158 133 169 140 166 145 143 147 160 168 155 51 164 171
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\config\usb_bulk_structs.c
-
-
- ICCARM
- 333
-
-
- BICOMP
- 334
-
-
-
-
- ICCARM
- 251 417 416 418 419 420 421 422 252 70 48 127 118 90 91 80 76
-
-
- BICOMP
- 251 417 416 418 419 420 421 422 252 70 48 127 118 90 91 80 76
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdaudio.c
-
-
- ICCARM
- 335
-
-
- BICOMP
- 186
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 48 127 128 119 90 91 78
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 48 127 128 119 90 91 78
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdbulk.c
-
-
- ICCARM
- 309
-
-
- BICOMP
- 187
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 48 127 128 90 91 80 85
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 48 127 128 90 91 80 85
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdcdc.c
-
-
- ICCARM
- 336
-
-
- BICOMP
- 188
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 48 127 121 128 90 91 85 82
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 48 127 121 128 90 91 85 82
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdcdesc.c
-
-
- ICCARM
- 180
-
-
- BICOMP
- 189
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 8 48 127 128 90 91
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 8 48 127 128 90 91
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdcomp.c
-
-
- ICCARM
- 178
-
-
- BICOMP
- 190
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 8 37 29 30 48 127 128 118 121 90 91 82 85
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 8 37 29 30 48 127 128 118 121 90 91 82 85
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdconfig.c
-
-
- ICCARM
- 138
-
-
- BICOMP
- 191
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 8 48 127 128 90 91
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 8 48 127 128 90 91
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbddfu-rt.c
-
-
- ICCARM
- 177
-
-
- BICOMP
- 192
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 63 8 48 37 40 22 29 30 127 128 123 118 90 91 88
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 63 8 48 37 40 22 29 30 127 128 123 118 90 91 88
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdenum.c
-
-
- ICCARM
- 176
-
-
- BICOMP
- 193
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 70 67 8 22 29 30 37 48 31 127 128 90 91
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 70 67 8 22 29 30 37 48 31 127 128 90 91
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdhandler.c
-
-
- ICCARM
- 179
-
-
- BICOMP
- 194
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 29 30 48 127 128 90 91
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 29 30 48 127 128 90 91
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdhid.c
-
-
- ICCARM
- 182
-
-
- BICOMP
- 195
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 8 48 29 30 127 128 125 90 91 94
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 8 48 29 30 127 128 125 90 91 94
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdhidkeyb.c
-
-
- ICCARM
183
-
- BICOMP
- 196
-
ICCARM
- 252 251 417 416 418 419 420 421 422 70 8 48 127 128 90 91 125 94 96
+ 345 344 277 276 278 279 280 281 282 405 411 412 420 5 8 22
BICOMP
- 252 251 417 416 418 419 420 421 422 70 8 48 127 128 90 91 125 94 96
+ 345 344 277 276 278 279 280 281 282 405 411 412 420 5 8 22
- $PROJ_DIR$\..\lib\usblib\device\usbdhidmouse.c
+ $PROJ_DIR$\..\lib\driverlib\cpulib.c
ICCARM
- 184
-
-
- BICOMP
197
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 8 48 127 128 90 91 125 94 98
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 8 48 127 128 90 91 125 94 98
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\device\usbdmsc.c
-
-
- ICCARM
- 185
-
BICOMP
198
@@ -1339,11 +534,623 @@
ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 37 48 127 128 130 90 91 100
+ 344 277 276 278 279 280 281 282 7
BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 8 29 30 37 48 127 128 130 90 91 100
+ 344 277 276 278 279 280 281 282 7
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\eeprom.c
+
+
+ ICCARM
+ 349
+
+
+ BICOMP
+ 185
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 406 407 411 417 420 8 12 22 387 10
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 406 407 411 417 420 8 12 22 387 10
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\flashlib.c
+
+
+ ICCARM
+ 201
+
+
+ BICOMP
+ 202
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 407 411 417 420 8 12 22
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\fpu.c
+
+
+ ICCARM
+ 126
+
+
+ BICOMP
+ 187
+
+
+
+
+ ICCARM
+ 344 277 276 278 279 280 281 282 413 420 14
+
+
+ BICOMP
+ 344 277 276 278 279 280 281 282 413 420 14
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\gpio.c
+
+
+ ICCARM
+ 351
+
+
+ BICOMP
+ 188
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 408 411 412 417 420 8 16 22
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 408 411 412 417 420 8 16 22
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\hibernate.c
+
+
+ ICCARM
+ 352
+
+
+ BICOMP
+ 189
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 302 303 409 411 417 420 8 18 22 387
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 302 303 409 411 417 420 8 18 22 387
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\i2c.c
+
+
+ ICCARM
+ 353
+
+
+ BICOMP
+ 46
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 410 411 412 417 420 8 20 22
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 410 411 412 417 420 8 20 22
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\interrupt.c
+
+
+ ICCARM
+ 354
+
+
+ BICOMP
+ 48
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 413 420 7 8 22
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 413 420 7 8 22
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\mpu.c
+
+
+ ICCARM
+ 355
+
+
+ BICOMP
+ 49
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 413 420 8 22 24
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 413 420 8 22 24
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\pwm.c
+
+
+ ICCARM
+ 356
+
+
+ BICOMP
+ 50
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 414 417 420 8 22 26
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 414 417 420 8 22 26
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\qei.c
+
+
+ ICCARM
+ 357
+
+
+ BICOMP
+ 51
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 415 420 417 8 22 28
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 415 420 417 8 22 28
+
+
+
+
+ $PROJ_DIR$\flashstore.c
+
+
+ ICCARM
+ 269
+
+
+ BICOMP
+ 333
+
+
+
+
+ $PROJ_DIR$\qs-logger.c
+
+
+ ICCARM
+ 236
+
+
+ BICOMP
+ 336
+
+
+
+
+ $PROJ_DIR$\..\drivers\slidemenuwidget.c
+
+
+ ICCARM
+ 237
+
+
+ BICOMP
+ 271
+
+
+
+
+ $PROJ_DIR$\startup_ewarm.c
+
+
+ ICCARM
+ 289
+
+
+ BICOMP
+ 270
+
+
+
+
+ $PROJ_DIR$\stripchartmanager.c
+
+
+ ICCARM
+ 286
+
+
+ BICOMP
+ 328
+
+
+
+
+ $PROJ_DIR$\..\drivers\stripchartwidget.c
+
+
+ ICCARM
+ 292
+
+
+ BICOMP
+ 234
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\utils\uartstdio.c
+
+
+ ICCARM
+ 291
+
+
+ BICOMP
+ 272
+
+
+
+
+ $PROJ_DIR$\usb_serial_structs.c
+
+
+ ICCARM
+ 288
+
+
+ BICOMP
+ 274
+
+
+
+
+ $PROJ_DIR$\usbserial.c
+
+
+ ICCARM
+ 293
+
+
+ BICOMP
+ 273
+
+
+
+
+ $PROJ_DIR$\usbstick.c
+
+
+ ICCARM
+ 329
+
+
+ BICOMP
+ 275
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\utils\ustdlib.c
+
+
+ ICCARM
+ 330
+
+
+ BICOMP
+ 326
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\third_party\fatfs\port\fat_usbmsc.c
+
+
+ ICCARM
+ 268
+
+
+ BICOMP
+ 230
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\usblib.c
+
+
+ ICCARM
+ 181
+
+
+ BICOMP
+ 182
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 387 396 54
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 387 396 54
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdcomp.c
+
+
+ ICCARM
+ 130
+
+
+ BICOMP
+ 142
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 8 387 29 380 398 101 102 92 95 64 65 432 59
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 8 387 29 380 398 101 102 92 95 64 65 432 59
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdconfig.c
+
+
+ ICCARM
+ 115
+
+
+ BICOMP
+ 143
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 8 398 101 102 64 65
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 8 398 101 102 64 65
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbddfu-rt.c
+
+
+ ICCARM
+ 129
+
+
+ BICOMP
+ 144
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 413 8 398 387 390 22 29 380 101 102 97 92 64 65 62
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 413 8 398 387 390 22 29 380 101 102 97 92 64 65 62
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdenum.c
+
+
+ ICCARM
+ 128
+
+
+ BICOMP
+ 145
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 8 22 29 380 387 398 381 101 102 64 65
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 8 22 29 380 387 398 381 101 102 64 65
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdhandler.c
+
+
+ ICCARM
+ 131
+
+
+ BICOMP
+ 146
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 29 380 398 101 102 64 65
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 29 380 398 101 102 64 65
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdhid.c
+
+
+ ICCARM
+ 134
+
+
+ BICOMP
+ 147
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 8 398 29 380 101 102 99 64 65 68
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 8 398 29 380 101 102 99 64 65 68
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdhidkeyb.c
+
+
+ ICCARM
+ 135
+
+
+ BICOMP
+ 148
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 420 8 398 101 102 64 65 99 68 70
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 420 8 398 101 102 64 65 99 68 70
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdhidmouse.c
+
+
+ ICCARM
+ 136
+
+
+ BICOMP
+ 149
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 420 8 398 101 102 64 65 99 68 72
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 420 8 398 101 102 64 65 99 68 72
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdmsc.c
+
+
+ ICCARM
+ 137
+
+
+ BICOMP
+ 150
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 387 398 101 102 104 64 65 74
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 387 398 101 102 104 64 65 74
@@ -1352,21 +1159,21 @@
ICCARM
- 199
+ 151
BICOMP
- 325
+ 243
ICCARM
- 252 251 417 416 418 419 420 421 422 70 48 127 128 119 113 115 102
+ 345 344 277 276 278 279 280 281 282 420 398 101 102 93 87 89 76
BICOMP
- 252 251 417 416 418 419 420 421 422 70 48 127 128 119 113 115 102
+ 345 344 277 276 278 279 280 281 282 420 398 101 102 93 87 89 76
@@ -1375,21 +1182,21 @@
ICCARM
- 200
+ 152
BICOMP
- 326
+ 244
ICCARM
- 252 251 417 416 418 419 420 421 422 70 48 127 128 125 113 115 104
+ 345 344 277 276 278 279 280 281 282 420 398 101 102 99 87 89 78
BICOMP
- 252 251 417 416 418 419 420 421 422 70 48 127 128 125 113 115 104
+ 345 344 277 276 278 279 280 281 282 420 398 101 102 99 87 89 78
@@ -1398,21 +1205,21 @@
ICCARM
- 202
+ 295
BICOMP
- 327
+ 245
ICCARM
- 252 251 417 416 418 419 420 421 422 70 127 113 125 104 106
+ 345 344 277 276 278 279 280 281 282 420 101 87 99 78 80
BICOMP
- 252 251 417 416 418 419 420 421 422 70 127 113 125 104 106
+ 345 344 277 276 278 279 280 281 282 420 101 87 99 78 80
@@ -1421,453 +1228,7 @@
ICCARM
- 201
-
-
- BICOMP
- 328
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 127 113 125 104 108
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 127 113 125 104 108
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\host\usbhhub.c
-
-
- ICCARM
- 203
-
-
- BICOMP
- 329
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 61 67 48 22 30 31 127 113 115 110
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 61 67 48 22 30 31 127 113 115 110
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\host\usbhmsc.c
-
-
- ICCARM
- 323
-
-
- BICOMP
- 330
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 48 127 128 130 113 115 112 117
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 48 127 128 130 113 115 112 117
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\host\usbhostenum.c
-
-
- ICCARM
- 322
-
-
- BICOMP
- 331
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 67 70 29 30 8 22 37 48 31 127 128 113 115 110
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 67 70 29 30 8 22 37 48 31 127 128 113 115 110
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\host\usbhscsi.c
-
-
- ICCARM
- 324
-
-
- BICOMP
- 332
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 127 130 113 112 117
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 127 130 113 112 117
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\usbbuffer.c
-
-
- ICCARM
- 312
-
-
- BICOMP
- 343
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 8 127 128
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 8 127 128
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\usbdesc.c
-
-
- ICCARM
- 337
-
-
- BICOMP
- 344
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 127
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 127
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\usbdma.c
-
-
- ICCARM
- 338
-
-
- BICOMP
- 345
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 62 70 61 67 72 8 22 31 48 29 30 46 127 128
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 62 70 61 67 72 8 22 31 48 29 30 46 127 128
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\usbkeyboardmap.c
-
-
- ICCARM
- 339
-
-
- BICOMP
- 346
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 127 125
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 127 125
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\usbmode.c
-
-
- ICCARM
- 340
-
-
- BICOMP
- 347
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 29 30 37 48 31 127 128 90 91 113 115
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 29 30 37 48 31 127 128 90 91 113 115
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\usbringbuf.c
-
-
- ICCARM
- 341
-
-
- BICOMP
- 348
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 8 22 127
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 8 22 127
-
-
-
-
- $PROJ_DIR$\..\lib\usblib\usbtick.c
-
-
- ICCARM
- 342
-
-
- BICOMP
- 349
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 70 8 127 128
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 70 8 127 128
-
-
-
-
- $PROJ_DIR$\..\hooks.c
-
-
- ICCARM
- 211
-
-
- BICOMP
- 212
-
-
-
-
- ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 62 70 44 37 16
-
-
- BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 62 70 44 37 16
-
-
-
-
- $PROJ_DIR$\..\main.c
-
-
- ICCARM
- 208
-
-
- BICOMP
- 392
-
-
-
-
- ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 61 62 63 67 70 37 16 44
-
-
- BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 61 62 63 67 70 37 16 44
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\vectors.c
-
-
- ICCARM
- 384
-
-
- BICOMP
- 394
-
-
-
-
- ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
- BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\cstart.s
-
-
- AARM
- 380
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\cpu.c
-
-
- ICCARM
- 255
-
-
- BICOMP
- 353
-
-
-
-
- ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
- BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\flash.c
-
-
- ICCARM
- 257
-
-
- BICOMP
- 355
-
-
-
-
- ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 62 70 12
-
-
- BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 62 70 12
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
-
-
- ICCARM
- 376
-
-
- BICOMP
- 375
-
-
-
-
- ICCARM
- 155 156 51 374
-
-
- BICOMP
- 155 156 51 374
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\nvm.c
-
-
- ICCARM
- 365
-
-
- BICOMP
- 228
-
-
-
-
- ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
- BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\timer.c
-
-
- ICCARM
- 270
+ 294
BICOMP
@@ -1877,20 +1238,20 @@
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 420 101 87 99 78 82
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 420 101 87 99 78 82
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\uart.c
+ $PROJ_DIR$\..\lib\usblib\host\usbhhub.c
ICCARM
- 271
+ 296
BICOMP
@@ -1900,20 +1261,43 @@
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 62 70 37 44
+ 345 344 277 276 278 279 280 281 282 420 411 417 398 22 380 381 101 87 89 84
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 252 251 417 416 418 419 420 421 422 62 70 37 44
+ 345 344 277 276 278 279 280 281 282 420 411 417 398 22 380 381 101 87 89 84
- $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\usb.c
+ $PROJ_DIR$\..\lib\usblib\host\usbhmsc.c
ICCARM
- 273
+ 241
+
+
+ BICOMP
+ 248
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 420 398 101 102 104 87 89 86 91
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 420 398 101 102 104 87 89 86 91
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\host\usbhostenum.c
+
+
+ ICCARM
+ 240
BICOMP
@@ -1923,158 +1307,227 @@
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 411 412 417 420 29 380 8 22 387 398 381 101 102 87 89 84
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 411 412 417 420 29 380 8 22 387 398 381 101 102 87 89 84
- $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
+ $PROJ_DIR$\..\lib\usblib\host\usbhscsi.c
ICCARM
- 427
+ 242
BICOMP
- 239
+ 250
ICCARM
- 155 156 51 153 377 417 416 418 419 420 421 422
+ 345 344 277 276 278 279 280 281 282 420 101 104 87 86 91
BICOMP
- 155 156 51 153 377 417 416 418 419 420 421 422
+ 345 344 277 276 278 279 280 281 282 420 101 104 87 86 91
- $PROJ_DIR$\..\..\..\..\Source\assert.c
+ $PROJ_DIR$\..\lib\usblib\usbbuffer.c
ICCARM
- 213
+ 55
BICOMP
- 219
+ 261
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 420 8 101 102
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 420 8 101 102
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+ $PROJ_DIR$\..\lib\usblib\usbdesc.c
ICCARM
- 214
+ 255
BICOMP
- 220
+ 175
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 420 101
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 420 101
- $PROJ_DIR$\..\..\..\..\Source\boot.c
+ $PROJ_DIR$\..\lib\usblib\usbdma.c
ICCARM
- 205
+ 256
BICOMP
- 395
+ 176
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 412 420 411 417 422 8 22 381 398 29 380 396 101 102
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 412 420 411 417 422 8 22 381 398 29 380 396 101 102
- $PROJ_DIR$\..\..\..\..\Source\com.c
+ $PROJ_DIR$\..\lib\usblib\usbkeyboardmap.c
ICCARM
- 215
+ 257
BICOMP
- 221
+ 177
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 150
+ 345 344 277 276 278 279 280 281 282 420 101 99
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 150
+ 345 344 277 276 278 279 280 281 282 420 101 99
- $PROJ_DIR$\..\..\..\..\Source\cop.c
+ $PROJ_DIR$\..\lib\usblib\usbmode.c
ICCARM
- 216
+ 258
BICOMP
- 222
+ 178
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 29 380 387 398 381 101 102 64 65 87 89
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 29 380 387 398 381 101 102 64 65 87 89
- $PROJ_DIR$\..\..\..\..\Source\file.c
+ $PROJ_DIR$\..\lib\usblib\usbringbuf.c
ICCARM
- 217
+ 259
+
+
+ BICOMP
+ 179
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 420 8 22 101
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 420 8 22 101
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\usbtick.c
+
+
+ ICCARM
+ 260
+
+
+ BICOMP
+ 180
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 420 8 101 102
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 420 8 101 102
+
+
+
+
+ $PROJ_DIR$\..\hooks.c
+
+
+ ICCARM
+ 304
+
+
+ BICOMP
+ 305
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 412 420 394 387 16
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 412 420 394 387 16
+
+
+
+
+ $PROJ_DIR$\..\main.c
+
+
+ ICCARM
+ 301
BICOMP
@@ -2084,11 +1537,365 @@
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 226 417 416 418 419 420 421 422 210 225 227 229 359 360 361 362 363 364
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 411 412 413 417 420 387 16 394
BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171 226 417 416 418 419 420 421 422 210 225 227 229 359 360 361 362 363 364
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 411 412 413 417 420 387 16 394
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\vectors.c
+
+
+ ICCARM
+ 215
+
+
+ BICOMP
+ 225
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\IAR\cstart.s
+
+
+ AARM
+ 211
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\cpu.c
+
+
+ ICCARM
+ 348
+
+
+ BICOMP
+ 184
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\flash.c
+
+
+ ICCARM
+ 350
+
+
+ BICOMP
+ 186
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 412 420 12
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 412 420 12
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\nvm.c
+
+
+ ICCARM
+ 196
+
+
+ BICOMP
+ 321
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\timer.c
+
+
+ ICCARM
+ 363
+
+
+ BICOMP
+ 339
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\uart.c
+
+
+ ICCARM
+ 364
+
+
+ BICOMP
+ 340
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 412 420 387 394
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 345 344 277 276 278 279 280 281 282 412 420 387 394
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c
+
+
+ ICCARM
+ 207
+
+
+ BICOMP
+ 206
+
+
+
+
+ ICCARM
+ 159 160 401 205
+
+
+ BICOMP
+ 159 160 401 205
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_TM4C\usb.c
+
+
+ ICCARM
+ 366
+
+
+ BICOMP
+ 342
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c
+
+
+ ICCARM
+ 287
+
+
+ BICOMP
+ 332
+
+
+
+
+ ICCARM
+ 159 160 401 157 208 277 276 278 279 280 281 282
+
+
+ BICOMP
+ 159 160 401 157 208 277 276 278 279 280 281 282
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+
+
+ ICCARM
+ 306
+
+
+ BICOMP
+ 312
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+
+
+ ICCARM
+ 307
+
+
+ BICOMP
+ 313
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\boot.c
+
+
+ ICCARM
+ 298
+
+
+ BICOMP
+ 226
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\com.c
+
+
+ ICCARM
+ 308
+
+
+ BICOMP
+ 314
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 153
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 153
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\cop.c
+
+
+ ICCARM
+ 309
+
+
+ BICOMP
+ 315
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\file.c
+
+
+ ICCARM
+ 310
+
+
+ BICOMP
+ 316
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 319 277 276 278 279 280 281 282 303 318 320 322 190 191 192 193 194 195
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112 319 277 276 278 279 280 281 282 303 318 320 322 190 191 192 193 194 195
@@ -2097,7 +1904,150 @@
ICCARM
- 218
+ 311
+
+
+ BICOMP
+ 317
+
+
+
+
+ ICCARM
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+ BICOMP
+ 166 122 162 107 173 114 170 119 117 121 164 172 159 160 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\timer.c
+
+
+ ICCARM
+ 363
+
+
+ BICOMP
+ 339
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 419 420 8 22 212
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 419 420 8 22 212
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\uart.c
+
+
+ ICCARM
+ 364
+
+
+ BICOMP
+ 340
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 417 420 421 8 22 217
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 417 420 421 8 22 217
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\cpu.c
+
+
+ ICCARM
+ 348
+
+
+ BICOMP
+ 184
+
+
+
+
+ ICCARM
+ 344 277 276 278 279 280 281 282 285
+
+
+ BICOMP
+ 344 277 276 278 279 280 281 282 285
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\flash.c
+
+
+ ICCARM
+ 350
+
+
+ BICOMP
+ 186
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 407 411 417 420 8 284 22
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 407 411 417 420 8 284 22
+
+
+
+
+ $PROJ_DIR$\..\boot.c
+
+
+ ICCARM
+ 298
+
+
+ BICOMP
+ 226
+
+
+
+
+ ICCARM
+ 263 107 232 265 267 371 345 344 277 276 278 279 280 281 282 411 412 413 417 420 387 16 217 14 22 390
+
+
+
+
+ $PROJ_DIR$\..\cstart.s
+
+
+ AARM
+ 211
+
+
+
+
+ $PROJ_DIR$\..\irq.c
+
+
+ ICCARM
+ 299
BICOMP
@@ -2107,477 +2057,7 @@
ICCARM
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
- BICOMP
- 162 148 158 133 169 140 166 145 143 147 160 168 155 156 51 164 171
-
-
-
-
- $PROJ_DIR$\..\bin\openblt_dk_tm4c123g.out
-
-
- ILINK
- 173
-
-
- OBJCOPY
- 232
-
-
-
-
- ILINK
- 386 383 213 214 205 253 215 254 216 255 366 380 256 427 217 257 370 174 258 259 211 260 261 208 379 262 365 263 264 265 266 267 268 269 270 368 271 372 272 376 273 333 312 335 309 336 180 178 138 177 176 337 179 182 183 184 338 185 320 199 200 202 201 203 323 322 324 339 340 341 342 384 274 218 172 175 181 204
-
-
-
-
- $PROJ_DIR$\..\time.c
-
-
- ICCARM
- 230
-
-
- BICOMP
- 391
-
-
-
-
- ICCARM
- 403 133 401 405 407 278 252 251 417 416 418 419 420 421 422 61 62 63 67 70 37 16 387 14 22 40
-
-
-
-
- $PROJ_DIR$\..\vectors.c
-
-
- ICCARM
- 384
-
-
- BICOMP
- 394
-
-
-
-
- ICCARM
- 403 133 401 405 407 278 252 251 417 416 418 419 420 421 422 61 62 63 67 70 37 16 387 14 22 40
-
-
-
-
- $PROJ_DIR$\acquire.c
-
-
- ICCARM
- 301
-
-
- BICOMP
- 238
-
-
-
-
- $PROJ_DIR$\..\drivers\buttons.c
-
-
- ICCARM
- 299
-
-
- BICOMP
- 396
-
-
-
-
- $PROJ_DIR$\..\drivers\cfal96x64x16.c
-
-
- ICCARM
- 302
-
-
- BICOMP
- 397
-
-
-
-
- $PROJ_DIR$\clocksetwidget.c
-
-
- ICCARM
- 300
-
-
- BICOMP
- 398
-
-
-
-
- $PROJ_DIR$\images.c
-
-
- ICCARM
- 298
-
-
- BICOMP
- 241
-
-
-
-
- $PROJ_DIR$\..\..\..\..\third_party\fatfs\src\ff.c
-
-
- ICCARM
- 427
-
-
- BICOMP
- 239
-
-
-
-
- $PROJ_DIR$\menus.c
-
-
- ICCARM
- 317
-
-
- BICOMP
- 242
-
-
-
-
- $PROJ_DIR$\flashstore.c
-
-
- ICCARM
- 409
-
-
- BICOMP
- 240
-
-
-
-
- $PROJ_DIR$\qs-logger.c
-
-
- ICCARM
- 318
-
-
- BICOMP
- 243
-
-
-
-
- $PROJ_DIR$\..\drivers\slidemenuwidget.c
-
-
- ICCARM
- 319
-
-
- BICOMP
- 411
-
-
-
-
- $PROJ_DIR$\startup_ewarm.c
-
-
- ICCARM
- 429
-
-
- BICOMP
- 410
-
-
-
-
- $PROJ_DIR$\stripchartmanager.c
-
-
- ICCARM
- 426
-
-
- BICOMP
- 235
-
-
-
-
- $PROJ_DIR$\..\drivers\stripchartwidget.c
-
-
- ICCARM
- 432
-
-
- BICOMP
- 316
-
-
-
-
- $PROJ_DIR$\..\..\..\..\utils\uartstdio.c
-
-
- ICCARM
- 431
-
-
- BICOMP
- 412
-
-
-
-
- $PROJ_DIR$\usb_serial_structs.c
-
-
- ICCARM
- 428
-
-
- BICOMP
- 414
-
-
-
-
- $PROJ_DIR$\usbserial.c
-
-
- ICCARM
- 433
-
-
- BICOMP
- 413
-
-
-
-
- $PROJ_DIR$\usbstick.c
-
-
- ICCARM
- 236
-
-
- BICOMP
- 415
-
-
-
-
- $PROJ_DIR$\..\..\..\..\utils\ustdlib.c
-
-
- ICCARM
- 237
-
-
- BICOMP
- 233
-
-
-
-
- $PROJ_DIR$\..\..\..\..\third_party\fatfs\port\fat_usbmsc.c
-
-
- ICCARM
- 408
-
-
- BICOMP
- 399
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\usblib.c
-
-
- ICCARM
- 350
-
-
- BICOMP
- 351
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 37 46 311
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 37 46 311
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\timer.c
-
-
- ICCARM
- 270
-
-
- BICOMP
- 246
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 69 70 8 22 381
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 69 70 8 22 381
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\uart.c
-
-
- ICCARM
- 271
-
-
- BICOMP
- 247
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 67 70 71 8 22 387
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 67 70 71 8 22 387
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\cpu.c
-
-
- ICCARM
- 255
-
-
- BICOMP
- 353
-
-
-
-
- ICCARM
- 251 417 416 418 419 420 421 422 425
-
-
- BICOMP
- 251 417 416 418 419 420 421 422 425
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\flash.c
-
-
- ICCARM
- 257
-
-
- BICOMP
- 355
-
-
-
-
- ICCARM
- 252 251 417 416 418 419 420 421 422 57 61 67 70 8 424 22
-
-
- BICOMP
- 252 251 417 416 418 419 420 421 422 57 61 67 70 8 424 22
-
-
-
-
- $PROJ_DIR$\..\boot.c
-
-
- ICCARM
- 205
-
-
- BICOMP
- 395
-
-
-
-
- ICCARM
- 403 133 401 405 407 278 252 251 417 416 418 419 420 421 422 61 62 63 67 70 37 16 387 14 22 40
-
-
-
-
- $PROJ_DIR$\..\cstart.s
-
-
- AARM
- 380
-
-
-
-
- $PROJ_DIR$\..\irq.c
-
-
- ICCARM
- 206
-
-
- BICOMP
- 393
-
-
-
-
- ICCARM
- 403 133 401 405 407 278 252 251 417 416 418 419 420 421 422 61 62 63 67 70 37 16 387 14 22 40
+ 263 107 232 265 267 371 345 344 277 276 278 279 280 281 282 411 412 413 417 420 387 16 217 14 22 390
@@ -2586,17 +2066,17 @@
ICCARM
- 207
+ 300
BICOMP
- 390
+ 221
ICCARM
- 403 133 401 405 407 278 252 251 417 416 418 419 420 421 422 61 62 63 67 70 37 16 387 14 22 40
+ 263 107 232 265 267 371 345 344 277 276 278 279 280 281 282 411 412 413 417 420 387 16 217 14 22 390
@@ -2605,21 +2085,537 @@
ICCARM
- 273
+ 366
BICOMP
- 249
+ 342
ICCARM
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 37 46 423
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 387 396 283
BICOMP
- 252 251 417 416 418 419 420 421 422 61 62 70 67 73 8 22 37 46 423
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 387 396 283
+
+
+
+
+ $PROJ_DIR$\..\bin\openblt_dk_tm4c123g.out
+
+
+ ILINK
+ 125
+
+
+ OBJCOPY
+ 325
+
+
+
+
+ ILINK
+ 218 214 306 307 298 346 308 347 309 348 197 211 349 287 310 350 201 126 351 352 304 353 354 301 210 355 196 356 357 358 359 360 361 362 363 199 364 203 365 207 366 251 55 253 52 254 132 130 115 129 128 255 131 134 135 136 256 137 238 151 152 295 294 296 241 240 242 257 258 259 260 215 367 311 124 127 133 297
+
+
+
+
+ $PROJ_DIR$\..\time.c
+
+
+ ICCARM
+ 323
+
+
+ BICOMP
+ 222
+
+
+
+
+ ICCARM
+ 263 107 232 265 267 371 345 344 277 276 278 279 280 281 282 411 412 413 417 420 387 16 217 14 22 390
+
+
+
+
+ $PROJ_DIR$\..\vectors.c
+
+
+ ICCARM
+ 215
+
+
+ BICOMP
+ 225
+
+
+
+
+ ICCARM
+ 263 107 232 265 267 371 345 344 277 276 278 279 280 281 282 411 412 413 417 420 387 16 217 14 22 390
+
+
+
+
+ $PROJ_DIR$\acquire.c
+
+
+ ICCARM
+ 44
+
+
+ BICOMP
+ 331
+
+
+
+
+ $PROJ_DIR$\..\drivers\buttons.c
+
+
+ ICCARM
+ 42
+
+
+ BICOMP
+ 227
+
+
+
+
+ $PROJ_DIR$\..\drivers\cfal96x64x16.c
+
+
+ ICCARM
+ 45
+
+
+ BICOMP
+ 228
+
+
+
+
+ $PROJ_DIR$\clocksetwidget.c
+
+
+ ICCARM
+ 43
+
+
+ BICOMP
+ 229
+
+
+
+
+ $PROJ_DIR$\images.c
+
+
+ ICCARM
+ 41
+
+
+ BICOMP
+ 334
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\third_party\fatfs\src\ff.c
+
+
+ ICCARM
+ 287
+
+
+ BICOMP
+ 332
+
+
+
+
+ $PROJ_DIR$\menus.c
+
+
+ ICCARM
+ 235
+
+
+ BICOMP
+ 335
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\ssi.c
+
+
+ ICCARM
+ 358
+
+
+ BICOMP
+ 56
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 416 417 420 8 22 383
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 416 417 420 8 22 383
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\sw_crc.c
+
+
+ ICCARM
+ 359
+
+
+ BICOMP
+ 57
+
+
+
+
+ ICCARM
+ 344 277 276 278 279 280 281 282 385
+
+
+ BICOMP
+ 344 277 276 278 279 280 281 282 385
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\sysctl.c
+
+
+ ICCARM
+ 360
+
+
+ BICOMP
+ 233
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 413 417 420 407 7 8 22 387
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 413 417 420 407 7 8 22 387
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\sysexc.c
+
+
+ ICCARM
+ 361
+
+
+ BICOMP
+ 337
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 417 418 420 8 22
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 417 418 420 8 22
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\systick.c
+
+
+ ICCARM
+ 362
+
+
+ BICOMP
+ 338
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 413 420 8 22 390
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 413 420 8 22 390
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\timerlib.c
+
+
+ ICCARM
+ 199
+
+
+ BICOMP
+ 200
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 419 420 8 22 392
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 419 420 8 22 392
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\uartlib.c
+
+
+ ICCARM
+ 203
+
+
+ BICOMP
+ 204
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 417 420 421 8 22 394
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 417 420 421 8 22 394
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\udma.c
+
+
+ ICCARM
+ 365
+
+
+ BICOMP
+ 341
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 417 420 422 8 22 396
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 417 420 422 8 22 396
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\usbdrv.c
+
+
+ ICCARM
+ 238
+
+
+ BICOMP
+ 239
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 387 396 398
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 420 417 423 8 22 387 396 398
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\watchdog.c
+
+
+ ICCARM
+ 367
+
+
+ BICOMP
+ 343
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 411 412 420 424 8 22 400
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 411 412 420 424 8 22 400
+
+
+
+
+ $PROJ_DIR$\..\lib\fatfs\mmc.c
+
+
+ ICCARM
+ 210
+
+
+ BICOMP
+ 209
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 16 383 387 157 160 166 122 162 107 173 114 170 119 117 121 164 172 159 401 168 112
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 16 383 387 157 160 166 122 162 107 173 114 170 119 117 121 164 172 159 401 168 112
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\config\usb_bulk_structs.c
+
+
+ ICCARM
+ 251
+
+
+ BICOMP
+ 252
+
+
+
+
+ ICCARM
+ 344 277 276 278 279 280 281 282 345 420 398 101 92 64 65 430 426
+
+
+ BICOMP
+ 344 277 276 278 279 280 281 282 345 420 398 101 92 64 65 430 426
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdaudio.c
+
+
+ ICCARM
+ 253
+
+
+ BICOMP
+ 138
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 398 101 102 93 64 65 428
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 398 101 102 93 64 65 428
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdbulk.c
+
+
+ ICCARM
+ 52
+
+
+ BICOMP
+ 139
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 398 101 102 64 65 430 59
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 398 101 102 64 65 430 59
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdcdc.c
+
+
+ ICCARM
+ 254
+
+
+ BICOMP
+ 140
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 398 101 95 102 64 65 59 432
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 412 420 8 29 380 398 101 95 102 64 65 59 432
+
+
+
+
+ $PROJ_DIR$\..\lib\usblib\device\usbdcdesc.c
+
+
+ ICCARM
+ 132
+
+
+ BICOMP
+ 141
+
+
+
+
+ ICCARM
+ 345 344 277 276 278 279 280 281 282 420 8 398 101 102 64 65
+
+
+ BICOMP
+ 345 344 277 276 278 279 280 281 282 420 8 398 101 102 64 65
diff --git a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/bin/openblt_evbplus_dragon12p.abs b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/bin/openblt_evbplus_dragon12p.abs
index b9438605..d4d4e5c3 100644
Binary files a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/bin/openblt_evbplus_dragon12p.abs and b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/bin/openblt_evbplus_dragon12p.abs differ
diff --git a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/blt_conf.h b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/blt_conf.h
index a643f548..42292681 100644
--- a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/blt_conf.h
+++ b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/blt_conf.h
@@ -191,5 +191,26 @@
#define BOOT_COP_HOOKS_ENABLE (0)
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+/* A security mechanism can be enabled in the bootloader's XCP module by setting configu-
+ * rable BOOT_XCP_SEED_KEY_ENABLE to 1. Before any memory erase or programming
+ * operations can be performed, access to this resource need to be unlocked.
+ * In the Microboot settings on tab "XCP Protection" you need to specify a DLL that
+ * implements the unlocking algorithm. The demo programs are configured for the (simple)
+ * algorithm in "FeaserKey.dll". The source code for this DLL is available so it can be
+ * customized to your needs.
+ * During the unlock sequence, Microboot requests a seed from the bootloader, which is in
+ * the format of a byte array. Using this seed the unlock algorithm in the DLL computes
+ * a key, which is also a byte array, and sends this back to the bootloader. The
+ * bootloader then verifies this key to determine if programming and erase operations are
+ * permitted.
+ * After enabling this feature the hook functions XcpGetSeedHook() and XcpVerifyKeyHook()
+ * are called by the bootloader to obtain the seed and to verify the key, respectively.
+ */
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+
+
#endif /* BLT_CONF_H */
/*********************************** end of blt_conf.h *********************************/
diff --git a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/hooks.c b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/hooks.c
index b26a14af..582addf6 100644
--- a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/hooks.c
+++ b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/hooks.c
@@ -213,5 +213,63 @@ void CopServiceHook(void)
#endif /* BOOT_COP_HOOKS_ENABLE > 0 */
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y H O O K F U N C T I O N S
+****************************************************************************************/
+
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+/************************************************************************************//**
+** \brief Provides a seed to the XCP master that will be used for the key
+** generation when the master attempts to unlock the specified resource.
+** Called by the GET_SEED command.
+** \param resource Resource that the seed if requested for (XCP_RES_XXX).
+** \param seed Pointer to byte buffer wher the seed will be stored.
+** \return Length of the seed in bytes.
+**
+****************************************************************************************/
+blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed)
+{
+ /* request seed for unlocking ProGraMming resource */
+ if ((resource & XCP_RES_PGM) != 0)
+ {
+ seed[0] = 0x55;
+ }
+
+ /* return seed length */
+ return 1;
+} /*** end of XcpGetSeedHook ***/
+
+
+/************************************************************************************//**
+** \brief Called by the UNLOCK command and checks if the key to unlock the
+** specified resource was correct. If so, then the resource protection
+** will be removed.
+** \param resource resource to unlock (XCP_RES_XXX).
+** \param key pointer to the byte buffer holding the key.
+** \param len length of the key in bytes.
+** \return 1 if the key was correct, 0 otherwise.
+**
+****************************************************************************************/
+blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len)
+{
+ /* suppress compiler warning for unused parameter */
+ len = len;
+
+ /* the example key algorithm in "FeaserKey.dll" works as follows:
+ * - PGM will be unlocked if key = seed - 1
+ */
+
+ /* check key for unlocking ProGraMming resource */
+ if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
+ {
+ /* correct key received for unlocking PGM resource */
+ return 1;
+ }
+
+ /* still here so key incorrect */
+ return 0;
+} /*** end of XcpVerifyKeyHook ***/
+#endif /* BOOT_XCP_SEED_KEY_ENABLE > 0 */
+
/*********************************** end of hooks.c ************************************/
diff --git a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/ide/hcs12_Data/Standard/TargetDataWindows.tdt b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/ide/hcs12_Data/Standard/TargetDataWindows.tdt
index d3b8a5e8..0d11712c 100644
Binary files a/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/ide/hcs12_Data/Standard/TargetDataWindows.tdt and b/Target/Demo/HCS12_Evbplus_Dragon12p_CodeWarrior/Boot/ide/hcs12_Data/Standard/TargetDataWindows.tdt differ
diff --git a/Target/Source/plausibility.h b/Target/Source/plausibility.h
index 223c7d2f..dc605ae0 100644
--- a/Target/Source/plausibility.h
+++ b/Target/Source/plausibility.h
@@ -478,5 +478,17 @@
#endif
+/****************************************************************************************
+* S E E D / K E Y S E C U R I T Y C O N F I G U R A T I O N
+****************************************************************************************/
+#ifndef BOOT_XCP_SEED_KEY_ENABLE
+#define BOOT_XCP_SEED_KEY_ENABLE (0)
+#endif
+
+#if (BOOT_XCP_SEED_KEY_ENABLE < 0) || (BOOT_XCP_SEED_KEY_ENABLE > 1)
+#error "BOOT_XCP_SEED_KEY_ENABLE must be 0 or 1"
+#endif
+
+
#endif /* PLAUSIBILITY_H */
/*********************************** end of plausibility.h *****************************/
diff --git a/Target/Source/xcp.c b/Target/Source/xcp.c
index b34e2c2b..a018da1f 100644
--- a/Target/Source/xcp.c
+++ b/Target/Source/xcp.c
@@ -194,6 +194,12 @@ extern blt_int8u XcpCalGetPageHook(blt_int8u segment);
extern blt_bool XcpConnectModeHook(blt_int8u mode);
#endif
+#if (XCP_SEED_KEY_PROTECTION_EN == 1)
+extern blt_int8u XcpGetSeedHook(blt_int8u resource, blt_int8u *seed);
+extern blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len);
+#endif
+
+
/****************************************************************************************
* External functions
@@ -442,20 +448,8 @@ static blt_int8u XcpComputeChecksum(blt_int32u address, blt_int32u length,
****************************************************************************************/
static blt_int8u XcpGetSeed(blt_int8u resource, blt_int8u *seed)
{
- /* request seed for unlocking ProGraMming resource */
- if ((resource & XCP_RES_PGM) != 0)
- {
- seed[0] = 0x55;
- }
-
- /* request seed for unlocking CALibration and PAGing resource */
- if ((resource & XCP_RES_CALPAG) != 0)
- {
- seed[0] = 0xaa;
- }
-
- /* return seed length */
- return 1;
+ /* pass request on to the application through a hook function */
+ return XcpGetSeedHook(resource, seed);
} /*** end of XcpGetSeed ***/
@@ -471,30 +465,8 @@ static blt_int8u XcpGetSeed(blt_int8u resource, blt_int8u *seed)
****************************************************************************************/
static blt_int8u XcpVerifyKey(blt_int8u resource, blt_int8u *key, blt_int8u len)
{
- /* suppress compiler warning for unused parameter */
- len = len;
-
- /* the example key algorithm in "FeaserKey.dll" works as follows:
- * - PGM will be unlocked if key = seed - 1
- * - CAL_PAG will be unlocked if key = seed + 1
- */
-
- /* check key for unlocking ProGraMming resource */
- if ((resource == XCP_RES_PGM) && (key[0] == (0x55-1)))
- {
- /* correct key received for unlocking PGM resource */
- return 1;
- }
-
- /* check key for unlocking CALibration and PAGing resource */
- if ((resource == XCP_RES_CALPAG) && (key[0] == (0xaa+1)))
- {
- /* correct key received for unlocking CAL_PAG resource */
- return 1;
- }
-
- /* still here so key incorrect */
- return 0;
+ /* pass request on to the application through a hook function */
+ return XcpVerifyKeyHook(resource, key, len);
} /*** end of XcpVerifyKey ***/
#endif /* XCP_SEED_KEY_PROTECTION_EN == 1 */
diff --git a/Target/Source/xcp.h b/Target/Source/xcp.h
index 43e96733..31949407 100644
--- a/Target/Source/xcp.h
+++ b/Target/Source/xcp.h
@@ -98,7 +98,11 @@
* obtain access to a resource. The protection algorithm is implemented in
* XcpGetSeed and XcpVerifyKey.
*/
+#if (BOOT_XCP_SEED_KEY_ENABLE > 0)
+#define XCP_SEED_KEY_PROTECTION_EN (1)
+#else
#define XCP_SEED_KEY_PROTECTION_EN (0)
+#endif
/****************************************************************************************