   1              		.cpu cortex-m0plus
   2              		.fpu softvfp
   3              		.eabi_attribute 20, 1
   4              		.eabi_attribute 21, 1
   5              		.eabi_attribute 23, 3
   6              		.eabi_attribute 24, 1
   7              		.eabi_attribute 25, 1
   8              		.eabi_attribute 26, 1
   9              		.eabi_attribute 30, 6
  10              		.eabi_attribute 34, 0
  11              		.eabi_attribute 18, 4
  12              		.code	16
  13              		.file	"MemoryManager.c"
  14              		.text
  15              	.Ltext0:
  16              		.cfi_sections	.debug_frame
  17              		.comm	MemoryManagerCtrl,8,4
  18              		.comm	DivingParameters,4,4
  19              		.comm	SerialParameters,16,8
  20              		.section	.text.MemoryManagerInit,"ax",%progbits
  21              		.align	2
  22              		.global	MemoryManagerInit
  23              		.code	16
  24              		.thumb_func
  26              	MemoryManagerInit:
  27              	.LFB33:
  28              		.file 1 "../Application/MemoryManager/MemoryManager.c"
   1:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
   2:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
   3:../Application/MemoryManager/MemoryManager.c **** /**
   4:../Application/MemoryManager/MemoryManager.c ****  * \file    MemoryManager.c
   5:../Application/MemoryManager/MemoryManager.c ****  * \author  Thibaut LALUQUE 3D-Ouest
   6:../Application/MemoryManager/MemoryManager.c ****  * \date    24/11/2014
   7:../Application/MemoryManager/MemoryManager.c ****  * \version 1.0
   8:../Application/MemoryManager/MemoryManager.c ****  * \brief 	Source file for Memory management.
   9:../Application/MemoryManager/MemoryManager.c ****  * \details All Right Reserved.
  10:../Application/MemoryManager/MemoryManager.c ****  */
  11:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  12:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  13:../Application/MemoryManager/MemoryManager.c **** 
  14:../Application/MemoryManager/MemoryManager.c **** 
  15:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  16:../Application/MemoryManager/MemoryManager.c **** /*## INCLUDES ################################################################################*/
  17:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  18:../Application/MemoryManager/MemoryManager.c **** #include "MemoryManager.h"
  19:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  20:../Application/MemoryManager/MemoryManager.c **** /*## END INCLUDES ############################################################################*/
  21:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  22:../Application/MemoryManager/MemoryManager.c **** 
  23:../Application/MemoryManager/MemoryManager.c **** 
  24:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  25:../Application/MemoryManager/MemoryManager.c **** /*## LOCAL DEFINES ###########################################################################*/
  26:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  27:../Application/MemoryManager/MemoryManager.c **** 
  28:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  29:../Application/MemoryManager/MemoryManager.c **** /*## END LOCAL DEFINES ######################################################################*/
  30:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  31:../Application/MemoryManager/MemoryManager.c **** 
  32:../Application/MemoryManager/MemoryManager.c **** 
  33:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  34:../Application/MemoryManager/MemoryManager.c **** /*## LOCAL FONCTIONS DECLARATION #############################################################*/
  35:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  36:../Application/MemoryManager/MemoryManager.c **** 
  37:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  38:../Application/MemoryManager/MemoryManager.c **** /*## END LOCAL FONCTIONS DECLARATION #########################################################*/
  39:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  40:../Application/MemoryManager/MemoryManager.c **** 
  41:../Application/MemoryManager/MemoryManager.c **** 
  42:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  43:../Application/MemoryManager/MemoryManager.c **** /*## LOCAL VARIABLES #########################################################################*/
  44:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  45:../Application/MemoryManager/MemoryManager.c **** 
  46:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  47:../Application/MemoryManager/MemoryManager.c **** /*## END LOCAL VARIABLES #####################################################################*/
  48:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  49:../Application/MemoryManager/MemoryManager.c **** 
  50:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  51:../Application/MemoryManager/MemoryManager.c **** /*## GLOBAL VARIABLES ########################################################################*/
  52:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  53:../Application/MemoryManager/MemoryManager.c **** tMemoryManagerCtrl 			MemoryManagerCtrl;
  54:../Application/MemoryManager/MemoryManager.c **** tMemoryManagerDiving		DivingParameters;
  55:../Application/MemoryManager/MemoryManager.c **** tMemoryManagerSerial		SerialParameters;
  56:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  57:../Application/MemoryManager/MemoryManager.c **** /*## END GLOBAL VARIABLES ####################################################################*/
  58:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  59:../Application/MemoryManager/MemoryManager.c **** 
  60:../Application/MemoryManager/MemoryManager.c **** 
  61:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  62:../Application/MemoryManager/MemoryManager.c **** /*## LOCAL FONCTIONS #########################################################################*/
  63:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  64:../Application/MemoryManager/MemoryManager.c **** 
  65:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  66:../Application/MemoryManager/MemoryManager.c **** /*## END LOCAL FONCTIONS #####################################################################*/
  67:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  68:../Application/MemoryManager/MemoryManager.c **** 
  69:../Application/MemoryManager/MemoryManager.c **** 
  70:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  71:../Application/MemoryManager/MemoryManager.c **** /*## EXTERNAL FONCTIONS ######################################################################*/
  72:../Application/MemoryManager/MemoryManager.c **** /*############################################################################################*/
  73:../Application/MemoryManager/MemoryManager.c **** void MemoryManagerInit (void) {
  29              		.loc 1 73 0
  30              		.cfi_startproc
  31 0000 90B5     		push	{r4, r7, lr}
  32              		.cfi_def_cfa_offset 12
  33              		.cfi_offset 4, -12
  34              		.cfi_offset 7, -8
  35              		.cfi_offset 14, -4
  36 0002 83B0     		sub	sp, sp, #12
  37              		.cfi_def_cfa_offset 24
  38 0004 00AF     		add	r7, sp, #0
  39              		.cfi_def_cfa_register 7
  74:../Application/MemoryManager/MemoryManager.c **** 
  75:../Application/MemoryManager/MemoryManager.c **** 	FM25V20Init();
  40              		.loc 1 75 0
  41 0006 FFF7FEFF 		bl	FM25V20Init
  76:../Application/MemoryManager/MemoryManager.c **** 	WatchdogKick();
  42              		.loc 1 76 0
  43 000a FFF7FEFF 		bl	WatchdogKick
  77:../Application/MemoryManager/MemoryManager.c **** 
  78:../Application/MemoryManager/MemoryManager.c **** 	MemoryManagerCtrl.isValid.all = 0;		//At start-up all is false
  44              		.loc 1 78 0
  45 000e 1F4B     		ldr	r3, .L7
  46 0010 0022     		mov	r2, #0
  47 0012 1A80     		strh	r2, [r3]
  79:../Application/MemoryManager/MemoryManager.c **** 
  80:../Application/MemoryManager/MemoryManager.c **** 	signed short result = MemoryManagerReadDiving(&DivingParameters);
  48              		.loc 1 80 0
  49 0014 BC1D     		add	r4, r7, #6
  50 0016 1E4B     		ldr	r3, .L7+4
  51 0018 181C     		mov	r0, r3
  52 001a FFF7FEFF 		bl	MemoryManagerReadDiving
  53 001e 031C     		mov	r3, r0
  54 0020 2380     		strh	r3, [r4]
  81:../Application/MemoryManager/MemoryManager.c **** 
  82:../Application/MemoryManager/MemoryManager.c **** 	if(result == 0) {
  55              		.loc 1 82 0
  56 0022 BB1D     		add	r3, r7, #6
  57 0024 0022     		mov	r2, #0
  58 0026 9B5E     		ldrsh	r3, [r3, r2]
  59 0028 002B     		cmp	r3, #0
  60 002a 04D1     		bne	.L2
  83:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCheckDiving(&DivingParameters);
  61              		.loc 1 83 0
  62 002c 184B     		ldr	r3, .L7+4
  63 002e 181C     		mov	r0, r3
  64 0030 FFF7FEFF 		bl	MemoryManagerCheckDiving
  65 0034 04E0     		b	.L3
  66              	.L2:
  84:../Application/MemoryManager/MemoryManager.c **** 	} else {
  85:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.diving = 0;
  67              		.loc 1 85 0
  68 0036 154B     		ldr	r3, .L7
  69 0038 1A78     		ldrb	r2, [r3]
  70 003a 0221     		mov	r1, #2
  71 003c 8A43     		bic	r2, r1
  72 003e 1A70     		strb	r2, [r3]
  73              	.L3:
  86:../Application/MemoryManager/MemoryManager.c **** 	}
  87:../Application/MemoryManager/MemoryManager.c **** 
  88:../Application/MemoryManager/MemoryManager.c **** 
  89:../Application/MemoryManager/MemoryManager.c **** 	result = MemoryManagerReadSerial(&SerialParameters);
  74              		.loc 1 89 0
  75 0040 BC1D     		add	r4, r7, #6
  76 0042 144B     		ldr	r3, .L7+8
  77 0044 181C     		mov	r0, r3
  78 0046 FFF7FEFF 		bl	MemoryManagerReadSerial
  79 004a 031C     		mov	r3, r0
  80 004c 2380     		strh	r3, [r4]
  90:../Application/MemoryManager/MemoryManager.c **** 
  91:../Application/MemoryManager/MemoryManager.c **** 	if(result == 0) {
  81              		.loc 1 91 0
  82 004e BB1D     		add	r3, r7, #6
  83 0050 0022     		mov	r2, #0
  84 0052 9B5E     		ldrsh	r3, [r3, r2]
  85 0054 002B     		cmp	r3, #0
  86 0056 04D1     		bne	.L4
  92:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCheckSerial(&SerialParameters);
  87              		.loc 1 92 0
  88 0058 0E4B     		ldr	r3, .L7+8
  89 005a 181C     		mov	r0, r3
  90 005c FFF7FEFF 		bl	MemoryManagerCheckSerial
  91 0060 04E0     		b	.L5
  92              	.L4:
  93:../Application/MemoryManager/MemoryManager.c **** 	} else {
  94:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.serial = 0;
  93              		.loc 1 94 0
  94 0062 0A4B     		ldr	r3, .L7
  95 0064 1A78     		ldrb	r2, [r3]
  96 0066 0121     		mov	r1, #1
  97 0068 8A43     		bic	r2, r1
  98 006a 1A70     		strb	r2, [r3]
  99              	.L5:
  95:../Application/MemoryManager/MemoryManager.c **** 	}
  96:../Application/MemoryManager/MemoryManager.c **** 
  97:../Application/MemoryManager/MemoryManager.c **** 	result =  MemoryManagerComputeNbrLog ();
 100              		.loc 1 97 0
 101 006c BC1D     		add	r4, r7, #6
 102 006e FFF7FEFF 		bl	MemoryManagerComputeNbrLog
 103 0072 031C     		mov	r3, r0
 104 0074 2380     		strh	r3, [r4]
  98:../Application/MemoryManager/MemoryManager.c **** 	if(result != 0) {
 105              		.loc 1 98 0
 106 0076 BB1D     		add	r3, r7, #6
 107 0078 0022     		mov	r2, #0
 108 007a 9B5E     		ldrsh	r3, [r3, r2]
 109 007c 002B     		cmp	r3, #0
 110 007e 02D0     		beq	.L1
  99:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.nbrLog = 0;
 111              		.loc 1 99 0
 112 0080 024B     		ldr	r3, .L7
 113 0082 0022     		mov	r2, #0
 114 0084 5A60     		str	r2, [r3, #4]
 115              	.L1:
 100:../Application/MemoryManager/MemoryManager.c **** 	}
 101:../Application/MemoryManager/MemoryManager.c **** }
 116              		.loc 1 101 0
 117 0086 BD46     		mov	sp, r7
 118 0088 03B0     		add	sp, sp, #12
 119              		@ sp needed
 120 008a 90BD     		pop	{r4, r7, pc}
 121              	.L8:
 122              		.align	2
 123              	.L7:
 124 008c 00000000 		.word	MemoryManagerCtrl
 125 0090 00000000 		.word	DivingParameters
 126 0094 00000000 		.word	SerialParameters
 127              		.cfi_endproc
 128              	.LFE33:
 130              		.section	.text.MemoryManagerReadDiving,"ax",%progbits
 131              		.align	2
 132              		.global	MemoryManagerReadDiving
 133              		.code	16
 134              		.thumb_func
 136              	MemoryManagerReadDiving:
 137              	.LFB34:
 102:../Application/MemoryManager/MemoryManager.c **** 
 103:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerReadDiving (tMemoryManagerDiving* divingParameters) {
 138              		.loc 1 103 0
 139              		.cfi_startproc
 140 0000 90B5     		push	{r4, r7, lr}
 141              		.cfi_def_cfa_offset 12
 142              		.cfi_offset 4, -12
 143              		.cfi_offset 7, -8
 144              		.cfi_offset 14, -4
 145 0002 85B0     		sub	sp, sp, #20
 146              		.cfi_def_cfa_offset 32
 147 0004 00AF     		add	r7, sp, #0
 148              		.cfi_def_cfa_register 7
 149 0006 7860     		str	r0, [r7, #4]
 104:../Application/MemoryManager/MemoryManager.c **** 	signed short result;
 105:../Application/MemoryManager/MemoryManager.c **** 
 106:../Application/MemoryManager/MemoryManager.c **** 	tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 150              		.loc 1 106 0
 151 0008 3C1C     		mov	r4, r7
 152 000a 0F34     		add	r4, r4, #15
 153 000c FFF7FEFF 		bl	FM25V20IsInLowPower
 154 0010 031C     		mov	r3, r0
 155 0012 2370     		strb	r3, [r4]
 107:../Application/MemoryManager/MemoryManager.c **** 
 108:../Application/MemoryManager/MemoryManager.c **** 	/*=== Wake up device if it's in lpm ===*/
 109:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 156              		.loc 1 109 0
 157 0014 3B1C     		mov	r3, r7
 158 0016 0F33     		add	r3, r3, #15
 159 0018 1B78     		ldrb	r3, [r3]
 160 001a 012B     		cmp	r3, #1
 161 001c 03D1     		bne	.L10
 110:../Application/MemoryManager/MemoryManager.c **** 		FM25V20WakeUp();
 162              		.loc 1 110 0
 163 001e FFF7FEFF 		bl	FM25V20WakeUp
 111:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 164              		.loc 1 111 0
 165 0022 FFF7FEFF 		bl	WatchdogKick
 166              	.L10:
 112:../Application/MemoryManager/MemoryManager.c **** 	}
 113:../Application/MemoryManager/MemoryManager.c **** 
 114:../Application/MemoryManager/MemoryManager.c **** 	result = FM25V20ReadData(MEMORYMANAGER_ADDR_DIVING_START, (unsigned char*)divingParameters, MEMORY
 167              		.loc 1 114 0
 168 0026 7B68     		ldr	r3, [r7, #4]
 169 0028 1F20     		mov	r0, #31
 170 002a 191C     		mov	r1, r3
 171 002c 0422     		mov	r2, #4
 172 002e FFF7FEFF 		bl	FM25V20ReadData
 173 0032 031C     		mov	r3, r0
 174 0034 1A1C     		mov	r2, r3
 175 0036 3B1C     		mov	r3, r7
 176 0038 0C33     		add	r3, r3, #12
 177 003a 1A80     		strh	r2, [r3]
 115:../Application/MemoryManager/MemoryManager.c **** 
 116:../Application/MemoryManager/MemoryManager.c **** 	/*=== restore low power mode ===*/
 117:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 178              		.loc 1 117 0
 179 003c 3B1C     		mov	r3, r7
 180 003e 0F33     		add	r3, r3, #15
 181 0040 1B78     		ldrb	r3, [r3]
 182 0042 012B     		cmp	r3, #1
 183 0044 01D1     		bne	.L11
 118:../Application/MemoryManager/MemoryManager.c **** 		FM25V20LPM();
 184              		.loc 1 118 0
 185 0046 FFF7FEFF 		bl	FM25V20LPM
 186              	.L11:
 119:../Application/MemoryManager/MemoryManager.c **** 	}
 120:../Application/MemoryManager/MemoryManager.c **** 
 121:../Application/MemoryManager/MemoryManager.c **** 	if(result == 0) {
 187              		.loc 1 121 0
 188 004a 3B1C     		mov	r3, r7
 189 004c 0C33     		add	r3, r3, #12
 190 004e 0022     		mov	r2, #0
 191 0050 9B5E     		ldrsh	r3, [r3, r2]
 192 0052 002B     		cmp	r3, #0
 193 0054 01D1     		bne	.L12
 122:../Application/MemoryManager/MemoryManager.c **** 		return 0;
 194              		.loc 1 122 0
 195 0056 0023     		mov	r3, #0
 196 0058 00E0     		b	.L13
 197              	.L12:
 123:../Application/MemoryManager/MemoryManager.c **** 	} else {
 124:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 198              		.loc 1 124 0
 199 005a 034B     		ldr	r3, .L14
 200              	.L13:
 201 005c 1BB2     		sxth	r3, r3
 125:../Application/MemoryManager/MemoryManager.c **** 	}
 126:../Application/MemoryManager/MemoryManager.c **** }
 202              		.loc 1 126 0
 203 005e 181C     		mov	r0, r3
 204 0060 BD46     		mov	sp, r7
 205 0062 05B0     		add	sp, sp, #20
 206              		@ sp needed
 207 0064 90BD     		pop	{r4, r7, pc}
 208              	.L15:
 209 0066 C046     		.align	2
 210              	.L14:
 211 0068 FFFF0000 		.word	65535
 212              		.cfi_endproc
 213              	.LFE34:
 215              		.section	.text.MemoryManagerCheckDiving,"ax",%progbits
 216              		.align	2
 217              		.global	MemoryManagerCheckDiving
 218              		.code	16
 219              		.thumb_func
 221              	MemoryManagerCheckDiving:
 222              	.LFB35:
 127:../Application/MemoryManager/MemoryManager.c **** 
 128:../Application/MemoryManager/MemoryManager.c **** void MemoryManagerCheckDiving (tMemoryManagerDiving* divingParameters) {
 223              		.loc 1 128 0
 224              		.cfi_startproc
 225 0000 90B5     		push	{r4, r7, lr}
 226              		.cfi_def_cfa_offset 12
 227              		.cfi_offset 4, -12
 228              		.cfi_offset 7, -8
 229              		.cfi_offset 14, -4
 230 0002 85B0     		sub	sp, sp, #20
 231              		.cfi_def_cfa_offset 32
 232 0004 00AF     		add	r7, sp, #0
 233              		.cfi_def_cfa_register 7
 234 0006 7860     		str	r0, [r7, #4]
 129:../Application/MemoryManager/MemoryManager.c **** 
 130:../Application/MemoryManager/MemoryManager.c **** 	unsigned char checksumExpected = ChecksumByteCompute((unsigned char*)divingParameters, MEMORYMANAG
 235              		.loc 1 130 0
 236 0008 3C1C     		mov	r4, r7
 237 000a 0F34     		add	r4, r4, #15
 238 000c 7B68     		ldr	r3, [r7, #4]
 239 000e 181C     		mov	r0, r3
 240 0010 0321     		mov	r1, #3
 241 0012 FFF7FEFF 		bl	ChecksumByteCompute
 242 0016 031C     		mov	r3, r0
 243 0018 2370     		strb	r3, [r4]
 131:../Application/MemoryManager/MemoryManager.c **** 
 132:../Application/MemoryManager/MemoryManager.c **** 	if(checksumExpected != divingParameters->checksum || (divingParameters->depth == 0 && divingParame
 244              		.loc 1 132 0
 245 001a 7B68     		ldr	r3, [r7, #4]
 246 001c DB78     		ldrb	r3, [r3, #3]
 247 001e 3A1C     		mov	r2, r7
 248 0020 0F32     		add	r2, r2, #15
 249 0022 1278     		ldrb	r2, [r2]
 250 0024 9A42     		cmp	r2, r3
 251 0026 0BD1     		bne	.L17
 252              		.loc 1 132 0 is_stmt 0 discriminator 1
 253 0028 7B68     		ldr	r3, [r7, #4]
 254 002a 1B78     		ldrb	r3, [r3]
 255 002c 002B     		cmp	r3, #0
 256 002e 0DD1     		bne	.L18
 257 0030 7B68     		ldr	r3, [r7, #4]
 258 0032 9B78     		ldrb	r3, [r3, #2]
 259 0034 002B     		cmp	r3, #0
 260 0036 09D1     		bne	.L18
 261 0038 7B68     		ldr	r3, [r7, #4]
 262 003a 5B78     		ldrb	r3, [r3, #1]
 263 003c 002B     		cmp	r3, #0
 264 003e 05D1     		bne	.L18
 265              	.L17:
 133:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.diving = 0;
 266              		.loc 1 133 0 is_stmt 1
 267 0040 064B     		ldr	r3, .L20
 268 0042 1A78     		ldrb	r2, [r3]
 269 0044 0221     		mov	r1, #2
 270 0046 8A43     		bic	r2, r1
 271 0048 1A70     		strb	r2, [r3]
 272 004a 04E0     		b	.L16
 273              	.L18:
 134:../Application/MemoryManager/MemoryManager.c **** 	} else {
 135:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.diving = 1;
 274              		.loc 1 135 0
 275 004c 034B     		ldr	r3, .L20
 276 004e 1A78     		ldrb	r2, [r3]
 277 0050 0221     		mov	r1, #2
 278 0052 0A43     		orr	r2, r1
 279 0054 1A70     		strb	r2, [r3]
 280              	.L16:
 136:../Application/MemoryManager/MemoryManager.c **** 	}
 137:../Application/MemoryManager/MemoryManager.c **** }
 281              		.loc 1 137 0
 282 0056 BD46     		mov	sp, r7
 283 0058 05B0     		add	sp, sp, #20
 284              		@ sp needed
 285 005a 90BD     		pop	{r4, r7, pc}
 286              	.L21:
 287              		.align	2
 288              	.L20:
 289 005c 00000000 		.word	MemoryManagerCtrl
 290              		.cfi_endproc
 291              	.LFE35:
 293              		.section	.text.MemoryManagerWriteDiving,"ax",%progbits
 294              		.align	2
 295              		.global	MemoryManagerWriteDiving
 296              		.code	16
 297              		.thumb_func
 299              	MemoryManagerWriteDiving:
 300              	.LFB36:
 138:../Application/MemoryManager/MemoryManager.c **** 
 139:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerWriteDiving (tMemoryManagerDiving* divingParameters) {
 301              		.loc 1 139 0
 302              		.cfi_startproc
 303 0000 90B5     		push	{r4, r7, lr}
 304              		.cfi_def_cfa_offset 12
 305              		.cfi_offset 4, -12
 306              		.cfi_offset 7, -8
 307              		.cfi_offset 14, -4
 308 0002 85B0     		sub	sp, sp, #20
 309              		.cfi_def_cfa_offset 32
 310 0004 00AF     		add	r7, sp, #0
 311              		.cfi_def_cfa_register 7
 312 0006 7860     		str	r0, [r7, #4]
 140:../Application/MemoryManager/MemoryManager.c **** 	signed short result;
 141:../Application/MemoryManager/MemoryManager.c **** 
 142:../Application/MemoryManager/MemoryManager.c **** 	tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 313              		.loc 1 142 0
 314 0008 3C1C     		mov	r4, r7
 315 000a 0F34     		add	r4, r4, #15
 316 000c FFF7FEFF 		bl	FM25V20IsInLowPower
 317 0010 031C     		mov	r3, r0
 318 0012 2370     		strb	r3, [r4]
 143:../Application/MemoryManager/MemoryManager.c **** 
 144:../Application/MemoryManager/MemoryManager.c **** 	/*=== Wake up device if it's in lpm ===*/
 145:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 319              		.loc 1 145 0
 320 0014 3B1C     		mov	r3, r7
 321 0016 0F33     		add	r3, r3, #15
 322 0018 1B78     		ldrb	r3, [r3]
 323 001a 012B     		cmp	r3, #1
 324 001c 03D1     		bne	.L23
 146:../Application/MemoryManager/MemoryManager.c **** 		FM25V20WakeUp();
 325              		.loc 1 146 0
 326 001e FFF7FEFF 		bl	FM25V20WakeUp
 147:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 327              		.loc 1 147 0
 328 0022 FFF7FEFF 		bl	WatchdogKick
 329              	.L23:
 148:../Application/MemoryManager/MemoryManager.c **** 	}
 149:../Application/MemoryManager/MemoryManager.c **** 
 150:../Application/MemoryManager/MemoryManager.c **** 	divingParameters->checksum = ChecksumByteCompute((unsigned char*)divingParameters, MEMORYMANAGER_D
 330              		.loc 1 150 0
 331 0026 7B68     		ldr	r3, [r7, #4]
 332 0028 181C     		mov	r0, r3
 333 002a 0321     		mov	r1, #3
 334 002c FFF7FEFF 		bl	ChecksumByteCompute
 335 0030 031C     		mov	r3, r0
 336 0032 1A1C     		mov	r2, r3
 337 0034 7B68     		ldr	r3, [r7, #4]
 338 0036 DA70     		strb	r2, [r3, #3]
 151:../Application/MemoryManager/MemoryManager.c **** 
 152:../Application/MemoryManager/MemoryManager.c **** 	result = FM25V20WriteData(MEMORYMANAGER_ADDR_DIVING_START, (unsigned char*)divingParameters, MEMOR
 339              		.loc 1 152 0
 340 0038 7B68     		ldr	r3, [r7, #4]
 341 003a 1F20     		mov	r0, #31
 342 003c 191C     		mov	r1, r3
 343 003e 0422     		mov	r2, #4
 344 0040 FFF7FEFF 		bl	FM25V20WriteData
 345 0044 031C     		mov	r3, r0
 346 0046 1A1C     		mov	r2, r3
 347 0048 3B1C     		mov	r3, r7
 348 004a 0C33     		add	r3, r3, #12
 349 004c 1A80     		strh	r2, [r3]
 153:../Application/MemoryManager/MemoryManager.c **** 
 154:../Application/MemoryManager/MemoryManager.c **** 	/*=== restore low power mode ===*/
 155:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 350              		.loc 1 155 0
 351 004e 3B1C     		mov	r3, r7
 352 0050 0F33     		add	r3, r3, #15
 353 0052 1B78     		ldrb	r3, [r3]
 354 0054 012B     		cmp	r3, #1
 355 0056 01D1     		bne	.L24
 156:../Application/MemoryManager/MemoryManager.c **** 		FM25V20LPM();
 356              		.loc 1 156 0
 357 0058 FFF7FEFF 		bl	FM25V20LPM
 358              	.L24:
 157:../Application/MemoryManager/MemoryManager.c **** 	}
 158:../Application/MemoryManager/MemoryManager.c **** 
 159:../Application/MemoryManager/MemoryManager.c **** 	if(result == 0 && (divingParameters->depth != 0 && (divingParameters->filterLSB != 0 || divingPara
 359              		.loc 1 159 0
 360 005c 3B1C     		mov	r3, r7
 361 005e 0C33     		add	r3, r3, #12
 362 0060 0022     		mov	r2, #0
 363 0062 9B5E     		ldrsh	r3, [r3, r2]
 364 0064 002B     		cmp	r3, #0
 365 0066 12D1     		bne	.L25
 366              		.loc 1 159 0 is_stmt 0 discriminator 1
 367 0068 7B68     		ldr	r3, [r7, #4]
 368 006a 1B78     		ldrb	r3, [r3]
 369 006c 002B     		cmp	r3, #0
 370 006e 0ED0     		beq	.L25
 371 0070 7B68     		ldr	r3, [r7, #4]
 372 0072 9B78     		ldrb	r3, [r3, #2]
 373 0074 002B     		cmp	r3, #0
 374 0076 03D1     		bne	.L26
 375 0078 7B68     		ldr	r3, [r7, #4]
 376 007a 5B78     		ldrb	r3, [r3, #1]
 377 007c 002B     		cmp	r3, #0
 378 007e 06D0     		beq	.L25
 379              	.L26:
 160:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.diving = 1;
 380              		.loc 1 160 0 is_stmt 1
 381 0080 084B     		ldr	r3, .L28
 382 0082 1A78     		ldrb	r2, [r3]
 383 0084 0221     		mov	r1, #2
 384 0086 0A43     		orr	r2, r1
 385 0088 1A70     		strb	r2, [r3]
 161:../Application/MemoryManager/MemoryManager.c **** 		return 0;
 386              		.loc 1 161 0
 387 008a 0023     		mov	r3, #0
 388 008c 05E0     		b	.L27
 389              	.L25:
 162:../Application/MemoryManager/MemoryManager.c **** 	} else {
 163:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.diving = 0;
 390              		.loc 1 163 0
 391 008e 054B     		ldr	r3, .L28
 392 0090 1A78     		ldrb	r2, [r3]
 393 0092 0221     		mov	r1, #2
 394 0094 8A43     		bic	r2, r1
 395 0096 1A70     		strb	r2, [r3]
 164:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 396              		.loc 1 164 0
 397 0098 034B     		ldr	r3, .L28+4
 398              	.L27:
 399 009a 1BB2     		sxth	r3, r3
 165:../Application/MemoryManager/MemoryManager.c **** 	}
 166:../Application/MemoryManager/MemoryManager.c **** }
 400              		.loc 1 166 0
 401 009c 181C     		mov	r0, r3
 402 009e BD46     		mov	sp, r7
 403 00a0 05B0     		add	sp, sp, #20
 404              		@ sp needed
 405 00a2 90BD     		pop	{r4, r7, pc}
 406              	.L29:
 407              		.align	2
 408              	.L28:
 409 00a4 00000000 		.word	MemoryManagerCtrl
 410 00a8 FFFF0000 		.word	65535
 411              		.cfi_endproc
 412              	.LFE36:
 414              		.section	.text.MemoryManagerReadSerial,"ax",%progbits
 415              		.align	2
 416              		.global	MemoryManagerReadSerial
 417              		.code	16
 418              		.thumb_func
 420              	MemoryManagerReadSerial:
 421              	.LFB37:
 167:../Application/MemoryManager/MemoryManager.c **** 
 168:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerReadSerial (tMemoryManagerSerial* serialParameters) {
 422              		.loc 1 168 0
 423              		.cfi_startproc
 424 0000 90B5     		push	{r4, r7, lr}
 425              		.cfi_def_cfa_offset 12
 426              		.cfi_offset 4, -12
 427              		.cfi_offset 7, -8
 428              		.cfi_offset 14, -4
 429 0002 85B0     		sub	sp, sp, #20
 430              		.cfi_def_cfa_offset 32
 431 0004 00AF     		add	r7, sp, #0
 432              		.cfi_def_cfa_register 7
 433 0006 7860     		str	r0, [r7, #4]
 169:../Application/MemoryManager/MemoryManager.c **** 	signed short result;
 170:../Application/MemoryManager/MemoryManager.c **** 
 171:../Application/MemoryManager/MemoryManager.c **** 	tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 434              		.loc 1 171 0
 435 0008 3C1C     		mov	r4, r7
 436 000a 0F34     		add	r4, r4, #15
 437 000c FFF7FEFF 		bl	FM25V20IsInLowPower
 438 0010 031C     		mov	r3, r0
 439 0012 2370     		strb	r3, [r4]
 172:../Application/MemoryManager/MemoryManager.c **** 
 173:../Application/MemoryManager/MemoryManager.c **** 	/*=== Wake up device if it's in lpm ===*/
 174:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 440              		.loc 1 174 0
 441 0014 3B1C     		mov	r3, r7
 442 0016 0F33     		add	r3, r3, #15
 443 0018 1B78     		ldrb	r3, [r3]
 444 001a 012B     		cmp	r3, #1
 445 001c 03D1     		bne	.L31
 175:../Application/MemoryManager/MemoryManager.c **** 		FM25V20WakeUp();
 446              		.loc 1 175 0
 447 001e FFF7FEFF 		bl	FM25V20WakeUp
 176:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 448              		.loc 1 176 0
 449 0022 FFF7FEFF 		bl	WatchdogKick
 450              	.L31:
 177:../Application/MemoryManager/MemoryManager.c **** 	}
 178:../Application/MemoryManager/MemoryManager.c **** 
 179:../Application/MemoryManager/MemoryManager.c **** 	result = FM25V20ReadData(MEMORYMANAGER_ADDR_SERIAL_START, (unsigned char*)serialParameters, MEMORY
 451              		.loc 1 179 0
 452 0026 7B68     		ldr	r3, [r7, #4]
 453 0028 0020     		mov	r0, #0
 454 002a 191C     		mov	r1, r3
 455 002c 0922     		mov	r2, #9
 456 002e FFF7FEFF 		bl	FM25V20ReadData
 457 0032 031C     		mov	r3, r0
 458 0034 1A1C     		mov	r2, r3
 459 0036 3B1C     		mov	r3, r7
 460 0038 0C33     		add	r3, r3, #12
 461 003a 1A80     		strh	r2, [r3]
 180:../Application/MemoryManager/MemoryManager.c **** 
 181:../Application/MemoryManager/MemoryManager.c **** 	/*=== restore low power mode ===*/
 182:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 462              		.loc 1 182 0
 463 003c 3B1C     		mov	r3, r7
 464 003e 0F33     		add	r3, r3, #15
 465 0040 1B78     		ldrb	r3, [r3]
 466 0042 012B     		cmp	r3, #1
 467 0044 01D1     		bne	.L32
 183:../Application/MemoryManager/MemoryManager.c **** 		FM25V20LPM();
 468              		.loc 1 183 0
 469 0046 FFF7FEFF 		bl	FM25V20LPM
 470              	.L32:
 184:../Application/MemoryManager/MemoryManager.c **** 	}
 185:../Application/MemoryManager/MemoryManager.c **** 
 186:../Application/MemoryManager/MemoryManager.c **** 	if(result == 0) {
 471              		.loc 1 186 0
 472 004a 3B1C     		mov	r3, r7
 473 004c 0C33     		add	r3, r3, #12
 474 004e 0022     		mov	r2, #0
 475 0050 9B5E     		ldrsh	r3, [r3, r2]
 476 0052 002B     		cmp	r3, #0
 477 0054 01D1     		bne	.L33
 187:../Application/MemoryManager/MemoryManager.c **** 		return 0;
 478              		.loc 1 187 0
 479 0056 0023     		mov	r3, #0
 480 0058 00E0     		b	.L34
 481              	.L33:
 188:../Application/MemoryManager/MemoryManager.c **** 	} else {
 189:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 482              		.loc 1 189 0
 483 005a 034B     		ldr	r3, .L35
 484              	.L34:
 485 005c 1BB2     		sxth	r3, r3
 190:../Application/MemoryManager/MemoryManager.c **** 	}
 191:../Application/MemoryManager/MemoryManager.c **** }
 486              		.loc 1 191 0
 487 005e 181C     		mov	r0, r3
 488 0060 BD46     		mov	sp, r7
 489 0062 05B0     		add	sp, sp, #20
 490              		@ sp needed
 491 0064 90BD     		pop	{r4, r7, pc}
 492              	.L36:
 493 0066 C046     		.align	2
 494              	.L35:
 495 0068 FFFF0000 		.word	65535
 496              		.cfi_endproc
 497              	.LFE37:
 499              		.section	.text.MemoryManagerCheckSerial,"ax",%progbits
 500              		.align	2
 501              		.global	MemoryManagerCheckSerial
 502              		.code	16
 503              		.thumb_func
 505              	MemoryManagerCheckSerial:
 506              	.LFB38:
 192:../Application/MemoryManager/MemoryManager.c **** 
 193:../Application/MemoryManager/MemoryManager.c **** void MemoryManagerCheckSerial (tMemoryManagerSerial* serialParameters) {
 507              		.loc 1 193 0
 508              		.cfi_startproc
 509 0000 90B5     		push	{r4, r7, lr}
 510              		.cfi_def_cfa_offset 12
 511              		.cfi_offset 4, -12
 512              		.cfi_offset 7, -8
 513              		.cfi_offset 14, -4
 514 0002 85B0     		sub	sp, sp, #20
 515              		.cfi_def_cfa_offset 32
 516 0004 00AF     		add	r7, sp, #0
 517              		.cfi_def_cfa_register 7
 518 0006 7860     		str	r0, [r7, #4]
 194:../Application/MemoryManager/MemoryManager.c **** 
 195:../Application/MemoryManager/MemoryManager.c **** 	unsigned char checksumExpected = ChecksumByteCompute((unsigned char*)serialParameters, MEMORYMANAG
 519              		.loc 1 195 0
 520 0008 3C1C     		mov	r4, r7
 521 000a 0F34     		add	r4, r4, #15
 522 000c 7B68     		ldr	r3, [r7, #4]
 523 000e 181C     		mov	r0, r3
 524 0010 0821     		mov	r1, #8
 525 0012 FFF7FEFF 		bl	ChecksumByteCompute
 526 0016 031C     		mov	r3, r0
 527 0018 2370     		strb	r3, [r4]
 196:../Application/MemoryManager/MemoryManager.c **** 
 197:../Application/MemoryManager/MemoryManager.c **** 	if(checksumExpected != serialParameters->checksum || (serialParameters->serial == 0)) {
 528              		.loc 1 197 0
 529 001a 7B68     		ldr	r3, [r7, #4]
 530 001c 1B7A     		ldrb	r3, [r3, #8]
 531 001e 3A1C     		mov	r2, r7
 532 0020 0F32     		add	r2, r2, #15
 533 0022 1278     		ldrb	r2, [r2]
 534 0024 9A42     		cmp	r2, r3
 535 0026 05D1     		bne	.L38
 536              		.loc 1 197 0 is_stmt 0 discriminator 1
 537 0028 7B68     		ldr	r3, [r7, #4]
 538 002a 5C68     		ldr	r4, [r3, #4]
 539 002c 1B68     		ldr	r3, [r3]
 540 002e 1A1C     		mov	r2, r3
 541 0030 2243     		orr	r2, r4
 542 0032 05D1     		bne	.L39
 543              	.L38:
 198:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.serial = 0;
 544              		.loc 1 198 0 is_stmt 1
 545 0034 064B     		ldr	r3, .L41
 546 0036 1A78     		ldrb	r2, [r3]
 547 0038 0121     		mov	r1, #1
 548 003a 8A43     		bic	r2, r1
 549 003c 1A70     		strb	r2, [r3]
 550 003e 04E0     		b	.L37
 551              	.L39:
 199:../Application/MemoryManager/MemoryManager.c **** 	} else {
 200:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.serial = 1;
 552              		.loc 1 200 0
 553 0040 034B     		ldr	r3, .L41
 554 0042 1A78     		ldrb	r2, [r3]
 555 0044 0121     		mov	r1, #1
 556 0046 0A43     		orr	r2, r1
 557 0048 1A70     		strb	r2, [r3]
 558              	.L37:
 201:../Application/MemoryManager/MemoryManager.c **** 	}
 202:../Application/MemoryManager/MemoryManager.c **** }
 559              		.loc 1 202 0
 560 004a BD46     		mov	sp, r7
 561 004c 05B0     		add	sp, sp, #20
 562              		@ sp needed
 563 004e 90BD     		pop	{r4, r7, pc}
 564              	.L42:
 565              		.align	2
 566              	.L41:
 567 0050 00000000 		.word	MemoryManagerCtrl
 568              		.cfi_endproc
 569              	.LFE38:
 571              		.section	.text.MemoryManagerWriteSerial,"ax",%progbits
 572              		.align	2
 573              		.global	MemoryManagerWriteSerial
 574              		.code	16
 575              		.thumb_func
 577              	MemoryManagerWriteSerial:
 578              	.LFB39:
 203:../Application/MemoryManager/MemoryManager.c **** 
 204:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerWriteSerial (tMemoryManagerSerial* serialParameters) {
 579              		.loc 1 204 0
 580              		.cfi_startproc
 581 0000 90B5     		push	{r4, r7, lr}
 582              		.cfi_def_cfa_offset 12
 583              		.cfi_offset 4, -12
 584              		.cfi_offset 7, -8
 585              		.cfi_offset 14, -4
 586 0002 85B0     		sub	sp, sp, #20
 587              		.cfi_def_cfa_offset 32
 588 0004 00AF     		add	r7, sp, #0
 589              		.cfi_def_cfa_register 7
 590 0006 7860     		str	r0, [r7, #4]
 205:../Application/MemoryManager/MemoryManager.c **** 	signed short result;
 206:../Application/MemoryManager/MemoryManager.c **** 
 207:../Application/MemoryManager/MemoryManager.c **** 	tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 591              		.loc 1 207 0
 592 0008 3C1C     		mov	r4, r7
 593 000a 0F34     		add	r4, r4, #15
 594 000c FFF7FEFF 		bl	FM25V20IsInLowPower
 595 0010 031C     		mov	r3, r0
 596 0012 2370     		strb	r3, [r4]
 208:../Application/MemoryManager/MemoryManager.c **** 
 209:../Application/MemoryManager/MemoryManager.c **** 	/*=== Wake up device if it's in lpm ===*/
 210:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 597              		.loc 1 210 0
 598 0014 3B1C     		mov	r3, r7
 599 0016 0F33     		add	r3, r3, #15
 600 0018 1B78     		ldrb	r3, [r3]
 601 001a 012B     		cmp	r3, #1
 602 001c 03D1     		bne	.L44
 211:../Application/MemoryManager/MemoryManager.c **** 		FM25V20WakeUp();
 603              		.loc 1 211 0
 604 001e FFF7FEFF 		bl	FM25V20WakeUp
 212:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 605              		.loc 1 212 0
 606 0022 FFF7FEFF 		bl	WatchdogKick
 607              	.L44:
 213:../Application/MemoryManager/MemoryManager.c **** 	}
 214:../Application/MemoryManager/MemoryManager.c **** 
 215:../Application/MemoryManager/MemoryManager.c **** 	serialParameters->checksum = ChecksumByteCompute((unsigned char*)serialParameters, MEMORYMANAGER_S
 608              		.loc 1 215 0
 609 0026 7B68     		ldr	r3, [r7, #4]
 610 0028 181C     		mov	r0, r3
 611 002a 0821     		mov	r1, #8
 612 002c FFF7FEFF 		bl	ChecksumByteCompute
 613 0030 031C     		mov	r3, r0
 614 0032 1A1C     		mov	r2, r3
 615 0034 7B68     		ldr	r3, [r7, #4]
 616 0036 1A72     		strb	r2, [r3, #8]
 216:../Application/MemoryManager/MemoryManager.c **** 
 217:../Application/MemoryManager/MemoryManager.c **** 	result = FM25V20WriteData(MEMORYMANAGER_ADDR_SERIAL_START, (unsigned char*)serialParameters, MEMOR
 617              		.loc 1 217 0
 618 0038 7B68     		ldr	r3, [r7, #4]
 619 003a 0020     		mov	r0, #0
 620 003c 191C     		mov	r1, r3
 621 003e 0922     		mov	r2, #9
 622 0040 FFF7FEFF 		bl	FM25V20WriteData
 623 0044 031C     		mov	r3, r0
 624 0046 1A1C     		mov	r2, r3
 625 0048 3B1C     		mov	r3, r7
 626 004a 0C33     		add	r3, r3, #12
 627 004c 1A80     		strh	r2, [r3]
 218:../Application/MemoryManager/MemoryManager.c **** 
 219:../Application/MemoryManager/MemoryManager.c **** 	/*=== restore low power mode ===*/
 220:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 628              		.loc 1 220 0
 629 004e 3B1C     		mov	r3, r7
 630 0050 0F33     		add	r3, r3, #15
 631 0052 1B78     		ldrb	r3, [r3]
 632 0054 012B     		cmp	r3, #1
 633 0056 01D1     		bne	.L45
 221:../Application/MemoryManager/MemoryManager.c **** 		FM25V20LPM();
 634              		.loc 1 221 0
 635 0058 FFF7FEFF 		bl	FM25V20LPM
 636              	.L45:
 222:../Application/MemoryManager/MemoryManager.c **** 	}
 223:../Application/MemoryManager/MemoryManager.c **** 
 224:../Application/MemoryManager/MemoryManager.c **** 	if(result == 0 && serialParameters->serial != 0) {
 637              		.loc 1 224 0
 638 005c 3B1C     		mov	r3, r7
 639 005e 0C33     		add	r3, r3, #12
 640 0060 0022     		mov	r2, #0
 641 0062 9B5E     		ldrsh	r3, [r3, r2]
 642 0064 002B     		cmp	r3, #0
 643 0066 0CD1     		bne	.L46
 644              		.loc 1 224 0 is_stmt 0 discriminator 1
 645 0068 7B68     		ldr	r3, [r7, #4]
 646 006a 5C68     		ldr	r4, [r3, #4]
 647 006c 1B68     		ldr	r3, [r3]
 648 006e 1A1C     		mov	r2, r3
 649 0070 2243     		orr	r2, r4
 650 0072 06D0     		beq	.L46
 225:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.serial = 1;
 651              		.loc 1 225 0 is_stmt 1 discriminator 1
 652 0074 084B     		ldr	r3, .L49
 653 0076 1A78     		ldrb	r2, [r3]
 654 0078 0121     		mov	r1, #1
 655 007a 0A43     		orr	r2, r1
 656 007c 1A70     		strb	r2, [r3]
 226:../Application/MemoryManager/MemoryManager.c **** 		return 0;
 657              		.loc 1 226 0 discriminator 1
 658 007e 0023     		mov	r3, #0
 659 0080 05E0     		b	.L48
 660              	.L46:
 227:../Application/MemoryManager/MemoryManager.c **** 	} else {
 228:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.isValid.bits.serial = 0;
 661              		.loc 1 228 0
 662 0082 054B     		ldr	r3, .L49
 663 0084 1A78     		ldrb	r2, [r3]
 664 0086 0121     		mov	r1, #1
 665 0088 8A43     		bic	r2, r1
 666 008a 1A70     		strb	r2, [r3]
 229:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 667              		.loc 1 229 0
 668 008c 034B     		ldr	r3, .L49+4
 669              	.L48:
 670 008e 1BB2     		sxth	r3, r3
 230:../Application/MemoryManager/MemoryManager.c **** 	}
 231:../Application/MemoryManager/MemoryManager.c **** }
 671              		.loc 1 231 0
 672 0090 181C     		mov	r0, r3
 673 0092 BD46     		mov	sp, r7
 674 0094 05B0     		add	sp, sp, #20
 675              		@ sp needed
 676 0096 90BD     		pop	{r4, r7, pc}
 677              	.L50:
 678              		.align	2
 679              	.L49:
 680 0098 00000000 		.word	MemoryManagerCtrl
 681 009c FFFF0000 		.word	65535
 682              		.cfi_endproc
 683              	.LFE39:
 685              		.section	.text.MemoryManagerWriteLog,"ax",%progbits
 686              		.align	2
 687              		.global	MemoryManagerWriteLog
 688              		.code	16
 689              		.thumb_func
 691              	MemoryManagerWriteLog:
 692              	.LFB40:
 232:../Application/MemoryManager/MemoryManager.c **** 
 233:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerWriteLog(unsigned long date, tMemoryManagerRWOp opType, tSRDEeprom* data)
 693              		.loc 1 233 0
 694              		.cfi_startproc
 695 0000 90B5     		push	{r4, r7, lr}
 696              		.cfi_def_cfa_offset 12
 697              		.cfi_offset 4, -12
 698              		.cfi_offset 7, -8
 699              		.cfi_offset 14, -4
 700 0002 9DB0     		sub	sp, sp, #116
 701              		.cfi_def_cfa_offset 128
 702 0004 00AF     		add	r7, sp, #0
 703              		.cfi_def_cfa_register 7
 704 0006 F860     		str	r0, [r7, #12]
 705 0008 7A60     		str	r2, [r7, #4]
 706 000a 3B1C     		mov	r3, r7
 707 000c 0B33     		add	r3, r3, #11
 708 000e 0A1C     		add	r2, r1, #0
 709 0010 1A70     		strb	r2, [r3]
 234:../Application/MemoryManager/MemoryManager.c **** 
 235:../Application/MemoryManager/MemoryManager.c **** 	tMemoryManagerLog log;
 236:../Application/MemoryManager/MemoryManager.c **** 	unsigned char i;
 237:../Application/MemoryManager/MemoryManager.c **** 
 238:../Application/MemoryManager/MemoryManager.c **** 	if(MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG) {
 710              		.loc 1 238 0
 711 0012 3F4B     		ldr	r3, .L60
 712 0014 5A68     		ldr	r2, [r3, #4]
 713 0016 3F4B     		ldr	r3, .L60+4
 714 0018 9A42     		cmp	r2, r3
 715 001a 73D8     		bhi	.L52
 716              	.LBB2:
 239:../Application/MemoryManager/MemoryManager.c **** 
 240:../Application/MemoryManager/MemoryManager.c **** 		log.date = date;
 717              		.loc 1 240 0
 718 001c 3B1C     		mov	r3, r7
 719 001e 1433     		add	r3, r3, #20
 720 0020 FA68     		ldr	r2, [r7, #12]
 721 0022 1A60     		str	r2, [r3]
 241:../Application/MemoryManager/MemoryManager.c **** 		log.logOp = opType;
 722              		.loc 1 241 0
 723 0024 3B1C     		mov	r3, r7
 724 0026 0B33     		add	r3, r3, #11
 725 0028 1A78     		ldrb	r2, [r3]
 726 002a 3B1C     		mov	r3, r7
 727 002c 1433     		add	r3, r3, #20
 728 002e 5A60     		str	r2, [r3, #4]
 242:../Application/MemoryManager/MemoryManager.c **** 
 243:../Application/MemoryManager/MemoryManager.c **** 		for(i=0 ; i<SRD_MEMORY_NBR_BYTE ; i++) {
 729              		.loc 1 243 0
 730 0030 3B1C     		mov	r3, r7
 731 0032 6F33     		add	r3, r3, #111
 732 0034 0022     		mov	r2, #0
 733 0036 1A70     		strb	r2, [r3]
 734 0038 14E0     		b	.L53
 735              	.L54:
 244:../Application/MemoryManager/MemoryManager.c **** 			*( ((unsigned char*)&log) + 8 + i) = *( ( (unsigned char*)data ) + i );
 736              		.loc 1 244 0 discriminator 2
 737 003a 3B1C     		mov	r3, r7
 738 003c 6F33     		add	r3, r3, #111
 739 003e 1B78     		ldrb	r3, [r3]
 740 0040 0833     		add	r3, r3, #8
 741 0042 3A1C     		mov	r2, r7
 742 0044 1432     		add	r2, r2, #20
 743 0046 D318     		add	r3, r2, r3
 744 0048 3A1C     		mov	r2, r7
 745 004a 6F32     		add	r2, r2, #111
 746 004c 1278     		ldrb	r2, [r2]
 747 004e 7968     		ldr	r1, [r7, #4]
 748 0050 8A18     		add	r2, r1, r2
 749 0052 1278     		ldrb	r2, [r2]
 750 0054 1A70     		strb	r2, [r3]
 243:../Application/MemoryManager/MemoryManager.c **** 		for(i=0 ; i<SRD_MEMORY_NBR_BYTE ; i++) {
 751              		.loc 1 243 0 discriminator 2
 752 0056 3B1C     		mov	r3, r7
 753 0058 6F33     		add	r3, r3, #111
 754 005a 1A78     		ldrb	r2, [r3]
 755 005c 3B1C     		mov	r3, r7
 756 005e 6F33     		add	r3, r3, #111
 757 0060 0132     		add	r2, r2, #1
 758 0062 1A70     		strb	r2, [r3]
 759              	.L53:
 243:../Application/MemoryManager/MemoryManager.c **** 		for(i=0 ; i<SRD_MEMORY_NBR_BYTE ; i++) {
 760              		.loc 1 243 0 is_stmt 0 discriminator 1
 761 0064 3B1C     		mov	r3, r7
 762 0066 6F33     		add	r3, r3, #111
 763 0068 1B78     		ldrb	r3, [r3]
 764 006a 3F2B     		cmp	r3, #63
 765 006c E5D9     		bls	.L54
 245:../Application/MemoryManager/MemoryManager.c **** 		}
 246:../Application/MemoryManager/MemoryManager.c **** 
 247:../Application/MemoryManager/MemoryManager.c **** 		unsigned long checksum = ChecksumByteOnShortCompute((unsigned char*)(&log),MEMORYMANAGER_LOG_SIZE
 766              		.loc 1 247 0 is_stmt 1
 767 006e 3B1C     		mov	r3, r7
 768 0070 1433     		add	r3, r3, #20
 769 0072 181C     		mov	r0, r3
 770 0074 4821     		mov	r1, #72
 771 0076 FFF7FEFF 		bl	ChecksumByteOnShortCompute
 772 007a 031C     		mov	r3, r0
 773 007c BB66     		str	r3, [r7, #104]
 248:../Application/MemoryManager/MemoryManager.c **** 		log.logOp |= (checksum<<16);
 774              		.loc 1 248 0
 775 007e 3B1C     		mov	r3, r7
 776 0080 1433     		add	r3, r3, #20
 777 0082 5A68     		ldr	r2, [r3, #4]
 778 0084 BB6E     		ldr	r3, [r7, #104]
 779 0086 1B04     		lsl	r3, r3, #16
 780 0088 1A43     		orr	r2, r3
 781 008a 3B1C     		mov	r3, r7
 782 008c 1433     		add	r3, r3, #20
 783 008e 5A60     		str	r2, [r3, #4]
 249:../Application/MemoryManager/MemoryManager.c **** 
 250:../Application/MemoryManager/MemoryManager.c **** 		signed short result;
 251:../Application/MemoryManager/MemoryManager.c **** 
 252:../Application/MemoryManager/MemoryManager.c **** 		tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 784              		.loc 1 252 0
 785 0090 3C1C     		mov	r4, r7
 786 0092 6734     		add	r4, r4, #103
 787 0094 FFF7FEFF 		bl	FM25V20IsInLowPower
 788 0098 031C     		mov	r3, r0
 789 009a 2370     		strb	r3, [r4]
 253:../Application/MemoryManager/MemoryManager.c **** 
 254:../Application/MemoryManager/MemoryManager.c **** 		/*=== Wake up device if it's in lpm ===*/
 255:../Application/MemoryManager/MemoryManager.c **** 		if(LPM == FM25V20_LowPowerMode) {
 790              		.loc 1 255 0
 791 009c 3B1C     		mov	r3, r7
 792 009e 6733     		add	r3, r3, #103
 793 00a0 1B78     		ldrb	r3, [r3]
 794 00a2 012B     		cmp	r3, #1
 795 00a4 03D1     		bne	.L55
 256:../Application/MemoryManager/MemoryManager.c **** 			FM25V20WakeUp();
 796              		.loc 1 256 0
 797 00a6 FFF7FEFF 		bl	FM25V20WakeUp
 257:../Application/MemoryManager/MemoryManager.c **** 			WatchdogKick();
 798              		.loc 1 257 0
 799 00aa FFF7FEFF 		bl	WatchdogKick
 800              	.L55:
 258:../Application/MemoryManager/MemoryManager.c **** 		}
 259:../Application/MemoryManager/MemoryManager.c **** 
 260:../Application/MemoryManager/MemoryManager.c **** 		unsigned long memAddr = MEMORYMANAGER_ADDR_LOG_START + (MemoryManagerCtrl.nbrLog * MEMORYMANAGER_
 801              		.loc 1 260 0
 802 00ae 184B     		ldr	r3, .L60
 803 00b0 5A68     		ldr	r2, [r3, #4]
 804 00b2 131C     		mov	r3, r2
 805 00b4 DB00     		lsl	r3, r3, #3
 806 00b6 9B18     		add	r3, r3, r2
 807 00b8 DB00     		lsl	r3, r3, #3
 808 00ba 4033     		add	r3, r3, #64
 809 00bc 3B66     		str	r3, [r7, #96]
 261:../Application/MemoryManager/MemoryManager.c **** 
 262:../Application/MemoryManager/MemoryManager.c **** 		result = FM25V20WriteData(memAddr, (unsigned char*)(&log), MEMORYMANAGER_LOG_SIZE);
 810              		.loc 1 262 0
 811 00be 3A6E     		ldr	r2, [r7, #96]
 812 00c0 3B1C     		mov	r3, r7
 813 00c2 1433     		add	r3, r3, #20
 814 00c4 101C     		mov	r0, r2
 815 00c6 191C     		mov	r1, r3
 816 00c8 4822     		mov	r2, #72
 817 00ca FFF7FEFF 		bl	FM25V20WriteData
 818 00ce 031C     		mov	r3, r0
 819 00d0 1A1C     		mov	r2, r3
 820 00d2 3B1C     		mov	r3, r7
 821 00d4 5E33     		add	r3, r3, #94
 822 00d6 1A80     		strh	r2, [r3]
 263:../Application/MemoryManager/MemoryManager.c **** 
 264:../Application/MemoryManager/MemoryManager.c **** 		/*=== restore low power mode ===*/
 265:../Application/MemoryManager/MemoryManager.c **** 		if(LPM == FM25V20_LowPowerMode) {
 823              		.loc 1 265 0
 824 00d8 3B1C     		mov	r3, r7
 825 00da 6733     		add	r3, r3, #103
 826 00dc 1B78     		ldrb	r3, [r3]
 827 00de 012B     		cmp	r3, #1
 828 00e0 01D1     		bne	.L56
 266:../Application/MemoryManager/MemoryManager.c **** 			FM25V20LPM();
 829              		.loc 1 266 0
 830 00e2 FFF7FEFF 		bl	FM25V20LPM
 831              	.L56:
 267:../Application/MemoryManager/MemoryManager.c **** 		}
 268:../Application/MemoryManager/MemoryManager.c **** 
 269:../Application/MemoryManager/MemoryManager.c **** 		if(result == 0) {
 832              		.loc 1 269 0
 833 00e6 3B1C     		mov	r3, r7
 834 00e8 5E33     		add	r3, r3, #94
 835 00ea 0022     		mov	r2, #0
 836 00ec 9B5E     		ldrsh	r3, [r3, r2]
 837 00ee 002B     		cmp	r3, #0
 838 00f0 06D1     		bne	.L57
 270:../Application/MemoryManager/MemoryManager.c **** 			MemoryManagerCtrl.nbrLog++;
 839              		.loc 1 270 0
 840 00f2 074B     		ldr	r3, .L60
 841 00f4 5B68     		ldr	r3, [r3, #4]
 842 00f6 5A1C     		add	r2, r3, #1
 843 00f8 054B     		ldr	r3, .L60
 844 00fa 5A60     		str	r2, [r3, #4]
 271:../Application/MemoryManager/MemoryManager.c **** 			return 0;
 845              		.loc 1 271 0
 846 00fc 0023     		mov	r3, #0
 847 00fe 02E0     		b	.L59
 848              	.L57:
 272:../Application/MemoryManager/MemoryManager.c **** 		} else {
 273:../Application/MemoryManager/MemoryManager.c **** 			return -1;
 849              		.loc 1 273 0
 850 0100 054B     		ldr	r3, .L60+8
 851 0102 00E0     		b	.L59
 852              	.L52:
 853              	.LBE2:
 274:../Application/MemoryManager/MemoryManager.c **** 		}
 275:../Application/MemoryManager/MemoryManager.c **** 	} else {
 276:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 854              		.loc 1 276 0
 855 0104 044B     		ldr	r3, .L60+8
 856              	.L59:
 857 0106 1BB2     		sxth	r3, r3
 277:../Application/MemoryManager/MemoryManager.c **** 	}
 278:../Application/MemoryManager/MemoryManager.c **** }
 858              		.loc 1 278 0
 859 0108 181C     		mov	r0, r3
 860 010a BD46     		mov	sp, r7
 861 010c 1DB0     		add	sp, sp, #116
 862              		@ sp needed
 863 010e 90BD     		pop	{r4, r7, pc}
 864              	.L61:
 865              		.align	2
 866              	.L60:
 867 0110 00000000 		.word	MemoryManagerCtrl
 868 0114 370E0000 		.word	3639
 869 0118 FFFF0000 		.word	65535
 870              		.cfi_endproc
 871              	.LFE40:
 873              		.section	.text.MemoryManagerClearLog,"ax",%progbits
 874              		.align	2
 875              		.global	MemoryManagerClearLog
 876              		.code	16
 877              		.thumb_func
 879              	MemoryManagerClearLog:
 880              	.LFB41:
 279:../Application/MemoryManager/MemoryManager.c **** 
 280:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerClearLog(void) {
 881              		.loc 1 280 0
 882              		.cfi_startproc
 883 0000 90B5     		push	{r4, r7, lr}
 884              		.cfi_def_cfa_offset 12
 885              		.cfi_offset 4, -12
 886              		.cfi_offset 7, -8
 887              		.cfi_offset 14, -4
 888 0002 95B0     		sub	sp, sp, #84
 889              		.cfi_def_cfa_offset 96
 890 0004 00AF     		add	r7, sp, #0
 891              		.cfi_def_cfa_register 7
 281:../Application/MemoryManager/MemoryManager.c **** 	signed short result = 0;
 892              		.loc 1 281 0
 893 0006 3B1C     		mov	r3, r7
 894 0008 4E33     		add	r3, r3, #78
 895 000a 0022     		mov	r2, #0
 896 000c 1A80     		strh	r2, [r3]
 282:../Application/MemoryManager/MemoryManager.c **** 
 283:../Application/MemoryManager/MemoryManager.c **** 	tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 897              		.loc 1 283 0
 898 000e 3C1C     		mov	r4, r7
 899 0010 4D34     		add	r4, r4, #77
 900 0012 FFF7FEFF 		bl	FM25V20IsInLowPower
 901 0016 031C     		mov	r3, r0
 902 0018 2370     		strb	r3, [r4]
 284:../Application/MemoryManager/MemoryManager.c **** 
 285:../Application/MemoryManager/MemoryManager.c **** 	/*=== Wake up device if it's in lpm ===*/
 286:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 903              		.loc 1 286 0
 904 001a 3B1C     		mov	r3, r7
 905 001c 4D33     		add	r3, r3, #77
 906 001e 1B78     		ldrb	r3, [r3]
 907 0020 012B     		cmp	r3, #1
 908 0022 03D1     		bne	.L63
 287:../Application/MemoryManager/MemoryManager.c **** 		FM25V20WakeUp();
 909              		.loc 1 287 0
 910 0024 FFF7FEFF 		bl	FM25V20WakeUp
 288:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 911              		.loc 1 288 0
 912 0028 FFF7FEFF 		bl	WatchdogKick
 913              	.L63:
 289:../Application/MemoryManager/MemoryManager.c **** 	}
 290:../Application/MemoryManager/MemoryManager.c **** 
 291:../Application/MemoryManager/MemoryManager.c **** 	MemoryManagerCtrl.nbrLog = 0;
 914              		.loc 1 291 0
 915 002c 244B     		ldr	r3, .L71
 916 002e 0022     		mov	r2, #0
 917 0030 5A60     		str	r2, [r3, #4]
 292:../Application/MemoryManager/MemoryManager.c **** 
 293:../Application/MemoryManager/MemoryManager.c **** 	unsigned char data[MEMORYMANAGER_LOG_SIZE] = {0};
 918              		.loc 1 293 0
 919 0032 3B1D     		add	r3, r7, #4
 920 0034 1A1C     		mov	r2, r3
 921 0036 4823     		mov	r3, #72
 922 0038 101C     		mov	r0, r2
 923 003a 0021     		mov	r1, #0
 924 003c 1A1C     		mov	r2, r3
 925 003e FFF7FEFF 		bl	memset
 294:../Application/MemoryManager/MemoryManager.c **** 
 295:../Application/MemoryManager/MemoryManager.c **** 	//Erase
 296:../Application/MemoryManager/MemoryManager.c **** 	while(result == 0 && MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG) {
 926              		.loc 1 296 0
 927 0042 19E0     		b	.L64
 928              	.L66:
 297:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 929              		.loc 1 297 0
 930 0044 FFF7FEFF 		bl	WatchdogKick
 298:../Application/MemoryManager/MemoryManager.c **** 		result = FM25V20WriteData(MEMORYMANAGER_ADDR_LOG_START + (MemoryManagerCtrl.nbrLog * MEMORYMANAGE
 931              		.loc 1 298 0
 932 0048 1D4B     		ldr	r3, .L71
 933 004a 5A68     		ldr	r2, [r3, #4]
 934 004c 131C     		mov	r3, r2
 935 004e DB00     		lsl	r3, r3, #3
 936 0050 9B18     		add	r3, r3, r2
 937 0052 DB00     		lsl	r3, r3, #3
 938 0054 1A1C     		mov	r2, r3
 939 0056 4032     		add	r2, r2, #64
 940 0058 3B1D     		add	r3, r7, #4
 941 005a 101C     		mov	r0, r2
 942 005c 191C     		mov	r1, r3
 943 005e 4822     		mov	r2, #72
 944 0060 FFF7FEFF 		bl	FM25V20WriteData
 945 0064 031C     		mov	r3, r0
 946 0066 1A1C     		mov	r2, r3
 947 0068 3B1C     		mov	r3, r7
 948 006a 4E33     		add	r3, r3, #78
 949 006c 1A80     		strh	r2, [r3]
 299:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.nbrLog++;
 950              		.loc 1 299 0
 951 006e 144B     		ldr	r3, .L71
 952 0070 5B68     		ldr	r3, [r3, #4]
 953 0072 5A1C     		add	r2, r3, #1
 954 0074 124B     		ldr	r3, .L71
 955 0076 5A60     		str	r2, [r3, #4]
 956              	.L64:
 296:../Application/MemoryManager/MemoryManager.c **** 	while(result == 0 && MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG) {
 957              		.loc 1 296 0 discriminator 1
 958 0078 3B1C     		mov	r3, r7
 959 007a 4E33     		add	r3, r3, #78
 960 007c 0022     		mov	r2, #0
 961 007e 9B5E     		ldrsh	r3, [r3, r2]
 962 0080 002B     		cmp	r3, #0
 963 0082 04D1     		bne	.L65
 296:../Application/MemoryManager/MemoryManager.c **** 	while(result == 0 && MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG) {
 964              		.loc 1 296 0 is_stmt 0 discriminator 2
 965 0084 0E4B     		ldr	r3, .L71
 966 0086 5A68     		ldr	r2, [r3, #4]
 967 0088 0E4B     		ldr	r3, .L71+4
 968 008a 9A42     		cmp	r2, r3
 969 008c DAD9     		bls	.L66
 970              	.L65:
 300:../Application/MemoryManager/MemoryManager.c **** 	}
 301:../Application/MemoryManager/MemoryManager.c **** 
 302:../Application/MemoryManager/MemoryManager.c **** 	MemoryManagerCtrl.nbrLog = 0;		//Clear log counter
 971              		.loc 1 302 0 is_stmt 1
 972 008e 0C4B     		ldr	r3, .L71
 973 0090 0022     		mov	r2, #0
 974 0092 5A60     		str	r2, [r3, #4]
 303:../Application/MemoryManager/MemoryManager.c **** 
 304:../Application/MemoryManager/MemoryManager.c **** 	/*=== restore low power mode ===*/
 305:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 975              		.loc 1 305 0
 976 0094 3B1C     		mov	r3, r7
 977 0096 4D33     		add	r3, r3, #77
 978 0098 1B78     		ldrb	r3, [r3]
 979 009a 012B     		cmp	r3, #1
 980 009c 01D1     		bne	.L67
 306:../Application/MemoryManager/MemoryManager.c **** 		FM25V20LPM();
 981              		.loc 1 306 0
 982 009e FFF7FEFF 		bl	FM25V20LPM
 983              	.L67:
 307:../Application/MemoryManager/MemoryManager.c **** 	}
 308:../Application/MemoryManager/MemoryManager.c **** 
 309:../Application/MemoryManager/MemoryManager.c **** 	if(result == 0) {
 984              		.loc 1 309 0
 985 00a2 3B1C     		mov	r3, r7
 986 00a4 4E33     		add	r3, r3, #78
 987 00a6 0022     		mov	r2, #0
 988 00a8 9B5E     		ldrsh	r3, [r3, r2]
 989 00aa 002B     		cmp	r3, #0
 990 00ac 01D1     		bne	.L68
 310:../Application/MemoryManager/MemoryManager.c **** 		return 0;
 991              		.loc 1 310 0
 992 00ae 0023     		mov	r3, #0
 993 00b0 00E0     		b	.L70
 994              	.L68:
 311:../Application/MemoryManager/MemoryManager.c **** 	} else {
 312:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 995              		.loc 1 312 0
 996 00b2 054B     		ldr	r3, .L71+8
 997              	.L70:
 998 00b4 1BB2     		sxth	r3, r3
 313:../Application/MemoryManager/MemoryManager.c **** 	}
 314:../Application/MemoryManager/MemoryManager.c **** }
 999              		.loc 1 314 0
 1000 00b6 181C     		mov	r0, r3
 1001 00b8 BD46     		mov	sp, r7
 1002 00ba 15B0     		add	sp, sp, #84
 1003              		@ sp needed
 1004 00bc 90BD     		pop	{r4, r7, pc}
 1005              	.L72:
 1006 00be C046     		.align	2
 1007              	.L71:
 1008 00c0 00000000 		.word	MemoryManagerCtrl
 1009 00c4 370E0000 		.word	3639
 1010 00c8 FFFF0000 		.word	65535
 1011              		.cfi_endproc
 1012              	.LFE41:
 1014              		.section	.text.MemoryManagerComputeNbrLog,"ax",%progbits
 1015              		.align	2
 1016              		.global	MemoryManagerComputeNbrLog
 1017              		.code	16
 1018              		.thumb_func
 1020              	MemoryManagerComputeNbrLog:
 1021              	.LFB42:
 315:../Application/MemoryManager/MemoryManager.c **** 
 316:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerComputeNbrLog (void) {
 1022              		.loc 1 316 0
 1023              		.cfi_startproc
 1024 0000 90B5     		push	{r4, r7, lr}
 1025              		.cfi_def_cfa_offset 12
 1026              		.cfi_offset 4, -12
 1027              		.cfi_offset 7, -8
 1028              		.cfi_offset 14, -4
 1029 0002 83B0     		sub	sp, sp, #12
 1030              		.cfi_def_cfa_offset 24
 1031 0004 00AF     		add	r7, sp, #0
 1032              		.cfi_def_cfa_register 7
 317:../Application/MemoryManager/MemoryManager.c **** 
 318:../Application/MemoryManager/MemoryManager.c **** 	signed short result = 0;
 1033              		.loc 1 318 0
 1034 0006 BB1D     		add	r3, r7, #6
 1035 0008 0022     		mov	r2, #0
 1036 000a 1A80     		strh	r2, [r3]
 319:../Application/MemoryManager/MemoryManager.c **** 
 320:../Application/MemoryManager/MemoryManager.c **** 	tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 1037              		.loc 1 320 0
 1038 000c 7C1D     		add	r4, r7, #5
 1039 000e FFF7FEFF 		bl	FM25V20IsInLowPower
 1040 0012 031C     		mov	r3, r0
 1041 0014 2370     		strb	r3, [r4]
 321:../Application/MemoryManager/MemoryManager.c **** 
 322:../Application/MemoryManager/MemoryManager.c **** 	/*=== Wake up device if it's in lpm ===*/
 323:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 1042              		.loc 1 323 0
 1043 0016 7B1D     		add	r3, r7, #5
 1044 0018 1B78     		ldrb	r3, [r3]
 1045 001a 012B     		cmp	r3, #1
 1046 001c 03D1     		bne	.L74
 324:../Application/MemoryManager/MemoryManager.c **** 		FM25V20WakeUp();
 1047              		.loc 1 324 0
 1048 001e FFF7FEFF 		bl	FM25V20WakeUp
 325:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 1049              		.loc 1 325 0
 1050 0022 FFF7FEFF 		bl	WatchdogKick
 1051              	.L74:
 326:../Application/MemoryManager/MemoryManager.c **** 	}
 327:../Application/MemoryManager/MemoryManager.c **** 
 328:../Application/MemoryManager/MemoryManager.c **** 	MemoryManagerCtrl.nbrLog = 0;
 1052              		.loc 1 328 0
 1053 0026 204B     		ldr	r3, .L82
 1054 0028 0022     		mov	r2, #0
 1055 002a 5A60     		str	r2, [r3, #4]
 329:../Application/MemoryManager/MemoryManager.c **** 	unsigned long data = 0xFFFFFFFF;
 1056              		.loc 1 329 0
 1057 002c 0123     		mov	r3, #1
 1058 002e 5B42     		neg	r3, r3
 1059 0030 3B60     		str	r3, [r7]
 330:../Application/MemoryManager/MemoryManager.c **** 
 331:../Application/MemoryManager/MemoryManager.c **** 
 332:../Application/MemoryManager/MemoryManager.c **** 	while(result == 0 && MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG && data != 0) {
 1060              		.loc 1 332 0
 1061 0032 18E0     		b	.L75
 1062              	.L77:
 333:../Application/MemoryManager/MemoryManager.c **** 		WatchdogKick();
 1063              		.loc 1 333 0
 1064 0034 FFF7FEFF 		bl	WatchdogKick
 334:../Application/MemoryManager/MemoryManager.c **** 		result = FM25V20ReadData(MEMORYMANAGER_ADDR_LOG_START + (MemoryManagerCtrl.nbrLog * MEMORYMANAGER
 1065              		.loc 1 334 0
 1066 0038 1B4B     		ldr	r3, .L82
 1067 003a 5A68     		ldr	r2, [r3, #4]
 1068 003c 131C     		mov	r3, r2
 1069 003e DB00     		lsl	r3, r3, #3
 1070 0040 9B18     		add	r3, r3, r2
 1071 0042 DB00     		lsl	r3, r3, #3
 1072 0044 1A1C     		mov	r2, r3
 1073 0046 4032     		add	r2, r2, #64
 1074 0048 3B1C     		mov	r3, r7
 1075 004a 101C     		mov	r0, r2
 1076 004c 191C     		mov	r1, r3
 1077 004e 0422     		mov	r2, #4
 1078 0050 FFF7FEFF 		bl	FM25V20ReadData
 1079 0054 031C     		mov	r3, r0
 1080 0056 1A1C     		mov	r2, r3
 1081 0058 BB1D     		add	r3, r7, #6
 1082 005a 1A80     		strh	r2, [r3]
 335:../Application/MemoryManager/MemoryManager.c **** 		MemoryManagerCtrl.nbrLog++;
 1083              		.loc 1 335 0
 1084 005c 124B     		ldr	r3, .L82
 1085 005e 5B68     		ldr	r3, [r3, #4]
 1086 0060 5A1C     		add	r2, r3, #1
 1087 0062 114B     		ldr	r3, .L82
 1088 0064 5A60     		str	r2, [r3, #4]
 1089              	.L75:
 332:../Application/MemoryManager/MemoryManager.c **** 	while(result == 0 && MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG && data != 0) {
 1090              		.loc 1 332 0 discriminator 1
 1091 0066 BB1D     		add	r3, r7, #6
 1092 0068 0022     		mov	r2, #0
 1093 006a 9B5E     		ldrsh	r3, [r3, r2]
 1094 006c 002B     		cmp	r3, #0
 1095 006e 07D1     		bne	.L76
 332:../Application/MemoryManager/MemoryManager.c **** 	while(result == 0 && MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG && data != 0) {
 1096              		.loc 1 332 0 is_stmt 0 discriminator 2
 1097 0070 0D4B     		ldr	r3, .L82
 1098 0072 5A68     		ldr	r2, [r3, #4]
 1099 0074 0D4B     		ldr	r3, .L82+4
 1100 0076 9A42     		cmp	r2, r3
 1101 0078 02D8     		bhi	.L76
 332:../Application/MemoryManager/MemoryManager.c **** 	while(result == 0 && MemoryManagerCtrl.nbrLog < MEMORYMANAGER_MAX_NBR_LOG && data != 0) {
 1102              		.loc 1 332 0 discriminator 1
 1103 007a 3B68     		ldr	r3, [r7]
 1104 007c 002B     		cmp	r3, #0
 1105 007e D9D1     		bne	.L77
 1106              	.L76:
 336:../Application/MemoryManager/MemoryManager.c **** 	}
 337:../Application/MemoryManager/MemoryManager.c **** 
 338:../Application/MemoryManager/MemoryManager.c **** 	/*=== restore low power mode ===*/
 339:../Application/MemoryManager/MemoryManager.c **** 	if(LPM == FM25V20_LowPowerMode) {
 1107              		.loc 1 339 0 is_stmt 1
 1108 0080 7B1D     		add	r3, r7, #5
 1109 0082 1B78     		ldrb	r3, [r3]
 1110 0084 012B     		cmp	r3, #1
 1111 0086 01D1     		bne	.L78
 340:../Application/MemoryManager/MemoryManager.c **** 		FM25V20LPM();
 1112              		.loc 1 340 0
 1113 0088 FFF7FEFF 		bl	FM25V20LPM
 1114              	.L78:
 341:../Application/MemoryManager/MemoryManager.c **** 	}
 342:../Application/MemoryManager/MemoryManager.c **** 
 343:../Application/MemoryManager/MemoryManager.c **** 	if(result == -1) {
 1115              		.loc 1 343 0
 1116 008c BB1D     		add	r3, r7, #6
 1117 008e 0022     		mov	r2, #0
 1118 0090 9B5E     		ldrsh	r3, [r3, r2]
 1119 0092 0133     		add	r3, r3, #1
 1120 0094 01D1     		bne	.L79
 344:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 1121              		.loc 1 344 0
 1122 0096 064B     		ldr	r3, .L82+8
 1123 0098 00E0     		b	.L81
 1124              	.L79:
 345:../Application/MemoryManager/MemoryManager.c **** 	} else {
 346:../Application/MemoryManager/MemoryManager.c **** 		return 0;
 1125              		.loc 1 346 0
 1126 009a 0023     		mov	r3, #0
 1127              	.L81:
 1128 009c 1BB2     		sxth	r3, r3
 347:../Application/MemoryManager/MemoryManager.c **** 	}
 348:../Application/MemoryManager/MemoryManager.c **** }
 1129              		.loc 1 348 0
 1130 009e 181C     		mov	r0, r3
 1131 00a0 BD46     		mov	sp, r7
 1132 00a2 03B0     		add	sp, sp, #12
 1133              		@ sp needed
 1134 00a4 90BD     		pop	{r4, r7, pc}
 1135              	.L83:
 1136 00a6 C046     		.align	2
 1137              	.L82:
 1138 00a8 00000000 		.word	MemoryManagerCtrl
 1139 00ac 370E0000 		.word	3639
 1140 00b0 FFFF0000 		.word	65535
 1141              		.cfi_endproc
 1142              	.LFE42:
 1144              		.section	.text.MemoryManagerReadLog,"ax",%progbits
 1145              		.align	2
 1146              		.global	MemoryManagerReadLog
 1147              		.code	16
 1148              		.thumb_func
 1150              	MemoryManagerReadLog:
 1151              	.LFB43:
 349:../Application/MemoryManager/MemoryManager.c **** 
 350:../Application/MemoryManager/MemoryManager.c **** signed short MemoryManagerReadLog(unsigned short addr, tMemoryManagerLog* data) {
 1152              		.loc 1 350 0
 1153              		.cfi_startproc
 1154 0000 90B5     		push	{r4, r7, lr}
 1155              		.cfi_def_cfa_offset 12
 1156              		.cfi_offset 4, -12
 1157              		.cfi_offset 7, -8
 1158              		.cfi_offset 14, -4
 1159 0002 87B0     		sub	sp, sp, #28
 1160              		.cfi_def_cfa_offset 40
 1161 0004 00AF     		add	r7, sp, #0
 1162              		.cfi_def_cfa_register 7
 1163 0006 021C     		mov	r2, r0
 1164 0008 3960     		str	r1, [r7]
 1165 000a BB1D     		add	r3, r7, #6
 1166 000c 1A80     		strh	r2, [r3]
 351:../Application/MemoryManager/MemoryManager.c **** 
 352:../Application/MemoryManager/MemoryManager.c **** 	signed short result;
 353:../Application/MemoryManager/MemoryManager.c **** 
 354:../Application/MemoryManager/MemoryManager.c **** 	if(addr < MemoryManagerCtrl.nbrLog) {
 1167              		.loc 1 354 0
 1168 000e BB1D     		add	r3, r7, #6
 1169 0010 1A88     		ldrh	r2, [r3]
 1170 0012 2D4B     		ldr	r3, .L90
 1171 0014 5B68     		ldr	r3, [r3, #4]
 1172 0016 9A42     		cmp	r2, r3
 1173 0018 50D2     		bcs	.L85
 1174              	.LBB3:
 355:../Application/MemoryManager/MemoryManager.c **** 		tFM25V20_LPMState LPM = FM25V20IsInLowPower();
 1175              		.loc 1 355 0
 1176 001a 3C1C     		mov	r4, r7
 1177 001c 1534     		add	r4, r4, #21
 1178 001e FFF7FEFF 		bl	FM25V20IsInLowPower
 1179 0022 031C     		mov	r3, r0
 1180 0024 2370     		strb	r3, [r4]
 356:../Application/MemoryManager/MemoryManager.c **** 
 357:../Application/MemoryManager/MemoryManager.c **** 		/*=== Wake up device if it's in lpm ===*/
 358:../Application/MemoryManager/MemoryManager.c **** 		if(LPM == FM25V20_LowPowerMode) {
 1181              		.loc 1 358 0
 1182 0026 3B1C     		mov	r3, r7
 1183 0028 1533     		add	r3, r3, #21
 1184 002a 1B78     		ldrb	r3, [r3]
 1185 002c 012B     		cmp	r3, #1
 1186 002e 03D1     		bne	.L86
 359:../Application/MemoryManager/MemoryManager.c **** 			FM25V20WakeUp();
 1187              		.loc 1 359 0
 1188 0030 FFF7FEFF 		bl	FM25V20WakeUp
 360:../Application/MemoryManager/MemoryManager.c **** 			WatchdogKick();
 1189              		.loc 1 360 0
 1190 0034 FFF7FEFF 		bl	WatchdogKick
 1191              	.L86:
 361:../Application/MemoryManager/MemoryManager.c **** 		}
 362:../Application/MemoryManager/MemoryManager.c **** 
 363:../Application/MemoryManager/MemoryManager.c **** 		unsigned long memAddr = MEMORYMANAGER_ADDR_LOG_START + (addr * MEMORYMANAGER_LOG_SIZE);
 1192              		.loc 1 363 0
 1193 0038 BB1D     		add	r3, r7, #6
 1194 003a 1A88     		ldrh	r2, [r3]
 1195 003c 131C     		mov	r3, r2
 1196 003e DB00     		lsl	r3, r3, #3
 1197 0040 9B18     		add	r3, r3, r2
 1198 0042 DB00     		lsl	r3, r3, #3
 1199 0044 4033     		add	r3, r3, #64
 1200 0046 3B61     		str	r3, [r7, #16]
 364:../Application/MemoryManager/MemoryManager.c **** 
 365:../Application/MemoryManager/MemoryManager.c **** 		 result = FM25V20ReadData(memAddr, (unsigned char*)data, MEMORYMANAGER_LOG_SIZE);
 1201              		.loc 1 365 0
 1202 0048 3A69     		ldr	r2, [r7, #16]
 1203 004a 3B68     		ldr	r3, [r7]
 1204 004c 101C     		mov	r0, r2
 1205 004e 191C     		mov	r1, r3
 1206 0050 4822     		mov	r2, #72
 1207 0052 FFF7FEFF 		bl	FM25V20ReadData
 1208 0056 031C     		mov	r3, r0
 1209 0058 1A1C     		mov	r2, r3
 1210 005a 3B1C     		mov	r3, r7
 1211 005c 1633     		add	r3, r3, #22
 1212 005e 1A80     		strh	r2, [r3]
 366:../Application/MemoryManager/MemoryManager.c **** 
 367:../Application/MemoryManager/MemoryManager.c **** 		unsigned long checksumSave = data->logOp;
 1213              		.loc 1 367 0
 1214 0060 3B68     		ldr	r3, [r7]
 1215 0062 5B68     		ldr	r3, [r3, #4]
 1216 0064 FB60     		str	r3, [r7, #12]
 368:../Application/MemoryManager/MemoryManager.c **** 		checksumSave = (checksumSave >> 16) & 0x0000FFFF;
 1217              		.loc 1 368 0
 1218 0066 FB68     		ldr	r3, [r7, #12]
 1219 0068 1B0C     		lsr	r3, r3, #16
 1220 006a FB60     		str	r3, [r7, #12]
 369:../Application/MemoryManager/MemoryManager.c **** 
 370:../Application/MemoryManager/MemoryManager.c **** 		data->logOp &= 0x0000FFFF;
 1221              		.loc 1 370 0
 1222 006c 3B68     		ldr	r3, [r7]
 1223 006e 5B68     		ldr	r3, [r3, #4]
 1224 0070 1B04     		lsl	r3, r3, #16
 1225 0072 1A0C     		lsr	r2, r3, #16
 1226 0074 3B68     		ldr	r3, [r7]
 1227 0076 5A60     		str	r2, [r3, #4]
 371:../Application/MemoryManager/MemoryManager.c **** 
 372:../Application/MemoryManager/MemoryManager.c **** 		unsigned long checksum = ChecksumByteOnShortCompute((unsigned char*)data,MEMORYMANAGER_LOG_SIZE);
 1228              		.loc 1 372 0
 1229 0078 3B68     		ldr	r3, [r7]
 1230 007a 181C     		mov	r0, r3
 1231 007c 4821     		mov	r1, #72
 1232 007e FFF7FEFF 		bl	ChecksumByteOnShortCompute
 1233 0082 031C     		mov	r3, r0
 1234 0084 BB60     		str	r3, [r7, #8]
 373:../Application/MemoryManager/MemoryManager.c **** 
 374:../Application/MemoryManager/MemoryManager.c **** 		data->logOp |= (checksumSave<<16);
 1235              		.loc 1 374 0
 1236 0086 3B68     		ldr	r3, [r7]
 1237 0088 5A68     		ldr	r2, [r3, #4]
 1238 008a FB68     		ldr	r3, [r7, #12]
 1239 008c 1B04     		lsl	r3, r3, #16
 1240 008e 1A43     		orr	r2, r3
 1241 0090 3B68     		ldr	r3, [r7]
 1242 0092 5A60     		str	r2, [r3, #4]
 375:../Application/MemoryManager/MemoryManager.c **** 
 376:../Application/MemoryManager/MemoryManager.c **** 		if(checksum != checksumSave) {
 1243              		.loc 1 376 0
 1244 0094 BA68     		ldr	r2, [r7, #8]
 1245 0096 FB68     		ldr	r3, [r7, #12]
 1246 0098 9A42     		cmp	r2, r3
 1247 009a 04D0     		beq	.L87
 377:../Application/MemoryManager/MemoryManager.c **** 			result = -1;
 1248              		.loc 1 377 0
 1249 009c 3B1C     		mov	r3, r7
 1250 009e 1633     		add	r3, r3, #22
 1251 00a0 0122     		mov	r2, #1
 1252 00a2 5242     		neg	r2, r2
 1253 00a4 1A80     		strh	r2, [r3]
 1254              	.L87:
 378:../Application/MemoryManager/MemoryManager.c **** 		}
 379:../Application/MemoryManager/MemoryManager.c **** 
 380:../Application/MemoryManager/MemoryManager.c **** 		/*=== restore low power mode ===*/
 381:../Application/MemoryManager/MemoryManager.c **** 		if(LPM == FM25V20_LowPowerMode) {
 1255              		.loc 1 381 0
 1256 00a6 3B1C     		mov	r3, r7
 1257 00a8 1533     		add	r3, r3, #21
 1258 00aa 1B78     		ldrb	r3, [r3]
 1259 00ac 012B     		cmp	r3, #1
 1260 00ae 01D1     		bne	.L88
 382:../Application/MemoryManager/MemoryManager.c **** 			FM25V20LPM();
 1261              		.loc 1 382 0
 1262 00b0 FFF7FEFF 		bl	FM25V20LPM
 1263              	.L88:
 383:../Application/MemoryManager/MemoryManager.c **** 		}
 384:../Application/MemoryManager/MemoryManager.c **** 
 385:../Application/MemoryManager/MemoryManager.c **** 		return result;
 1264              		.loc 1 385 0
 1265 00b4 3B1C     		mov	r3, r7
 1266 00b6 1633     		add	r3, r3, #22
 1267 00b8 1B88     		ldrh	r3, [r3]
 1268 00ba 00E0     		b	.L89
 1269              	.L85:
 1270              	.LBE3:
 386:../Application/MemoryManager/MemoryManager.c **** 
 387:../Application/MemoryManager/MemoryManager.c **** 	} else {
 388:../Application/MemoryManager/MemoryManager.c **** 		return -1;
 1271              		.loc 1 388 0
 1272 00bc 034B     		ldr	r3, .L90+4
 1273              	.L89:
 1274 00be 1BB2     		sxth	r3, r3
 389:../Application/MemoryManager/MemoryManager.c **** 	}
 390:../Application/MemoryManager/MemoryManager.c **** }
 1275              		.loc 1 390 0
 1276 00c0 181C     		mov	r0, r3
 1277 00c2 BD46     		mov	sp, r7
 1278 00c4 07B0     		add	sp, sp, #28
 1279              		@ sp needed
 1280 00c6 90BD     		pop	{r4, r7, pc}
 1281              	.L91:
 1282              		.align	2
 1283              	.L90:
 1284 00c8 00000000 		.word	MemoryManagerCtrl
 1285 00cc FFFF0000 		.word	65535
 1286              		.cfi_endproc
 1287              	.LFE43:
 1289              		.text
 1290              	.Letext0:
 1291              		.file 2 "../Application/SRD/SRDMemorymapping.h"
 1292              		.file 3 "../BSP/FRAM/FM25V20.h"
 1293              		.file 4 "../Application/MemoryManager/MemoryManager.h"
DEFINED SYMBOLS
                            *ABS*:00000000 MemoryManager.c
                            *COM*:00000008 MemoryManagerCtrl
                            *COM*:00000004 DivingParameters
                            *COM*:00000010 SerialParameters
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:21     .text.MemoryManagerInit:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:26     .text.MemoryManagerInit:00000000 MemoryManagerInit
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:136    .text.MemoryManagerReadDiving:00000000 MemoryManagerReadDiving
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:221    .text.MemoryManagerCheckDiving:00000000 MemoryManagerCheckDiving
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:420    .text.MemoryManagerReadSerial:00000000 MemoryManagerReadSerial
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:505    .text.MemoryManagerCheckSerial:00000000 MemoryManagerCheckSerial
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:1020   .text.MemoryManagerComputeNbrLog:00000000 MemoryManagerComputeNbrLog
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:124    .text.MemoryManagerInit:0000008c $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:131    .text.MemoryManagerReadDiving:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:211    .text.MemoryManagerReadDiving:00000068 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:216    .text.MemoryManagerCheckDiving:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:289    .text.MemoryManagerCheckDiving:0000005c $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:294    .text.MemoryManagerWriteDiving:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:299    .text.MemoryManagerWriteDiving:00000000 MemoryManagerWriteDiving
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:409    .text.MemoryManagerWriteDiving:000000a4 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:415    .text.MemoryManagerReadSerial:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:495    .text.MemoryManagerReadSerial:00000068 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:500    .text.MemoryManagerCheckSerial:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:567    .text.MemoryManagerCheckSerial:00000050 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:572    .text.MemoryManagerWriteSerial:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:577    .text.MemoryManagerWriteSerial:00000000 MemoryManagerWriteSerial
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:680    .text.MemoryManagerWriteSerial:00000098 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:686    .text.MemoryManagerWriteLog:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:691    .text.MemoryManagerWriteLog:00000000 MemoryManagerWriteLog
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:867    .text.MemoryManagerWriteLog:00000110 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:874    .text.MemoryManagerClearLog:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:879    .text.MemoryManagerClearLog:00000000 MemoryManagerClearLog
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:1008   .text.MemoryManagerClearLog:000000c0 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:1015   .text.MemoryManagerComputeNbrLog:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:1138   .text.MemoryManagerComputeNbrLog:000000a8 $d
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:1145   .text.MemoryManagerReadLog:00000000 $t
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:1150   .text.MemoryManagerReadLog:00000000 MemoryManagerReadLog
C:\Users\Thibaut\AppData\Local\Temp\ccnimnYp.s:1284   .text.MemoryManagerReadLog:000000c8 $d
                     .debug_frame:00000010 $d
                           .group:00000000 wm4.1.e04ac588437856bc6ef5393c7523eb9b
                           .group:00000000 wm4.MKL16Z4.h.90.bfde7d3466e2aaae63e51401b8102c97
                           .group:00000000 wm4.stdint.h.10.90b695f550ca6cc3fb08fa83baf01e05
                           .group:00000000 wm4.MKL16Z4.h.103.3e71c13f67b70bf817331938e7ca6a21
                           .group:00000000 wm4.core_cm0plus.h.43.8a4a713129c4559638c90873d349aea7
                           .group:00000000 wm4.core_cmInstr.h.39.983ab10f37e3e59f2988e58e0e4c2ffe
                           .group:00000000 wm4.core_cm0plus.h.155.59f470bcbcb3497af7bb725005dd1359
                           .group:00000000 wm4.system_MKL16Z4.h.88.72b1d1936df247599ee4cea7d4cce2ba
                           .group:00000000 wm4.MKL16Z4.h.269.abf5f141593110fd4167c1d7382def80
                           .group:00000000 wm4.DSP_mkl16z256vlh4.h.41.eda3ab3179e3d55e14f47eb53566a464
                           .group:00000000 wm4.spi1.h.37.70b4d7f7842909528371b0d728efddf6
                           .group:00000000 wm4.FM25V20.h.37.bab310bac0b9fe3c9b553014d8517875
                           .group:00000000 wm4.SRDMemorymapping.h.14.0f57e1c6dbbba59a11bbccc2f434d3a9
                           .group:00000000 wm4.MemoryManager.h.40.8798350820305da8d39f9c88fc625152

UNDEFINED SYMBOLS
FM25V20Init
WatchdogKick
FM25V20IsInLowPower
FM25V20WakeUp
FM25V20ReadData
FM25V20LPM
ChecksumByteCompute
FM25V20WriteData
ChecksumByteOnShortCompute
memset
