diff --git a/Obj_4/Librairie/GFSSP72/GFSSP72.pdf b/Obj_4/Librairie/GFSSP72/GFSSP72.pdf new file mode 100644 index 0000000..fc4f40c Binary files /dev/null and b/Obj_4/Librairie/GFSSP72/GFSSP72.pdf differ diff --git a/Obj_4/Librairie/GFSSP72/gassp72.h b/Obj_4/Librairie/GFSSP72/gassp72.h new file mode 100644 index 0000000..6cfaee4 --- /dev/null +++ b/Obj_4/Librairie/GFSSP72/gassp72.h @@ -0,0 +1,115 @@ +/** + * Bibliotheque GASSP 2013-02-15 + * + * GPIO - ADC - Sequenceur - System Timer - PWM - 72 MHz + * + */ + +// STM32F10X_CL : pour le STM32F107 "Communication Line" +// STM32F10X_MD : pour le STM32F103 "Medium Density" + +//#define STM32F10X_MD // 2019 fix for Keil 5.23 + +#include "stm32f10x.h" + +// horloge systeme (config statique a 72 MHz pour le STM32F103) ------------ +void CLOCK_Configure(void); + +// Timers 1, 2, 3, 4 ------------------------------------------------------- +// la duree entre deux debordements successifs doit etre donnnee en periodes +// d'horloge CPU (typiquement 72 MHz) +void Timer_1234_Init_ff( TIM_TypeDef *Timer, u32 Duree_ticks ); + +// activation d'une fonction de traitement de l'interruption timer (callback) +void Active_IT_Debordement_Timer( TIM_TypeDef *Timer, char Prio, void (*IT_function)(void) ); + +// bloque le timer +#define Bloque_Timer(Timer) Timer->CR1=(Timer->CR1)&~(1<<0) + +// Lance timer +#define Run_Timer(Timer) Timer->CR1=(Timer->CR1)|(1<<0) + +// PWM (basee sur un des Timers 1, 2, 3, 4 --------------------------------- +// la periode doit etre donnee en periodes d'horloge CPU (typiquement 72 MHz) +// la fonction rend la pleine echelle ou resolution, c'est a dire la plage +// de valeurs acceptees pour moduler la largeur d'impulsion +vu16 PWM_Init_ff( TIM_TypeDef *Timer, char Voie, u32 Periode_ticks ); + +// Timer systeme "SysTick" ------------------------------------------------- + +// la periode doit etre donnee en periodes d'horloge CPU (typiquement 72 MHz) +void Systick_Period_ff( unsigned int Periode_ticks ); + +// activation d'une fonction de traitement de l'interruption timer (callback) +void Systick_Prio_IT( char Prio, void (*Systick_function)(void) ); + +#define SysTick_On ((SysTick->CTRL)=(SysTick->CTRL)|1<<0) +#define SysTick_Off ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<0)) +#define SysTick_Enable_IT ((SysTick->CTRL)=(SysTick->CTRL)|1<<1) +#define SysTick_Disable_IT ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<1)) + +// ADC - DMA --------------------------------------------------------------- +// Analog-to-Digital Conversion, Direct Memory Access + +// la duree d'echantillonnage doit etre donnee en periodes d'horloge CPU (typiquement 72 MHz) +// la fonction rend la duree totale de conversion (meme unites) +u32 Init_TimingADC_ActiveADC_ff( ADC_TypeDef * ADC, u32 Duree_Ech_ticks ); + +// choix d'un canal ADC unique +void Single_Channel_ADC( ADC_TypeDef * ADC, char Voie_ADC ); + +// la periode de repetition des acquisitions doit etre donnee en periodes d'horloge CPU +// Les sources de déclenchement possibles : +#define TIM1_CC1 0 +#define TIM1_CC2 1 +#define TIM1_CC3 2 +#define TIM2_CC2 3 +#define TIM4_CC4 5 +void Init_Conversion_On_Trig_Timer_ff( ADC_TypeDef * ADC, char Source, u32 Periode_ticks ); + +// initialisation d'acquisition en mode DMA +// Ptr_Table_DMA doit pointer sur un espace memoire suffisant pour le nombre d'ech. demande +void Init_ADC1_DMA1( char Circ, vu16 *Ptr_Table_DMA ); + + +// Lance une DMA sur le nombre de points spécifie. Les resultats seront stockes +// dans la zone de RAM écrite est indiquée lors de l'appel de la fonction Init_ADC1_DMA1 +void Start_DMA1( u16 NbEchDMA ); + +// arret DMA +#define Stop_DMA1 DMA1_Channel1->CCR =(DMA1_Channel1->CCR) &~0x1; + +// fonction d'attente (bloquante) +// la duree depend de la periode d'acquisition et du nombre d'echantillons +void Wait_On_End_Of_DMA1(void); + + +// GPIO -------------------------------------------------------------------- + +// Sens +#define INPUT 'i' +#define OUTPUT 'o' + +// Techno pour pin en entrée (INPUT) +#define ANALOG 0 +#define INPUT_FLOATING 1 +#define INPUT_PULL_DOWN_UP 2 + +// Techno pour pin en sortie (OUTPUT) +#define OUTPUT_PPULL 0 +#define OUTPUT_OPDRAIN 1 +#define ALT_PPULL 2 +#define ALT_OPDRAIN 3 + +// La fonction initialise n'importe quelle broche de port (entrée, sortie, techno....) +// Exemple : +// Port_IO_Init(GPIOB, 8, OUTPUT, OUTPUT_PPULL); +// Place le bit 8 du port B en sortie Push-pull +// Renvoie 0 si tout est OK, et 1 s'il y a un problème (plage d'entrée non respectée) +char GPIO_Configure(GPIO_TypeDef * Port, int Broche, int Sens, int Techno); + +// Spécifier le numéro de broche (0 à 15) +// exemple : Port_IO_Set(GPIOB,8); +#define GPIO_Set(GPIO,Broche) GPIO->BSRR=(0x01<BRR=(0x01< + +
+

µVision Build Log

+

Tool Versions:

+IDE-Version: µVision V5.25.2.0 +Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: CSN CSN, INSA de Toulouse, LIC=---- + +Tool Versions: +Toolchain: MDK-Lite Version: 5.25.2.0 +Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin +C Compiler: Armcc.exe V5.06 update 6 (build 750) +Assembler: Armasm.exe V5.06 update 6 (build 750) +Linker/Locator: ArmLink.exe V5.06 update 6 (build 750) +Library Manager: ArmAr.exe V5.06 update 6 (build 750) +Hex Converter: FromElf.exe V5.06 update 6 (build 750) +CPU DLL: SARMCM3.DLL V5.25.2.0 +Dialog DLL: DARMSTM.DLL V1.68.0.0 +Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.1.0 +Dialog DLL: TCM.DLL V1.35.1.0 + +

Project:

+U:\Windows\Bureau\BE_CHTI\Obj_4\Project.uvprojx +Project File Date: 05/29/2020 + +

Output:

+*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' +Rebuild target 'Simu' +assembling startup-rvds.s... +assembling TabSinCos.asm... +assembling Son.s... +assembling DFT.s... +assembling bruitverre.asm... +compiling principal.c... +linking... +Program Size: Code=4164 RO-data=11556 RW-data=420 ZI-data=1560 +FromELF: creating hex file... +".\Obj\CHTI.axf" - 0 Error(s), 0 Warning(s). + +

Software Packages used:

+ +Package Vendor: ARM + http://www.keil.com/pack/ARM.CMSIS.5.3.0.pack + ARM.CMSIS.5.3.0 + CMSIS (Cortex Microcontroller Software Interface Standard) + * Component: CORE Version: 5.1.1 + +Package Vendor: Keil + http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.2.0.pack + Keil.STM32F1xx_DFP.2.2.0 + STMicroelectronics STM32F1 Series Device Support, Drivers and Examples + +

Collection of Component include folders:

+ .\RTE\_Simu + C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.3.0\CMSIS\Include + C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Device\Include + +

Collection of Component Files used:

+ + * Component: ARM::CMSIS:CORE:5.1.1 +Build Time Elapsed: 00:00:01 +
+ + diff --git a/Obj_4/Obj/CHTI.map b/Obj_4/Obj/CHTI.map new file mode 100644 index 0000000..1eb8292 --- /dev/null +++ b/Obj_4/Obj/CHTI.map @@ -0,0 +1,634 @@ +Component: ARM Compiler 5.06 update 6 (build 750) Tool: armlink [4d35ed] + +============================================================================== + +Section Cross References + + principal.o(i.main) refers to clock.o(i.CLOCK_Configure) for CLOCK_Configure + principal.o(i.main) refers to gpio.o(i.GPIO_Configure) for GPIO_Configure + principal.o(i.main) refers to timer_1234.o(i.PWM_Init_ff) for PWM_Init_ff + principal.o(i.main) refers to timer_1234.o(i.Timer_1234_Init_ff) for Timer_1234_Init_ff + principal.o(i.main) refers to timer_1234.o(i.Active_IT_Debordement_Timer) for Active_IT_Debordement_Timer + principal.o(i.main) refers to adc_fake.o(i.Init_TimingADC_ActiveADC_ff) for Init_TimingADC_ActiveADC_ff + principal.o(i.main) refers to adc_fake.o(i.Single_Channel_ADC) for Single_Channel_ADC + principal.o(i.main) refers to adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) for Init_Conversion_On_Trig_Timer_ff + principal.o(i.main) refers to adc_fake.o(i.Init_ADC1_DMA1) for Init_ADC1_DMA1 + principal.o(i.main) refers to timer_systick.o(i.Systick_Period_ff) for Systick_Period_ff + principal.o(i.main) refers to timer_systick.o(i.Systick_Prio_IT) for Systick_Prio_IT + principal.o(i.main) refers to bruitverre.o(SecSon) for PeriodeSonMicroSec + principal.o(i.main) refers to principal.o(.bss) for etat + principal.o(i.main) refers to son.o(moncode) for timer_callback + principal.o(i.main) refers to principal.o(i.sys_callback) for sys_callback + principal.o(i.sys_callback) refers to adc_fake.o(i.Start_DMA1) for Start_DMA1 + principal.o(i.sys_callback) refers to adc_fake.o(i.Wait_On_End_Of_DMA1) for Wait_On_End_Of_DMA1 + principal.o(i.sys_callback) refers to dft.o(moncode) for CalculM + principal.o(i.sys_callback) refers to principal.o(.bss) for dma_buf + startup-rvds.o(RESET) refers to startup-rvds.o(STACK) for __initial_sp + startup-rvds.o(RESET) refers to startup-rvds.o(.text) for Reset_Handler + startup-rvds.o(RESET) refers to timer_systick.o(i.SysTick_Handler) for SysTick_Handler + startup-rvds.o(RESET) refers to timer_1234.o(i.TIM1_UP_IRQHandler) for TIM1_UP_IRQHandler + startup-rvds.o(RESET) refers to timer_1234.o(i.TIM1_CC_IRQHandler) for TIM1_CC_IRQHandler + startup-rvds.o(RESET) refers to timer_1234.o(i.TIM2_IRQHandler) for TIM2_IRQHandler + startup-rvds.o(RESET) refers to timer_1234.o(i.TIM3_IRQHandler) for TIM3_IRQHandler + startup-rvds.o(RESET) refers to timer_1234.o(i.TIM4_IRQHandler) for TIM4_IRQHandler + startup-rvds.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main + dft.o(moncode) refers to tabsincos.o(Trigo) for TabCos + son.o(moncode) refers to principal.o(.bss) for etat + clock.o(i.CLOCK_Configure) refers to clock.o(i.CLOCK_HPRECompute) for CLOCK_HPRECompute + timer_1234.o(i.Active_IT_Compare_Timer) refers to timer_1234.o(.data) for .data + timer_1234.o(i.Active_IT_Debordement_Timer) refers to timer_1234.o(.data) for .data + timer_1234.o(i.Capture_Init) refers to clock.o(i.CLOCK_GetTIMCLK) for CLOCK_GetTIMCLK + timer_1234.o(i.Capture_Init) refers to dfltui.o(.text) for __aeabi_ui2d + timer_1234.o(i.Capture_Init) refers to f2d.o(.text) for __aeabi_f2d + timer_1234.o(i.Capture_Init) refers to dmul.o(.text) for __aeabi_dmul + timer_1234.o(i.Capture_Init) refers to ddiv.o(.text) for __aeabi_ddiv + timer_1234.o(i.Capture_Init) refers to d2f.o(.text) for __aeabi_d2f + timer_1234.o(i.Capture_Init) refers to ffltui.o(.text) for __aeabi_ui2f + timer_1234.o(i.Capture_Init) refers to fmul.o(.text) for __aeabi_fmul + timer_1234.o(i.Capture_Init) refers to ffixui.o(.text) for __aeabi_f2uiz + timer_1234.o(i.Capture_Init) refers to ffixi.o(.text) for __aeabi_f2iz + timer_1234.o(i.Lire_Duree_Pulse) refers to timer_1234.o(.data) for .data + timer_1234.o(i.PWM_Init) refers to f2d.o(.text) for __aeabi_f2d + timer_1234.o(i.PWM_Init) refers to ddiv.o(.text) for __aeabi_ddiv + timer_1234.o(i.PWM_Init) refers to d2f.o(.text) for __aeabi_d2f + timer_1234.o(i.PWM_Init) refers to timer_1234.o(i.Timer_1234_Init) for Timer_1234_Init + timer_1234.o(i.PWM_Init_ff) refers to timer_1234.o(i.Timer_1234_Init_ff) for Timer_1234_Init_ff + timer_1234.o(i.TIM1_CC_IRQHandler) refers to timer_1234.o(.data) for .data + timer_1234.o(i.TIM1_UP_IRQHandler) refers to timer_1234.o(.data) for .data + timer_1234.o(i.TIM2_IRQHandler) refers to timer_1234.o(.data) for .data + timer_1234.o(i.TIM3_IRQHandler) refers to timer_1234.o(.data) for .data + timer_1234.o(i.TIM4_IRQHandler) refers to timer_1234.o(.data) for .data + timer_1234.o(i.Timer_1234_Init) refers to clock.o(i.CLOCK_GetTIMCLK) for CLOCK_GetTIMCLK + timer_1234.o(i.Timer_1234_Init) refers to ffltui.o(.text) for __aeabi_ui2f + timer_1234.o(i.Timer_1234_Init) refers to fmul.o(.text) for __aeabi_fmul + timer_1234.o(i.Timer_1234_Init) refers to f2d.o(.text) for __aeabi_f2d + timer_1234.o(i.Timer_1234_Init) refers to ddiv.o(.text) for __aeabi_ddiv + timer_1234.o(i.Timer_1234_Init) refers to d2f.o(.text) for __aeabi_d2f + timer_1234.o(i.Timer_1234_Init) refers to fscalb.o(.text) for __ARM_scalbnf + timer_1234.o(i.Timer_1234_Init) refers to ffixui.o(.text) for __aeabi_f2uiz + timer_1234.o(i.Timer_1234_Init) refers to fdiv.o(.text) for __aeabi_fdiv + timer_1234.o(i.Timer_1234_Init) refers to dfltui.o(.text) for __aeabi_ui2d + timer_1234.o(i.Timer_1234_Init) refers to dadd.o(.text) for __aeabi_dadd + timer_1234.o(i.Timer_1234_Init) refers to dmul.o(.text) for __aeabi_dmul + timer_1234.o(i.Timer_1234_Init_ff) refers to clock.o(i.CLOCK_GetHCLK) for CLOCK_GetHCLK + timer_1234.o(i.Timer_1234_Init_ff) refers to clock.o(i.CLOCK_GetTIMCLK) for CLOCK_GetTIMCLK + timer_systick.o(i.SysTick_Handler) refers to timer_systick.o(.data) for .data + timer_systick.o(i.Systick_Period) refers to clock.o(i.CLOCK_GetHCLK) for CLOCK_GetHCLK + timer_systick.o(i.Systick_Period) refers to ffltui.o(.text) for __aeabi_ui2f + timer_systick.o(i.Systick_Period) refers to fmul.o(.text) for __aeabi_fmul + timer_systick.o(i.Systick_Period) refers to f2d.o(.text) for __aeabi_f2d + timer_systick.o(i.Systick_Period) refers to ddiv.o(.text) for __aeabi_ddiv + timer_systick.o(i.Systick_Period) refers to d2f.o(.text) for __aeabi_d2f + timer_systick.o(i.Systick_Period) refers to ffixui.o(.text) for __aeabi_f2uiz + timer_systick.o(i.Systick_Period) refers to fdiv.o(.text) for __aeabi_fdiv + timer_systick.o(i.Systick_Period) refers to dmul.o(.text) for __aeabi_dmul + timer_systick.o(i.Systick_Prio_IT) refers to timer_systick.o(.data) for .data + adc_fake.o(i.Init_ADC1_DMA1) refers to adc_fake.o(.bss) for .bss + adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) refers to clock.o(i.CLOCK_GetHCLK) for CLOCK_GetHCLK + adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) refers to timer_1234.o(i.Timer_1234_Init_ff) for Timer_1234_Init_ff + adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) refers to timer_1234.o(i.Active_IT_Debordement_Timer) for Active_IT_Debordement_Timer + adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) refers to adc_fake.o(.bss) for .bss + adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) refers to adc_fake.o(i.fake_timer_callback) for fake_timer_callback + adc_fake.o(i.Init_TimingADC_ActiveADC_ff) refers to clock.o(i.CLOCK_GetADCCLK) for CLOCK_GetADCCLK + adc_fake.o(i.Init_TimingADC_ActiveADC_ff) refers to clock.o(i.CLOCK_GetHCLK) for CLOCK_GetHCLK + adc_fake.o(i.Init_TimingADC_ActiveADC_ff) refers to adc_fake.o(.bss) for .bss + adc_fake.o(i.Start_DMA1) refers to adc_fake.o(.bss) for .bss + adc_fake.o(i.Wait_On_End_Of_DMA1) refers to adc_fake.o(.bss) for .bss + adc_fake.o(i.Wait_On_End_Of_DMA1) refers to libcos.o(FakeTab) for LibCos + adc_fake.o(i.fake_timer_callback) refers to adc_fake.o(.bss) for .bss + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000D) for __rt_final_cpp + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$0000000F) for __rt_final_exit + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry9a.o(.ARM.Collect$$$$0000000B) for _main_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk + fmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers to fepilogue.o(.text) for _float_round + fscalb.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dadd.o(.text) refers to llshl.o(.text) for __aeabi_llsl + dadd.o(.text) refers to llsshr.o(.text) for __aeabi_lasr + dadd.o(.text) refers to depilogue.o(.text) for _double_epilogue + dmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dmul.o(.text) refers to depilogue.o(.text) for _double_epilogue + ddiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ddiv.o(.text) refers to depilogue.o(.text) for _double_round + ffltui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ffltui.o(.text) refers to fepilogue.o(.text) for _float_epilogue + dfltui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfltui.o(.text) refers to depilogue.o(.text) for _double_epilogue + ffixi.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ffixui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + f2d.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + d2f.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + d2f.o(.text) refers to fepilogue.o(.text) for _float_round + entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000 + entry2.o(.ARM.Collect$$$$00002712) refers to startup-rvds.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to startup-rvds.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main + entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload + entry9a.o(.ARM.Collect$$$$0000000B) refers to principal.o(i.main) for main + entry9b.o(.ARM.Collect$$$$0000000C) refers to principal.o(i.main) for main + depilogue.o(.text) refers to llshl.o(.text) for __aeabi_llsl + depilogue.o(.text) refers to llushr.o(.text) for __aeabi_llsr + init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload + + +============================================================================== + +Removing Unused input sections from the image. + + Removing principal.o(.rev16_text), (4 bytes). + Removing principal.o(.revsh_text), (4 bytes). + Removing principal.o(.rrx_text), (6 bytes). + Removing startup-rvds.o(HEAP), (512 bytes). + Removing son.o(madata), (4 bytes). + Removing clock.o(.rev16_text), (4 bytes). + Removing clock.o(.revsh_text), (4 bytes). + Removing clock.o(.rrx_text), (6 bytes). + Removing clock.o(i.CLOCK_GetPCLK1), (8 bytes). + Removing clock.o(i.CLOCK_GetPCLK2), (8 bytes). + Removing gpio.o(.rev16_text), (4 bytes). + Removing gpio.o(.revsh_text), (4 bytes). + Removing gpio.o(.rrx_text), (6 bytes). + Removing timer_1234.o(.rev16_text), (4 bytes). + Removing timer_1234.o(.revsh_text), (4 bytes). + Removing timer_1234.o(.rrx_text), (6 bytes). + Removing timer_1234.o(i.Active_IT_Compare_Timer), (492 bytes). + Removing timer_1234.o(i.Capture_Init), (484 bytes). + Removing timer_1234.o(i.Lire_Duree_Pulse), (96 bytes). + Removing timer_1234.o(i.PWM_Complementaire_Timer1), (60 bytes). + Removing timer_1234.o(i.PWM_Init), (200 bytes). + Removing timer_1234.o(i.Timer_1234_Init), (268 bytes). + Removing timer_1234.o(i.Timer_Inc_Init), (180 bytes). + Removing timer_systick.o(.rev16_text), (4 bytes). + Removing timer_systick.o(.revsh_text), (4 bytes). + Removing timer_systick.o(.rrx_text), (6 bytes). + Removing timer_systick.o(i.Systick_Period), (196 bytes). + Removing adc_fake.o(.rev16_text), (4 bytes). + Removing adc_fake.o(.revsh_text), (4 bytes). + Removing adc_fake.o(.rrx_text), (6 bytes). + Removing fmul.o(.text), (100 bytes). + Removing fdiv.o(.text), (124 bytes). + Removing fscalb.o(.text), (24 bytes). + Removing dadd.o(.text), (334 bytes). + Removing dmul.o(.text), (228 bytes). + Removing ddiv.o(.text), (222 bytes). + Removing ffltui.o(.text), (10 bytes). + Removing dfltui.o(.text), (26 bytes). + Removing ffixi.o(.text), (50 bytes). + Removing ffixui.o(.text), (40 bytes). + Removing f2d.o(.text), (38 bytes). + Removing d2f.o(.text), (56 bytes). + Removing fepilogue.o(.text), (110 bytes). + Removing depilogue.o(.text), (186 bytes). + +44 unused section(s) (total 4140 bytes) removed from the image. + +============================================================================== + +Adding Veneers to the image + + Adding TT veneer (10 bytes, Long) for call to 'CalculM' from principal.o(i.sys_callback). + +1 Veneer(s) (total 10 bytes) added to the image. + +============================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Ov Type Size Object(Section) + + ../clib/../cmprslib/zerorunl2.c 0x00000000 Number 0 __dczerorl2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE + ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE + ../fplib/microlib/d2f.c 0x00000000 Number 0 d2f.o ABSOLUTE + ../fplib/microlib/f2d.c 0x00000000 Number 0 f2d.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 fdiv.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 ffltui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE + ../fplib/microlib/fpscalb.c 0x00000000 Number 0 fscalb.o ABSOLUTE + Lib\ADC_FAKE.c 0x00000000 Number 0 adc_fake.o ABSOLUTE + Lib\GPIO.c 0x00000000 Number 0 gpio.o ABSOLUTE + Lib\Timer_1234.c 0x00000000 Number 0 timer_1234.o ABSOLUTE + Lib\Timer_Systick.c 0x00000000 Number 0 timer_systick.o ABSOLUTE + Lib\\ADC_FAKE.c 0x00000000 Number 0 adc_fake.o ABSOLUTE + Lib\\GPIO.c 0x00000000 Number 0 gpio.o ABSOLUTE + Lib\\Timer_1234.c 0x00000000 Number 0 timer_1234.o ABSOLUTE + Lib\\Timer_Systick.c 0x00000000 Number 0 timer_systick.o ABSOLUTE + Lib\\clock.c 0x00000000 Number 0 clock.o ABSOLUTE + Lib\clock.c 0x00000000 Number 0 clock.o ABSOLUTE + Lib\libcos.asm 0x00000000 Number 0 libcos.o ABSOLUTE + Src\Fichiers_DFT\DFT.s 0x00000000 Number 0 dft.o ABSOLUTE + Src\Fichiers_DFT\TabSinCos.asm 0x00000000 Number 0 tabsincos.o ABSOLUTE + Src\Fichiers_Son\Son.s 0x00000000 Number 0 son.o ABSOLUTE + Src\Fichiers_Son\bruitverre.asm 0x00000000 Number 0 bruitverre.o ABSOLUTE + Src\\principal.c 0x00000000 Number 0 principal.o ABSOLUTE + Src\principal.c 0x00000000 Number 0 principal.o ABSOLUTE + Src\startup-rvds.s 0x00000000 Number 0 startup-rvds.o ABSOLUTE + dc.s 0x00000000 Number 0 dc.o ABSOLUTE + handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE + init.s 0x00000000 Number 0 init.o ABSOLUTE + RESET 0x08000000 Section 236 startup-rvds.o(RESET) + .ARM.Collect$$$$00000000 0x080000ec Section 0 entry.o(.ARM.Collect$$$$00000000) + .ARM.Collect$$$$00000001 0x080000ec Section 4 entry2.o(.ARM.Collect$$$$00000001) + .ARM.Collect$$$$00000004 0x080000f0 Section 4 entry5.o(.ARM.Collect$$$$00000004) + .ARM.Collect$$$$00000008 0x080000f4 Section 0 entry7b.o(.ARM.Collect$$$$00000008) + .ARM.Collect$$$$0000000A 0x080000f4 Section 0 entry8b.o(.ARM.Collect$$$$0000000A) + .ARM.Collect$$$$0000000B 0x080000f4 Section 8 entry9a.o(.ARM.Collect$$$$0000000B) + .ARM.Collect$$$$0000000D 0x080000fc Section 0 entry10a.o(.ARM.Collect$$$$0000000D) + .ARM.Collect$$$$0000000F 0x080000fc Section 0 entry11a.o(.ARM.Collect$$$$0000000F) + .ARM.Collect$$$$00002712 0x080000fc Section 4 entry2.o(.ARM.Collect$$$$00002712) + __lit__00000000 0x080000fc Data 4 entry2.o(.ARM.Collect$$$$00002712) + .text 0x08000100 Section 76 startup-rvds.o(.text) + .text 0x0800014c Section 36 init.o(.text) + .text 0x08000170 Section 0 __dczerorl2.o(.text) + i.Active_IT_Debordement_Timer 0x080001d0 Section 0 timer_1234.o(i.Active_IT_Debordement_Timer) + i.CLOCK_Configure 0x080002b4 Section 0 clock.o(i.CLOCK_Configure) + i.CLOCK_GetADCCLK 0x08000328 Section 0 clock.o(i.CLOCK_GetADCCLK) + i.CLOCK_GetHCLK 0x08000330 Section 0 clock.o(i.CLOCK_GetHCLK) + i.CLOCK_GetTIMCLK 0x08000338 Section 0 clock.o(i.CLOCK_GetTIMCLK) + i.CLOCK_HPRECompute 0x0800035c Section 0 clock.o(i.CLOCK_HPRECompute) + CLOCK_HPRECompute 0x0800035d Thumb Code 116 clock.o(i.CLOCK_HPRECompute) + i.GPIO_Configure 0x080003d0 Section 0 gpio.o(i.GPIO_Configure) + i.Init_ADC1_DMA1 0x080004d8 Section 0 adc_fake.o(i.Init_ADC1_DMA1) + i.Init_Conversion_On_Trig_Timer_ff 0x08000504 Section 0 adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) + i.Init_TimingADC_ActiveADC_ff 0x0800057c Section 0 adc_fake.o(i.Init_TimingADC_ActiveADC_ff) + i.PWM_Init_ff 0x08000668 Section 0 timer_1234.o(i.PWM_Init_ff) + i.Single_Channel_ADC 0x08000714 Section 0 adc_fake.o(i.Single_Channel_ADC) + i.Start_DMA1 0x08000718 Section 0 adc_fake.o(i.Start_DMA1) + i.SysTick_Handler 0x08000760 Section 0 timer_systick.o(i.SysTick_Handler) + i.Systick_Period_ff 0x0800076c Section 0 timer_systick.o(i.Systick_Period_ff) + i.Systick_Prio_IT 0x08000790 Section 0 timer_systick.o(i.Systick_Prio_IT) + i.TIM1_CC_IRQHandler 0x080007a4 Section 0 timer_1234.o(i.TIM1_CC_IRQHandler) + i.TIM1_UP_IRQHandler 0x080008b0 Section 0 timer_1234.o(i.TIM1_UP_IRQHandler) + i.TIM2_IRQHandler 0x080008c8 Section 0 timer_1234.o(i.TIM2_IRQHandler) + i.TIM3_IRQHandler 0x080009d8 Section 0 timer_1234.o(i.TIM3_IRQHandler) + i.TIM4_IRQHandler 0x08000b04 Section 0 timer_1234.o(i.TIM4_IRQHandler) + i.Timer_1234_Init_ff 0x08000c30 Section 0 timer_1234.o(i.Timer_1234_Init_ff) + i.Wait_On_End_Of_DMA1 0x08000cac Section 0 adc_fake.o(i.Wait_On_End_Of_DMA1) + i.__scatterload_copy 0x08000df8 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x08000e06 Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08000e08 Section 14 handlers.o(i.__scatterload_zeroinit) + i.fake_timer_callback 0x08000e18 Section 0 adc_fake.o(i.fake_timer_callback) + i.main 0x08000e34 Section 0 principal.o(i.main) + i.sys_callback 0x08000f48 Section 0 principal.o(i.sys_callback) + moncode 0x08001080 Section 68 son.o(moncode) + FakeTab 0x080010c4 Section 256 libcos.o(FakeTab) + SecSon 0x080011e4 Section 11032 bruitverre.o(SecSon) + moncode 0x20000000 Section 108 dft.o(moncode) + calculReouIm 0x20000001 Thumb Code 62 dft.o(moncode) + .data 0x2000006c Section 160 timer_1234.o(.data) + Ptr_TIM1 0x2000007c Data 4 timer_1234.o(.data) + Ptr_TIM2 0x20000080 Data 4 timer_1234.o(.data) + Ptr_TIM3 0x20000084 Data 4 timer_1234.o(.data) + Ptr_TIM4 0x20000088 Data 4 timer_1234.o(.data) + Ptr_TIM1_Voie1 0x2000008c Data 4 timer_1234.o(.data) + Ptr_TIM1_Voie2 0x20000090 Data 4 timer_1234.o(.data) + Ptr_TIM1_Voie3 0x20000094 Data 4 timer_1234.o(.data) + Ptr_TIM1_Voie4 0x20000098 Data 4 timer_1234.o(.data) + Ptr_TIM2_Voie1 0x2000009c Data 4 timer_1234.o(.data) + Ptr_TIM2_Voie2 0x200000a0 Data 4 timer_1234.o(.data) + Ptr_TIM2_Voie3 0x200000a4 Data 4 timer_1234.o(.data) + Ptr_TIM2_Voie4 0x200000a8 Data 4 timer_1234.o(.data) + Ptr_TIM3_Voie1 0x200000ac Data 4 timer_1234.o(.data) + Ptr_TIM3_Voie2 0x200000b0 Data 4 timer_1234.o(.data) + Ptr_TIM3_Voie3 0x200000b4 Data 4 timer_1234.o(.data) + Ptr_TIM3_Voie4 0x200000b8 Data 4 timer_1234.o(.data) + Ptr_TIM4_Voie1 0x200000bc Data 4 timer_1234.o(.data) + Ptr_TIM4_Voie2 0x200000c0 Data 4 timer_1234.o(.data) + Ptr_TIM4_Voie3 0x200000c4 Data 4 timer_1234.o(.data) + Ptr_TIM4_Voie4 0x200000c8 Data 4 timer_1234.o(.data) + Duree_Pulse_T1 0x200000cc Data 8 timer_1234.o(.data) + Duree_Pulse_T2 0x200000d4 Data 8 timer_1234.o(.data) + Duree_Pulse_T3 0x200000dc Data 8 timer_1234.o(.data) + Duree_Pulse_T4 0x200000e4 Data 8 timer_1234.o(.data) + Date_T1 0x200000ec Data 8 timer_1234.o(.data) + Date_T2 0x200000f4 Data 8 timer_1234.o(.data) + Date_T3 0x200000fc Data 8 timer_1234.o(.data) + Date_T4 0x20000104 Data 8 timer_1234.o(.data) + .data 0x2000010c Section 4 timer_systick.o(.data) + Ptr_Systick 0x2000010c Data 4 timer_systick.o(.data) + Trigo 0x20000110 Section 256 tabsincos.o(Trigo) + .bss 0x20000210 Section 452 principal.o(.bss) + .bss 0x200003d4 Section 84 adc_fake.o(.bss) + F 0x200003d4 Data 84 adc_fake.o(.bss) + STACK 0x20000428 Section 1024 startup-rvds.o(STACK) + + Global Symbols + + Symbol Name Value Ov Type Size Object(Section) + + BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$EBA8$MICROLIB$REQ8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE + __ARM_use_no_argv 0x00000000 Number 0 principal.o ABSOLUTE + __cpp_initialize__aeabi_ - Undefined Weak Reference + __cxa_finalize - Undefined Weak Reference + _clock_init - Undefined Weak Reference + _microlib_exit - Undefined Weak Reference + __Vectors_Size 0x000000ec Number 0 startup-rvds.o ABSOLUTE + __Vectors 0x08000000 Data 4 startup-rvds.o(RESET) + __Vectors_End 0x080000ec Data 0 startup-rvds.o(RESET) + __main 0x080000ed Thumb Code 0 entry.o(.ARM.Collect$$$$00000000) + _main_stk 0x080000ed Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001) + _main_scatterload 0x080000f1 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + __main_after_scatterload 0x080000f5 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + _main_clock 0x080000f5 Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008) + _main_cpp_init 0x080000f5 Thumb Code 0 entry8b.o(.ARM.Collect$$$$0000000A) + _main_init 0x080000f5 Thumb Code 0 entry9a.o(.ARM.Collect$$$$0000000B) + __rt_final_cpp 0x080000fd Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000D) + __rt_final_exit 0x080000fd Thumb Code 0 entry11a.o(.ARM.Collect$$$$0000000F) + Reset_Handler 0x08000101 Thumb Code 34 startup-rvds.o(.text) + SystemInit 0x08000123 Thumb Code 2 startup-rvds.o(.text) + NMI_Handler 0x08000125 Thumb Code 2 startup-rvds.o(.text) + HardFault_Handler 0x08000127 Thumb Code 2 startup-rvds.o(.text) + MemManage_Handler 0x08000129 Thumb Code 2 startup-rvds.o(.text) + BusFault_Handler 0x0800012b Thumb Code 2 startup-rvds.o(.text) + UsageFault_Handler 0x0800012d Thumb Code 2 startup-rvds.o(.text) + SVC_Handler 0x0800012f Thumb Code 2 startup-rvds.o(.text) + DebugMon_Handler 0x08000131 Thumb Code 2 startup-rvds.o(.text) + PendSV_Handler 0x08000133 Thumb Code 2 startup-rvds.o(.text) + ADC1_2_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + CAN1_RX1_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + CAN1_SCE_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + DMA1_Channel1_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + DMA1_Channel2_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + DMA1_Channel3_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + DMA1_Channel4_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + DMA1_Channel5_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + DMA1_Channel6_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + DMA1_Channel7_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + EXTI0_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + EXTI15_10_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + EXTI1_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + EXTI2_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + EXTI3_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + EXTI4_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + EXTI9_5_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + FLASH_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + I2C1_ER_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + I2C1_EV_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + I2C2_ER_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + I2C2_EV_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + PVD_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + RCC_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + RTCAlarm_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + RTC_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + SPI1_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + SPI2_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + TAMPER_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + TIM1_BRK_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + TIM1_TRG_COM_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + USART1_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + USART2_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + USART3_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + USBWakeUp_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + USB_HP_CAN1_TX_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + USB_LP_CAN1_RX0_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + WWDG_IRQHandler 0x08000137 Thumb Code 0 startup-rvds.o(.text) + __scatterload 0x0800014d Thumb Code 28 init.o(.text) + __scatterload_rt2 0x0800014d Thumb Code 0 init.o(.text) + __decompress 0x08000171 Thumb Code 0 __dczerorl2.o(.text) + __decompress1 0x08000171 Thumb Code 86 __dczerorl2.o(.text) + Long Thumb to Thumb Veneer to CalculM 0x080001c7 Thumb Code 10 anon$$obj.o(Veneer$$Code) + Active_IT_Debordement_Timer 0x080001d1 Thumb Code 204 timer_1234.o(i.Active_IT_Debordement_Timer) + CLOCK_Configure 0x080002b5 Thumb Code 104 clock.o(i.CLOCK_Configure) + CLOCK_GetADCCLK 0x08000329 Thumb Code 4 clock.o(i.CLOCK_GetADCCLK) + CLOCK_GetHCLK 0x08000331 Thumb Code 4 clock.o(i.CLOCK_GetHCLK) + CLOCK_GetTIMCLK 0x08000339 Thumb Code 22 clock.o(i.CLOCK_GetTIMCLK) + GPIO_Configure 0x080003d1 Thumb Code 240 gpio.o(i.GPIO_Configure) + Init_ADC1_DMA1 0x080004d9 Thumb Code 38 adc_fake.o(i.Init_ADC1_DMA1) + Init_Conversion_On_Trig_Timer_ff 0x08000505 Thumb Code 104 adc_fake.o(i.Init_Conversion_On_Trig_Timer_ff) + Init_TimingADC_ActiveADC_ff 0x0800057d Thumb Code 230 adc_fake.o(i.Init_TimingADC_ActiveADC_ff) + PWM_Init_ff 0x08000669 Thumb Code 168 timer_1234.o(i.PWM_Init_ff) + Single_Channel_ADC 0x08000715 Thumb Code 2 adc_fake.o(i.Single_Channel_ADC) + Start_DMA1 0x08000719 Thumb Code 66 adc_fake.o(i.Start_DMA1) + SysTick_Handler 0x08000761 Thumb Code 6 timer_systick.o(i.SysTick_Handler) + Systick_Period_ff 0x0800076d Thumb Code 34 timer_systick.o(i.Systick_Period_ff) + Systick_Prio_IT 0x08000791 Thumb Code 12 timer_systick.o(i.Systick_Prio_IT) + TIM1_CC_IRQHandler 0x080007a5 Thumb Code 240 timer_1234.o(i.TIM1_CC_IRQHandler) + TIM1_UP_IRQHandler 0x080008b1 Thumb Code 16 timer_1234.o(i.TIM1_UP_IRQHandler) + TIM2_IRQHandler 0x080008c9 Thumb Code 266 timer_1234.o(i.TIM2_IRQHandler) + TIM3_IRQHandler 0x080009d9 Thumb Code 272 timer_1234.o(i.TIM3_IRQHandler) + TIM4_IRQHandler 0x08000b05 Thumb Code 272 timer_1234.o(i.TIM4_IRQHandler) + Timer_1234_Init_ff 0x08000c31 Thumb Code 106 timer_1234.o(i.Timer_1234_Init_ff) + Wait_On_End_Of_DMA1 0x08000cad Thumb Code 320 adc_fake.o(i.Wait_On_End_Of_DMA1) + __scatterload_copy 0x08000df9 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x08000e07 Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08000e09 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + fake_timer_callback 0x08000e19 Thumb Code 22 adc_fake.o(i.fake_timer_callback) + main 0x08000e35 Thumb Code 224 principal.o(i.main) + sys_callback 0x08000f49 Thumb Code 280 principal.o(i.sys_callback) + timer_callback 0x08001081 Thumb Code 60 son.o(moncode) + LibCos 0x080010c4 Data 0 libcos.o(FakeTab) + LibNoise 0x08001144 Data 0 libcos.o(FakeTab) + Region$$Table$$Base 0x080011c4 Number 0 anon$$obj.o(Region$$Table) + LongueurSon 0x080011e4 Data 4 bruitverre.o(SecSon) + Region$$Table$$Limit 0x080011e4 Number 0 anon$$obj.o(Region$$Table) + PeriodeSonMicroSec 0x080011e8 Data 4 bruitverre.o(SecSon) + Son 0x080011ec Data 0 bruitverre.o(SecSon) + CalculM 0x2000003f Thumb Code 38 dft.o(moncode) + Enable_Fct_IT_Compare_Match_TIM1_Voie1 0x2000006c Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM1_Voie2 0x2000006d Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM1_Voie3 0x2000006e Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM1_Voie4 0x2000006f Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM2_Voie1 0x20000070 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM2_Voie2 0x20000071 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM2_Voie3 0x20000072 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM2_Voie4 0x20000073 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM3_Voie1 0x20000074 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM3_Voie2 0x20000075 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM3_Voie3 0x20000076 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM3_Voie4 0x20000077 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM4_Voie1 0x20000078 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM4_Voie2 0x20000079 Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM4_Voie3 0x2000007a Data 1 timer_1234.o(.data) + Enable_Fct_IT_Compare_Match_TIM4_Voie4 0x2000007b Data 1 timer_1234.o(.data) + TabCos 0x20000110 Data 0 tabsincos.o(Trigo) + TabSin 0x20000190 Data 0 tabsincos.o(Trigo) + etat 0x20000210 Data 20 principal.o(.bss) + dma_buf 0x20000224 Data 128 principal.o(.bss) + compteur 0x200002a4 Data 24 principal.o(.bss) + point 0x200002bc Data 24 principal.o(.bss) + M2 0x200002d4 Data 256 principal.o(.bss) + __initial_sp 0x20000828 Data 0 startup-rvds.o(STACK) + + + +============================================================================== + +Memory Map of the image + + Image Entry point : 0x080000ed + + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00003f0c, Max: 0x00020000, ABSOLUTE, COMPRESSED[0x00003df4]) + + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003cfc, Max: 0x00020000, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x08000000 0x08000000 0x000000ec Data RO 71 RESET startup-rvds.o + 0x080000ec 0x080000ec 0x00000000 Code RO 189 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x080000ec 0x080000ec 0x00000004 Code RO 216 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x080000f0 0x080000f0 0x00000004 Code RO 219 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 221 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 223 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x080000f4 0x080000f4 0x00000008 Code RO 224 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x080000fc 0x080000fc 0x00000000 Code RO 226 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) + 0x080000fc 0x080000fc 0x00000000 Code RO 228 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) + 0x080000fc 0x080000fc 0x00000004 Code RO 217 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x08000100 0x08000100 0x0000004c Code RO 72 .text startup-rvds.o + 0x0800014c 0x0800014c 0x00000024 Code RO 239 .text mc_w.l(init.o) + 0x08000170 0x08000170 0x00000056 Code RO 251 .text mc_w.l(__dczerorl2.o) + 0x080001c6 0x080001c6 0x0000000a Ven RO 253 Veneer$$Code anon$$obj.o + 0x080001d0 0x080001d0 0x000000e4 Code RO 119 i.Active_IT_Debordement_Timer gfssp72.lib(timer_1234.o) + 0x080002b4 0x080002b4 0x00000074 Code RO 90 i.CLOCK_Configure gfssp72.lib(clock.o) + 0x08000328 0x08000328 0x00000008 Code RO 91 i.CLOCK_GetADCCLK gfssp72.lib(clock.o) + 0x08000330 0x08000330 0x00000008 Code RO 92 i.CLOCK_GetHCLK gfssp72.lib(clock.o) + 0x08000338 0x08000338 0x00000024 Code RO 95 i.CLOCK_GetTIMCLK gfssp72.lib(clock.o) + 0x0800035c 0x0800035c 0x00000074 Code RO 96 i.CLOCK_HPRECompute gfssp72.lib(clock.o) + 0x080003d0 0x080003d0 0x00000108 Code RO 110 i.GPIO_Configure gfssp72.lib(gpio.o) + 0x080004d8 0x080004d8 0x0000002c Code RO 170 i.Init_ADC1_DMA1 gfssp72.lib(adc_fake.o) + 0x08000504 0x08000504 0x00000078 Code RO 171 i.Init_Conversion_On_Trig_Timer_ff gfssp72.lib(adc_fake.o) + 0x0800057c 0x0800057c 0x000000ec Code RO 172 i.Init_TimingADC_ActiveADC_ff gfssp72.lib(adc_fake.o) + 0x08000668 0x08000668 0x000000ac Code RO 124 i.PWM_Init_ff gfssp72.lib(timer_1234.o) + 0x08000714 0x08000714 0x00000002 Code RO 173 i.Single_Channel_ADC gfssp72.lib(adc_fake.o) + 0x08000716 0x08000716 0x00000002 PAD + 0x08000718 0x08000718 0x00000048 Code RO 174 i.Start_DMA1 gfssp72.lib(adc_fake.o) + 0x08000760 0x08000760 0x0000000c Code RO 155 i.SysTick_Handler gfssp72.lib(timer_systick.o) + 0x0800076c 0x0800076c 0x00000022 Code RO 157 i.Systick_Period_ff gfssp72.lib(timer_systick.o) + 0x0800078e 0x0800078e 0x00000002 PAD + 0x08000790 0x08000790 0x00000014 Code RO 158 i.Systick_Prio_IT gfssp72.lib(timer_systick.o) + 0x080007a4 0x080007a4 0x0000010c Code RO 125 i.TIM1_CC_IRQHandler gfssp72.lib(timer_1234.o) + 0x080008b0 0x080008b0 0x00000018 Code RO 126 i.TIM1_UP_IRQHandler gfssp72.lib(timer_1234.o) + 0x080008c8 0x080008c8 0x00000110 Code RO 127 i.TIM2_IRQHandler gfssp72.lib(timer_1234.o) + 0x080009d8 0x080009d8 0x0000012c Code RO 128 i.TIM3_IRQHandler gfssp72.lib(timer_1234.o) + 0x08000b04 0x08000b04 0x0000012c Code RO 129 i.TIM4_IRQHandler gfssp72.lib(timer_1234.o) + 0x08000c30 0x08000c30 0x0000007c Code RO 131 i.Timer_1234_Init_ff gfssp72.lib(timer_1234.o) + 0x08000cac 0x08000cac 0x0000014c Code RO 175 i.Wait_On_End_Of_DMA1 gfssp72.lib(adc_fake.o) + 0x08000df8 0x08000df8 0x0000000e Code RO 245 i.__scatterload_copy mc_w.l(handlers.o) + 0x08000e06 0x08000e06 0x00000002 Code RO 246 i.__scatterload_null mc_w.l(handlers.o) + 0x08000e08 0x08000e08 0x0000000e Code RO 247 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x08000e16 0x08000e16 0x00000002 PAD + 0x08000e18 0x08000e18 0x0000001c Code RO 176 i.fake_timer_callback gfssp72.lib(adc_fake.o) + 0x08000e34 0x08000e34 0x00000114 Code RO 4 i.main principal.o + 0x08000f48 0x08000f48 0x00000138 Code RO 5 i.sys_callback principal.o + 0x08001080 0x08001080 0x00000044 Code RO 83 moncode son.o + 0x080010c4 0x080010c4 0x00000100 Data RO 188 FakeTab gfssp72.lib(libcos.o) + 0x080011c4 0x080011c4 0x00000020 Data RO 243 Region$$Table anon$$obj.o + 0x080011e4 0x080011e4 0x00002b18 Data RO 81 SecSon bruitverre.o + + + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003cfc, Size: 0x00000828, Max: 0x00005000, ABSOLUTE, COMPRESSED[0x000000f8]) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x20000000 COMPRESSED 0x0000006c Code RW 76 moncode dft.o + 0x2000006c COMPRESSED 0x000000a0 Data RW 133 .data gfssp72.lib(timer_1234.o) + 0x2000010c COMPRESSED 0x00000004 Data RW 159 .data gfssp72.lib(timer_systick.o) + 0x20000110 COMPRESSED 0x00000100 Data RW 80 Trigo tabsincos.o + 0x20000210 - 0x000001c4 Zero RW 6 .bss principal.o + 0x200003d4 - 0x00000054 Zero RW 177 .bss gfssp72.lib(adc_fake.o) + 0x20000428 - 0x00000400 Zero RW 69 STACK startup-rvds.o + + +============================================================================== + +Image component sizes + + + Code (inc. data) RO Data RW Data ZI Data Debug Object Name + + 0 0 11032 0 0 0 bruitverre.o + 108 8 0 0 0 384 dft.o + 588 100 0 0 452 3804 principal.o + 68 8 0 0 0 340 son.o + 76 20 236 0 1024 788 startup-rvds.o + 0 0 0 256 0 0 tabsincos.o + + ---------------------------------------------------------------------- + 850 136 11300 256 1476 5316 Object Totals + 10 0 32 0 0 0 (incl. Generated) + 0 0 0 0 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name + + 834 58 0 0 84 528 adc_fake.o + 284 34 0 0 0 352 clock.o + 264 24 0 0 0 84 gpio.o + 0 0 256 0 0 0 libcos.o + 1688 144 0 160 0 672 timer_1234.o + 66 14 0 4 0 204 timer_systick.o + 86 0 0 0 0 0 __dczerorl2.o + 0 0 0 0 0 0 entry.o + 0 0 0 0 0 0 entry10a.o + 0 0 0 0 0 0 entry11a.o + 8 4 0 0 0 0 entry2.o + 4 0 0 0 0 0 entry5.o + 0 0 0 0 0 0 entry7b.o + 0 0 0 0 0 0 entry8b.o + 8 4 0 0 0 0 entry9a.o + 30 0 0 0 0 0 handlers.o + 36 8 0 0 0 68 init.o + + ---------------------------------------------------------------------- + 3314 290 256 164 84 1908 Library Totals + 6 0 0 0 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Name + + 3136 274 256 164 84 1840 gfssp72.lib + 172 16 0 0 0 68 mc_w.l + + ---------------------------------------------------------------------- + 3314 290 256 164 84 1908 Library Totals + + ---------------------------------------------------------------------- + +============================================================================== + + + Code (inc. data) RO Data RW Data ZI Data Debug + + 4164 426 11556 420 1560 6208 Grand Totals + 4164 426 11556 248 1560 6208 ELF Image Totals (compressed) + 4164 426 11556 248 0 0 ROM Totals + +============================================================================== + + Total RO Size (Code + RO Data) 15720 ( 15.35kB) + Total RW Size (RW Data + ZI Data) 1980 ( 1.93kB) + Total ROM Size (Code + RO Data + RW Data) 15968 ( 15.59kB) + +============================================================================== + diff --git a/Obj_4/Obj/CHTI.sct b/Obj_4/Obj/CHTI.sct new file mode 100644 index 0000000..c26b647 --- /dev/null +++ b/Obj_4/Obj/CHTI.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00020000 { ; load region size_region + ER_IROM1 0x08000000 0x00020000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00005000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/Obj_4/Obj/principal.crf b/Obj_4/Obj/principal.crf new file mode 100644 index 0000000..840327a Binary files /dev/null and b/Obj_4/Obj/principal.crf differ diff --git a/Obj_4/Project.uvoptx b/Obj_4/Project.uvoptx new file mode 100644 index 0000000..5116d8a --- /dev/null +++ b/Obj_4/Project.uvoptx @@ -0,0 +1,396 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Simu + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 5 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=719,154,1140,581,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)) + + + 0 + ST-LINKIII-KEIL_SWO + -U066CFF574857847167074929 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM) + + + + + + 0 + 1 + point + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + `TIM3_CCR3 + 00008000000000000000000000000000000074400000000000000000000000000000000054494D335F4343523300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100000001000000922449922449C23F1500000000000000000000000000000000000000340E0008 + + + 1 + `point[0] + 000000000000000000000000000000000000F03F00000000000000000000000000000000706F696E745B305D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100000002000000922449922449C23F1500000000000000000000000000000000000000340E0008 + + + 2 + `point[1] + FF0000000000000000000000000000000000004000000000000000000000000000000000706F696E745B315D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100000003000000922449922449C23F1500000000000000000000000000000000000000340E0008 + + + 3 + `point[2] + 008000000000C0FFFFFFDFC10000C0FFFFFFDF4100000000000000000000000000000000706F696E745B325D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100000004000000922449922449C23F1500000000000000000000000000000000000000340E0008 + + + 4 + `point[3] + 000080000000C0FFFFFFDFC10000C0FFFFFFDF4100000000000000000000000000000000706F696E745B335D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100000005000000922449922449C23F1500000000000000000000000000000000000000340E0008 + + + 5 + `point[4] + 000000000000C0FFFFFFDFC10000C0FFFFFFDF4100000000000000000000000000000000706F696E745B345D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100000006000000922449922449C23F1500000000000000000000000000000000000000340E0008 + + + 6 + `point[5] + FF0000000000000000000000000000000000084000000000000000000000000000000000706F696E745B355D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100000007000000922449922449C23F1500000000000000000000000000000000000000340E0008 + + + + 1 + 0 + 2 + 10000000 + + + + + + Sources + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 1 + 0 + 0 + .\Src\principal.c + principal.c + 0 + 0 + + + + + Sys + 1 + 0 + 0 + 0 + + 2 + 2 + 2 + 0 + 0 + 0 + .\Src\startup-rvds.s + startup-rvds.s + 0 + 0 + + + + + DFT + 1 + 0 + 0 + 0 + + 3 + 3 + 2 + 0 + 0 + 0 + .\Src\Fichiers_DFT\DFT.s + DFT.s + 0 + 0 + + + 3 + 4 + 2 + 0 + 0 + 0 + .\Src\Fichiers_DFT\TabSinCos.asm + TabSinCos.asm + 0 + 0 + + + + + Son + 1 + 0 + 0 + 0 + + 4 + 5 + 2 + 0 + 0 + 0 + .\Src\Fichiers_Son\bruitverre.asm + bruitverre.asm + 0 + 0 + + + 4 + 6 + 2 + 0 + 0 + 0 + .\Src\Fichiers_Son\Son.s + Son.s + 0 + 0 + + + + + Drivers + 1 + 0 + 0 + 0 + + 5 + 7 + 4 + 0 + 0 + 0 + .\Librairie\GFSSP72\gfssp72.lib + gfssp72.lib + 0 + 0 + + + 5 + 8 + 5 + 0 + 0 + 0 + .\Librairie\etat\etat.inc + etat.inc + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
diff --git a/Obj_4/Project.uvprojx b/Obj_4/Project.uvprojx new file mode 100644 index 0000000..ff5c330 --- /dev/null +++ b/Obj_4/Project.uvprojx @@ -0,0 +1,466 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Simu + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.2.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + CHTI + 1 + 0 + 1 + 1 + 1 + + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4100 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER + + .\Librairie\GFSSP72;.\Librairie\etat + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + DFT + + + DFT.s + 2 + .\Src\Fichiers_DFT\DFT.s + + + TabSinCos.asm + 2 + .\Src\Fichiers_DFT\TabSinCos.asm + + + + + Son + + + bruitverre.asm + 2 + .\Src\Fichiers_Son\bruitverre.asm + + + Son.s + 2 + .\Src\Fichiers_Son\Son.s + + + + + Drivers + + + gfssp72.lib + 4 + .\Librairie\GFSSP72\gfssp72.lib + + + etat.inc + 5 + .\Librairie\etat\etat.inc + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + +
diff --git a/Obj_4/Src/Fichiers_DFT/DFT.s b/Obj_4/Src/Fichiers_DFT/DFT.s new file mode 100644 index 0000000..9cb1040 --- /dev/null +++ b/Obj_4/Src/Fichiers_DFT/DFT.s @@ -0,0 +1,61 @@ +; AFONSO Perrine LARTIGUE Auriane + thumb + area moncode, code, readwrite + + import TabSin + import TabCos + + export CalculM + + +calculReouIm proc ; procedure permettant de calculer imaginaire ou reel + ; ro contient la valeur de k + ; r1 contient adresse de TabSig + ; r2 contient adresse de TabCos ou Tabsin + mov r3 , #0x00 ; r3 va nous servir de compteur i + mov r12, #0x00 ; va contenir le resultat temporairement +comparaison cmp r3, #64 ; on compare i a 64 + bne loop + b fin +loop + push {r0} + push{r12}; on garde l'ancienne contenu dans r12 + mul r0, r0 , r3 ; i*k + and r0, #0x3F ; contient i*k modulo 64 + ldrsh r12 , [r2, r0 , LSL #0x01] ; cos(i*k*2 pi / N) + mov r0 , r12 + ldrsh r12 , [r1, r3 , LSL #0x01] ; x(i) + mul r12 , r12 , r0 ; x(i)* cos(i*k*2 pi / N) + add r3 , #0x01 ; on incremente le compteur i + mov r0, r12 + pop{r12} + add r12, r0 + pop {r0} + b comparaison ; on reboucle +fin + mov r0 , r12 ; on stocke le resultat final dans r0 + bx lr + endp + + +CalculM proc + ; k dans r0 + ; Signal dans r1 + ldr r2, =TabCos ; adresse de TabCos dans le registre r2 + push{LR,r0} + bl calculReouIm + mov r3, r0; Re dan r3 + pop{r0} + push {r3} + ldr r2, =TabSin ; adresse de TabSin dans le registre r2 + bl calculReouIm + mov r12 , r0 ; Im dans r12 + pop{r3} + smull r1, r2, r3 , r3 ; Re^2 + smlal r1, r2, r12 , r12; Re^2 +Im^2 + mov r0, r2 ; on stocke le resultat dans r2 + pop{PC} + bx lr + endp + + end \ No newline at end of file diff --git a/Obj_4/Src/Fichiers_DFT/TabSinCos.asm b/Obj_4/Src/Fichiers_DFT/TabSinCos.asm new file mode 100644 index 0000000..911dc4c --- /dev/null +++ b/Obj_4/Src/Fichiers_DFT/TabSinCos.asm @@ -0,0 +1,136 @@ + AREA Trigo, DATA, READWRITE + export TabSin + export TabCos + +TabCos + DCW 32767 ; 0 0x7fff 0.99997 + DCW 32610 ; 1 0x7f62 0.99518 + DCW 32138 ; 2 0x7d8a 0.98077 + DCW 31357 ; 3 0x7a7d 0.95694 + DCW 30274 ; 4 0x7642 0.92389 + DCW 28899 ; 5 0x70e3 0.88193 + DCW 27246 ; 6 0x6a6e 0.83148 + DCW 25330 ; 7 0x62f2 0.77301 + DCW 23170 ; 8 0x5a82 0.70709 + DCW 20788 ; 9 0x5134 0.63440 + DCW 18205 ; 10 0x471d 0.55557 + DCW 15447 ; 11 0x3c57 0.47141 + DCW 12540 ; 12 0x30fc 0.38269 + DCW 9512 ; 13 0x2528 0.29028 + DCW 6393 ; 14 0x18f9 0.19510 + DCW 3212 ; 15 0x0c8c 0.09802 + DCW 0 ; 16 0x0000 0.00000 + DCW -3212 ; 17 0xf374 -0.09802 + DCW -6393 ; 18 0xe707 -0.19510 + DCW -9512 ; 19 0xdad8 -0.29028 + DCW -12540 ; 20 0xcf04 -0.38269 + DCW -15447 ; 21 0xc3a9 -0.47141 + DCW -18205 ; 22 0xb8e3 -0.55557 + DCW -20788 ; 23 0xaecc -0.63440 + DCW -23170 ; 24 0xa57e -0.70709 + DCW -25330 ; 25 0x9d0e -0.77301 + DCW -27246 ; 26 0x9592 -0.83148 + DCW -28899 ; 27 0x8f1d -0.88193 + DCW -30274 ; 28 0x89be -0.92389 + DCW -31357 ; 29 0x8583 -0.95694 + DCW -32138 ; 30 0x8276 -0.98077 + DCW -32610 ; 31 0x809e -0.99518 + DCW -32768 ; 32 0x8000 -1.00000 + DCW -32610 ; 33 0x809e -0.99518 + DCW -32138 ; 34 0x8276 -0.98077 + DCW -31357 ; 35 0x8583 -0.95694 + DCW -30274 ; 36 0x89be -0.92389 + DCW -28899 ; 37 0x8f1d -0.88193 + DCW -27246 ; 38 0x9592 -0.83148 + DCW -25330 ; 39 0x9d0e -0.77301 + DCW -23170 ; 40 0xa57e -0.70709 + DCW -20788 ; 41 0xaecc -0.63440 + DCW -18205 ; 42 0xb8e3 -0.55557 + DCW -15447 ; 43 0xc3a9 -0.47141 + DCW -12540 ; 44 0xcf04 -0.38269 + DCW -9512 ; 45 0xdad8 -0.29028 + DCW -6393 ; 46 0xe707 -0.19510 + DCW -3212 ; 47 0xf374 -0.09802 + DCW 0 ; 48 0x0000 0.00000 + DCW 3212 ; 49 0x0c8c 0.09802 + DCW 6393 ; 50 0x18f9 0.19510 + DCW 9512 ; 51 0x2528 0.29028 + DCW 12540 ; 52 0x30fc 0.38269 + DCW 15447 ; 53 0x3c57 0.47141 + DCW 18205 ; 54 0x471d 0.55557 + DCW 20788 ; 55 0x5134 0.63440 + DCW 23170 ; 56 0x5a82 0.70709 + DCW 25330 ; 57 0x62f2 0.77301 + DCW 27246 ; 58 0x6a6e 0.83148 + DCW 28899 ; 59 0x70e3 0.88193 + DCW 30274 ; 60 0x7642 0.92389 + DCW 31357 ; 61 0x7a7d 0.95694 + DCW 32138 ; 62 0x7d8a 0.98077 + DCW 32610 ; 63 0x7f62 0.99518 +TabSin + DCW 0 ; 0 0x0000 0.00000 + DCW 3212 ; 1 0x0c8c 0.09802 + DCW 6393 ; 2 0x18f9 0.19510 + DCW 9512 ; 3 0x2528 0.29028 + DCW 12540 ; 4 0x30fc 0.38269 + DCW 15447 ; 5 0x3c57 0.47141 + DCW 18205 ; 6 0x471d 0.55557 + DCW 20788 ; 7 0x5134 0.63440 + DCW 23170 ; 8 0x5a82 0.70709 + DCW 25330 ; 9 0x62f2 0.77301 + DCW 27246 ; 10 0x6a6e 0.83148 + DCW 28899 ; 11 0x70e3 0.88193 + DCW 30274 ; 12 0x7642 0.92389 + DCW 31357 ; 13 0x7a7d 0.95694 + DCW 32138 ; 14 0x7d8a 0.98077 + DCW 32610 ; 15 0x7f62 0.99518 + DCW 32767 ; 16 0x7fff 0.99997 + DCW 32610 ; 17 0x7f62 0.99518 + DCW 32138 ; 18 0x7d8a 0.98077 + DCW 31357 ; 19 0x7a7d 0.95694 + DCW 30274 ; 20 0x7642 0.92389 + DCW 28899 ; 21 0x70e3 0.88193 + DCW 27246 ; 22 0x6a6e 0.83148 + DCW 25330 ; 23 0x62f2 0.77301 + DCW 23170 ; 24 0x5a82 0.70709 + DCW 20788 ; 25 0x5134 0.63440 + DCW 18205 ; 26 0x471d 0.55557 + DCW 15447 ; 27 0x3c57 0.47141 + DCW 12540 ; 28 0x30fc 0.38269 + DCW 9512 ; 29 0x2528 0.29028 + DCW 6393 ; 30 0x18f9 0.19510 + DCW 3212 ; 31 0x0c8c 0.09802 + DCW 0 ; 32 0x0000 0.00000 + DCW -3212 ; 33 0xf374 -0.09802 + DCW -6393 ; 34 0xe707 -0.19510 + DCW -9512 ; 35 0xdad8 -0.29028 + DCW -12540 ; 36 0xcf04 -0.38269 + DCW -15447 ; 37 0xc3a9 -0.47141 + DCW -18205 ; 38 0xb8e3 -0.55557 + DCW -20788 ; 39 0xaecc -0.63440 + DCW -23170 ; 40 0xa57e -0.70709 + DCW -25330 ; 41 0x9d0e -0.77301 + DCW -27246 ; 42 0x9592 -0.83148 + DCW -28899 ; 43 0x8f1d -0.88193 + DCW -30274 ; 44 0x89be -0.92389 + DCW -31357 ; 45 0x8583 -0.95694 + DCW -32138 ; 46 0x8276 -0.98077 + DCW -32610 ; 47 0x809e -0.99518 + DCW -32768 ; 48 0x8000 -1.00000 + DCW -32610 ; 49 0x809e -0.99518 + DCW -32138 ; 50 0x8276 -0.98077 + DCW -31357 ; 51 0x8583 -0.95694 + DCW -30274 ; 52 0x89be -0.92389 + DCW -28899 ; 53 0x8f1d -0.88193 + DCW -27246 ; 54 0x9592 -0.83148 + DCW -25330 ; 55 0x9d0e -0.77301 + DCW -23170 ; 56 0xa57e -0.70709 + DCW -20788 ; 57 0xaecc -0.63440 + DCW -18205 ; 58 0xb8e3 -0.55557 + DCW -15447 ; 59 0xc3a9 -0.47141 + DCW -12540 ; 60 0xcf04 -0.38269 + DCW -9512 ; 61 0xdad8 -0.29028 + DCW -6393 ; 62 0xe707 -0.19510 + DCW -3212 ; 63 0xf374 -0.09802 + + END \ No newline at end of file diff --git a/Obj_4/Src/Fichiers_Son/Son.s b/Obj_4/Src/Fichiers_Son/Son.s new file mode 100644 index 0000000..d7eb43d --- /dev/null +++ b/Obj_4/Src/Fichiers_Son/Son.s @@ -0,0 +1,63 @@ +; AFONSO Perrine LARTIGUE Auriane + thumb + area madata, data, readwrite +flag dcd 0 +TIM3_CCR3 equ 0x4000043C ; adresse registre PWM + + +E_POS equ 0 +E_TAI equ 4 +E_SON equ 8 +E_RES equ 12 +E_PER equ 16 + + area moncode, code, readonly + export timer_callback + + import etat + import Son + import LongueurSon + import PeriodeSonMicroSec + + + +;GPIOB_BSRR equ 0x40010C10 ; Bit Set/Reset registe + + +timer_callback proc + push{r4} + ldr r2, =etat ;r2= @etat + ldr r0, [r2 , #E_POS] ; r0 = position + ldr r1, [r2 , #E_TAI] ; r1 = taille + cmp r0, r1; on compare taille et position + + beq fin ; taille = position + +different + ldr r3 , [r2,#E_SON] ; r3 = @son + ldrsh r4 , [r3, r0, lsl #0x1] ; r4 = son + ; ajout composante continue: 2^15 + add r4, #0x8000 + + ldr r12 , [r2 ,#E_RES] ; r12 = resolution + + mul r4 , r12 ; on multiplie par le facteur d'échelle + mov r12,#0xFFFF + cmp r4, r12 ; la valeur échatillon doit etre compris entre 0 et 2^16 - 1 + blo registre + udiv r4, r12 + + +registre ; échantillon copié dans le registre TIM3_CCR3 + ldr r12 , =TIM3_CCR3 + str r4 , [r12] + + ; on incremente la position + add r0 , #0x1 ; + str r0 , [r2 , #E_POS] + +fin pop{r4} + bx lr + endp + + end \ No newline at end of file diff --git a/Obj_4/Src/Fichiers_Son/bruitverre.asm b/Obj_4/Src/Fichiers_Son/bruitverre.asm new file mode 100644 index 0000000..1f23ff8 --- /dev/null +++ b/Obj_4/Src/Fichiers_Son/bruitverre.asm @@ -0,0 +1,5527 @@ +;********************************************* + + AREA SecSon, DATA, READONLY + ;********************************************* + + + export LongueurSon + export PeriodeSonMicroSec + export Son + +LongueurSon DCD 5512 +PeriodeSonMicroSec DCD 9 +Son + DCW -6911 + DCW 20666 + DCW -1338 + DCW 10995 + DCW -23488 + DCW -18984 + DCW 29795 + DCW -21890 + DCW 12388 + DCW 16304 + DCW -32768 + DCW 13298 + DCW 22737 + DCW -20334 + DCW 4588 + DCW 5271 + DCW -27547 + DCW 19370 + DCW -4248 + DCW -7368 + DCW 24620 + DCW -21404 + DCW 14442 + DCW 4961 + DCW -7125 + DCW 21290 + DCW -22096 + DCW -6605 + DCW 6777 + DCW -14300 + DCW 8261 + DCW -2223 + DCW -6714 + DCW 15935 + DCW -13063 + DCW -3648 + DCW 19575 + DCW -15365 + DCW 7934 + DCW 23001 + DCW -10157 + DCW -5535 + DCW -7091 + DCW 3950 + DCW 7741 + DCW -8492 + DCW 1686 + DCW -6785 + DCW -6663 + DCW 5548 + DCW -15768 + DCW -2114 + DCW 18837 + DCW -13201 + DCW 3493 + DCW 21693 + DCW -2961 + DCW 8207 + DCW -12924 + DCW -10400 + DCW 16283 + DCW -22049 + DCW 2080 + DCW 21521 + DCW -12295 + DCW -3355 + DCW 3766 + DCW -1736 + DCW 243 + DCW -3078 + DCW 5452 + DCW 14019 + DCW -8475 + DCW 386 + DCW -12182 + DCW -13620 + DCW 20749 + DCW -1921 + DCW 4332 + DCW 11159 + DCW -17239 + DCW -9343 + DCW 9758 + DCW -11566 + DCW -294 + DCW 8244 + DCW -13503 + DCW 18862 + DCW 4927 + DCW -22662 + DCW -1355 + DCW -6030 + DCW -1854 + DCW 14325 + DCW -2709 + DCW -1665 + DCW 7607 + DCW -5997 + DCW 14191 + DCW -369 + DCW -14400 + DCW 19106 + DCW -8857 + DCW -2881 + DCW 5414 + DCW -12354 + DCW 16309 + DCW -1308 + DCW -9557 + DCW 9532 + DCW 3107 + DCW -1447 + DCW -7263 + DCW -15617 + DCW 8681 + DCW -4843 + DCW -13457 + DCW 31439 + DCW -13612 + DCW -4588 + DCW 3405 + DCW -23987 + DCW 32767 + DCW -289 + DCW -10215 + DCW 30843 + DCW -16631 + DCW -8412 + DCW -3242 + DCW -3221 + DCW 13516 + DCW -16531 + DCW -10689 + DCW 13306 + DCW -15306 + DCW -10861 + DCW 11322 + DCW -12702 + DCW 16518 + DCW 7024 + DCW -12572 + DCW 26193 + DCW -25496 + DCW 101 + DCW 18116 + DCW -20557 + DCW 20468 + DCW -14099 + DCW -12211 + DCW 18611 + DCW 1619 + DCW 8068 + DCW -10891 + DCW -7313 + DCW 10123 + DCW -570 + DCW 4290 + DCW 7582 + DCW -12287 + DCW -923 + DCW 5078 + DCW -6840 + DCW 17533 + DCW -7871 + DCW -13977 + DCW 2084 + DCW -9092 + DCW 11742 + DCW -4667 + DCW -365 + DCW 5552 + DCW -8580 + DCW 1166 + DCW 6215 + DCW 4592 + DCW -5636 + DCW -3627 + DCW -17856 + DCW 8047 + DCW 12723 + DCW -24196 + DCW 6399 + DCW 16589 + DCW -11700 + DCW -6102 + DCW 23366 + DCW -11679 + DCW -12132 + DCW 22477 + DCW -18841 + DCW 2550 + DCW 10048 + DCW -6823 + DCW 7502 + DCW -1166 + DCW 9234 + DCW -13864 + DCW -9263 + DCW 8848 + DCW -5632 + DCW 956 + DCW 2835 + DCW 3535 + DCW -1241 + DCW 4932 + DCW -3715 + DCW -2235 + DCW 6211 + DCW -9477 + DCW -4445 + DCW -12195 + DCW 9863 + DCW 15617 + DCW -14069 + DCW 5405 + DCW 9632 + DCW 323 + DCW -13247 + DCW -654 + DCW 14946 + DCW -12803 + DCW 1497 + DCW 2566 + DCW 1598 + DCW 9611 + DCW -14388 + DCW -1367 + DCW 14761 + DCW -1287 + DCW -26503 + DCW 18472 + DCW 18917 + DCW -25589 + DCW 16162 + DCW -19114 + DCW -4919 + DCW 20200 + DCW -18250 + DCW 11327 + DCW -1912 + DCW 3439 + DCW -21051 + DCW 6680 + DCW 32767 + DCW -20917 + DCW 13998 + DCW -12555 + DCW 566 + DCW 1241 + DCW -9293 + DCW 21731 + DCW -17290 + DCW 9033 + DCW -8106 + DCW -1065 + DCW 8458 + DCW -20229 + DCW 13398 + DCW -3208 + DCW -3518 + DCW 5456 + DCW -1208 + DCW -11159 + DCW 11289 + DCW 6303 + DCW -20586 + DCW 31736 + DCW -17302 + DCW -9909 + DCW 27702 + DCW -15419 + DCW 2311 + DCW -4344 + DCW -1103 + DCW -12170 + DCW 11348 + DCW 3317 + DCW -17634 + DCW 19781 + DCW -3745 + DCW -4064 + DCW -1774 + DCW 130 + DCW -6504 + DCW 3313 + DCW 2717 + DCW -7599 + DCW 14459 + DCW -3984 + DCW -1807 + DCW 1635 + DCW -2533 + DCW 2495 + DCW -6928 + DCW 2093 + DCW 1887 + DCW -2873 + DCW 12186 + DCW -13369 + DCW 2944 + DCW 13570 + DCW -16267 + DCW -872 + DCW -1522 + DCW -3451 + DCW -4495 + DCW 16216 + DCW 2449 + DCW 994 + DCW 10337 + DCW -17017 + DCW 356 + DCW -315 + DCW -2185 + DCW -4927 + DCW 2776 + DCW -1577 + DCW -4990 + DCW 12102 + DCW -9045 + DCW 4047 + DCW 4152 + DCW -23710 + DCW 4516 + DCW 9410 + DCW -12329 + DCW 3502 + DCW 11037 + DCW -8840 + DCW -2252 + DCW 15260 + DCW -19709 + DCW 3321 + DCW 16199 + DCW -20921 + DCW 3741 + DCW 9159 + DCW -2504 + DCW -3753 + DCW 10626 + DCW -2969 + DCW -5661 + DCW 4890 + DCW -11423 + DCW 11180 + DCW 4487 + DCW -11947 + DCW 4894 + DCW 3476 + DCW -6517 + DCW 10257 + DCW 5724 + DCW -14216 + DCW 10270 + DCW -2264 + DCW -14933 + DCW 18489 + DCW 990 + DCW -13281 + DCW 4906 + DCW 5200 + DCW -2814 + DCW -1669 + DCW 5632 + DCW -2306 + DCW -3753 + DCW -8655 + DCW 2088 + DCW 2659 + DCW -2537 + DCW 12392 + DCW -5414 + DCW 981 + DCW -2462 + DCW -3539 + DCW 2114 + DCW -2315 + DCW 8618 + DCW -17256 + DCW -1598 + DCW 7381 + DCW 92 + DCW 1631 + DCW -6722 + DCW 11696 + DCW -12874 + DCW -5758 + DCW 12132 + DCW -3892 + DCW 2273 + DCW 6596 + DCW -705 + DCW -8052 + DCW 15294 + DCW -11197 + DCW -8031 + DCW 18594 + DCW -14581 + DCW 2487 + DCW -1254 + DCW 4948 + DCW 11306 + DCW -7297 + DCW 1661 + DCW -1912 + DCW 5267 + DCW -9251 + DCW 3640 + DCW 7909 + DCW -14832 + DCW 4613 + DCW 2374 + DCW -8286 + DCW 4508 + DCW 7796 + DCW -14887 + DCW 4726 + DCW 5619 + DCW -16283 + DCW 14912 + DCW -2881 + DCW -117 + DCW 4579 + DCW -14514 + DCW 15029 + DCW -6127 + DCW 3774 + DCW 12446 + DCW -12933 + DCW 4051 + DCW -7079 + DCW 1254 + DCW 3980 + DCW -3233 + DCW 11561 + DCW 948 + DCW -13914 + DCW 5590 + DCW 7511 + DCW -13797 + DCW 15415 + DCW -5401 + DCW -14736 + DCW 12346 + DCW -5301 + DCW 7854 + DCW -2751 + DCW -1971 + DCW -440 + DCW -7838 + DCW 8240 + DCW -6026 + DCW 5548 + DCW 2554 + DCW 2738 + DCW 4110 + DCW -15986 + DCW 5246 + DCW 7330 + DCW -14941 + DCW 210 + DCW 10215 + DCW -15663 + DCW 12220 + DCW 8110 + DCW -10714 + DCW 13734 + DCW -14954 + DCW 3183 + DCW 4240 + DCW -8144 + DCW 16866 + DCW -9809 + DCW -4323 + DCW 13302 + DCW -4793 + DCW -4982 + DCW 9876 + DCW -4399 + DCW -4911 + DCW 3338 + DCW -403 + DCW 5162 + DCW -9532 + DCW 2613 + DCW 3749 + DCW -6458 + DCW 2684 + DCW -1916 + DCW 1736 + DCW 256 + DCW 7569 + DCW -1103 + DCW -17982 + DCW 9272 + DCW 6164 + DCW -15084 + DCW 14929 + DCW 3233 + DCW -19080 + DCW 10501 + DCW -3451 + DCW -2663 + DCW 8026 + DCW -11431 + DCW 7364 + DCW -4034 + DCW -5347 + DCW 16317 + DCW -7984 + DCW -243 + DCW 2914 + DCW -11406 + DCW -1124 + DCW 2344 + DCW 8215 + DCW 2449 + DCW -3611 + DCW 11650 + DCW -6504 + DCW -11532 + DCW 20330 + DCW -5766 + DCW -8307 + DCW 8211 + DCW -8198 + DCW 6458 + DCW 2361 + DCW 6185 + DCW 3640 + DCW -15990 + DCW 3577 + DCW -2495 + DCW -5443 + DCW 10647 + DCW -3434 + DCW -4189 + DCW 4118 + DCW -3237 + DCW 3535 + DCW -5087 + DCW -193 + DCW 11004 + DCW -21886 + DCW 449 + DCW 3791 + DCW -16258 + DCW 18149 + DCW 2021 + DCW -8291 + DCW -231 + DCW -8244 + DCW 7225 + DCW 4382 + DCW -809 + DCW 6546 + DCW -7376 + DCW -4512 + DCW 5766 + DCW -4122 + DCW -281 + DCW 1547 + DCW 910 + DCW -2680 + DCW -7108 + DCW 10131 + DCW 3174 + DCW -10408 + DCW 10823 + DCW -5611 + DCW -10467 + DCW 16074 + DCW -956 + DCW 1866 + DCW 1589 + DCW -4789 + DCW -348 + DCW -2743 + DCW 15575 + DCW 2847 + DCW -7116 + DCW 9553 + DCW -5015 + DCW -4223 + DCW 10706 + DCW -6752 + DCW 1459 + DCW -377 + DCW -15130 + DCW 12920 + DCW 2483 + DCW 46 + DCW 15126 + DCW -12639 + DCW -10446 + DCW 3233 + DCW -2386 + DCW 1942 + DCW 9687 + DCW 4235 + DCW -12564 + DCW -2185 + DCW 12442 + DCW -4592 + DCW -730 + DCW 4051 + DCW -14120 + DCW 2382 + DCW 6424 + DCW -3946 + DCW 7460 + DCW -2814 + DCW -2768 + DCW -1757 + DCW -4726 + DCW 5343 + DCW -5137 + DCW -1837 + DCW -407 + DCW -3606 + DCW 8303 + DCW -5217 + DCW 3548 + DCW 9880 + DCW -20695 + DCW 1925 + DCW 9632 + DCW -12597 + DCW 12677 + DCW 4848 + DCW -13797 + DCW 6588 + DCW 2059 + DCW -6869 + DCW 6324 + DCW 2088 + DCW -1614 + DCW 742 + DCW -2382 + DCW 4210 + DCW 71 + DCW -210 + DCW 3443 + DCW -1078 + DCW -3934 + DCW -3594 + DCW 8005 + DCW -319 + DCW -5493 + DCW 7682 + DCW -9066 + DCW -6169 + DCW 10241 + DCW -3921 + DCW -164 + DCW 5171 + DCW 897 + DCW -373 + DCW -4659 + DCW 151 + DCW 650 + DCW -3757 + DCW 9863 + DCW 7678 + DCW -5879 + DCW 5158 + DCW -4433 + DCW -5275 + DCW -264 + DCW -4680 + DCW 2696 + DCW -1724 + DCW 7309 + DCW 5946 + DCW -5821 + DCW -1975 + DCW 910 + DCW -482 + DCW -1677 + DCW 3070 + DCW 717 + DCW -4793 + DCW 1744 + DCW 3791 + DCW -1866 + DCW 2826 + DCW 1220 + DCW -3783 + DCW -776 + DCW -4495 + DCW -751 + DCW 2873 + DCW -2734 + DCW 8936 + DCW -2160 + DCW -9507 + DCW 9297 + DCW -4843 + DCW -4537 + DCW 6248 + DCW -176 + DCW -3757 + DCW 2864 + DCW 5175 + DCW -4017 + DCW 1044 + DCW -1090 + DCW -3166 + DCW -143 + DCW 1568 + DCW 1170 + DCW 8 + DCW 4177 + DCW -2944 + DCW -3133 + DCW -3028 + DCW 5187 + DCW 5200 + DCW -8697 + DCW 5883 + DCW -1166 + DCW -7053 + DCW 692 + DCW 2709 + DCW 7351 + DCW -7984 + DCW 88 + DCW 3636 + DCW -923 + DCW 5393 + DCW 2365 + DCW -7733 + DCW -4244 + DCW 6043 + DCW -8827 + DCW 3699 + DCW 5552 + DCW -1598 + DCW -5045 + DCW -3183 + DCW 8253 + DCW -5833 + DCW 470 + DCW 6328 + DCW 3434 + DCW -9142 + DCW 730 + DCW 583 + DCW -1447 + DCW 12027 + DCW -5833 + DCW 1786 + DCW -11029 + DCW -2147 + DCW 7909 + DCW -8253 + DCW 8995 + DCW -805 + DCW -3174 + DCW 3074 + DCW -55 + DCW -1355 + DCW -1967 + DCW 3636 + DCW -2491 + DCW 5401 + DCW -1556 + DCW -3904 + DCW 6542 + DCW -3279 + DCW 3229 + DCW -6047 + DCW -2420 + DCW 4114 + DCW 927 + DCW 1468 + DCW -2181 + DCW 3573 + DCW -9649 + DCW 2134 + DCW 4621 + DCW -956 + DCW 1623 + DCW -7351 + DCW 3900 + DCW 310 + DCW 1979 + DCW 2776 + DCW -3707 + DCW 1136 + DCW -566 + DCW 2080 + DCW -2558 + DCW 4563 + DCW 814 + DCW -7506 + DCW 4286 + DCW -2688 + DCW 1401 + DCW 1082 + DCW 3212 + DCW 2244 + DCW -1925 + DCW -814 + DCW -2340 + DCW 4986 + DCW -7825 + DCW 7183 + DCW 1996 + DCW -6055 + DCW 7938 + DCW -6798 + DCW 709 + DCW 1451 + DCW -1879 + DCW -1308 + DCW -159 + DCW 1002 + DCW -2550 + DCW 4843 + DCW 2294 + DCW 2231 + DCW -7997 + DCW -5066 + DCW 4827 + DCW -2466 + DCW 6462 + DCW -4315 + DCW -671 + DCW -277 + DCW 1162 + DCW 10194 + DCW -9226 + DCW 3154 + DCW -7414 + DCW -4043 + DCW 8223 + DCW 2575 + DCW 6349 + DCW -7636 + DCW 268 + DCW -113 + DCW -2671 + DCW -2239 + DCW 6362 + DCW 117 + DCW -5137 + DCW 8270 + DCW -8718 + DCW 4894 + DCW 1162 + DCW -4835 + DCW 7158 + DCW -9477 + DCW 558 + DCW -134 + DCW 1581 + DCW 7611 + DCW -876 + DCW -5053 + DCW -5254 + DCW 6127 + DCW -2562 + DCW 4286 + DCW 1342 + DCW -1036 + DCW 646 + DCW -6055 + DCW 6013 + DCW -3992 + DCW 6718 + DCW -2608 + DCW -4697 + DCW 5078 + DCW -5808 + DCW 9834 + DCW -2290 + DCW -260 + DCW 210 + DCW -13713 + DCW 4483 + DCW 8337 + DCW 2151 + DCW -457 + DCW -268 + DCW -4621 + DCW 1212 + DCW 839 + DCW -3099 + DCW 6533 + DCW -10823 + DCW 5691 + DCW 2621 + DCW -2889 + DCW 11616 + DCW -12325 + DCW 956 + DCW -1493 + DCW -138 + DCW 667 + DCW -348 + DCW 8228 + DCW -164 + DCW 369 + DCW -5473 + DCW 2126 + DCW -4667 + DCW 1942 + DCW 2432 + DCW -2634 + DCW 3263 + DCW -7322 + DCW 8924 + DCW 2285 + DCW -2206 + DCW 3149 + DCW -15306 + DCW 7829 + DCW -1640 + DCW -8 + DCW 8836 + DCW -7896 + DCW 9574 + DCW -13818 + DCW 5603 + DCW -331 + DCW 6315 + DCW 3409 + DCW -18900 + DCW 16606 + DCW -12648 + DCW 16820 + DCW -2038 + DCW -3154 + DCW 11826 + DCW -24704 + DCW 5749 + DCW -445 + DCW 8400 + DCW 4500 + DCW -461 + DCW -5883 + DCW -8207 + DCW 4990 + DCW 176 + DCW 15151 + DCW -1543 + DCW -7926 + DCW -5045 + DCW -4084 + DCW 3518 + DCW 6747 + DCW 8718 + DCW -4064 + DCW -344 + DCW -14421 + DCW -1476 + DCW 7540 + DCW 2592 + DCW 15700 + DCW -10761 + DCW -5561 + DCW -2923 + DCW 2478 + DCW 9721 + DCW 5242 + DCW -277 + DCW -11209 + DCW -1120 + DCW -9469 + DCW 6030 + DCW 5821 + DCW 2969 + DCW 3497 + DCW -10140 + DCW -159 + DCW -5615 + DCW 4701 + DCW 8060 + DCW 2139 + DCW 289 + DCW -12010 + DCW -2856 + DCW -1631 + DCW 7192 + DCW 7796 + DCW -2885 + DCW 3275 + DCW -12434 + DCW 575 + DCW 4374 + DCW 1652 + DCW 7615 + DCW -1526 + DCW -1833 + DCW -9733 + DCW 4357 + DCW -6471 + DCW 6500 + DCW 14300 + DCW -10987 + DCW 1535 + DCW -7863 + DCW -2696 + DCW 5556 + DCW 6840 + DCW 5359 + DCW -6034 + DCW -667 + DCW -8156 + DCW 3028 + DCW 4957 + DCW 2634 + DCW 5984 + DCW -7217 + DCW 1053 + DCW -7972 + DCW 1526 + DCW 7435 + DCW 2826 + DCW 5883 + DCW -9289 + DCW -3619 + DCW -5305 + DCW 5057 + DCW 6907 + DCW 4588 + DCW -327 + DCW -11725 + DCW 319 + DCW -4252 + DCW 5514 + DCW 9997 + DCW -465 + DCW -1778 + DCW -6957 + DCW -5053 + DCW -1015 + DCW 7670 + DCW 5347 + DCW 1111 + DCW -2940 + DCW -12430 + DCW 579 + DCW 4227 + DCW 8110 + DCW 5460 + DCW -5808 + DCW -7938 + DCW -7511 + DCW 5133 + DCW 3980 + DCW 10853 + DCW 612 + DCW -7846 + DCW -4885 + DCW -7242 + DCW 7167 + DCW 3338 + DCW 7804 + DCW -1283 + DCW -8584 + DCW -3795 + DCW -2944 + DCW 9146 + DCW 3380 + DCW 5946 + DCW -7662 + DCW -10773 + DCW 1422 + DCW 38 + DCW 12996 + DCW 3481 + DCW -721 + DCW -8249 + DCW -6907 + DCW 4806 + DCW 1132 + DCW 10165 + DCW -549 + DCW -2210 + DCW -5850 + DCW -4755 + DCW 5548 + DCW 1153 + DCW 9410 + DCW -1988 + DCW -5615 + DCW -4839 + DCW -3887 + DCW 6978 + DCW 3577 + DCW 6907 + DCW -4118 + DCW -4827 + DCW -4412 + DCW -1824 + DCW 10773 + DCW -428 + DCW 3292 + DCW -3091 + DCW -5124 + DCW -1883 + DCW 1174 + DCW 4751 + DCW 168 + DCW 7343 + DCW -7817 + DCW -3057 + DCW 1258 + DCW -3422 + DCW 7049 + DCW 3808 + DCW -549 + DCW -5363 + DCW -2814 + DCW -1069 + DCW 4269 + DCW 5351 + DCW -1833 + DCW 772 + DCW -5452 + DCW -1535 + DCW 1984 + DCW 96 + DCW 6546 + DCW -3187 + DCW -143 + DCW -3275 + DCW -2772 + DCW 2659 + DCW 604 + DCW 5309 + DCW -3443 + DCW -2629 + DCW -2625 + DCW 3485 + DCW -935 + DCW 369 + DCW 4403 + DCW -1040 + DCW 1816 + DCW -5359 + DCW 1069 + DCW -1245 + DCW 3552 + DCW 2227 + DCW -7037 + DCW 3770 + DCW -2420 + DCW -3112 + DCW 7162 + DCW 663 + DCW -3451 + DCW -159 + DCW -1338 + DCW -1258 + DCW 4277 + DCW 377 + DCW -549 + DCW 2394 + DCW -4751 + DCW 1266 + DCW -88 + DCW 3795 + DCW 2541 + DCW -34 + DCW -264 + DCW -5389 + DCW 2432 + DCW -407 + DCW 5934 + DCW 117 + DCW -2004 + DCW -2348 + DCW -4877 + DCW 3573 + DCW 1128 + DCW 4227 + DCW 1099 + DCW -5481 + DCW -5162 + DCW 507 + DCW 3200 + DCW 4575 + DCW 3711 + DCW -5556 + DCW -4424 + DCW 1178 + DCW -1501 + DCW 6131 + DCW 1401 + DCW -2768 + DCW -600 + DCW -3388 + DCW 226 + DCW 923 + DCW 5959 + DCW -2004 + DCW 1673 + DCW -3024 + DCW -5800 + DCW 4298 + DCW -348 + DCW 4483 + DCW 1107 + DCW -3053 + DCW -3141 + DCW -1476 + DCW 2516 + DCW 3711 + DCW 335 + DCW -2634 + DCW -3179 + DCW -1820 + DCW 2009 + DCW 5103 + DCW 214 + DCW -642 + DCW 17 + DCW -2994 + DCW 939 + DCW -960 + DCW 3351 + DCW 1950 + DCW 1208 + DCW -2818 + DCW -3011 + DCW 2151 + DCW -470 + DCW 2592 + DCW 382 + DCW -1392 + DCW -2608 + DCW -541 + DCW -763 + DCW 3439 + DCW 2151 + DCW -843 + DCW -952 + DCW -1975 + DCW 432 + DCW -252 + DCW 1329 + DCW 1132 + DCW 830 + DCW -1786 + DCW -784 + DCW -1757 + DCW 1652 + DCW 2973 + DCW 533 + DCW -486 + DCW -1115 + DCW -2717 + DCW -4 + DCW 3124 + DCW -1069 + DCW 2239 + DCW -1396 + DCW -927 + DCW -985 + DCW 1162 + DCW 159 + DCW 562 + DCW 2613 + DCW -3401 + DCW 8 + DCW -2080 + DCW 218 + DCW 3552 + DCW 1329 + DCW 252 + DCW -923 + DCW -3770 + DCW -386 + DCW 2420 + DCW 2013 + DCW 1879 + DCW -839 + DCW -1963 + DCW -579 + DCW -1254 + DCW 147 + DCW 4152 + DCW -700 + DCW 445 + DCW -1573 + DCW -2046 + DCW 1346 + DCW 3128 + DCW 1799 + DCW -197 + DCW -2956 + DCW -4781 + DCW 1837 + DCW 1996 + DCW 3938 + DCW 1153 + DCW -3489 + DCW -2692 + DCW 1371 + DCW -495 + DCW 2227 + DCW 3611 + DCW -3170 + DCW 151 + DCW -1401 + DCW -2139 + DCW 2424 + DCW 3133 + DCW 122 + DCW 201 + DCW -3191 + DCW -3682 + DCW 1195 + DCW 3346 + DCW 2675 + DCW 734 + DCW -2990 + DCW -1535 + DCW 960 + DCW -298 + DCW 2856 + DCW -1015 + DCW -411 + DCW -1115 + DCW -151 + DCW 1346 + DCW 361 + DCW 1166 + DCW 369 + DCW 721 + DCW -3812 + DCW -1732 + DCW 688 + DCW 2634 + DCW 4126 + DCW -348 + DCW -3325 + DCW -1120 + DCW -1434 + DCW 1225 + DCW 3325 + DCW -746 + DCW -1786 + DCW -1053 + DCW -633 + DCW 797 + DCW 2109 + DCW 189 + DCW 1610 + DCW -478 + DCW -1304 + DCW -1241 + DCW -315 + DCW 654 + DCW 2558 + DCW 1367 + DCW -2378 + DCW -1589 + DCW -2441 + DCW 3590 + DCW 2856 + DCW -92 + DCW -2084 + DCW -1061 + DCW 415 + DCW 1011 + DCW 432 + DCW -2290 + DCW -143 + DCW -4592 + DCW -4789 + DCW -130 + DCW 1552 + DCW 4164 + DCW 14208 + DCW 12434 + DCW 7733 + DCW 1728 + DCW -10396 + DCW -6307 + DCW -7259 + DCW -8437 + DCW -4420 + DCW -2680 + DCW 1854 + DCW 2688 + DCW 6911 + DCW 7611 + DCW -3304 + DCW -3128 + DCW 0 + DCW -2474 + DCW -25 + DCW 5204 + DCW -3837 + DCW -6596 + DCW 4495 + DCW -1703 + DCW 2000 + DCW 3384 + DCW -1774 + DCW 2269 + DCW 4131 + DCW -2625 + DCW -6022 + DCW 1178 + DCW -3309 + DCW 2281 + DCW 4013 + DCW -2789 + DCW 1006 + DCW 298 + DCW 1954 + DCW 881 + DCW -839 + DCW -2114 + DCW -4852 + DCW -2709 + DCW 1061 + DCW 2034 + DCW 3585 + DCW 5774 + DCW -1971 + DCW 4 + DCW -1078 + DCW -512 + DCW -2600 + DCW -1006 + DCW -2613 + DCW -4252 + DCW 8458 + DCW -7074 + DCW 15009 + DCW -327 + DCW -11809 + DCW 7846 + DCW -9213 + DCW 134 + DCW -1325 + DCW 1770 + DCW -839 + DCW 7498 + DCW 6466 + DCW -2231 + DCW -646 + DCW -8291 + DCW 1874 + DCW 9666 + DCW -11956 + DCW -5049 + DCW 3103 + DCW -6253 + DCW 18829 + DCW -415 + DCW -1623 + DCW 1803 + DCW -4315 + DCW -6974 + DCW -3590 + DCW -587 + DCW -1900 + DCW 12396 + DCW -4365 + DCW 8312 + DCW 2332 + DCW -3929 + DCW -2206 + DCW -3724 + DCW -2168 + DCW -1455 + DCW -717 + DCW -4470 + DCW 13654 + DCW 4072 + DCW -80 + DCW 587 + DCW -7733 + DCW -3158 + DCW 4651 + DCW -3346 + DCW 696 + DCW 2332 + DCW -2197 + DCW 4164 + DCW 570 + DCW -2042 + DCW 1619 + DCW 0 + DCW -3975 + DCW 2554 + DCW -6068 + DCW 2864 + DCW 5347 + DCW 2239 + DCW 3137 + DCW -2348 + DCW -6819 + DCW -2445 + DCW 5967 + DCW -2545 + DCW 5816 + DCW -474 + DCW -1812 + DCW 3917 + DCW 528 + DCW -2868 + DCW 1082 + DCW -918 + DCW -1501 + DCW 1719 + DCW -4458 + DCW 1413 + DCW 1338 + DCW 1954 + DCW -1040 + DCW 2499 + DCW -3581 + DCW 226 + DCW 1895 + DCW -969 + DCW 2420 + DCW -2202 + DCW 231 + DCW -1057 + DCW 1128 + DCW -2344 + DCW 1006 + DCW -1698 + DCW 4583 + DCW 147 + DCW -1979 + DCW 1916 + DCW -4365 + DCW 3166 + DCW 1027 + DCW -2315 + DCW -3460 + DCW 2592 + DCW 4097 + DCW 3325 + DCW -2365 + DCW -3007 + DCW -3154 + DCW -394 + DCW 315 + DCW -2428 + DCW 4122 + DCW 2617 + DCW 2483 + DCW 2147 + DCW -4793 + DCW -4596 + DCW 3246 + DCW -2055 + DCW 3996 + DCW -180 + DCW -4198 + DCW 2093 + DCW 1841 + DCW 2923 + DCW 608 + DCW -1329 + DCW -4630 + DCW -3317 + DCW -1095 + DCW 3497 + DCW 1908 + DCW 3216 + DCW 1308 + DCW 671 + DCW -3694 + DCW -1975 + DCW -2751 + DCW -1199 + DCW 7280 + DCW -1778 + DCW 923 + DCW -906 + DCW 424 + DCW 2839 + DCW 1594 + DCW -3103 + DCW -5322 + DCW -382 + DCW 1145 + DCW 2009 + DCW 5099 + DCW 2017 + DCW -2004 + DCW 168 + DCW -4462 + DCW -2227 + DCW -2780 + DCW 256 + DCW 545 + DCW 3887 + DCW 1673 + DCW -684 + DCW 2407 + DCW -168 + DCW 1199 + DCW -5062 + DCW -2508 + DCW -1229 + DCW 361 + DCW 5213 + DCW 2076 + DCW -1690 + DCW 3774 + DCW -3510 + DCW -784 + DCW 1078 + DCW -6957 + DCW 1841 + DCW 2432 + DCW 2218 + DCW -1199 + DCW 143 + DCW -960 + DCW 3552 + DCW -545 + DCW -3720 + DCW 1132 + DCW -893 + DCW 1334 + DCW 3795 + DCW 1635 + DCW -5355 + DCW 2566 + DCW -3233 + DCW -814 + DCW 2973 + DCW -3426 + DCW -621 + DCW 2160 + DCW -445 + DCW 449 + DCW 1212 + DCW -3510 + DCW 4764 + DCW -2449 + DCW 1216 + DCW 4168 + DCW -4927 + DCW -566 + DCW 4143 + DCW -1581 + DCW -1874 + DCW 4705 + DCW -7129 + DCW -302 + DCW 6844 + DCW -2025 + DCW -1338 + DCW 1724 + DCW 2059 + DCW -1099 + DCW -6219 + DCW 243 + DCW 4089 + DCW -3036 + DCW 2562 + DCW 5200 + DCW -5015 + DCW -3254 + DCW 7112 + DCW -2743 + DCW -1552 + DCW 1623 + DCW -4613 + DCW 562 + DCW 3384 + DCW 5175 + DCW -512 + DCW -4223 + DCW -3711 + DCW 5145 + DCW -4621 + DCW -4177 + DCW 9721 + DCW -5363 + DCW 1296 + DCW 7766 + DCW -2889 + DCW -4428 + DCW 252 + DCW -491 + DCW 2583 + DCW -3124 + DCW -1027 + DCW 5091 + DCW -5200 + DCW 4235 + DCW 6663 + DCW -3598 + DCW -8093 + DCW 2017 + DCW 1187 + DCW -3967 + DCW 2273 + DCW -92 + DCW 7091 + DCW -386 + DCW -4122 + DCW 4630 + DCW -7750 + DCW 1958 + DCW 3707 + DCW -3757 + DCW -667 + DCW -1191 + DCW 6513 + DCW -1807 + DCW 2927 + DCW -4206 + DCW -2956 + DCW -709 + DCW 445 + DCW 7993 + DCW -9758 + DCW 4286 + DCW 1942 + DCW 705 + DCW 2264 + DCW -3200 + DCW -1132 + DCW -2067 + DCW 3174 + DCW -3254 + DCW 1552 + DCW -2025 + DCW 923 + DCW 6500 + DCW -4386 + DCW -2197 + DCW -2189 + DCW 4827 + DCW 2021 + DCW -1245 + DCW 3430 + DCW -9318 + DCW 1233 + DCW 1363 + DCW 3099 + DCW -881 + DCW -7561 + DCW 6395 + DCW 1040 + DCW 4005 + DCW -2692 + DCW -1552 + DCW -3284 + DCW 1874 + DCW 5301 + DCW -6055 + DCW -1237 + DCW -4147 + DCW 6911 + DCW 2722 + DCW -499 + DCW 2235 + DCW -8387 + DCW 1518 + DCW 4915 + DCW -1761 + DCW -3426 + DCW 38 + DCW 2164 + DCW 2877 + DCW 4185 + DCW -8324 + DCW 1862 + DCW -1816 + DCW -512 + DCW 8710 + DCW -7737 + DCW 5506 + DCW -3770 + DCW 5238 + DCW -2160 + DCW -6198 + DCW 5020 + DCW -5233 + DCW 6118 + DCW -11721 + DCW 14245 + DCW -1522 + DCW -4936 + DCW 12715 + DCW -13189 + DCW 7691 + DCW -11637 + DCW 306 + DCW 6731 + DCW -524 + DCW 92 + DCW -3099 + DCW 15080 + DCW -5640 + DCW 2051 + DCW -16275 + DCW 2445 + DCW 9414 + DCW -12400 + DCW 20192 + DCW -13646 + DCW 6332 + DCW -1329 + DCW -4722 + DCW 6441 + DCW -16321 + DCW 16028 + DCW -13323 + DCW 14929 + DCW -80 + DCW -9431 + DCW 9037 + DCW -12270 + DCW 15013 + DCW -11742 + DCW 7263 + DCW -8538 + DCW 4416 + DCW 3015 + DCW -9171 + DCW 15814 + DCW -19336 + DCW 20716 + DCW -5414 + DCW -4441 + DCW -965 + DCW -8249 + DCW 13495 + DCW -12975 + DCW 7628 + DCW -13046 + DCW 6185 + DCW 8056 + DCW 9381 + DCW 19479 + DCW -28570 + DCW -1694 + DCW -12920 + DCW 1682 + DCW 15713 + DCW 2835 + DCW 12371 + DCW -17810 + DCW 3481 + DCW -13851 + DCW 4906 + DCW 9280 + DCW -7272 + DCW 13369 + DCW -18036 + DCW 10345 + DCW -1233 + DCW 474 + DCW 1577 + DCW -4382 + DCW -3070 + DCW -8194 + DCW 19378 + DCW -17214 + DCW 9628 + DCW -3007 + DCW -1996 + DCW 20313 + DCW -22305 + DCW 10291 + DCW -9934 + DCW -5196 + DCW 13855 + DCW 2940 + DCW 4638 + DCW -16153 + DCW 2948 + DCW -3195 + DCW 15466 + DCW 1711 + DCW -8014 + DCW 5213 + DCW -22305 + DCW 11700 + DCW -1044 + DCW 6584 + DCW -1610 + DCW -5074 + DCW 11205 + DCW -4433 + DCW 9075 + DCW -16166 + DCW 6202 + DCW -5477 + DCW 851 + DCW 9398 + DCW -18309 + DCW 9352 + DCW 2118 + DCW 13570 + DCW 2566 + DCW -10899 + DCW -8731 + DCW -13654 + DCW 11985 + DCW 3044 + DCW 4231 + DCW 1053 + DCW -3376 + DCW 12509 + DCW -5913 + DCW 1724 + DCW -5565 + DCW -8630 + DCW 927 + DCW 1707 + DCW 2537 + DCW -1879 + DCW 14677 + DCW 755 + DCW 4269 + DCW -13734 + DCW -8257 + DCW 4290 + DCW -6873 + DCW 11855 + DCW -4563 + DCW 239 + DCW -2319 + DCW 8555 + DCW 7112 + DCW -9733 + DCW -17 + DCW -8685 + DCW 4231 + DCW -3359 + DCW 386 + DCW 9628 + DCW -2776 + DCW 10786 + DCW -2143 + DCW -4361 + DCW -8379 + DCW -6479 + DCW 9347 + DCW -2738 + DCW 7200 + DCW -4391 + DCW 2122 + DCW 6026 + DCW -2919 + DCW -4131 + DCW -6563 + DCW 3824 + DCW -5192 + DCW 6789 + DCW -5384 + DCW 7313 + DCW 1749 + DCW -5892 + DCW 19135 + DCW -16959 + DCW -5510 + DCW 2302 + DCW -5737 + DCW 11385 + DCW -1573 + DCW -2164 + DCW 6429 + DCW -2675 + DCW -985 + DCW 4265 + DCW -7959 + DCW -6018 + DCW 9066 + DCW -8060 + DCW 10597 + DCW 3355 + DCW -19718 + DCW 17835 + DCW -2671 + DCW 700 + DCW 3871 + DCW -9695 + DCW -4407 + DCW -17 + DCW 872 + DCW 5464 + DCW 9574 + DCW -16841 + DCW 9192 + DCW 75 + DCW -9293 + DCW 8702 + DCW -2285 + DCW -5301 + DCW 7460 + DCW -1518 + DCW -9922 + DCW 15097 + DCW -5896 + DCW -2294 + DCW 10790 + DCW -12266 + DCW -474 + DCW 8110 + DCW -8748 + DCW 12337 + DCW -3690 + DCW -14430 + DCW 12643 + DCW -5309 + DCW -952 + DCW 14585 + DCW -8685 + DCW -5921 + DCW 9779 + DCW -15629 + DCW 6991 + DCW 5871 + DCW -7972 + DCW 8026 + DCW 92 + DCW -5221 + DCW 3590 + DCW 734 + DCW -7267 + DCW 10287 + DCW -11838 + DCW -2654 + DCW 13671 + DCW -7804 + DCW 3787 + DCW 14581 + DCW -15621 + DCW -5036 + DCW 8802 + DCW -14556 + DCW 10022 + DCW 4579 + DCW -6739 + DCW 7842 + DCW -4890 + DCW -4282 + DCW 13738 + DCW -9037 + DCW -1648 + DCW 7246 + DCW -15206 + DCW 4118 + DCW 11834 + DCW -7339 + DCW 5590 + DCW 6580 + DCW -19445 + DCW 8328 + DCW -4399 + DCW -1124 + DCW 9020 + DCW -12375 + DCW 6349 + DCW 3636 + DCW -2143 + DCW 2462 + DCW 10123 + DCW -14652 + DCW 1048 + DCW 7267 + DCW -18418 + DCW 11847 + DCW 2994 + DCW -3564 + DCW 13461 + DCW -6991 + DCW -6223 + DCW 2852 + DCW -6726 + DCW 6890 + DCW 4227 + DCW -12090 + DCW 2185 + DCW 8584 + DCW -10190 + DCW 11272 + DCW 2722 + DCW -16896 + DCW 9867 + DCW -923 + DCW 1044 + DCW 3908 + DCW -6596 + DCW -696 + DCW 5242 + DCW -5259 + DCW 2059 + DCW 5456 + DCW -11436 + DCW 10786 + DCW 340 + DCW -12367 + DCW 11209 + DCW -906 + DCW -7100 + DCW 10660 + DCW -4906 + DCW -8177 + DCW 8236 + DCW -2722 + DCW 5540 + DCW 2583 + DCW -15776 + DCW 8106 + DCW 2483 + DCW -3632 + DCW 13419 + DCW -7603 + DCW -8295 + DCW 4772 + DCW -595 + DCW -2852 + DCW 6970 + DCW -3355 + DCW -4697 + DCW 8651 + DCW -9758 + DCW 2227 + DCW 6701 + DCW -7691 + DCW 9670 + DCW -5682 + DCW -11318 + DCW 12954 + DCW -4588 + DCW 2214 + DCW 10794 + DCW -13558 + DCW -6429 + DCW 5623 + DCW 1614 + DCW 1187 + DCW 7435 + DCW -8517 + DCW -1635 + DCW 4399 + DCW -8664 + DCW 10421 + DCW -2856 + DCW -3711 + DCW 11285 + DCW -9851 + DCW -6655 + DCW 9305 + DCW -1296 + DCW 1799 + DCW 7116 + DCW -13629 + DCW -1535 + DCW 7381 + DCW -1786 + DCW 7137 + DCW -5137 + DCW -8005 + DCW 8391 + DCW -2550 + DCW 1602 + DCW 8349 + DCW -11566 + DCW -3338 + DCW 7586 + DCW -3476 + DCW 449 + DCW 4940 + DCW -10282 + DCW 6039 + DCW 6588 + DCW -13260 + DCW 4755 + DCW -3598 + DCW -1698 + DCW 7590 + DCW -4311 + DCW -2646 + DCW 6726 + DCW 11377 + DCW 2868 + DCW -3170 + DCW -10601 + DCW 667 + DCW -3657 + DCW -5347 + DCW 13453 + DCW -6550 + DCW -4235 + DCW 2512 + DCW -876 + DCW 6475 + DCW 1313 + DCW -3539 + DCW -55 + DCW 2759 + DCW -12539 + DCW 7221 + DCW 3858 + DCW -8685 + DCW 18896 + DCW -8517 + DCW -10102 + DCW 11423 + DCW -7125 + DCW -1854 + DCW 9913 + DCW -9800 + DCW -3460 + DCW 9897 + DCW -5309 + DCW 7997 + DCW 1002 + DCW -13977 + DCW 9846 + DCW 1086 + DCW -14451 + DCW 8140 + DCW 1195 + DCW -4877 + DCW 11612 + DCW -6257 + DCW -205 + DCW 12903 + DCW -13080 + DCW -3149 + DCW 5863 + DCW -10387 + DCW 5070 + DCW 4064 + DCW -3019 + DCW 11398 + DCW -2994 + DCW -18292 + DCW 12899 + DCW 4303 + DCW -12534 + DCW 11712 + DCW -8081 + DCW -59 + DCW 12572 + DCW -9536 + DCW 3996 + DCW 4500 + DCW -10203 + DCW 2164 + DCW 428 + DCW -9100 + DCW 9310 + DCW 5179 + DCW -6894 + DCW 8190 + DCW -5267 + DCW -8806 + DCW 11461 + DCW -5598 + DCW -608 + DCW 6567 + DCW -9242 + DCW 3552 + DCW 6923 + DCW -3237 + DCW 3388 + DCW -5238 + DCW -7611 + DCW 6970 + DCW -3065 + DCW 2118 + DCW 6970 + DCW -3711 + DCW -1128 + DCW 1950 + DCW -4470 + DCW -1443 + DCW 4533 + DCW -2160 + DCW 579 + DCW -96 + DCW -4412 + DCW 1933 + DCW 7821 + DCW 1505 + DCW -2692 + DCW -6894 + DCW -1929 + DCW 2176 + DCW -3049 + DCW 7066 + DCW 88 + DCW -6806 + DCW 6332 + DCW -2256 + DCW -2642 + DCW 8127 + DCW -6206 + DCW -1749 + DCW 3422 + DCW -3267 + DCW -977 + DCW 2575 + DCW -650 + DCW 1002 + DCW 3154 + DCW -8781 + DCW 5619 + DCW 2642 + DCW -7095 + DCW 6437 + DCW -3804 + DCW -5284 + DCW 6320 + DCW -394 + DCW 583 + DCW 1304 + DCW -2382 + DCW 734 + DCW -658 + DCW -1518 + DCW 319 + DCW 1614 + DCW -4617 + DCW 6060 + DCW -273 + DCW -5439 + DCW 6995 + DCW -4466 + DCW 746 + DCW 4273 + DCW -9024 + DCW -130 + DCW 9737 + DCW -5204 + DCW 126 + DCW 3816 + DCW -6999 + DCW 5015 + DCW 4843 + DCW -7825 + DCW 4340 + DCW -2701 + DCW -8890 + DCW 10945 + DCW -331 + DCW 952 + DCW 3242 + DCW -6173 + DCW 612 + DCW 1652 + DCW -4651 + DCW 1317 + DCW 3359 + DCW -3862 + DCW 2692 + DCW -503 + DCW 503 + DCW 5024 + DCW -1749 + DCW -3254 + DCW -524 + DCW -7125 + DCW 1287 + DCW 9301 + DCW -1032 + DCW 205 + DCW -201 + DCW -6714 + DCW 927 + DCW 4932 + DCW -4953 + DCW 4214 + DCW -1036 + DCW -5070 + DCW 5963 + DCW -1032 + DCW -864 + DCW 3137 + DCW -3325 + DCW -977 + DCW -914 + DCW -3866 + DCW 5816 + DCW 1816 + DCW -1489 + DCW -319 + DCW 273 + DCW -2889 + DCW 977 + DCW 1749 + DCW -96 + DCW 1321 + DCW -7142 + DCW 3036 + DCW 1371 + DCW -1560 + DCW 4785 + DCW 159 + DCW -1744 + DCW 1166 + DCW -5883 + DCW -4483 + DCW 9624 + DCW 1602 + DCW -3711 + DCW 2801 + DCW -2369 + DCW -2051 + DCW 4529 + DCW -1879 + DCW -4 + DCW -1522 + DCW -3632 + DCW 2621 + DCW 3497 + DCW -688 + DCW -285 + DCW -608 + DCW -3439 + DCW 2839 + DCW -2919 + DCW 1640 + DCW 3443 + DCW -3820 + DCW 1233 + DCW -1820 + DCW -2499 + DCW 6131 + DCW -419 + DCW -3443 + DCW 5108 + DCW -4315 + DCW -3804 + DCW 7871 + DCW -839 + DCW -5049 + DCW 4927 + DCW -7225 + DCW -512 + DCW 8769 + DCW -4835 + DCW 2143 + DCW 738 + DCW -3854 + DCW 2000 + DCW 1220 + DCW -4391 + DCW 1799 + DCW 2013 + DCW -1967 + DCW 1384 + DCW -985 + DCW -168 + DCW 3749 + DCW -650 + DCW -2826 + DCW 1199 + DCW -3606 + DCW 2348 + DCW 1359 + DCW -1858 + DCW 2705 + DCW -1740 + DCW 671 + DCW 3120 + DCW -4684 + DCW -3204 + DCW 4286 + DCW -2860 + DCW 1589 + DCW 5192 + DCW -3728 + DCW 1090 + DCW 1531 + DCW -6810 + DCW 2407 + DCW 3028 + DCW -3925 + DCW 3003 + DCW 1313 + DCW -2948 + DCW -210 + DCW 147 + DCW 3133 + DCW 3736 + DCW -4437 + DCW -2847 + DCW -2671 + DCW -625 + DCW 1279 + DCW 3187 + DCW 1283 + DCW -1132 + DCW 277 + DCW -1287 + DCW 4730 + DCW -2613 + DCW 600 + DCW 1199 + DCW -3082 + DCW -3766 + DCW -4399 + DCW 4458 + DCW 6756 + DCW 4529 + DCW -1082 + DCW 59 + DCW -6626 + DCW -8194 + DCW 3929 + DCW 4508 + DCW -3200 + DCW 554 + DCW 1367 + DCW 1170 + DCW 3892 + DCW 990 + DCW -1774 + DCW -5942 + DCW -4038 + DCW -1799 + DCW 5468 + DCW 4600 + DCW 3229 + DCW 1355 + DCW -985 + DCW -948 + DCW -7041 + DCW -2088 + DCW 860 + DCW -3770 + DCW 2223 + DCW 5548 + DCW -818 + DCW 6651 + DCW -495 + DCW -6647 + DCW 524 + DCW -5368 + DCW -2399 + DCW 5745 + DCW 122 + DCW -218 + DCW 6303 + DCW 679 + DCW -29 + DCW -1183 + DCW -6156 + DCW -3619 + DCW 1027 + DCW -600 + DCW 2801 + DCW 2877 + DCW 969 + DCW 6403 + DCW -985 + DCW -4223 + DCW -3896 + DCW -5246 + DCW 491 + DCW 3904 + DCW 453 + DCW 1099 + DCW 2852 + DCW 746 + DCW 1526 + DCW -201 + DCW -5770 + DCW -2143 + DCW -1426 + DCW -1245 + DCW 7599 + DCW -2600 + DCW -1690 + DCW 6517 + DCW -2696 + DCW 2088 + DCW 2554 + DCW -8953 + DCW 2692 + DCW 465 + DCW -9578 + DCW 6680 + DCW 5804 + DCW -1212 + DCW 2118 + DCW 2533 + DCW -7024 + DCW -1782 + DCW 3342 + DCW -3728 + DCW -168 + DCW -2466 + DCW 889 + DCW 1204 + DCW 2843 + DCW 7284 + DCW -1443 + DCW -5313 + DCW -608 + DCW -3875 + DCW -2927 + DCW 5896 + DCW 1174 + DCW -797 + DCW 2587 + DCW -1577 + DCW -1858 + DCW 1744 + DCW 1715 + DCW 1250 + DCW -3355 + DCW -5510 + DCW -818 + DCW 2365 + DCW 1413 + DCW 7393 + DCW 1279 + DCW -9981 + DCW 1002 + DCW 595 + DCW -4630 + DCW 2705 + DCW 3258 + DCW -1132 + DCW 4785 + DCW 4667 + DCW -2034 + DCW -2478 + DCW -2390 + DCW -1287 + DCW -5678 + DCW -6383 + DCW 4881 + DCW 5036 + DCW 717 + DCW 8207 + DCW -285 + DCW -6110 + DCW -1778 + DCW -2290 + DCW -738 + DCW -369 + DCW 977 + DCW 939 + DCW -520 + DCW 1468 + DCW 7355 + DCW -990 + DCW -4013 + DCW -197 + DCW -6957 + DCW -2638 + DCW 4168 + DCW 2638 + DCW 164 + DCW 3174 + DCW 2650 + DCW -2730 + DCW -155 + DCW -356 + DCW -981 + DCW -3300 + DCW -3128 + DCW 2940 + DCW -2650 + DCW 3137 + DCW 8282 + DCW 1216 + DCW -2994 + DCW -4462 + DCW -3296 + DCW -1103 + DCW 554 + DCW 55 + DCW 3107 + DCW -2717 + DCW 507 + DCW 2822 + DCW 2235 + DCW 3451 + DCW -3195 + DCW -2772 + DCW -2914 + DCW 411 + DCW -113 + DCW 1879 + DCW -927 + DCW -2504 + DCW 5301 + DCW 1958 + DCW -3145 + DCW -1929 + DCW -3422 + DCW -1526 + DCW 3984 + DCW -361 + DCW 742 + DCW 1325 + DCW -42 + DCW -8 + DCW 1480 + DCW -1757 + DCW -3263 + DCW 2218 + DCW -621 + DCW 994 + DCW 1933 + DCW -3418 + DCW -235 + DCW 3267 + DCW -3468 + DCW 147 + DCW -138 + DCW 256 + DCW -889 + DCW -3409 + DCW 6869 + DCW -4101 + DCW -3254 + DCW 7984 + DCW -2852 + DCW 185 + DCW 3242 + DCW -3208 + DCW -1703 + DCW -1933 + DCW 3489 + DCW -71 + DCW -1099 + DCW 3548 + DCW 1065 + DCW -4722 + DCW -1535 + DCW 4843 + DCW -1929 + DCW -1396 + DCW -1157 + DCW -994 + DCW -2126 + DCW 6257 + DCW 3271 + DCW -3162 + DCW 499 + DCW -1434 + DCW -1715 + DCW -38 + DCW 2315 + DCW -3258 + DCW 1002 + DCW -784 + DCW 2696 + DCW -453 + DCW -2545 + DCW 3745 + DCW -721 + DCW -1325 + DCW -2839 + DCW -2617 + DCW -2046 + DCW 5842 + DCW 5183 + DCW -717 + DCW -3036 + DCW 554 + DCW -1292 + DCW 1732 + DCW 1371 + DCW -2973 + DCW -2017 + DCW -2025 + DCW 7041 + DCW -415 + DCW -126 + DCW -59 + DCW 411 + DCW -1430 + DCW -3254 + DCW 1128 + DCW -2181 + DCW 1602 + DCW 3212 + DCW 1581 + DCW -3162 + DCW 2332 + DCW -512 + DCW 356 + DCW -1346 + DCW -5774 + DCW 386 + DCW 2407 + DCW 6131 + DCW 1812 + DCW 633 + DCW -3070 + DCW -2776 + DCW -3778 + DCW -1334 + DCW -717 + DCW 411 + DCW 4428 + DCW -361 + DCW 3887 + DCW -751 + DCW -2302 + DCW -1568 + DCW -1904 + DCW -1958 + DCW -860 + DCW 7414 + DCW 5292 + DCW -486 + DCW -675 + DCW -3657 + DCW -5657 + DCW -1770 + DCW -130 + DCW 3091 + DCW -1338 + DCW 2193 + DCW 6651 + DCW -1128 + DCW -2348 + DCW -3762 + DCW -461 + DCW -1044 + DCW -2365 + DCW 2361 + DCW 2881 + DCW 872 + DCW 2357 + DCW 876 + DCW -1652 + DCW -604 + DCW -7410 + DCW -2302 + DCW 4806 + DCW 2906 + DCW 486 + DCW 365 + DCW 4105 + DCW -352 + DCW -2034 + DCW -4013 + DCW -2281 + DCW -1577 + DCW -432 + DCW 4453 + DCW 1816 + DCW 2776 + DCW -1497 + DCW -1019 + DCW 193 + DCW -4399 + DCW 264 + DCW 579 + DCW -264 + DCW 2797 + DCW -742 + DCW 1560 + DCW 2910 + DCW -1426 + DCW -377 + DCW -3602 + DCW -2277 + DCW 138 + DCW -25 + DCW 1874 + DCW 1984 + DCW -881 + DCW 520 + DCW 1522 + DCW -1539 + DCW -797 + DCW -4269 + DCW 2663 + DCW 1598 + DCW -4139 + DCW -113 + DCW 2868 + DCW 3372 + DCW -1631 + DCW 1346 + DCW -3644 + DCW -3493 + DCW 2013 + DCW 3003 + DCW -2931 + DCW -5804 + DCW 10756 + DCW 7867 + DCW -9918 + DCW -11847 + DCW 11561 + DCW 11998 + DCW -9326 + DCW -6689 + DCW -2130 + DCW 4533 + DCW 5103 + DCW -3485 + DCW -1967 + DCW 1619 + DCW 1598 + DCW -3661 + DCW -3837 + DCW 7628 + DCW 2747 + DCW -3304 + DCW -1170 + DCW -4005 + DCW 1682 + DCW 5418 + DCW 633 + DCW -5531 + DCW -675 + DCW 419 + DCW 541 + DCW 2583 + DCW -3091 + DCW 3497 + DCW 2130 + DCW -1468 + DCW -4588 + DCW -5171 + DCW 8068 + DCW 2537 + DCW -2004 + DCW 1258 + DCW -3560 + DCW -4156 + DCW 2529 + DCW 6248 + DCW -201 + DCW 575 + DCW -4609 + DCW -306 + DCW -11905 + DCW -18430 + DCW 32767 + DCW 20728 + DCW -32768 + DCW -20229 + DCW 32767 + DCW 32767 + DCW -32768 + DCW -32768 + DCW 24939 + DCW 32767 + DCW 2868 + DCW -32768 + DCW 2332 + DCW 27904 + DCW -3300 + DCW 1992 + DCW -28763 + DCW -814 + DCW 32767 + DCW -7783 + DCW -13818 + DCW -9687 + DCW 5577 + DCW 21085 + DCW 16497 + DCW -28214 + DCW -32768 + DCW 32767 + DCW 13461 + DCW -28419 + DCW 4680 + DCW -11377 + DCW 15801 + DCW 9599 + DCW -7498 + DCW -19806 + DCW 8630 + DCW 24482 + DCW -32768 + DCW 10480 + DCW 12832 + DCW -17944 + DCW 13901 + DCW -2432 + DCW -1770 + DCW -8442 + DCW 13033 + DCW -2365 + DCW -20338 + DCW 32767 + DCW -13822 + DCW -16325 + DCW 11914 + DCW -10350 + DCW 12300 + DCW -340 + DCW 0 + DCW -13163 + DCW 7502 + DCW 10727 + DCW -19743 + DCW 24033 + DCW -11251 + DCW -16602 + DCW 18133 + DCW -2696 + DCW -1229 + DCW -7305 + DCW 8169 + DCW 2826 + DCW -780 + DCW 1308 + DCW -18565 + DCW 10362 + DCW 7502 + DCW -3112 + DCW 2495 + DCW -8001 + DCW -923 + DCW 2332 + DCW 12736 + DCW -4064 + DCW -11415 + DCW 9477 + DCW -8307 + DCW 67 + DCW 7418 + DCW -2575 + DCW 1111 + DCW -654 + DCW 2285 + DCW -11792 + DCW 9645 + DCW 6890 + DCW -16833 + DCW 16204 + DCW -7028 + DCW -10844 + DCW 11427 + DCW -2298 + DCW 3694 + DCW -851 + DCW 3917 + DCW -11528 + DCW -143 + DCW 16699 + DCW -17671 + DCW 9817 + DCW 1677 + DCW -12291 + DCW 9867 + DCW -3258 + DCW 3409 + DCW -2961 + DCW 3753 + DCW -3606 + DCW -5686 + DCW 7519 + DCW -9435 + DCW 12069 + DCW 3103 + DCW -10249 + DCW 1241 + DCW 2818 + DCW 507 + DCW -5254 + DCW 7301 + DCW -9549 + DCW 226 + DCW 10303 + DCW -7255 + DCW 5464 + DCW -520 + DCW -2415 + DCW -210 + DCW 994 + DCW -5716 + DCW -2747 + DCW 16208 + DCW -8362 + DCW -4093 + DCW 12476 + DCW -9712 + DCW -5053 + DCW 5066 + DCW -2508 + DCW 3183 + DCW 1799 + DCW -3946 + DCW -3187 + DCW 8156 + DCW 4890 + DCW -12107 + DCW 7573 + DCW -8454 + DCW -2873 + DCW 16183 + DCW -7712 + DCW 3279 + DCW -7267 + DCW 3200 + DCW 3493 + DCW -4751 + DCW 10433 + DCW -17671 + DCW 3409 + DCW 9003 + DCW -4625 + DCW 5665 + DCW -5368 + DCW 2269 + DCW -3393 + DCW 2558 + DCW 75 + DCW -6974 + DCW 8567 + DCW -5137 + DCW 579 + DCW 5795 + DCW -4047 + DCW -491 + DCW 2998 + DCW -3221 + DCW -3590 + DCW 6693 + DCW -5007 + DCW -3963 + DCW 8140 + DCW 2080 + DCW -5561 + DCW 2214 + DCW 730 + DCW -6898 + DCW 8722 + DCW 164 + DCW -5598 + DCW 5963 + DCW -3082 + DCW -4856 + DCW 3409 + DCW 2881 + DCW -1925 + DCW -323 + DCW -1497 + DCW -1858 + DCW 235 + DCW 4525 + DCW 264 + DCW -2831 + DCW 1929 + DCW -6831 + DCW 5867 + DCW 3304 + DCW -2822 + DCW 3535 + DCW -7204 + DCW 3162 + DCW -1552 + DCW 524 + DCW 1124 + DCW -4206 + DCW 8454 + DCW -4336 + DCW -1355 + DCW -159 + DCW -2831 + DCW 3980 + DCW 415 + DCW 1673 + DCW -5330 + DCW 2218 + DCW 1891 + DCW -3309 + DCW 6198 + DCW -4114 + DCW -2273 + DCW 3145 + DCW -6529 + DCW 4424 + DCW 12178 + DCW -13168 + DCW -5108 + DCW 13901 + DCW -6974 + DCW -612 + DCW -193 + DCW -7318 + DCW 9721 + DCW 1610 + DCW -8068 + DCW 445 + DCW 8387 + DCW -2910 + DCW -7272 + DCW 6622 + DCW -1598 + DCW -424 + DCW 3057 + DCW -7494 + DCW 1208 + DCW 8026 + DCW -1568 + DCW -3414 + DCW 2885 + DCW -4235 + DCW -3443 + DCW 6261 + DCW 981 + DCW -4336 + DCW 3732 + DCW 4453 + DCW -7104 + DCW 164 + DCW 3430 + DCW -3770 + DCW 4114 + DCW 3992 + DCW -8462 + DCW -1493 + DCW 3824 + DCW -5691 + DCW 6311 + DCW 1237 + DCW -10249 + DCW 3145 + DCW 4827 + DCW 3099 + DCW -2223 + DCW 3296 + DCW 1199 + DCW -6445 + DCW 4168 + DCW -5875 + DCW 663 + DCW 7351 + DCW -6156 + DCW 205 + DCW 3837 + DCW -4307 + DCW -7414 + DCW 7171 + DCW 3363 + DCW -6848 + DCW 5200 + DCW -2114 + DCW -2504 + DCW 6055 + DCW -2130 + DCW -2046 + DCW 2940 + DCW 587 + DCW -3606 + DCW 1484 + DCW 528 + DCW -516 + DCW 2478 + DCW -973 + DCW -1241 + DCW -2789 + DCW -918 + DCW -247 + DCW 5095 + DCW 1690 + DCW -7624 + DCW 956 + DCW 4013 + DCW -2273 + DCW 176 + DCW 3632 + DCW -2537 + DCW 1942 + DCW -1233 + DCW -3858 + DCW 4546 + DCW -361 + DCW -1455 + DCW -256 + DCW 1174 + DCW -2759 + DCW -2168 + DCW 6089 + DCW 994 + DCW -1795 + DCW -839 + DCW -3544 + DCW -1078 + DCW 6169 + DCW 1036 + DCW -4286 + DCW 2537 + DCW -256 + DCW 470 + DCW 3179 + DCW -2894 + DCW -3866 + DCW 688 + DCW 876 + DCW -923 + DCW 3221 + DCW -335 + DCW -1141 + DCW 1845 + DCW -243 + DCW -2407 + DCW -3263 + DCW 763 + DCW 470 + DCW 3439 + DCW 2453 + DCW -4617 + DCW 2705 + DCW 2206 + DCW -2797 + DCW 403 + DCW -3904 + DCW 168 + DCW 1086 + DCW 2160 + DCW 2118 + DCW -6093 + DCW 3107 + DCW -1002 + DCW -155 + DCW 5171 + DCW -5997 + DCW -2914 + DCW 2499 + DCW 4575 + DCW 13 + DCW 2285 + DCW -5041 + DCW -5196 + DCW 10111 + DCW -3061 + DCW -1648 + DCW -1300 + DCW 3967 + DCW 3690 + DCW -9406 + DCW 1300 + DCW 281 + DCW 7439 + DCW -4105 + DCW -4399 + DCW 1887 + DCW -3359 + DCW 6483 + DCW -6194 + DCW 8068 + DCW -2088 + DCW -4311 + DCW 4068 + DCW -10182 + DCW 9482 + DCW -830 + DCW -1770 + DCW 2487 + DCW 512 + DCW -3216 + DCW 474 + DCW 7590 + DCW -7913 + DCW 5137 + DCW -4139 + DCW -4860 + DCW 5183 + DCW 2013 + DCW -981 + DCW -1522 + DCW 5171 + DCW -7573 + DCW 4898 + DCW -13 + DCW -2466 + DCW -969 + DCW -1271 + DCW 6911 + DCW -5883 + DCW 5477 + DCW -4395 + DCW 1963 + DCW -356 + DCW -1791 + DCW -134 + DCW -7687 + DCW 14149 + DCW -8819 + DCW 8026 + DCW -348 + DCW -8546 + DCW 7561 + DCW -6986 + DCW 4474 + DCW -7045 + DCW 10513 + DCW -4831 + DCW -2923 + DCW 10643 + DCW -12929 + DCW 10001 + DCW -5703 + DCW -751 + DCW 4298 + DCW -5259 + DCW 2017 + DCW -6110 + DCW 11582 + DCW -3661 + DCW 84 + DCW 3284 + DCW -7884 + DCW 3862 + DCW -6936 + DCW 9171 + DCW -2520 + DCW 855 + DCW 3749 + DCW -7511 + DCW 5372 + DCW -5628 + DCW 4399 + DCW -2579 + DCW 3263 + DCW -1891 + DCW -3996 + DCW 4982 + DCW -7020 + DCW 8072 + DCW -2273 + DCW -2193 + DCW 1011 + DCW 461 + DCW 788 + DCW -2986 + DCW 5686 + DCW -2562 + DCW 164 + DCW -3812 + DCW 692 + DCW 6152 + DCW -4558 + DCW 4043 + DCW -2789 + DCW -2604 + DCW -1887 + DCW 2013 + DCW 3317 + DCW -4235 + DCW 8400 + DCW -6315 + DCW -3225 + DCW 205 + DCW 4277 + DCW 5514 + DCW -6336 + DCW 5774 + DCW -10211 + DCW 700 + DCW 4969 + DCW -3141 + DCW 4567 + DCW 4 + DCW 2998 + DCW -8148 + DCW 1355 + DCW 197 + DCW -948 + DCW 5900 + DCW -4353 + DCW 2894 + DCW -4445 + DCW -474 + DCW 315 + DCW 6039 + DCW -1858 + DCW -10618 + DCW 15231 + DCW -10131 + DCW -2294 + DCW 9913 + DCW -3502 + DCW 428 + DCW -3564 + DCW 4999 + DCW -4349 + DCW -277 + DCW 3388 + DCW -914 + DCW 155 + DCW 323 + DCW 315 + DCW -5984 + DCW 5984 + DCW 113 + DCW -1598 + DCW 4064 + DCW -7729 + DCW 705 + DCW 3745 + DCW -2629 + DCW 2340 + DCW 3237 + DCW -5896 + DCW -1631 + DCW 6680 + DCW -7251 + DCW 3036 + DCW 9507 + DCW -797 + DCW -10790 + DCW -6181 + DCW 14258 + DCW -11985 + DCW 3984 + DCW 15206 + DCW -15042 + DCW 629 + DCW -394 + DCW -3007 + DCW 10706 + DCW -1032 + DCW -5770 + DCW 7771 + DCW -12237 + DCW 243 + DCW 9762 + DCW -7322 + DCW 12723 + DCW -10756 + DCW -4248 + DCW 8026 + DCW -7297 + DCW 9310 + DCW -3757 + DCW -2030 + DCW 4776 + DCW -6643 + DCW -3024 + DCW 11901 + DCW -939 + DCW -9557 + DCW 7905 + DCW -7901 + DCW 6110 + DCW 1732 + DCW -7561 + DCW 8567 + DCW -9435 + DCW 3594 + DCW 5108 + DCW -3355 + DCW 2185 + DCW -3367 + DCW -3128 + DCW 5519 + DCW 105 + DCW -3544 + DCW 6827 + DCW -9813 + DCW 2948 + DCW 7674 + DCW -10136 + DCW 7871 + DCW 340 + DCW -9062 + DCW 2680 + DCW 3892 + DCW -960 + DCW 2873 + DCW 143 + DCW -5171 + DCW 2353 + DCW -4860 + DCW 3866 + DCW 3460 + DCW -2906 + DCW 1812 + DCW -8345 + DCW 6492 + DCW 2680 + DCW -1631 + DCW 3753 + DCW -7330 + DCW -1078 + DCW 5590 + DCW -2181 + DCW -4441 + DCW 7523 + DCW -4919 + DCW 96 + DCW 6177 + DCW -3787 + DCW 2223 + DCW -5951 + DCW 2877 + DCW 2038 + DCW -3787 + DCW 3984 + DCW -2504 + DCW 352 + DCW 2025 + DCW -4944 + DCW 2969 + DCW 3824 + DCW -7942 + DCW 3007 + DCW 147 + DCW -4357 + DCW 9754 + DCW -46 + DCW -5456 + DCW 2231 + DCW -4089 + DCW -440 + DCW 8844 + DCW -4378 + DCW -1640 + DCW -1262 + DCW -3850 + DCW 10320 + DCW -5435 + DCW -1388 + DCW 5393 + DCW -11218 + DCW 6777 + DCW 7532 + DCW -9385 + DCW 2881 + DCW 2743 + DCW -6529 + DCW 3309 + DCW 1904 + DCW -688 + DCW 533 + DCW -4047 + DCW 2290 + DCW -2399 + DCW 3418 + DCW 985 + DCW -4479 + DCW 8806 + DCW -11662 + DCW -1329 + DCW 10907 + DCW -5733 + DCW 155 + DCW 1724 + DCW -1069 + DCW -4298 + DCW 8177 + DCW -767 + DCW -7112 + DCW 8026 + DCW -4349 + DCW -562 + DCW 2843 + DCW -1124 + DCW -654 + DCW -2231 + DCW 4365 + DCW -746 + DCW -1296 + DCW 1833 + DCW -5305 + DCW 4416 + DCW 4126 + DCW -7611 + DCW 4583 + DCW 415 + DCW -5649 + DCW 4001 + DCW -138 + DCW -1791 + DCW 3028 + DCW -1614 + DCW -1728 + DCW 3200 + DCW -218 + DCW 881 + DCW -671 + DCW -1027 + DCW -973 + DCW -2449 + DCW 4994 + DCW -356 + DCW -4256 + DCW 4932 + DCW -2759 + DCW -1623 + DCW 4437 + DCW -5103 + DCW 2625 + DCW 3116 + DCW -4739 + DCW 1535 + DCW 3946 + DCW -4932 + DCW -2164 + DCW 5292 + DCW -1157 + DCW 2239 + DCW -2239 + DCW -2462 + DCW 2193 + DCW -3032 + DCW 3485 + DCW -3036 + DCW 2671 + DCW 2088 + DCW -9645 + DCW 9477 + DCW -92 + DCW -4760 + DCW 6039 + DCW -4856 + DCW -2365 + DCW 4424 + DCW 595 + DCW -3917 + DCW 6320 + DCW -2000 + DCW -7758 + DCW 7649 + DCW -1120 + DCW -2713 + DCW 3028 + DCW 256 + DCW -1749 + DCW -2059 + DCW 2885 + DCW -1074 + DCW -1103 + DCW 3778 + DCW -2248 + DCW 742 + DCW 449 + DCW -3351 + DCW 2839 + DCW 1107 + DCW -2768 + DCW -818 + DCW 3061 + DCW -3351 + DCW -1023 + DCW 4563 + DCW -2302 + DCW 457 + DCW -218 + DCW -1313 + DCW 939 + DCW 1178 + DCW 700 + DCW -2831 + DCW 2743 + DCW -432 + DCW -4655 + DCW 6722 + DCW -902 + DCW -3632 + DCW 4139 + DCW -2344 + DCW -1543 + DCW 1409 + DCW 331 + DCW -835 + DCW 2290 + DCW -2441 + DCW -2789 + DCW 5510 + DCW -1187 + DCW -927 + DCW 562 + DCW 952 + DCW 495 + DCW -3313 + DCW 4915 + DCW -2378 + DCW -2504 + DCW 3728 + DCW -4835 + DCW 5967 + DCW -436 + DCW -5653 + DCW 3682 + DCW -1455 + DCW 256 + DCW -377 + DCW 2680 + DCW -730 + DCW -3590 + DCW 2759 + DCW 554 + DCW 17 + DCW 294 + DCW -545 + DCW -1744 + DCW 1279 + DCW 340 + DCW -1300 + DCW 4441 + DCW -3095 + DCW -4902 + DCW 4604 + DCW -398 + DCW -671 + DCW 1627 + DCW -2046 + DCW -29 + DCW 608 + DCW -587 + DCW 2843 + DCW 1329 + DCW -2353 + DCW 457 + DCW 449 + DCW 1975 + DCW -4072 + DCW -5510 + DCW 3602 + DCW -637 + DCW 2663 + DCW 3661 + DCW -4101 + DCW 3866 + DCW 80 + DCW -5636 + DCW 3007 + DCW -1610 + DCW -3380 + DCW 914 + DCW 1602 + DCW 3158 + DCW 1036 + DCW 130 + DCW -2747 + DCW -1782 + DCW 2931 + DCW -2302 + DCW -3225 + DCW 5179 + DCW 1262 + DCW -5095 + DCW 5888 + DCW -637 + DCW -3183 + DCW 4621 + DCW -8387 + DCW 5795 + DCW 2084 + DCW -9964 + DCW 7125 + DCW 759 + DCW -1019 + DCW 839 + DCW 419 + DCW -352 + DCW -2646 + DCW -851 + DCW -75 + DCW 9880 + DCW -3363 + DCW -12191 + DCW 6395 + DCW 8391 + DCW -2688 + DCW -5238 + DCW 2759 + DCW -1484 + DCW -1023 + DCW 231 + DCW -5363 + DCW 11046 + DCW 1778 + DCW -10635 + DCW 6047 + DCW 847 + DCW -3615 + DCW 2042 + DCW -2684 + DCW 969 + DCW 3883 + DCW -7364 + DCW 1090 + DCW 10924 + DCW -8244 + DCW -1015 + DCW 6550 + DCW -7812 + DCW 3749 + DCW -4 + DCW -5594 + DCW 8777 + DCW -1111 + DCW -6475 + DCW 5674 + DCW 1011 + DCW -6223 + DCW 3082 + DCW 1904 + DCW -3653 + DCW 2214 + DCW -1812 + DCW -2323 + DCW 6437 + DCW -503 + DCW -4663 + DCW 6940 + DCW -1614 + DCW -8697 + DCW 7523 + DCW 1241 + DCW -3946 + DCW 4416 + DCW -4256 + DCW 143 + DCW 4449 + DCW -4906 + DCW 3556 + DCW 1967 + DCW -7666 + DCW 1187 + DCW 1359 + DCW 516 + DCW 3544 + DCW -3900 + DCW 143 + DCW 4034 + DCW -4709 + DCW -1405 + DCW 6370 + DCW -1048 + DCW -5233 + DCW 2302 + DCW 600 + DCW -759 + DCW -470 + DCW -2818 + DCW 4047 + DCW 2185 + DCW -5225 + DCW 1656 + DCW 4177 + DCW -5556 + DCW 952 + DCW 5825 + DCW -2814 + DCW 2722 + DCW -1535 + DCW -5493 + DCW 5200 + DCW -2407 + DCW -4571 + DCW 6181 + DCW -868 + DCW -4521 + DCW 3736 + DCW 1283 + DCW 449 + DCW 1837 + DCW -5011 + DCW -1770 + DCW 3879 + DCW -2952 + DCW 587 + DCW 6697 + DCW -3330 + DCW -2541 + DCW 3137 + DCW -1958 + DCW -629 + DCW 872 + DCW -1795 + DCW 1967 + DCW 2462 + DCW -3154 + DCW 1002 + DCW 1887 + DCW -4579 + DCW -558 + DCW 1300 + DCW 126 + DCW 893 + DCW -1124 + DCW 1573 + DCW 3837 + DCW -1434 + DCW -1929 + DCW 2097 + DCW -4525 + DCW -3154 + DCW 3632 + DCW -365 + DCW 3674 + DCW 176 + DCW -4936 + DCW 4173 + DCW 621 + DCW -5108 + DCW 738 + DCW 1292 + DCW -2432 + DCW 3007 + DCW 3212 + DCW -1095 + DCW 1078 + DCW -3351 + DCW -3095 + DCW 2810 + DCW -247 + DCW -3019 + DCW 2470 + DCW 2319 + DCW -1086 + DCW 2671 + DCW -545 + DCW -2860 + DCW -533 + DCW -2931 + DCW 2478 + DCW 4344 + DCW -3703 + DCW 700 + DCW 2445 + DCW -2738 + DCW 1975 + DCW 256 + DCW -2394 + DCW 1334 + DCW -3422 + DCW -763 + DCW 7389 + DCW -973 + DCW -4424 + DCW 2302 + DCW -470 + DCW -725 + DCW 1048 + DCW -1744 + DCW 1522 + DCW 1325 + DCW -3317 + DCW 784 + DCW 3636 + DCW -3296 + DCW -797 + DCW 3988 + DCW -2269 + DCW -1229 + DCW 533 + DCW -247 + DCW 1988 + DCW 239 + DCW -1229 + DCW 1132 + DCW -566 + DCW -3040 + DCW 1652 + DCW 1153 + DCW -562 + DCW 801 + DCW -1430 + DCW -17 + DCW 1069 + DCW -1581 + DCW 1518 + DCW 2097 + DCW -4877 + DCW 365 + DCW 3674 + DCW -3871 + DCW 2424 + DCW 2701 + DCW -4198 + DCW 1342 + DCW -365 + DCW -839 + DCW 4047 + DCW -315 + DCW -2914 + DCW 839 + DCW 302 + DCW -1505 + DCW 1296 + DCW -956 + DCW 1095 + DCW 956 + DCW -3573 + DCW 3715 + DCW 1963 + DCW -4915 + DCW 55 + DCW 2550 + DCW -361 + DCW 1023 + DCW 277 + DCW -2764 + DCW 1048 + DCW 67 + DCW -2277 + DCW 2575 + DCW 432 + DCW -2214 + DCW 935 + DCW 1078 + DCW 591 + DCW 931 + DCW -2051 + DCW -2545 + DCW 1740 + DCW -134 + DCW -63 + DCW 1849 + DCW -889 + DCW -50 + DCW 1220 + DCW 394 + DCW -935 + DCW -2407 + DCW -352 + DCW 2864 + DCW -868 + DCW -1409 + DCW 2264 + DCW -663 + DCW -1405 + DCW 1082 + DCW 843 + DCW 13 + DCW -1002 + DCW -2260 + DCW 876 + DCW 3443 + DCW -1988 + DCW 784 + DCW 3405 + DCW -6202 + DCW 17 + DCW 4508 + DCW -897 + DCW -1539 + DCW -5326 + DCW 4332 + DCW 8202 + DCW -6546 + DCW -6546 + DCW 8232 + DCW 2722 + DCW -9133 + DCW 218 + DCW 6705 + DCW 3430 + DCW -7125 + DCW -4760 + DCW 8974 + DCW 1728 + DCW -8756 + DCW 298 + DCW 8421 + DCW -2696 + DCW -6311 + DCW 1262 + DCW 8198 + DCW 1514 + DCW -14044 + DCW 1686 + DCW 11629 + DCW -5586 + DCW -5133 + DCW 5934 + DCW 2281 + DCW -4558 + DCW -721 + DCW 814 + DCW 4240 + DCW -2596 + DCW -8869 + DCW 9314 + DCW 3233 + DCW -5301 + DCW 3720 + DCW -2998 + DCW -2524 + DCW 5288 + DCW -1996 + DCW -6399 + DCW 7754 + DCW 3896 + DCW -11062 + DCW -147 + DCW 9129 + DCW 411 + DCW -8366 + DCW -1732 + DCW 9519 + DCW 1329 + DCW -10706 + DCW 2206 + DCW 10576 + DCW -5967 + DCW -7901 + DCW 5527 + DCW 8257 + DCW -5875 + DCW -11293 + DCW 7301 + DCW 13830 + DCW -5691 + DCW -13721 + DCW 9804 + DCW 6299 + DCW -13285 + DCW 889 + DCW 9712 + DCW 3057 + DCW -10052 + DCW -8538 + DCW 14304 + DCW 6072 + DCW -15168 + DCW 1648 + DCW 10446 + DCW -5259 + DCW -7716 + DCW 1275 + DCW 12547 + DCW -713 + DCW -14879 + DCW 3892 + DCW 10626 + DCW -3187 + DCW -7028 + DCW 2948 + DCW 6932 + DCW -6886 + DCW -8052 + DCW 9364 + DCW 7871 + DCW -8240 + DCW -6445 + DCW 6684 + DCW 5301 + DCW -5967 + DCW -4290 + DCW 7330 + DCW 755 + DCW -8832 + DCW 1459 + DCW 7984 + DCW 2134 + DCW -7871 + DCW -2931 + DCW 9473 + DCW -2038 + DCW -7137 + DCW 5204 + DCW 2466 + DCW -3489 + DCW -2789 + DCW 864 + DCW 8655 + DCW -1447 + DCW -11595 + DCW 6273 + DCW 5997 + DCW -8588 + DCW 382 + DCW 5573 + DCW -755 + DCW -5590 + DCW -1069 + DCW 7787 + DCW 1438 + DCW -6789 + DCW -990 + DCW 5447 + DCW 1199 + DCW -6085 + DCW -361 + DCW 6584 + DCW -2139 + DCW -4705 + DCW 3883 + DCW 2550 + DCW -3107 + DCW -3405 + DCW 1489 + DCW 6626 + DCW -4001 + DCW -5535 + DCW 6718 + DCW 1556 + DCW -3221 + DCW -1942 + DCW 2273 + DCW 4760 + DCW -6034 + DCW -4760 + DCW 8379 + DCW 1380 + DCW -6731 + DCW 2583 + DCW 2160 + DCW -1468 + DCW -1300 + DCW -952 + DCW 4932 + DCW -751 + DCW -7347 + DCW 2210 + DCW 7498 + DCW -1048 + DCW -6487 + DCW 176 + DCW 5858 + DCW -1820 + DCW -4076 + DCW 3460 + DCW 2185 + DCW -4051 + DCW -4269 + DCW 6148 + DCW 5959 + DCW -5774 + DCW -4340 + DCW 4282 + DCW 914 + DCW -3304 + DCW 612 + DCW 1254 + DCW 2420 + DCW -5561 + DCW -1103 + DCW 7884 + DCW -1833 + DCW -3065 + DCW -835 + DCW 1111 + DCW 1061 + DCW -1585 + DCW -193 + DCW 4495 + DCW -2545 + DCW -4948 + DCW 5489 + DCW 1929 + DCW -2424 + DCW -1988 + DCW 239 + DCW 3082 + DCW -814 + DCW -2608 + DCW 4240 + DCW -1082 + DCW -4403 + DCW 2596 + DCW 1895 + DCW 948 + DCW -3523 + DCW -1719 + DCW 4198 + DCW 17 + DCW -1313 + DCW 1493 + DCW 361 + DCW -1417 + DCW -4017 + DCW 2273 + DCW 5271 + DCW -3233 + DCW -3921 + DCW 1912 + DCW 2487 + DCW -931 + DCW -2164 + DCW 1614 + DCW 2885 + DCW -5477 + DCW -734 + DCW 5917 + DCW -973 + DCW -3837 + DCW 554 + DCW 1631 + DCW 2000 + DCW -2235 + DCW -1908 + DCW 4772 + DCW -2231 + DCW -2847 + DCW 931 + DCW 3166 + DCW 541 + DCW -3984 + DCW 935 + DCW 3187 + DCW -2768 + DCW -1556 + DCW 2625 + DCW 1199 + DCW -1929 + DCW -3036 + DCW 3472 + DCW 818 + DCW -3913 + DCW -189 + DCW 12081 + DCW 969 + DCW -13855 + DCW -3988 + DCW 7976 + DCW 9410 + DCW -8924 + DCW -4705 + DCW 4051 + DCW 3476 + DCW 1069 + DCW -9494 + DCW 2701 + DCW 9557 + DCW -8588 + DCW -2235 + DCW 7947 + DCW -5359 + DCW 608 + DCW 2034 + DCW -2290 + DCW 3405 + DCW -4940 + DCW 751 + DCW 6932 + DCW -4688 + DCW -3980 + DCW 486 + DCW 4458 + DCW 1011 + DCW -3527 + DCW 843 + DCW 130 + DCW -2919 + DCW 1782 + DCW 4009 + DCW -956 + DCW 130 + DCW -4701 + DCW 1539 + DCW 4856 + DCW -3107 + DCW 2139 + DCW -2046 + DCW -2864 + DCW 1497 + DCW -893 + DCW 6118 + DCW -1598 + DCW -6932 + DCW 5808 + DCW 260 + DCW -1237 + DCW 2600 + DCW -2923 + DCW -285 + DCW 1568 + DCW -4294 + DCW 5208 + DCW 2139 + DCW -6554 + DCW 1736 + DCW -80 + DCW 1023 + DCW 579 + DCW -231 + DCW 231 + DCW -998 + DCW -902 + DCW 2692 + DCW 340 + DCW -2319 + DCW -549 + DCW -1707 + DCW 3980 + DCW 377 + DCW -2260 + DCW 1698 + DCW -25 + DCW -3011 + DCW 1107 + DCW 3632 + DCW 524 + DCW -3372 + DCW -3082 + DCW 3741 + DCW 327 + DCW -159 + DCW 1518 + DCW -2646 + DCW 1510 + DCW -2109 + DCW 168 + DCW 6504 + DCW -4571 + DCW -4143 + DCW 2239 + DCW 2080 + DCW -147 + DCW 155 + DCW -453 + DCW -222 + DCW -566 + DCW -3485 + DCW 4869 + DCW 2873 + DCW -4583 + DCW -1245 + DCW 595 + DCW 2411 + DCW 273 + DCW -1770 + DCW 1946 + DCW -1765 + DCW -2105 + DCW 1325 + DCW 1547 + DCW 1531 + DCW -2772 + DCW -2210 + DCW 3485 + DCW 675 + DCW -3162 + DCW 2248 + DCW 1635 + DCW -2629 + DCW -684 + DCW 2176 + DCW 1870 + DCW -1744 + DCW -2575 + DCW 2512 + DCW -575 + DCW -1602 + DCW 1166 + DCW -663 + DCW 2940 + DCW -2873 + DCW -2097 + DCW 5623 + DCW -2374 + DCW -3564 + DCW 3154 + DCW 981 + DCW 226 + DCW -830 + DCW -1011 + DCW 2919 + DCW -1115 + DCW -2449 + DCW 2910 + DCW 872 + DCW -1967 + DCW -1464 + DCW 1040 + DCW 3892 + DCW -3644 + DCW -1698 + DCW 2504 + DCW -1061 + DCW 281 + DCW -122 + DCW 1422 + DCW 201 + DCW -3074 + DCW 407 + DCW 4244 + DCW -1241 + DCW -2944 + DCW 1715 + DCW 155 + DCW -84 + DCW -1141 + DCW 432 + DCW 3330 + DCW -3971 + DCW -1715 + DCW 3401 + DCW 1539 + DCW -386 + DCW -3824 + DCW 1753 + DCW 1422 + DCW -2969 + DCW 1640 + DCW 2420 + DCW -2747 + DCW -1883 + DCW 1921 + DCW 1895 + DCW 889 + DCW -2764 + DCW -1199 + DCW 3485 + DCW -1489 + DCW -1686 + DCW 3506 + DCW -910 + DCW -1740 + DCW -1518 + DCW 2390 + DCW 2495 + DCW -3560 + DCW -1128 + DCW 1086 + DCW 2202 + DCW -583 + DCW -826 + DCW 1325 + DCW -172 + DCW -3363 + DCW 1153 + DCW 4915 + DCW -1606 + DCW -3544 + DCW 180 + DCW 2508 + DCW -377 + DCW -637 + DCW 1296 + DCW 369 + DCW -3120 + DCW -637 + DCW 3963 + DCW 985 + DCW -1912 + DCW -4131 + DCW 2323 + DCW 3292 + DCW -1988 + DCW 1409 + DCW -814 + DCW -851 + DCW -725 + DCW 688 + DCW 2453 + DCW -981 + DCW -1069 + DCW -1728 + DCW 2516 + DCW 776 + DCW -2667 + DCW 734 + DCW 2172 + DCW -1086 + DCW -4315 + DCW 3355 + DCW 2810 + DCW -2738 + DCW 289 + DCW -1547 + DCW 1245 + DCW 2109 + DCW -2256 + DCW 1417 + DCW -218 + DCW -2252 + DCW 835 + DCW 2445 + DCW -1006 + DCW -2592 + DCW 1334 + DCW 1191 + DCW -164 + DCW -1560 + DCW 155 + DCW 1434 + DCW -1132 + DCW -13 + DCW -38 + DCW 2030 + DCW 436 + DCW -5087 + DCW 3711 + DCW 2101 + DCW -2717 + DCW 889 + DCW -709 + DCW 1472 + DCW -1053 + DCW -1438 + DCW 1690 + DCW 1916 + DCW -1937 + DCW -2415 + DCW 3086 + DCW -533 + DCW -1195 + DCW 1245 + DCW 382 + DCW -377 + DCW -1388 + DCW 1204 + DCW 247 + DCW -595 + DCW 470 + DCW -403 + DCW 1313 + DCW -1300 + DCW -1283 + DCW 2290 + DCW -893 + DCW -1556 + DCW 2063 + DCW 2520 + DCW -2189 + DCW -3309 + DCW 1845 + DCW 977 + DCW -486 + DCW 1396 + DCW 88 + DCW -1254 + DCW -872 + DCW -306 + DCW 1728 + DCW 1942 + DCW -2076 + DCW -1556 + DCW 566 + DCW 1166 + DCW 684 + DCW -1095 + DCW -50 + DCW -348 + DCW -1455 + DCW 1698 + DCW 1635 + DCW -1149 + DCW -491 + DCW -730 + DCW 2067 + DCW 973 + DCW -2654 + DCW 835 + DCW 1740 + DCW -2982 + DCW -1992 + DCW 3556 + DCW 2822 + DCW -1942 + DCW -4441 + DCW 931 + DCW 2621 + DCW 742 + DCW 516 + DCW -3028 + DCW -549 + DCW 1174 + DCW 470 + DCW 2558 + DCW -1371 + DCW -3699 + DCW 923 + DCW 2353 + DCW 281 + DCW -415 + DCW -1984 + DCW 2000 + DCW 3380 + DCW -7305 + DCW -126 + DCW 8513 + DCW -3380 + DCW -5762 + DCW 2491 + DCW 2952 + DCW -667 + DCW -130 + DCW -1837 + DCW -315 + DCW 1862 + DCW -1367 + DCW 1417 + DCW 2453 + DCW -3711 + DCW -1812 + DCW 1992 + DCW 956 + DCW 2344 + DCW -1858 + DCW -3942 + DCW 2533 + DCW 1564 + DCW -990 + DCW 2399 + DCW -2327 + DCW -3221 + DCW 2751 + DCW 528 + DCW 1526 + DCW -281 + DCW -4344 + DCW 2260 + DCW 2449 + DCW -2327 + DCW 1199 + DCW 1749 + DCW -3200 + DCW -759 + DCW 1522 + DCW 415 + DCW 3598 + DCW -2789 + DCW -4428 + DCW 3778 + DCW 923 + DCW -2675 + DCW 1992 + DCW 1145 + DCW -4554 + DCW 1677 + DCW 2084 + DCW -1136 + DCW 1225 + DCW -2738 + DCW 721 + DCW 3502 + DCW -2042 + DCW -264 + DCW 1665 + DCW -2273 + DCW -361 + DCW 1396 + DCW 482 + DCW 1355 + DCW -3137 + DCW -1401 + DCW 3678 + DCW -512 + DCW -650 + DCW 1032 + DCW -2571 + DCW -214 + DCW 1921 + DCW -474 + DCW 2512 + DCW -1040 + DCW -5057 + DCW 2256 + DCW 4957 + DCW -2466 + DCW -1837 + DCW 2524 + DCW -1690 + DCW 1107 + DCW -977 + DCW 549 + DCW 4164 + DCW -5057 + DCW -2474 + DCW 2185 + DCW 1765 + DCW -185 + DCW -906 + DCW -222 + DCW -1178 + DCW 1539 + DCW 1464 + DCW 1568 + DCW -1359 + DCW -6114 + DCW 2457 + DCW 9343 + DCW -876 + DCW -6601 + DCW -1157 + DCW 1355 + DCW 1568 + DCW -344 + DCW 327 + DCW 721 + DCW -4282 + DCW -864 + DCW 4529 + DCW 1187 + DCW -3137 + DCW -1124 + DCW 2529 + DCW -977 + DCW -281 + DCW 373 + DCW 449 + DCW 2634 + DCW -5644 + DCW 155 + DCW 6479 + DCW -3787 + DCW -923 + DCW 2235 + DCW -1141 + DCW -985 + DCW 4 + DCW 1480 + DCW 902 + DCW -2709 + DCW -1870 + DCW 3883 + DCW -92 + DCW -1220 + DCW 424 + DCW -675 + DCW 1883 + DCW -1493 + DCW -138 + DCW 1375 + DCW -1736 + DCW 1334 + DCW 1279 + DCW -2399 + DCW -306 + DCW 398 + DCW 654 + DCW 1900 + DCW -3116 + DCW -1422 + DCW 2877 + DCW 658 + DCW -793 + DCW -2202 + DCW 725 + DCW 3095 + DCW -1602 + DCW -461 + DCW 369 + DCW -516 + DCW 1518 + DCW -944 + DCW -67 + DCW 1170 + DCW -1208 + DCW -512 + DCW 1321 + DCW -822 + DCW -189 + DCW 449 + DCW -1166 + DCW 2105 + DCW -1296 + DCW -1547 + DCW 3409 + DCW -1661 + DCW -1346 + DCW 1430 + DCW -205 + DCW 1677 + DCW -994 + DCW -1510 + DCW 1929 + DCW 277 + DCW -969 + DCW -8 + DCW 1178 + DCW -465 + DCW -1417 + DCW 17 + DCW 935 + DCW 784 + DCW -1640 + DCW -822 + DCW 2847 + DCW 2151 + DCW -4965 + DCW -2327 + DCW 6185 + DCW 847 + DCW -3468 + DCW -1208 + DCW 1535 + DCW 1375 + DCW -1036 + DCW 25 + DCW 1237 + DCW -654 + DCW -1384 + DCW -80 + DCW 767 + DCW 327 + DCW -1170 + DCW 1912 + DCW -92 + DCW -3078 + DCW -218 + DCW 5284 + DCW 491 + DCW -8366 + DCW 4294 + DCW 6269 + DCW -6986 + DCW -3044 + DCW 9297 + DCW -767 + DCW -8760 + DCW 4181 + DCW 4189 + DCW -470 + DCW -5334 + DCW -1820 + DCW 9947 + DCW -3875 + DCW -9762 + DCW 9788 + DCW 4567 + DCW -9586 + DCW -516 + DCW 5573 + DCW 1476 + DCW -277 + DCW -5976 + DCW 3313 + DCW 3942 + DCW -8278 + DCW 6294 + DCW 1044 + DCW -5032 + DCW 2202 + DCW -621 + DCW 0 + DCW 1296 + DCW 583 + DCW -3674 + DCW 2688 + DCW -1099 + DCW -1552 + DCW 5959 + DCW -2097 + DCW -2793 + DCW 285 + DCW -122 + DCW 1996 + DCW 2294 + DCW -3409 + DCW -1803 + DCW 3363 + DCW -1115 + DCW 801 + DCW 755 + DCW -4512 + DCW 5028 + DCW 876 + DCW -7603 + DCW 4986 + DCW 2768 + DCW -3992 + DCW 2009 + DCW -814 + DCW -2269 + DCW 4915 + DCW -2764 + DCW -2696 + DCW 5724 + DCW -3795 + DCW -214 + DCW 1438 + DCW -1816 + DCW 2193 + DCW -1359 + DCW -101 + DCW 1392 + DCW -185 + DCW -2990 + DCW 3443 + DCW 1392 + DCW -4114 + DCW 2143 + DCW -1078 + DCW 1552 + DCW -612 + DCW -1065 + DCW 2642 + DCW -1292 + DCW -415 + DCW -461 + DCW 1589 + DCW -2348 + DCW 742 + DCW 3703 + DCW -4709 + DCW 591 + DCW 2462 + DCW -1317 + DCW -885 + DCW -315 + DCW 1719 + DCW 587 + DCW -1954 + DCW -1019 + DCW 4235 + DCW -1484 + DCW -5192 + DCW 5561 + DCW 784 + DCW -4013 + DCW 864 + DCW -801 + DCW 2814 + DCW 205 + DCW -2818 + DCW 1308 + DCW 1761 + DCW -575 + DCW -3036 + DCW 6114 + DCW -159 + DCW -8882 + DCW 2516 + DCW 5116 + DCW 1325 + DCW -2986 + DCW -2692 + DCW -243 + DCW 2730 + DCW -516 + DCW 331 + DCW 3661 + DCW -5959 + DCW -1099 + DCW 3112 + DCW 1635 + DCW 1497 + DCW -4885 + DCW -1061 + DCW 4282 + DCW -1669 + DCW 461 + DCW 4802 + DCW -4420 + DCW -4420 + DCW 1854 + DCW 3250 + DCW 3242 + DCW -2587 + DCW -4034 + DCW 1531 + DCW -247 + DCW 1854 + DCW 965 + DCW 1635 + DCW -1728 + DCW -9322 + DCW 9498 + DCW 2797 + DCW -3913 + DCW 1770 + DCW -3913 + DCW 2353 + DCW -1866 + DCW 2709 + DCW 1296 + DCW -1019 + DCW -956 + DCW -5766 + DCW 7636 + DCW 231 + DCW -2696 + DCW 277 + DCW -1329 + DCW 2982 + DCW -3573 + DCW 5447 + DCW -1895 + DCW -5368 + DCW 5229 + DCW -3854 + DCW 5095 + DCW 2776 + DCW -7896 + DCW -637 + DCW 2768 + DCW 2105 + DCW -558 + DCW 2030 + DCW -3757 + DCW -4781 + DCW 6261 + DCW 428 + DCW 2348 + DCW -2139 + DCW -6265 + DCW 4386 + DCW 323 + DCW 3057 + DCW -2998 + DCW 814 + DCW 2382 + DCW -7578 + DCW 6055 + DCW -445 + DCW -713 + DCW 398 + DCW -4068 + DCW 4089 + DCW -1807 + DCW 1258 + DCW 633 + DCW -323 + DCW 990 + DCW -4252 + DCW 4286 + DCW 1388 + DCW -2491 + DCW -629 + DCW -1916 + DCW 3879 + DCW -784 + DCW 2428 + DCW -2332 + DCW -5443 + DCW 6848 + DCW -3862 + DCW 3611 + DCW 1375 + DCW -6869 + DCW 3493 + DCW -323 + DCW 2139 + DCW -1296 + DCW 1111 + DCW -1824 + DCW -2231 + DCW 4734 + DCW -2025 + DCW 3187 + DCW -3560 + DCW -2411 + DCW 3866 + DCW -554 + DCW 1002 + DCW -1677 + DCW 2772 + DCW -3070 + DCW -1866 + DCW 3833 + DCW -1497 + DCW 2894 + DCW -3632 + DCW -1313 + DCW 3850 + DCW -1401 + DCW 218 + DCW -927 + DCW 2021 + DCW -1568 + DCW -1111 + DCW 3971 + DCW -1128 + DCW -1539 + DCW -1816 + DCW 2369 + DCW 742 + DCW -801 + DCW 1874 + DCW -4521 + DCW 839 + DCW 1447 + DCW -407 + DCW 3938 + DCW -3678 + DCW -1984 + DCW 688 + DCW 164 + DCW 2348 + DCW -273 + DCW 1199 + DCW -3690 + DCW -629 + DCW 3309 + DCW 138 + DCW 1048 + DCW -3246 + DCW 340 + DCW 164 + DCW 575 + DCW 1191 + DCW -1774 + DCW 1338 + DCW -2759 + DCW 2126 + DCW 2118 + DCW -3980 + DCW 2277 + DCW -600 + DCW -176 + DCW 2587 + DCW -1728 + DCW 533 + DCW -1258 + DCW -910 + DCW 1074 + DCW 830 + DCW 1703 + DCW -1996 + DCW -1984 + DCW -751 + DCW 2592 + DCW 302 + DCW 88 + DCW 608 + DCW -4621 + DCW 2843 + DCW 595 + DCW -235 + DCW 2759 + DCW -3879 + DCW -92 + DCW 1099 + DCW 1375 + DCW 403 + DCW -1979 + DCW 1065 + DCW -1006 + DCW 486 + DCW 1036 + DCW -1199 + DCW -38 + DCW 109 + DCW -491 + DCW -348 + DCW 1908 + DCW -1338 + DCW -952 + DCW 1434 + DCW -2415 + DCW 1879 + DCW 1464 + DCW -1703 + DCW 1157 + DCW -1694 + DCW 826 + DCW 717 + DCW 143 + DCW 1233 + DCW -3871 + DCW 2231 + DCW 1027 + DCW -1694 + DCW 2202 + DCW -285 + DCW -2990 + DCW -793 + DCW 4630 + DCW -1510 + DCW 264 + DCW -654 + DCW -3774 + DCW 4948 + DCW -893 + DCW -906 + DCW 2139 + DCW -1556 + DCW -1543 + DCW 516 + DCW 3887 + DCW -2629 + DCW -1841 + DCW 2143 + DCW -1279 + DCW 2017 + DCW -424 + DCW -1375 + DCW 843 + DCW -474 + DCW -570 + DCW 650 + DCW 2755 + DCW -3493 + DCW -713 + DCW 2294 + DCW -981 + DCW 1841 + DCW -985 + DCW -310 + DCW -1074 + DCW -59 + DCW 2202 + DCW -1371 + DCW 1459 + DCW 50 + DCW -3384 + DCW 1090 + DCW 2491 + DCW -1531 + DCW 478 + DCW 725 + DCW -2948 + DCW 1698 + DCW 1715 + DCW -2445 + DCW 1619 + DCW -583 + DCW -2025 + DCW 3237 + DCW -109 + DCW -1627 + DCW -478 + DCW 566 + DCW 1099 + DCW -382 + DCW 495 + DCW -1656 + DCW -226 + DCW 1220 + DCW -507 + DCW 1589 + DCW 38 + DCW -2139 + DCW -453 + DCW 2097 + DCW 457 + DCW -1510 + DCW 1103 + DCW -705 + DCW -474 + DCW 604 + DCW 520 + DCW 902 + DCW -1631 + DCW 55 + DCW -1241 + DCW 1187 + DCW 1359 + DCW -2449 + DCW 2378 + DCW -621 + DCW -2474 + DCW 801 + DCW 1895 + DCW -252 + DCW -470 + DCW -155 + DCW -2634 + DCW 1971 + DCW 1128 + DCW 1782 + DCW 63 + DCW -4760 + DCW 1053 + DCW 1967 + DCW -126 + DCW -419 + DCW -415 + DCW -75 + DCW -931 + DCW 1178 + DCW 2424 + DCW -2558 + DCW -1350 + DCW 1564 + DCW -197 + DCW 805 + DCW -872 + DCW -478 + DCW 1430 + DCW -818 + DCW -1204 + DCW 1984 + DCW 486 + DCW -1686 + DCW -134 + DCW 499 + DCW 1568 + DCW -1455 + DCW -1208 + DCW 1250 + DCW 327 + DCW -80 + DCW 143 + DCW -621 + DCW -1967 + DCW 2709 + DCW 2097 + DCW -671 + DCW -327 + DCW -4080 + DCW -889 + DCW 5217 + DCW 1250 + DCW 499 + DCW -3191 + DCW -6341 + DCW 6215 + DCW 1627 + DCW -700 + DCW 3854 + DCW -5296 + DCW -3669 + DCW 2441 + DCW 3128 + DCW 2210 + DCW 688 + DCW -6114 + DCW -1111 + DCW 2986 + DCW -595 + DCW 5024 + DCW -1820 + DCW -3133 + DCW -1489 + DCW -822 + DCW 6408 + DCW 88 + DCW -2831 + DCW -2298 + END + \ No newline at end of file diff --git a/Obj_4/Src/principal.c b/Obj_4/Src/principal.c new file mode 100644 index 0000000..4282b2f --- /dev/null +++ b/Obj_4/Src/principal.c @@ -0,0 +1,145 @@ +//AFONSO Perrine LARTIGUE Auriane +#include "gassp72.h" + +#define SYSTICK_PER 360000 // 72 MHz * 5ms +#include "etat.h" +#define Periode_en_Tck PeriodeSonMicroSec*72 +#define Periode_PWM_en_Tck 320 + +extern void timer_callback(void); +extern int PeriodeSonMicroSec; +extern short Son ; +extern int LongueurSon ; + +type_etat etat; + + +unsigned short dma_buf[64]; // buffer de 64 short ints pour le DMA +int compteur[6]; //compteur d'occurence en fonction de M2(k) et M2TIR +int point[6]; // contient les points des 6 joueurs +int CalculM(int,unsigned short *); +int M2[64]; + +void sys_callback(){ + + GPIO_Set(GPIOB, 1); // pour mesurer la durée réelle du traitement DMA+DFT+compteurs. + + // Démarrage DMA pour 64 points + Start_DMA1(64); + Wait_On_End_Of_DMA1(); + Stop_DMA1; + + int M2TIR=0x2A7138 ; //seuil à calculer + + for (int k=0; k<64; k++){ + M2[k]=CalculM(k,dma_buf); + if (M2[k] > M2TIR){ // incrémenté chaque fois que M2(k) dépasse le seuil fixé M2TIR + switch(k){ + case 17: + compteur[0]++; //tir à 85kHz + break; + case 18: + compteur[1]++; //tir à 90kHz + break; + case 19: + compteur[2]++; // tir à 95kHz + break ; + case 20: + compteur[3]++; // tir à 100kHz + break; + case 23: + compteur[4]++; // tir à 115kHz + break; + case 24: + compteur[5]++; // tir à 120kHz + break; + }} + else { + switch(k){ //remise à zéro + case 17: + compteur[0]=0; //tir à 85kHz + break; + case 18: + compteur[1]=0; //tir à 90kHz + break; + case 19: + compteur[2]=0; // tir à 95kHz + break ; + case 20: + compteur[3]=0; // tir à 100kHz + break; + case 23: + compteur[4]=0; // tir à 115kHz + break; + case 24: + compteur[5]=0; // tir à 120kHz + break; + } + } + GPIO_Clear(GPIOB, 1); + + } + for (int j = 0 ; j < 6 ; j++){ + if(compteur[j]==3){ + point[j]++; // on incremente le score du joueur j + + etat.position = 0; + + + } + } + } + + +int main(){ + //initialisation variable etat + etat.periode_ticks = PeriodeSonMicroSec ; + etat.taille = LongueurSon; + etat.son = &Son ; + etat.position = etat.taille; + // activation de la PLL qui multiplie la fréquence du quartz par 9 + CLOCK_Configure(); + // config port PB1 pour être utilisé en sortie + GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL); + etat.resolution = PWM_Init_ff( TIM3 , 3 , Periode_PWM_en_Tck ); + // initialisation du timer 4 + // Periode_en_Tck doit fournir la durée entre interruptions, + // exprimée en périodes Tck de l'horloge principale du STM32 (72 MHz) + + Timer_1234_Init_ff( TIM4, Periode_en_Tck ); + // enregistrement de la fonction de traitement de l'interruption timer + // ici le 2 est la priorité, timer_callback est l'adresse de cette fonction, a créér en asm, + // cette fonction doit être conforme à l'AAPCS + Active_IT_Debordement_Timer( TIM4, 2, timer_callback ); + // lancement du timer + Run_Timer( TIM4 ); + Run_Timer (TIM3) ; + + // activation de la PLL qui multiplie la fréquence du quartz par 9 + CLOCK_Configure(); + // PA2 (ADC voie 2) = entrée analog + GPIO_Configure(GPIOA, 2, INPUT, ANALOG); + // PB1 = sortie pour profilage à l'oscillo + GPIO_Configure(GPIOB, 1, OUTPUT, OUTPUT_PPULL); + // PB14 = sortie pour LED + GPIO_Configure(GPIOB, 14, OUTPUT, OUTPUT_PPULL); + + // activation ADC, sampling time 1us + Init_TimingADC_ActiveADC_ff( ADC1, 0x52 ); + Single_Channel_ADC( ADC1, 2 ); + // Déclenchement ADC par timer2, periode (72MHz/320kHz)ticks + Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 ); + // Config DMA pour utilisation du buffer dma_buf (a créér) + Init_ADC1_DMA1( 0, dma_buf ); + + // Config Timer, période exprimée en périodes horloge CPU (72 MHz) + Systick_Period_ff( SYSTICK_PER ); + // enregistrement de la fonction de traitement de l'interruption timer + // ici le 3 est la priorité, sys_callback est l'adresse de cette fonction, a créér en C + Systick_Prio_IT( 3, sys_callback ); + SysTick_On; + SysTick_Enable_IT; + + while(1){ + } +} diff --git a/Obj_4/Src/startup-rvds.s b/Obj_4/Src/startup-rvds.s new file mode 100644 index 0000000..a7b631a --- /dev/null +++ b/Obj_4/Src/startup-rvds.s @@ -0,0 +1,335 @@ +;******************** (C) COPYRIGHT 2011 STMicroelectronics ******************** +;* File Name : startup_stm32f10x_md.s +;* Author : MCD Application Team +;* Version : V3.5.0 +;* Date : 11-March-2011 +;* Description : STM32F10x Medium Density Devices vector table for MDK-ARM +;* toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Configure the clock system +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. +; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, +; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE +; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING +; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +;******************************************************************************* + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Tamper + DCD RTC_IRQHandler ; RTC + DCD FLASH_IRQHandler ; Flash + DCD RCC_IRQHandler ; RCC + DCD EXTI0_IRQHandler ; EXTI Line 0 + DCD EXTI1_IRQHandler ; EXTI Line 1 + DCD EXTI2_IRQHandler ; EXTI Line 2 + DCD EXTI3_IRQHandler ; EXTI Line 3 + DCD EXTI4_IRQHandler ; EXTI Line 4 + DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 + DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 + DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 + DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 + DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 + DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 + DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 + DCD ADC1_2_IRQHandler ; ADC1_2 + DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX + DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; CAN1 RX1 + DCD CAN1_SCE_IRQHandler ; CAN1 SCE + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD TIM1_BRK_IRQHandler ; TIM1 Break + DCD TIM1_UP_IRQHandler ; TIM1 Update + DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation + DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare + DCD TIM2_IRQHandler ; TIM2 + DCD TIM3_IRQHandler ; TIM3 + DCD TIM4_IRQHandler ; TIM4 + DCD I2C1_EV_IRQHandler ; I2C1 Event + DCD I2C1_ER_IRQHandler ; I2C1 Error + DCD I2C2_EV_IRQHandler ; I2C2 Event + DCD I2C2_ER_IRQHandler ; I2C2 Error + DCD SPI1_IRQHandler ; SPI1 + DCD SPI2_IRQHandler ; SPI2 + DCD USART1_IRQHandler ; USART1 + DCD USART2_IRQHandler ; USART2 + DCD USART3_IRQHandler ; USART3 + DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 + DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line + DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + + LDR R0, =SystemInit + BLX R0 + +; +; Enable UsageFault, MemFault and Busfault interrupts +; +_SHCSR EQU 0xE000ED24 ; SHCSR is located at address 0xE000ED24 + LDR.W R0, =_SHCSR + LDR R1, [R0] ; Read CPACR + ORR R1, R1, #(0x7 << 16) ; Set bits 16,17,18 to enable usagefault, busfault, memfault interrupts + STR R1, [R0] ; Write back the modified value to the CPACR + DSB ; Wait for store to complete + +; +; Set priority grouping (PRIGROUP) in AIRCR to 3 (16 levels for group priority and 0 for subpriority) +; +_AIRCR EQU 0xE000ED0C +_AIRCR_VAL EQU 0x05FA0300 + LDR.W R0, =_AIRCR + LDR.W R1, =_AIRCR_VAL + STR R1,[R0] + +; +; Finaly, jump to main function (void main (void)) +; + LDR R0, =__main + BX R0 + ENDP + +SystemInit PROC + EXPORT SystemInit [WEAK] + BX LR + ENDP + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WWDG_IRQHandler [WEAK] + EXPORT PVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_IRQHandler [WEAK] + EXPORT DMA1_Channel4_IRQHandler [WEAK] + EXPORT DMA1_Channel5_IRQHandler [WEAK] + EXPORT DMA1_Channel6_IRQHandler [WEAK] + EXPORT DMA1_Channel7_IRQHandler [WEAK] + EXPORT ADC1_2_IRQHandler [WEAK] + EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK] + EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK] + EXPORT CAN1_RX1_IRQHandler [WEAK] + EXPORT CAN1_SCE_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT TIM1_BRK_IRQHandler [WEAK] + EXPORT TIM1_UP_IRQHandler [WEAK] + EXPORT TIM1_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT TIM2_IRQHandler [WEAK] + EXPORT TIM3_IRQHandler [WEAK] + EXPORT TIM4_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT I2C2_EV_IRQHandler [WEAK] + EXPORT I2C2_ER_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT USART3_IRQHandler [WEAK] + EXPORT EXTI15_10_IRQHandler [WEAK] + EXPORT RTCAlarm_IRQHandler [WEAK] + EXPORT USBWakeUp_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_IRQHandler +DMA1_Channel4_IRQHandler +DMA1_Channel5_IRQHandler +DMA1_Channel6_IRQHandler +DMA1_Channel7_IRQHandler +ADC1_2_IRQHandler +USB_HP_CAN1_TX_IRQHandler +USB_LP_CAN1_RX0_IRQHandler +CAN1_RX1_IRQHandler +CAN1_SCE_IRQHandler +EXTI9_5_IRQHandler +TIM1_BRK_IRQHandler +TIM1_UP_IRQHandler +TIM1_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +TIM2_IRQHandler +TIM3_IRQHandler +TIM4_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +I2C2_EV_IRQHandler +I2C2_ER_IRQHandler +SPI1_IRQHandler +SPI2_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +USART3_IRQHandler +EXTI15_10_IRQHandler +RTCAlarm_IRQHandler +USBWakeUp_IRQHandler + + B . + + ENDP + + ALIGN + +;******************************************************************************* +; User Stack and Heap initialization +;******************************************************************************* + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****