diff --git a/DFT_Signal_Reel/Driver/DriverJeuLaser.h b/DFT_Signal_Reel/Driver/DriverJeuLaser.h new file mode 100644 index 0000000..bc9b3bd --- /dev/null +++ b/DFT_Signal_Reel/Driver/DriverJeuLaser.h @@ -0,0 +1,345 @@ +/** + * Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) + * + * GPIO - ADC - Sequenceur - System Timer - PWM - 72 MHz + * Modifs : + * enlèvement de tout ce qui est inutile dans le .h + * ajout de fonctions GPIO dans le .c pour utilisation en ASM ou en C : + * - GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) + * - GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + * + * ajout d'une fonction qui impose une valeur de PWM (TIM3_CCR3) + * PWM_Set_Value_On_TIM3_C3( int Val) + * permet en ASM ou en C de fixer la valeur de PWM + + * Ajout de commentaires + + */ +#ifndef DRIVERJEULASER_H__ +#define DRIVERJEULASER_H__ + +#include "stm32f10x.h" + +//********************************************************************************************************** +//--------------------- CONFIGURATION CLOCK DU STM32 -------------------------------------- +//********************************************************************************************************** + +/** + * @brief Configure l'ensemble des horloges du uC + * @note horloge systeme (config statique a 72 MHz pour le STM32F103) + * @param None + * @retval None + */ +void CLOCK_Configure(void); + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LES TIMERS GENERAL PURPOSE TIM1 à TIM 4 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure un Timer TIM1 à TIM4 avec une périodicité donnée + * @note L' horloge des 4 timers a une fréquence de 72MHz + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Durée_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Timer_1234_Init_ff( TIM_TypeDef *Timer, u32 Duree_ticks ); + +/** + * Macros de base pour utiliser les timers + */ + // 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) + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement d'un timer + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Active_IT_Debordement_Timer( TIM_TypeDef *Timer, char Prio, void (*IT_function)(void) ); + + + + + + + + + + + +//********************************************************************************************************* +//--------------------- PWM TIM1 to TIM 4 ------------------------------ +//********************************************************************************************************* + +/** + * @brief Configure un timer en PWM + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param voie : un des 4 canaux possibles 1 à 4. + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval Retourne la période en tick (normalement la même que le param d'entrée sauf si PSC utilisé + */ +unsigned short int PWM_Init_ff( TIM_TypeDef *Timer, char Voie, u32 Periode_ticks ); + + + +/** + * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif + * est donc : rcy = Thaut_ticks / Periode_ticks + * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 + * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks + * @retval None + */ +void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure le timer Systick avec une périodicité donnée + * @note Ce timer ne peut servir qu'à créer des temporisations ou générer des interruption + * ce n'est pas à proprement parler un périphérique, il fait partie du Cortex M3 + * Ce timer est un 24 bits + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour établir la périodicité + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Systick_Period_ff( unsigned int Periode_ticks ); + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement du Systick + * @note + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Systick_Prio_IT( char Prio, void (*Systick_function)(void) ); + + +/** + * Macros de base pour utiliser le Systick + */ +#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)) + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Active l'ADC du STM32, configure la durée de prélèvement de l'échantillon (temps + * de fermeture du switch d'acquisition + * @note + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Duree_Ech_ticks : dirée de fermeture du switch d'échantillonnage en Tick d'horloge CPU + * exemple pour 1µs on choisira 72. + * @retval Nombre de Tick réellement pris en compte + */ +unsigned int Init_TimingADC_ActiveADC_ff( ADC_TypeDef * ADC, u32 Duree_Ech_ticks ); + + +/** + * @brief Sélectionne la voie à convertir + * @note Attention, la voie va de 0 à 15 et n'est pas directement lié au n°de GPIO + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Voie_ADC : 1 à 15 + * @retval None + */ +void Single_Channel_ADC( ADC_TypeDef * ADC, char Voie_ADC ); + + + + + +/** + * @brief Permet lier le déclenchement au débordement d'un timer, spécifie également + * la période de débordement du timer + * @note pas besoin de régler le timer avec une autre fonction dédiée timer + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Source : indique le timer qui déclenche l'ADC choix dans les define ci-dessous + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ + +// param pour Source : +#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 ); + + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- ANALOG INPUT ADC & DMA ------------------------------ +//********************************************************************************************************** + +/** + * @brief Permer de lier l'ADC à un tableau en RAM pour une DMA + * @note + * @param Circ : circular. Si '0', en fin de DMA le ptr d'@ reste inchangé + * si '1' le ptr d'@ se recale à celle du début. + * @param Ptr_Table_DMA : contient l'@ de début de zone RAM à écrire + * @retval None + */ +void Init_ADC1_DMA1(char Circ, short int *Ptr_Table_DMA); + + + + + +/** + * @brief 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 + * @note + * @param NbEchDMA est le nombre d'échantillons à stocker. + * @retval None + */ +void Start_DMA1( u16 NbEchDMA ); + +// arret DMA +#define Stop_DMA1 DMA1_Channel1->CCR =(DMA1_Channel1->CCR) &~0x1; + + +/** + * @brief Attend la fin d'un cycle de DMA. la duree depend de la periode d'acquisition + * et du nombre d'echantillons + * @note fonction d'attente (bloquante) + * @param None + * @retval None + */ +void Wait_On_End_Of_DMA1(void); + + + + + + + + +//********************************************************************************************************** +//--------------------- GPIO ------------------------------ +//********************************************************************************************************** + +/** + * @brief Initialisation d'un GPIO (A à C), pin x. + * peut être configuré : + * -> Input ou output + * -> architecture technologique (push-pull, open drain...) + + * @note + * @param Port : GPIOA, GPIOB, GPIOC + * @param Broche : 0 à 15 + * @param Sens : INPUT ou OUTPUT + * @param Techno : voir define ci dessous + * @retval 1 erreur, 0 si OK + */ + +// 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 + +// Exemple : +// Port_IO_Init(GPIOB, 8, OUTPUT, OUTPUT_PPULL); +// Place le bit 8 du port B en sortie Push-pull +char GPIO_Configure(GPIO_TypeDef * Port, int Broche, int Sens, int Techno); + + +/** + * @brief Mise à 1 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Set(char Broche); +void GPIOB_Set(char Broche); +void GPIOC_Set(char Broche); + + + +/** + * @brief Mise à 0 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Clear(char Broche); +void GPIOB_Clear(char Broche); +void GPIOC_Clear(char Broche); + + +#endif + + diff --git a/DFT_Signal_Reel/Driver/DriverJeuLaser.inc b/DFT_Signal_Reel/Driver/DriverJeuLaser.inc new file mode 100644 index 0000000..48d5e50 --- /dev/null +++ b/DFT_Signal_Reel/Driver/DriverJeuLaser.inc @@ -0,0 +1,56 @@ + +; Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) +; Accès en aux fonctions suivantes : +; GPIO : +; GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) +; GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + +; PWM : +;/** +; * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif +; * est donc : rcy = Thaut_ticks / Periode_ticks +; * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 +; * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks +; * @retval None +; */ + +;void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + import PWM_Set_Value_TIM3_Ch3 + + + +;/** +; * @brief Mise à 1 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Set(char Broche); + import GPIOA_Set + +;void GPIOB_Set(char Broche); + import GPIOB_Set + +;void GPIOC_Set(char Broche); + import GPIOC_Set + + + +;/** +; * @brief Mise à 0 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Clear(char Broche); + import GPIOA_Clear + +;void GPIOB_Clear(char Broche); + import GPIOB_Clear + +;void GPIOC_Clear(char Broche); + import GPIOC_Clear + + end diff --git a/DFT_Signal_Reel/Src/DFT.s b/DFT_Signal_Reel/Src/DFT.s new file mode 100644 index 0000000..a41fcd0 --- /dev/null +++ b/DFT_Signal_Reel/Src/DFT.s @@ -0,0 +1,274 @@ + PRESERVE8 + THUMB + + +; ====================== zone de réservation de données, ====================================== +;Section RAM (read only) : + area mesdata,data,readonly + + +;Section RAM (read write): + area maram,data,readwrite + + + +; =============================================================================================== + + + + +;Section ROM code (read only) : + area moncode,code,readonly +; écrire le code ici + +;int DFT_ModuleAuCarre_C( short int * Signal64ech, char k){ +; int somme_cos, somme_sin; +; for(int n = 0; n<63; n++){ +; somme_cos += TabCos[(n*k)%64]*LeSignal[n]; +; somme_sin += TabSin[n]*LeSignal[n]; +; } +; int somme_k = (int) (long long) somme_cos* (int) (long long) somme_cos + (int) (long long) somme_sin* (int) (long long) somme_sin; +; return somme_k; +;} + + + export DFT_ModuleAucarre_Reel + export DFT_ModuleAucarre_Im + export DFT_ModuleAuCarre + + import LeSignal + +DFT_ModuleAucarre_Reel proc + ; LeSignal dans r0 + ; k dans r1 + mov r2, #0 ;On met l'index a 0 + mov r3, #0 ; On initialise les registres ou on compte stocker somme_cos (r2) + + push {r4} + push {r5} + push {r6} + + ldr r4, = TabCos; + +Debut1 + cmp r2, #64 ; comparaison avec taille tableau + beq Fin1 + + mul r7, r2, r1 + and r7, r7, #63 + ldrsh r5, [r4, r7, LSL #1] ;on charge TabCos[n] dans r5 + ldrsh r6, [r0, r2, LSL #1] ;on charge LeSignal[n] dans r6 + + mul r5, r6, r5 + adds r3, r3, r5 + adds r2, #1 ; On incrémente + b Debut1 + +Fin1 + mov r0, r3 + pop {r6} + pop {r5} + pop {r4} + + bx lr + endp + +DFT_ModuleAucarre_Im proc + ; LeSignal dans r0 + ; k dans r1 + mov r2, #0 ;On met l'index a 0 + mov r3, #0 ; On initialise les registres ou on compte stocker somme_cos (r2) + + push {r4} + push {r5} + push {r6} + + ldr r4, = TabSin; + +Debut2 + cmp r2, #64 ; comparaison avec taille tableau + beq Fin2 + + mul r7, r2, r1 + and r7, r7, #63 + ldrsh r5, [r4, r7, LSL #1] ;on charge TabSin[n] dans r5 + ldrsh r6, [r0, r2, LSL #1] ;on charge LeSignal[n] dans r6 + + mul r5, r6, r5 + adds r3, r3, r5 + adds r2, #1 ; On incrémente + b Debut2 + +Fin2 + mov r0, r3 + pop {r6} + pop {r5} + pop {r4} + + bx lr + endp + + +DFT_ModuleAuCarre proc + push {lr} + + push {r0} + push {r1} + + bl DFT_ModuleAucarre_Reel + + mov r2, r0 + pop {r1} + pop {r0} + push {r2} + + bl DFT_ModuleAucarre_Im + + pop {r1} + smull r3, r2, r0, r0 + smlal r3, r2, r1, r1 + mov r0, r2 + + pop{lr} + bx lr + endp + +;Section ROM code (read only) : + AREA Trigo, DATA, READONLY +; codage fractionnaire 1.15 + +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/DFT_Signal_Reel/Src/Signal.asm b/DFT_Signal_Reel/Src/Signal.asm new file mode 100644 index 0000000..3ec879f --- /dev/null +++ b/DFT_Signal_Reel/Src/Signal.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0800 ; 0 2048 0.50000 + DCW 0x05ad ; 1 1453 0.35474 + DCW 0x038e ; 2 910 0.22217 + DCW 0x01d1 ; 3 465 0.11353 + DCW 0x009c ; 4 156 0.03809 + DCW 0x000a ; 5 10 0.00244 + DCW 0x0027 ; 6 39 0.00952 + DCW 0x00f2 ; 7 242 0.05908 + DCW 0x0258 ; 8 600 0.14648 + DCW 0x043b ; 9 1083 0.26440 + DCW 0x0670 ; 10 1648 0.40234 + DCW 0x08c9 ; 11 2249 0.54907 + DCW 0x0b10 ; 12 2832 0.69141 + DCW 0x0d13 ; 13 3347 0.81714 + DCW 0x0ea7 ; 14 3751 0.91577 + DCW 0x0fa8 ; 15 4008 0.97852 + DCW 0x0fff ; 16 4095 0.99976 + DCW 0x0fa8 ; 17 4008 0.97852 + DCW 0x0ea7 ; 18 3751 0.91577 + DCW 0x0d13 ; 19 3347 0.81714 + DCW 0x0b10 ; 20 2832 0.69141 + DCW 0x08c9 ; 21 2249 0.54907 + DCW 0x0670 ; 22 1648 0.40234 + DCW 0x043b ; 23 1083 0.26440 + DCW 0x0258 ; 24 600 0.14648 + DCW 0x00f2 ; 25 242 0.05908 + DCW 0x0027 ; 26 39 0.00952 + DCW 0x000a ; 27 10 0.00244 + DCW 0x009c ; 28 156 0.03809 + DCW 0x01d1 ; 29 465 0.11353 + DCW 0x038e ; 30 910 0.22217 + DCW 0x05ad ; 31 1453 0.35474 + DCW 0x0800 ; 32 2048 0.50000 + DCW 0x0a53 ; 33 2643 0.64526 + DCW 0x0c72 ; 34 3186 0.77783 + DCW 0x0e2f ; 35 3631 0.88647 + DCW 0x0f64 ; 36 3940 0.96191 + DCW 0x0ff6 ; 37 4086 0.99756 + DCW 0x0fd9 ; 38 4057 0.99048 + DCW 0x0f0e ; 39 3854 0.94092 + DCW 0x0da8 ; 40 3496 0.85352 + DCW 0x0bc5 ; 41 3013 0.73560 + DCW 0x0990 ; 42 2448 0.59766 + DCW 0x0737 ; 43 1847 0.45093 + DCW 0x04f0 ; 44 1264 0.30859 + DCW 0x02ed ; 45 749 0.18286 + DCW 0x0159 ; 46 345 0.08423 + DCW 0x0058 ; 47 88 0.02148 + DCW 0x0000 ; 48 0 0.00000 + DCW 0x0058 ; 49 88 0.02148 + DCW 0x0159 ; 50 345 0.08423 + DCW 0x02ed ; 51 749 0.18286 + DCW 0x04f0 ; 52 1264 0.30859 + DCW 0x0737 ; 53 1847 0.45093 + DCW 0x0990 ; 54 2448 0.59766 + DCW 0x0bc5 ; 55 3013 0.73560 + DCW 0x0da8 ; 56 3496 0.85352 + DCW 0x0f0e ; 57 3854 0.94092 + DCW 0x0fd9 ; 58 4057 0.99048 + DCW 0x0ff6 ; 59 4086 0.99756 + DCW 0x0f64 ; 60 3940 0.96191 + DCW 0x0e2f ; 61 3631 0.88647 + DCW 0x0c72 ; 62 3186 0.77783 + DCW 0x0a53 ; 63 2643 0.64526 + END diff --git a/DFT_Signal_Reel/Src/Signal1.asm b/DFT_Signal_Reel/Src/Signal1.asm new file mode 100644 index 0000000..5a79596 --- /dev/null +++ b/DFT_Signal_Reel/Src/Signal1.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0fff ; 0 4095 0.99976 + DCW 0x0ff6 ; 1 4086 0.99756 + DCW 0x0fd9 ; 2 4057 0.99048 + DCW 0x0fa8 ; 3 4008 0.97852 + DCW 0x0f64 ; 4 3940 0.96191 + DCW 0x0f0e ; 5 3854 0.94092 + DCW 0x0ea7 ; 6 3751 0.91577 + DCW 0x0e2f ; 7 3631 0.88647 + DCW 0x0da8 ; 8 3496 0.85352 + DCW 0x0d13 ; 9 3347 0.81714 + DCW 0x0c72 ; 10 3186 0.77783 + DCW 0x0bc5 ; 11 3013 0.73560 + DCW 0x0b10 ; 12 2832 0.69141 + DCW 0x0a53 ; 13 2643 0.64526 + DCW 0x0990 ; 14 2448 0.59766 + DCW 0x08c9 ; 15 2249 0.54907 + DCW 0x0800 ; 16 2048 0.50000 + DCW 0x0737 ; 17 1847 0.45093 + DCW 0x0670 ; 18 1648 0.40234 + DCW 0x05ad ; 19 1453 0.35474 + DCW 0x04f0 ; 20 1264 0.30859 + DCW 0x043b ; 21 1083 0.26440 + DCW 0x038e ; 22 910 0.22217 + DCW 0x02ed ; 23 749 0.18286 + DCW 0x0258 ; 24 600 0.14648 + DCW 0x01d1 ; 25 465 0.11353 + DCW 0x0159 ; 26 345 0.08423 + DCW 0x00f2 ; 27 242 0.05908 + DCW 0x009c ; 28 156 0.03809 + DCW 0x0058 ; 29 88 0.02148 + DCW 0x0027 ; 30 39 0.00952 + DCW 0x000a ; 31 10 0.00244 + DCW 0x0000 ; 32 0 0.00000 + DCW 0x000a ; 33 10 0.00244 + DCW 0x0027 ; 34 39 0.00952 + DCW 0x0058 ; 35 88 0.02148 + DCW 0x009c ; 36 156 0.03809 + DCW 0x00f2 ; 37 242 0.05908 + DCW 0x0159 ; 38 345 0.08423 + DCW 0x01d1 ; 39 465 0.11353 + DCW 0x0258 ; 40 600 0.14648 + DCW 0x02ed ; 41 749 0.18286 + DCW 0x038e ; 42 910 0.22217 + DCW 0x043b ; 43 1083 0.26440 + DCW 0x04f0 ; 44 1264 0.30859 + DCW 0x05ad ; 45 1453 0.35474 + DCW 0x0670 ; 46 1648 0.40234 + DCW 0x0737 ; 47 1847 0.45093 + DCW 0x0800 ; 48 2048 0.50000 + DCW 0x08c9 ; 49 2249 0.54907 + DCW 0x0990 ; 50 2448 0.59766 + DCW 0x0a53 ; 51 2643 0.64526 + DCW 0x0b10 ; 52 2832 0.69141 + DCW 0x0bc5 ; 53 3013 0.73560 + DCW 0x0c72 ; 54 3186 0.77783 + DCW 0x0d13 ; 55 3347 0.81714 + DCW 0x0da8 ; 56 3496 0.85352 + DCW 0x0e2f ; 57 3631 0.88647 + DCW 0x0ea7 ; 58 3751 0.91577 + DCW 0x0f0e ; 59 3854 0.94092 + DCW 0x0f64 ; 60 3940 0.96191 + DCW 0x0fa8 ; 61 4008 0.97852 + DCW 0x0fd9 ; 62 4057 0.99048 + DCW 0x0ff6 ; 63 4086 0.99756 + END diff --git a/DFT_Signal_Reel/Src/principal.c b/DFT_Signal_Reel/Src/principal.c new file mode 100644 index 0000000..d841f94 --- /dev/null +++ b/DFT_Signal_Reel/Src/principal.c @@ -0,0 +1,60 @@ +#include "DriverJeuLaser.h" + +extern int DFT_ModuleAucarre_Reel(short int * Signal64ech, char k); +extern int DFT_ModuleAucarre_Im(short int * Signal64ech, char k); +extern int DFT_ModuleAuCarre (short int * Signal64ech, char k); + +extern short int LeSignal[64]; + +//int DFT_ModuleAuCarre_C( short int * Signal64ech, char k){ +// int somme_cos, somme_sin; +// for(int n = 0; n<63; n++){ +// somme_cos += TabCos[n]; +// somme_sin += TabSin[n]; +// } +// int somme_k = (int) (long long) somme_cos* (int) (long long) somme_cos + (int) (long long) somme_sin* (int) (long long) somme_sin; +// return somme_k; +//} +int Resultat[64]; +short dma_buf[64]; + +void callback_Systick(){ + Start_DMA1(64); + Wait_On_End_Of_DMA1(); + Stop_DMA1; + + for (int k =0; k <64; k++){ + Resultat[k] = DFT_ModuleAuCarre(dma_buf,k); + } +} + +int main(void) +{ + +// =========================================================================== +// ============= INIT PERIPH (faites qu'une seule fois) ===================== +// =========================================================================== + +// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers +CLOCK_Configure(); + +Systick_Period_ff(360000); +Systick_Prio_IT(2, callback_Systick); +SysTick_On; +SysTick_Enable_IT; + +Init_TimingADC_ActiveADC_ff( ADC1, 72 ); +Single_Channel_ADC( ADC1, 2 ); +Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 ); +Init_ADC1_DMA1( 0, dma_buf); + + + +//============================================================================ + + +while (1) + { + } +} + diff --git a/DFT_Signal_Reel/Src/startup-rvds.s b/DFT_Signal_Reel/Src/startup-rvds.s new file mode 100644 index 0000000..a7b631a --- /dev/null +++ b/DFT_Signal_Reel/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***** diff --git a/DFT_Signal_Reel/StepDFT.uvprojx b/DFT_Signal_Reel/StepDFT.uvprojx new file mode 100644 index 0000000..b21e707 --- /dev/null +++ b/DFT_Signal_Reel/StepDFT.uvprojx @@ -0,0 +1,1377 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Simu + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + + + CibleSondeKEIL + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + + + + + + + + + + + + + + CibleSondeST + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + + + + + + + StepDFT + 0 + 1 + + + + +
diff --git a/Matlab/Signal.asm b/Matlab/Signal.asm new file mode 100644 index 0000000..3ec879f --- /dev/null +++ b/Matlab/Signal.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0800 ; 0 2048 0.50000 + DCW 0x05ad ; 1 1453 0.35474 + DCW 0x038e ; 2 910 0.22217 + DCW 0x01d1 ; 3 465 0.11353 + DCW 0x009c ; 4 156 0.03809 + DCW 0x000a ; 5 10 0.00244 + DCW 0x0027 ; 6 39 0.00952 + DCW 0x00f2 ; 7 242 0.05908 + DCW 0x0258 ; 8 600 0.14648 + DCW 0x043b ; 9 1083 0.26440 + DCW 0x0670 ; 10 1648 0.40234 + DCW 0x08c9 ; 11 2249 0.54907 + DCW 0x0b10 ; 12 2832 0.69141 + DCW 0x0d13 ; 13 3347 0.81714 + DCW 0x0ea7 ; 14 3751 0.91577 + DCW 0x0fa8 ; 15 4008 0.97852 + DCW 0x0fff ; 16 4095 0.99976 + DCW 0x0fa8 ; 17 4008 0.97852 + DCW 0x0ea7 ; 18 3751 0.91577 + DCW 0x0d13 ; 19 3347 0.81714 + DCW 0x0b10 ; 20 2832 0.69141 + DCW 0x08c9 ; 21 2249 0.54907 + DCW 0x0670 ; 22 1648 0.40234 + DCW 0x043b ; 23 1083 0.26440 + DCW 0x0258 ; 24 600 0.14648 + DCW 0x00f2 ; 25 242 0.05908 + DCW 0x0027 ; 26 39 0.00952 + DCW 0x000a ; 27 10 0.00244 + DCW 0x009c ; 28 156 0.03809 + DCW 0x01d1 ; 29 465 0.11353 + DCW 0x038e ; 30 910 0.22217 + DCW 0x05ad ; 31 1453 0.35474 + DCW 0x0800 ; 32 2048 0.50000 + DCW 0x0a53 ; 33 2643 0.64526 + DCW 0x0c72 ; 34 3186 0.77783 + DCW 0x0e2f ; 35 3631 0.88647 + DCW 0x0f64 ; 36 3940 0.96191 + DCW 0x0ff6 ; 37 4086 0.99756 + DCW 0x0fd9 ; 38 4057 0.99048 + DCW 0x0f0e ; 39 3854 0.94092 + DCW 0x0da8 ; 40 3496 0.85352 + DCW 0x0bc5 ; 41 3013 0.73560 + DCW 0x0990 ; 42 2448 0.59766 + DCW 0x0737 ; 43 1847 0.45093 + DCW 0x04f0 ; 44 1264 0.30859 + DCW 0x02ed ; 45 749 0.18286 + DCW 0x0159 ; 46 345 0.08423 + DCW 0x0058 ; 47 88 0.02148 + DCW 0x0000 ; 48 0 0.00000 + DCW 0x0058 ; 49 88 0.02148 + DCW 0x0159 ; 50 345 0.08423 + DCW 0x02ed ; 51 749 0.18286 + DCW 0x04f0 ; 52 1264 0.30859 + DCW 0x0737 ; 53 1847 0.45093 + DCW 0x0990 ; 54 2448 0.59766 + DCW 0x0bc5 ; 55 3013 0.73560 + DCW 0x0da8 ; 56 3496 0.85352 + DCW 0x0f0e ; 57 3854 0.94092 + DCW 0x0fd9 ; 58 4057 0.99048 + DCW 0x0ff6 ; 59 4086 0.99756 + DCW 0x0f64 ; 60 3940 0.96191 + DCW 0x0e2f ; 61 3631 0.88647 + DCW 0x0c72 ; 62 3186 0.77783 + DCW 0x0a53 ; 63 2643 0.64526 + END diff --git a/Matlab/Signal.m b/Matlab/Signal.m new file mode 100644 index 0000000..b88fee7 --- /dev/null +++ b/Matlab/Signal.m @@ -0,0 +1,38 @@ +clc +clear + +N = input('Nombre d''échantilllons pour ce signal : '); +Frel = input('Fréquence normalisée (nombre de périodes dans la durée totale) : '); +Ph0 = input('Phase a l''origine (en degrés) : '); +Ph0 = Ph0 * pi / 180.0; % a present en radian + +Ampl = 2048; +Offset = 2048; +%% Création du fichier .asm + +fileID = fopen(['Signal.asm'], 'w'); +fprintf(fileID,'\tAREA Signal, DATA, READONLY\n'); +fprintf(fileID,'\texport LeSignal\n'); + +fprintf(fileID,'LeSignal\n'); + +for i = 1: N + % fonction a modifier en fonction des besoins + Sig(i) = Offset + Ampl * cos( 2*pi*Frel*(i-1)/N + Ph0 ); + % arrondi + iSig = int16(Sig(i)); + % bornage du signal similaire a la sortie brute de l'ADC 12 bits + if ( iSig < 0 ) + iSig = 0; + end + if ( iSig > 4095 ) + iSig = 4095; + end + + fprintf(fileID,'\tDCW\t0x%04x\t; %2d %4d %7.5f\n',iSig, i-1, iSig, double(iSig) / 4096.0 ); + +end + +fprintf(fileID,'\tEND\n'); +fclose(fileID); +plot(Sig); \ No newline at end of file diff --git a/PjtKEIL_StepDFT/Driver/DriverJeuLaser.h b/PjtKEIL_StepDFT/Driver/DriverJeuLaser.h new file mode 100644 index 0000000..bc9b3bd --- /dev/null +++ b/PjtKEIL_StepDFT/Driver/DriverJeuLaser.h @@ -0,0 +1,345 @@ +/** + * Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) + * + * GPIO - ADC - Sequenceur - System Timer - PWM - 72 MHz + * Modifs : + * enlèvement de tout ce qui est inutile dans le .h + * ajout de fonctions GPIO dans le .c pour utilisation en ASM ou en C : + * - GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) + * - GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + * + * ajout d'une fonction qui impose une valeur de PWM (TIM3_CCR3) + * PWM_Set_Value_On_TIM3_C3( int Val) + * permet en ASM ou en C de fixer la valeur de PWM + + * Ajout de commentaires + + */ +#ifndef DRIVERJEULASER_H__ +#define DRIVERJEULASER_H__ + +#include "stm32f10x.h" + +//********************************************************************************************************** +//--------------------- CONFIGURATION CLOCK DU STM32 -------------------------------------- +//********************************************************************************************************** + +/** + * @brief Configure l'ensemble des horloges du uC + * @note horloge systeme (config statique a 72 MHz pour le STM32F103) + * @param None + * @retval None + */ +void CLOCK_Configure(void); + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LES TIMERS GENERAL PURPOSE TIM1 à TIM 4 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure un Timer TIM1 à TIM4 avec une périodicité donnée + * @note L' horloge des 4 timers a une fréquence de 72MHz + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Durée_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Timer_1234_Init_ff( TIM_TypeDef *Timer, u32 Duree_ticks ); + +/** + * Macros de base pour utiliser les timers + */ + // 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) + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement d'un timer + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Active_IT_Debordement_Timer( TIM_TypeDef *Timer, char Prio, void (*IT_function)(void) ); + + + + + + + + + + + +//********************************************************************************************************* +//--------------------- PWM TIM1 to TIM 4 ------------------------------ +//********************************************************************************************************* + +/** + * @brief Configure un timer en PWM + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param voie : un des 4 canaux possibles 1 à 4. + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval Retourne la période en tick (normalement la même que le param d'entrée sauf si PSC utilisé + */ +unsigned short int PWM_Init_ff( TIM_TypeDef *Timer, char Voie, u32 Periode_ticks ); + + + +/** + * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif + * est donc : rcy = Thaut_ticks / Periode_ticks + * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 + * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks + * @retval None + */ +void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure le timer Systick avec une périodicité donnée + * @note Ce timer ne peut servir qu'à créer des temporisations ou générer des interruption + * ce n'est pas à proprement parler un périphérique, il fait partie du Cortex M3 + * Ce timer est un 24 bits + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour établir la périodicité + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Systick_Period_ff( unsigned int Periode_ticks ); + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement du Systick + * @note + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Systick_Prio_IT( char Prio, void (*Systick_function)(void) ); + + +/** + * Macros de base pour utiliser le Systick + */ +#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)) + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Active l'ADC du STM32, configure la durée de prélèvement de l'échantillon (temps + * de fermeture du switch d'acquisition + * @note + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Duree_Ech_ticks : dirée de fermeture du switch d'échantillonnage en Tick d'horloge CPU + * exemple pour 1µs on choisira 72. + * @retval Nombre de Tick réellement pris en compte + */ +unsigned int Init_TimingADC_ActiveADC_ff( ADC_TypeDef * ADC, u32 Duree_Ech_ticks ); + + +/** + * @brief Sélectionne la voie à convertir + * @note Attention, la voie va de 0 à 15 et n'est pas directement lié au n°de GPIO + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Voie_ADC : 1 à 15 + * @retval None + */ +void Single_Channel_ADC( ADC_TypeDef * ADC, char Voie_ADC ); + + + + + +/** + * @brief Permet lier le déclenchement au débordement d'un timer, spécifie également + * la période de débordement du timer + * @note pas besoin de régler le timer avec une autre fonction dédiée timer + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Source : indique le timer qui déclenche l'ADC choix dans les define ci-dessous + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ + +// param pour Source : +#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 ); + + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- ANALOG INPUT ADC & DMA ------------------------------ +//********************************************************************************************************** + +/** + * @brief Permer de lier l'ADC à un tableau en RAM pour une DMA + * @note + * @param Circ : circular. Si '0', en fin de DMA le ptr d'@ reste inchangé + * si '1' le ptr d'@ se recale à celle du début. + * @param Ptr_Table_DMA : contient l'@ de début de zone RAM à écrire + * @retval None + */ +void Init_ADC1_DMA1(char Circ, short int *Ptr_Table_DMA); + + + + + +/** + * @brief 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 + * @note + * @param NbEchDMA est le nombre d'échantillons à stocker. + * @retval None + */ +void Start_DMA1( u16 NbEchDMA ); + +// arret DMA +#define Stop_DMA1 DMA1_Channel1->CCR =(DMA1_Channel1->CCR) &~0x1; + + +/** + * @brief Attend la fin d'un cycle de DMA. la duree depend de la periode d'acquisition + * et du nombre d'echantillons + * @note fonction d'attente (bloquante) + * @param None + * @retval None + */ +void Wait_On_End_Of_DMA1(void); + + + + + + + + +//********************************************************************************************************** +//--------------------- GPIO ------------------------------ +//********************************************************************************************************** + +/** + * @brief Initialisation d'un GPIO (A à C), pin x. + * peut être configuré : + * -> Input ou output + * -> architecture technologique (push-pull, open drain...) + + * @note + * @param Port : GPIOA, GPIOB, GPIOC + * @param Broche : 0 à 15 + * @param Sens : INPUT ou OUTPUT + * @param Techno : voir define ci dessous + * @retval 1 erreur, 0 si OK + */ + +// 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 + +// Exemple : +// Port_IO_Init(GPIOB, 8, OUTPUT, OUTPUT_PPULL); +// Place le bit 8 du port B en sortie Push-pull +char GPIO_Configure(GPIO_TypeDef * Port, int Broche, int Sens, int Techno); + + +/** + * @brief Mise à 1 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Set(char Broche); +void GPIOB_Set(char Broche); +void GPIOC_Set(char Broche); + + + +/** + * @brief Mise à 0 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Clear(char Broche); +void GPIOB_Clear(char Broche); +void GPIOC_Clear(char Broche); + + +#endif + + diff --git a/PjtKEIL_StepDFT/Driver/DriverJeuLaser.inc b/PjtKEIL_StepDFT/Driver/DriverJeuLaser.inc new file mode 100644 index 0000000..48d5e50 --- /dev/null +++ b/PjtKEIL_StepDFT/Driver/DriverJeuLaser.inc @@ -0,0 +1,56 @@ + +; Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) +; Accès en aux fonctions suivantes : +; GPIO : +; GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) +; GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + +; PWM : +;/** +; * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif +; * est donc : rcy = Thaut_ticks / Periode_ticks +; * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 +; * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks +; * @retval None +; */ + +;void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + import PWM_Set_Value_TIM3_Ch3 + + + +;/** +; * @brief Mise à 1 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Set(char Broche); + import GPIOA_Set + +;void GPIOB_Set(char Broche); + import GPIOB_Set + +;void GPIOC_Set(char Broche); + import GPIOC_Set + + + +;/** +; * @brief Mise à 0 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Clear(char Broche); + import GPIOA_Clear + +;void GPIOB_Clear(char Broche); + import GPIOB_Clear + +;void GPIOC_Clear(char Broche); + import GPIOC_Clear + + end diff --git a/PjtKEIL_StepDFT/Src/DFT.s b/PjtKEIL_StepDFT/Src/DFT.s new file mode 100644 index 0000000..a41fcd0 --- /dev/null +++ b/PjtKEIL_StepDFT/Src/DFT.s @@ -0,0 +1,274 @@ + PRESERVE8 + THUMB + + +; ====================== zone de réservation de données, ====================================== +;Section RAM (read only) : + area mesdata,data,readonly + + +;Section RAM (read write): + area maram,data,readwrite + + + +; =============================================================================================== + + + + +;Section ROM code (read only) : + area moncode,code,readonly +; écrire le code ici + +;int DFT_ModuleAuCarre_C( short int * Signal64ech, char k){ +; int somme_cos, somme_sin; +; for(int n = 0; n<63; n++){ +; somme_cos += TabCos[(n*k)%64]*LeSignal[n]; +; somme_sin += TabSin[n]*LeSignal[n]; +; } +; int somme_k = (int) (long long) somme_cos* (int) (long long) somme_cos + (int) (long long) somme_sin* (int) (long long) somme_sin; +; return somme_k; +;} + + + export DFT_ModuleAucarre_Reel + export DFT_ModuleAucarre_Im + export DFT_ModuleAuCarre + + import LeSignal + +DFT_ModuleAucarre_Reel proc + ; LeSignal dans r0 + ; k dans r1 + mov r2, #0 ;On met l'index a 0 + mov r3, #0 ; On initialise les registres ou on compte stocker somme_cos (r2) + + push {r4} + push {r5} + push {r6} + + ldr r4, = TabCos; + +Debut1 + cmp r2, #64 ; comparaison avec taille tableau + beq Fin1 + + mul r7, r2, r1 + and r7, r7, #63 + ldrsh r5, [r4, r7, LSL #1] ;on charge TabCos[n] dans r5 + ldrsh r6, [r0, r2, LSL #1] ;on charge LeSignal[n] dans r6 + + mul r5, r6, r5 + adds r3, r3, r5 + adds r2, #1 ; On incrémente + b Debut1 + +Fin1 + mov r0, r3 + pop {r6} + pop {r5} + pop {r4} + + bx lr + endp + +DFT_ModuleAucarre_Im proc + ; LeSignal dans r0 + ; k dans r1 + mov r2, #0 ;On met l'index a 0 + mov r3, #0 ; On initialise les registres ou on compte stocker somme_cos (r2) + + push {r4} + push {r5} + push {r6} + + ldr r4, = TabSin; + +Debut2 + cmp r2, #64 ; comparaison avec taille tableau + beq Fin2 + + mul r7, r2, r1 + and r7, r7, #63 + ldrsh r5, [r4, r7, LSL #1] ;on charge TabSin[n] dans r5 + ldrsh r6, [r0, r2, LSL #1] ;on charge LeSignal[n] dans r6 + + mul r5, r6, r5 + adds r3, r3, r5 + adds r2, #1 ; On incrémente + b Debut2 + +Fin2 + mov r0, r3 + pop {r6} + pop {r5} + pop {r4} + + bx lr + endp + + +DFT_ModuleAuCarre proc + push {lr} + + push {r0} + push {r1} + + bl DFT_ModuleAucarre_Reel + + mov r2, r0 + pop {r1} + pop {r0} + push {r2} + + bl DFT_ModuleAucarre_Im + + pop {r1} + smull r3, r2, r0, r0 + smlal r3, r2, r1, r1 + mov r0, r2 + + pop{lr} + bx lr + endp + +;Section ROM code (read only) : + AREA Trigo, DATA, READONLY +; codage fractionnaire 1.15 + +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/PjtKEIL_StepDFT/Src/Signal.asm b/PjtKEIL_StepDFT/Src/Signal.asm new file mode 100644 index 0000000..3ec879f --- /dev/null +++ b/PjtKEIL_StepDFT/Src/Signal.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0800 ; 0 2048 0.50000 + DCW 0x05ad ; 1 1453 0.35474 + DCW 0x038e ; 2 910 0.22217 + DCW 0x01d1 ; 3 465 0.11353 + DCW 0x009c ; 4 156 0.03809 + DCW 0x000a ; 5 10 0.00244 + DCW 0x0027 ; 6 39 0.00952 + DCW 0x00f2 ; 7 242 0.05908 + DCW 0x0258 ; 8 600 0.14648 + DCW 0x043b ; 9 1083 0.26440 + DCW 0x0670 ; 10 1648 0.40234 + DCW 0x08c9 ; 11 2249 0.54907 + DCW 0x0b10 ; 12 2832 0.69141 + DCW 0x0d13 ; 13 3347 0.81714 + DCW 0x0ea7 ; 14 3751 0.91577 + DCW 0x0fa8 ; 15 4008 0.97852 + DCW 0x0fff ; 16 4095 0.99976 + DCW 0x0fa8 ; 17 4008 0.97852 + DCW 0x0ea7 ; 18 3751 0.91577 + DCW 0x0d13 ; 19 3347 0.81714 + DCW 0x0b10 ; 20 2832 0.69141 + DCW 0x08c9 ; 21 2249 0.54907 + DCW 0x0670 ; 22 1648 0.40234 + DCW 0x043b ; 23 1083 0.26440 + DCW 0x0258 ; 24 600 0.14648 + DCW 0x00f2 ; 25 242 0.05908 + DCW 0x0027 ; 26 39 0.00952 + DCW 0x000a ; 27 10 0.00244 + DCW 0x009c ; 28 156 0.03809 + DCW 0x01d1 ; 29 465 0.11353 + DCW 0x038e ; 30 910 0.22217 + DCW 0x05ad ; 31 1453 0.35474 + DCW 0x0800 ; 32 2048 0.50000 + DCW 0x0a53 ; 33 2643 0.64526 + DCW 0x0c72 ; 34 3186 0.77783 + DCW 0x0e2f ; 35 3631 0.88647 + DCW 0x0f64 ; 36 3940 0.96191 + DCW 0x0ff6 ; 37 4086 0.99756 + DCW 0x0fd9 ; 38 4057 0.99048 + DCW 0x0f0e ; 39 3854 0.94092 + DCW 0x0da8 ; 40 3496 0.85352 + DCW 0x0bc5 ; 41 3013 0.73560 + DCW 0x0990 ; 42 2448 0.59766 + DCW 0x0737 ; 43 1847 0.45093 + DCW 0x04f0 ; 44 1264 0.30859 + DCW 0x02ed ; 45 749 0.18286 + DCW 0x0159 ; 46 345 0.08423 + DCW 0x0058 ; 47 88 0.02148 + DCW 0x0000 ; 48 0 0.00000 + DCW 0x0058 ; 49 88 0.02148 + DCW 0x0159 ; 50 345 0.08423 + DCW 0x02ed ; 51 749 0.18286 + DCW 0x04f0 ; 52 1264 0.30859 + DCW 0x0737 ; 53 1847 0.45093 + DCW 0x0990 ; 54 2448 0.59766 + DCW 0x0bc5 ; 55 3013 0.73560 + DCW 0x0da8 ; 56 3496 0.85352 + DCW 0x0f0e ; 57 3854 0.94092 + DCW 0x0fd9 ; 58 4057 0.99048 + DCW 0x0ff6 ; 59 4086 0.99756 + DCW 0x0f64 ; 60 3940 0.96191 + DCW 0x0e2f ; 61 3631 0.88647 + DCW 0x0c72 ; 62 3186 0.77783 + DCW 0x0a53 ; 63 2643 0.64526 + END diff --git a/PjtKEIL_StepDFT/Src/Signal1.asm b/PjtKEIL_StepDFT/Src/Signal1.asm new file mode 100644 index 0000000..5a79596 --- /dev/null +++ b/PjtKEIL_StepDFT/Src/Signal1.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0fff ; 0 4095 0.99976 + DCW 0x0ff6 ; 1 4086 0.99756 + DCW 0x0fd9 ; 2 4057 0.99048 + DCW 0x0fa8 ; 3 4008 0.97852 + DCW 0x0f64 ; 4 3940 0.96191 + DCW 0x0f0e ; 5 3854 0.94092 + DCW 0x0ea7 ; 6 3751 0.91577 + DCW 0x0e2f ; 7 3631 0.88647 + DCW 0x0da8 ; 8 3496 0.85352 + DCW 0x0d13 ; 9 3347 0.81714 + DCW 0x0c72 ; 10 3186 0.77783 + DCW 0x0bc5 ; 11 3013 0.73560 + DCW 0x0b10 ; 12 2832 0.69141 + DCW 0x0a53 ; 13 2643 0.64526 + DCW 0x0990 ; 14 2448 0.59766 + DCW 0x08c9 ; 15 2249 0.54907 + DCW 0x0800 ; 16 2048 0.50000 + DCW 0x0737 ; 17 1847 0.45093 + DCW 0x0670 ; 18 1648 0.40234 + DCW 0x05ad ; 19 1453 0.35474 + DCW 0x04f0 ; 20 1264 0.30859 + DCW 0x043b ; 21 1083 0.26440 + DCW 0x038e ; 22 910 0.22217 + DCW 0x02ed ; 23 749 0.18286 + DCW 0x0258 ; 24 600 0.14648 + DCW 0x01d1 ; 25 465 0.11353 + DCW 0x0159 ; 26 345 0.08423 + DCW 0x00f2 ; 27 242 0.05908 + DCW 0x009c ; 28 156 0.03809 + DCW 0x0058 ; 29 88 0.02148 + DCW 0x0027 ; 30 39 0.00952 + DCW 0x000a ; 31 10 0.00244 + DCW 0x0000 ; 32 0 0.00000 + DCW 0x000a ; 33 10 0.00244 + DCW 0x0027 ; 34 39 0.00952 + DCW 0x0058 ; 35 88 0.02148 + DCW 0x009c ; 36 156 0.03809 + DCW 0x00f2 ; 37 242 0.05908 + DCW 0x0159 ; 38 345 0.08423 + DCW 0x01d1 ; 39 465 0.11353 + DCW 0x0258 ; 40 600 0.14648 + DCW 0x02ed ; 41 749 0.18286 + DCW 0x038e ; 42 910 0.22217 + DCW 0x043b ; 43 1083 0.26440 + DCW 0x04f0 ; 44 1264 0.30859 + DCW 0x05ad ; 45 1453 0.35474 + DCW 0x0670 ; 46 1648 0.40234 + DCW 0x0737 ; 47 1847 0.45093 + DCW 0x0800 ; 48 2048 0.50000 + DCW 0x08c9 ; 49 2249 0.54907 + DCW 0x0990 ; 50 2448 0.59766 + DCW 0x0a53 ; 51 2643 0.64526 + DCW 0x0b10 ; 52 2832 0.69141 + DCW 0x0bc5 ; 53 3013 0.73560 + DCW 0x0c72 ; 54 3186 0.77783 + DCW 0x0d13 ; 55 3347 0.81714 + DCW 0x0da8 ; 56 3496 0.85352 + DCW 0x0e2f ; 57 3631 0.88647 + DCW 0x0ea7 ; 58 3751 0.91577 + DCW 0x0f0e ; 59 3854 0.94092 + DCW 0x0f64 ; 60 3940 0.96191 + DCW 0x0fa8 ; 61 4008 0.97852 + DCW 0x0fd9 ; 62 4057 0.99048 + DCW 0x0ff6 ; 63 4086 0.99756 + END diff --git a/PjtKEIL_StepDFT/Src/principal.c b/PjtKEIL_StepDFT/Src/principal.c new file mode 100644 index 0000000..5d22b89 --- /dev/null +++ b/PjtKEIL_StepDFT/Src/principal.c @@ -0,0 +1,40 @@ +#include "DriverJeuLaser.h" + +extern int DFT_ModuleAucarre_Reel(short int * Signal64ech, char k); +extern int DFT_ModuleAucarre_Im(short int * Signal64ech, char k); +extern int DFT_ModuleAuCarre (short int * Signal64ech, char k); + +extern short int LeSignal[64]; + +//int DFT_ModuleAuCarre_C( short int * Signal64ech, char k){ +// int somme_cos, somme_sin; +// for(int n = 0; n<63; n++){ +// somme_cos += TabCos[n]; +// somme_sin += TabSin[n]; +// } +// int somme_k = (int) (long long) somme_cos* (int) (long long) somme_cos + (int) (long long) somme_sin* (int) (long long) somme_sin; +// return somme_k; +//} +int Resultat[64]; +int main(void) +{ + +// =========================================================================== +// ============= INIT PERIPH (faites qu'une seule fois) ===================== +// =========================================================================== + +// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers +CLOCK_Configure(); + +for (int k =0; k <64; k++){ + Resultat[k] = DFT_ModuleAuCarre(LeSignal,k); +} + +//============================================================================ + + +while (1) + { + } +} + diff --git a/PjtKEIL_StepDFT/Src/startup-rvds.s b/PjtKEIL_StepDFT/Src/startup-rvds.s new file mode 100644 index 0000000..a7b631a --- /dev/null +++ b/PjtKEIL_StepDFT/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***** diff --git a/PjtKEIL_StepDFT/StepDFT.uvprojx b/PjtKEIL_StepDFT/StepDFT.uvprojx new file mode 100644 index 0000000..bdf0ac3 --- /dev/null +++ b/PjtKEIL_StepDFT/StepDFT.uvprojx @@ -0,0 +1,1377 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Simu + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + + + CibleSondeKEIL + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + + + + + + + + + + + + + + CibleSondeST + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + + + + + + + StepDFT + 0 + 1 + + + + +
diff --git a/PjtKEIL_StepDeb_2/BacASable.uvguix.criquet b/PjtKEIL_StepDeb_2/BacASable.uvguix.criquet index 9fa8be6..f5fea97 100644 --- a/PjtKEIL_StepDeb_2/BacASable.uvguix.criquet +++ b/PjtKEIL_StepDeb_2/BacASable.uvguix.criquet @@ -1838,7 +1838,7 @@ Debug 2362 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1871,11 +1871,11 @@ 0 16 - F40000004F000000000800005F010000 + F40000004F000000800700006C010000 16 - F4000000660000000008000076010000 + F4000000660000008007000083010000 @@ -1891,11 +1891,11 @@ 0 16 - 0300000066000000ED0000006D030000 + 0300000066000000ED00000025030000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -1911,11 +1911,11 @@ 0 16 - 0300000066000000ED0000006D030000 + 0300000066000000ED00000025030000 16 - A4000000BB000000C0010000FB020000 + D8000000EF000000F40100002F030000 @@ -1931,11 +1931,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -1951,11 +1951,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -1971,11 +1971,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -1991,11 +1991,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2015,7 +2015,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2027,15 +2027,15 @@ 0 32767 0 - 4096 + 8192 0 16 - F700000066000000FD07000046010000 + F7000000660000007D07000053010000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2051,11 +2051,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2071,11 +2071,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2091,11 +2091,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2111,11 +2111,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2131,11 +2131,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2151,11 +2151,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2171,11 +2171,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2191,11 +2191,11 @@ 0 16 - 0300000066000000ED0000006D030000 + 0300000066000000ED00000025030000 16 - A4000000BB000000C0010000FB020000 + D8000000EF000000F40100002F030000 @@ -2211,11 +2211,11 @@ 0 16 - 0300000066000000ED0000006D030000 + 0300000066000000ED00000025030000 16 - A4000000BB000000C0010000FB020000 + D8000000EF000000F40100002F030000 @@ -2235,7 +2235,7 @@ 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2251,11 +2251,11 @@ 0 16 - 000000008A030000000400002E040000 + 0000000042030000C0030000E6030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2275,13 +2275,13 @@ 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 203 203 - 1 + 0 0 0 0 @@ -2291,11 +2291,11 @@ 0 16 - F700000066000000FD07000046010000 + F7000000660000007D07000053010000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2307,15 +2307,15 @@ 0 32767 0 - 4096 + 8192 0 16 - F700000066000000FD07000046010000 + F7000000660000007D07000053010000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2355,7 +2355,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2371,11 +2371,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2387,15 +2387,15 @@ 0 32767 0 - 4096 + 8192 0 16 - F700000066000000FD07000046010000 + F7000000660000007D07000053010000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2407,15 +2407,15 @@ 0 32767 0 - 4096 + 8192 0 16 - F700000066000000FD07000046010000 + F7000000660000007D07000053010000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2427,15 +2427,15 @@ 0 32767 0 - 4096 + 8192 0 16 - F700000066000000FD07000046010000 + F7000000660000007D07000053010000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2447,15 +2447,15 @@ 0 32767 0 - 4096 + 8192 0 16 - F700000066000000FD07000046010000 + F400000063000000800700006C010000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2475,7 +2475,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2495,7 +2495,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2515,7 +2515,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2535,7 +2535,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2555,7 +2555,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2575,7 +2575,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2595,7 +2595,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2615,7 +2615,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2635,7 +2635,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2655,7 +2655,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2675,7 +2675,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2695,7 +2695,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2715,7 +2715,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2735,7 +2735,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2755,7 +2755,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2775,7 +2775,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2795,7 +2795,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2815,7 +2815,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2835,7 +2835,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2855,7 +2855,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2875,7 +2875,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2891,11 +2891,11 @@ 0 16 - 0300000066000000ED0000006D030000 + 0300000066000000ED00000025030000 16 - A4000000BB000000C0010000FB020000 + D8000000EF000000F40100002F030000 @@ -2915,7 +2915,7 @@ 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -2935,7 +2935,7 @@ 16 - A4000000BB000000C0010000FB020000 + D8000000EF000000F40100002F030000 @@ -2951,11 +2951,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2971,11 +2971,11 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -2995,7 +2995,7 @@ 16 - A4000000BB000000C0010000FB020000 + D8000000EF000000F40100002F030000 @@ -3015,7 +3015,7 @@ 16 - A4000000BB000000C0010000FB020000 + D8000000EF000000F40100002F030000 @@ -3027,15 +3027,15 @@ 0 32767 0 - 4096 + 8192 0 16 - F700000066000000FD07000046010000 + F7000000660000007D07000053010000 16 - A4000000BB0000006C0300004B010000 + D8000000EF000000A00300007F010000 @@ -3055,7 +3055,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3075,7 +3075,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3095,7 +3095,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3115,7 +3115,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3135,7 +3135,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3155,7 +3155,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3175,7 +3175,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3195,7 +3195,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3215,7 +3215,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3235,7 +3235,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3255,7 +3255,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3275,7 +3275,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3295,7 +3295,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3315,7 +3315,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3335,7 +3335,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3355,7 +3355,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3375,7 +3375,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3395,7 +3395,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3415,7 +3415,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3435,7 +3435,7 @@ 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 @@ -3471,7 +3471,7 @@ 0 16 - 000000002E0400000008000041040000 + 00000000E603000080070000F9030000 16 @@ -3531,23 +3531,23 @@ 0 16 - 07040000A1030000FD07000015040000 + C7030000590300007D070000CD030000 16 - A4000000BB0000009401000086010000 + D8000000EF000000C8010000BA010000 3311 - 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFF40000005F01000000080000630100000100000001000010040000000100000029FFFFFF0D020000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000F4000000660000000008000076010000F40000004F000000000800005F0100000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657201000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF03000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000086030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F00000009D030000000000004F000000F0000000860300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000086030000000800008A03000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000100000004040000A10300000008000045040000040400008A030000000800002E04000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0A0000000000000001000000000000000100000001000000FFFFFFFF000400008A030000040400002E04000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000029020000900500002D020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000004402000090050000D4020000000000002D02000090050000BD0200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFF40000006C01000080070000700100000100000001000010040000000100000017FFFFFFFB010000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000F4000000660000008007000083010000F40000004F000000800700006C0100000000000040280056080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657201000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF03000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F40000003E030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F000000055030000000000004F000000F00000003E0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000003E030000800700004203000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000C40300005903000080070000FD030000C40300004203000080070000E603000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0A0000000000000001000000000000000100000001000000FFFFFFFFC003000042030000C4030000E603000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000029020000900500002D020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000004402000090050000D4020000000000002D02000090050000BD0200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2537 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2570 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000756617254696D65960000000000000002000756617254696D6509436F6D706F6E656E740000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3592,8 +3592,8 @@ 0 - 2048 - 1152 + 1920 + 1080 @@ -3608,16 +3608,16 @@ .\Src\principal.c 0 1 - 6 + 3 1 0 .\Src\Cligno.s - 0 + 29 1 - 4 + 3 1 0 @@ -3625,7 +3625,7 @@ .\Src\startup-rvds.s 0 - 124 + 1 133 1 diff --git a/PjtKEIL_StepFini/Driver/DriverJeuLaser.h b/PjtKEIL_StepFini/Driver/DriverJeuLaser.h new file mode 100644 index 0000000..bc9b3bd --- /dev/null +++ b/PjtKEIL_StepFini/Driver/DriverJeuLaser.h @@ -0,0 +1,345 @@ +/** + * Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) + * + * GPIO - ADC - Sequenceur - System Timer - PWM - 72 MHz + * Modifs : + * enlèvement de tout ce qui est inutile dans le .h + * ajout de fonctions GPIO dans le .c pour utilisation en ASM ou en C : + * - GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) + * - GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + * + * ajout d'une fonction qui impose une valeur de PWM (TIM3_CCR3) + * PWM_Set_Value_On_TIM3_C3( int Val) + * permet en ASM ou en C de fixer la valeur de PWM + + * Ajout de commentaires + + */ +#ifndef DRIVERJEULASER_H__ +#define DRIVERJEULASER_H__ + +#include "stm32f10x.h" + +//********************************************************************************************************** +//--------------------- CONFIGURATION CLOCK DU STM32 -------------------------------------- +//********************************************************************************************************** + +/** + * @brief Configure l'ensemble des horloges du uC + * @note horloge systeme (config statique a 72 MHz pour le STM32F103) + * @param None + * @retval None + */ +void CLOCK_Configure(void); + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LES TIMERS GENERAL PURPOSE TIM1 à TIM 4 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure un Timer TIM1 à TIM4 avec une périodicité donnée + * @note L' horloge des 4 timers a une fréquence de 72MHz + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Durée_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Timer_1234_Init_ff( TIM_TypeDef *Timer, u32 Duree_ticks ); + +/** + * Macros de base pour utiliser les timers + */ + // 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) + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement d'un timer + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Active_IT_Debordement_Timer( TIM_TypeDef *Timer, char Prio, void (*IT_function)(void) ); + + + + + + + + + + + +//********************************************************************************************************* +//--------------------- PWM TIM1 to TIM 4 ------------------------------ +//********************************************************************************************************* + +/** + * @brief Configure un timer en PWM + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param voie : un des 4 canaux possibles 1 à 4. + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval Retourne la période en tick (normalement la même que le param d'entrée sauf si PSC utilisé + */ +unsigned short int PWM_Init_ff( TIM_TypeDef *Timer, char Voie, u32 Periode_ticks ); + + + +/** + * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif + * est donc : rcy = Thaut_ticks / Periode_ticks + * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 + * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks + * @retval None + */ +void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure le timer Systick avec une périodicité donnée + * @note Ce timer ne peut servir qu'à créer des temporisations ou générer des interruption + * ce n'est pas à proprement parler un périphérique, il fait partie du Cortex M3 + * Ce timer est un 24 bits + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour établir la périodicité + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Systick_Period_ff( unsigned int Periode_ticks ); + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement du Systick + * @note + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Systick_Prio_IT( char Prio, void (*Systick_function)(void) ); + + +/** + * Macros de base pour utiliser le Systick + */ +#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)) + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Active l'ADC du STM32, configure la durée de prélèvement de l'échantillon (temps + * de fermeture du switch d'acquisition + * @note + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Duree_Ech_ticks : dirée de fermeture du switch d'échantillonnage en Tick d'horloge CPU + * exemple pour 1µs on choisira 72. + * @retval Nombre de Tick réellement pris en compte + */ +unsigned int Init_TimingADC_ActiveADC_ff( ADC_TypeDef * ADC, u32 Duree_Ech_ticks ); + + +/** + * @brief Sélectionne la voie à convertir + * @note Attention, la voie va de 0 à 15 et n'est pas directement lié au n°de GPIO + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Voie_ADC : 1 à 15 + * @retval None + */ +void Single_Channel_ADC( ADC_TypeDef * ADC, char Voie_ADC ); + + + + + +/** + * @brief Permet lier le déclenchement au débordement d'un timer, spécifie également + * la période de débordement du timer + * @note pas besoin de régler le timer avec une autre fonction dédiée timer + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Source : indique le timer qui déclenche l'ADC choix dans les define ci-dessous + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ + +// param pour Source : +#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 ); + + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- ANALOG INPUT ADC & DMA ------------------------------ +//********************************************************************************************************** + +/** + * @brief Permer de lier l'ADC à un tableau en RAM pour une DMA + * @note + * @param Circ : circular. Si '0', en fin de DMA le ptr d'@ reste inchangé + * si '1' le ptr d'@ se recale à celle du début. + * @param Ptr_Table_DMA : contient l'@ de début de zone RAM à écrire + * @retval None + */ +void Init_ADC1_DMA1(char Circ, short int *Ptr_Table_DMA); + + + + + +/** + * @brief 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 + * @note + * @param NbEchDMA est le nombre d'échantillons à stocker. + * @retval None + */ +void Start_DMA1( u16 NbEchDMA ); + +// arret DMA +#define Stop_DMA1 DMA1_Channel1->CCR =(DMA1_Channel1->CCR) &~0x1; + + +/** + * @brief Attend la fin d'un cycle de DMA. la duree depend de la periode d'acquisition + * et du nombre d'echantillons + * @note fonction d'attente (bloquante) + * @param None + * @retval None + */ +void Wait_On_End_Of_DMA1(void); + + + + + + + + +//********************************************************************************************************** +//--------------------- GPIO ------------------------------ +//********************************************************************************************************** + +/** + * @brief Initialisation d'un GPIO (A à C), pin x. + * peut être configuré : + * -> Input ou output + * -> architecture technologique (push-pull, open drain...) + + * @note + * @param Port : GPIOA, GPIOB, GPIOC + * @param Broche : 0 à 15 + * @param Sens : INPUT ou OUTPUT + * @param Techno : voir define ci dessous + * @retval 1 erreur, 0 si OK + */ + +// 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 + +// Exemple : +// Port_IO_Init(GPIOB, 8, OUTPUT, OUTPUT_PPULL); +// Place le bit 8 du port B en sortie Push-pull +char GPIO_Configure(GPIO_TypeDef * Port, int Broche, int Sens, int Techno); + + +/** + * @brief Mise à 1 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Set(char Broche); +void GPIOB_Set(char Broche); +void GPIOC_Set(char Broche); + + + +/** + * @brief Mise à 0 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Clear(char Broche); +void GPIOB_Clear(char Broche); +void GPIOC_Clear(char Broche); + + +#endif + + diff --git a/PjtKEIL_StepFini/Driver/DriverJeuLaser.inc b/PjtKEIL_StepFini/Driver/DriverJeuLaser.inc new file mode 100644 index 0000000..48d5e50 --- /dev/null +++ b/PjtKEIL_StepFini/Driver/DriverJeuLaser.inc @@ -0,0 +1,56 @@ + +; Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) +; Accès en aux fonctions suivantes : +; GPIO : +; GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) +; GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + +; PWM : +;/** +; * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif +; * est donc : rcy = Thaut_ticks / Periode_ticks +; * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 +; * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks +; * @retval None +; */ + +;void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + import PWM_Set_Value_TIM3_Ch3 + + + +;/** +; * @brief Mise à 1 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Set(char Broche); + import GPIOA_Set + +;void GPIOB_Set(char Broche); + import GPIOB_Set + +;void GPIOC_Set(char Broche); + import GPIOC_Set + + + +;/** +; * @brief Mise à 0 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Clear(char Broche); + import GPIOA_Clear + +;void GPIOB_Clear(char Broche); + import GPIOB_Clear + +;void GPIOC_Clear(char Broche); + import GPIOC_Clear + + end diff --git a/PjtKEIL_StepFini/ModuleAffichage/Affichage_Valise.h b/PjtKEIL_StepFini/ModuleAffichage/Affichage_Valise.h new file mode 100644 index 0000000..990ced9 --- /dev/null +++ b/PjtKEIL_StepFini/ModuleAffichage/Affichage_Valise.h @@ -0,0 +1,78 @@ + +/* Fichier devant contenir l'ensemble de fichiers utiles pour le projet LaserQuest +et qui concenent l'affichage sur la valise */ +/* mais non disponible en version source pour les étudiants. */ + +#ifndef _AFFICHAGE_VALISE_H__ +#define _AFFICHAGE_VALISE_H__ +#include "stm32f10x.h" + + +/** + * @brief Initialise les périphériques nécessaires à l'affichage sur la Mallette + * et gère la cible active. S'utilise aussi avec les ùmodules affichages simple (pas de mallette) + * @note Utilise TIM1, PA5, PA6 pour les cibles, PC7 à PC9 pour SPI émulé + * utilise aussi une interruption sut TIM1, prio 8. + * @param none + * @retval None + */ +void Init_Affichage(void); + + +/** + * @brief Prépare l'affichage 2 digit sur l'afficheur demandé + * @note Exemple : Prepare_Afficheur(2, 99); + * prépare l'affichage de la valeur 99 sur l'afficheur n°2 + * L'action est différée à l'exécution de Mise_A_Jour_Afficheurs_LED() + * @param char Aff : de 1 à 4 ; char Valeur de 0 à 99 + * @retval None + */ +void Prepare_Afficheur(char Aff, char Valeur); + + + +void Prepare_Set_Point_Unite(char Aff); +void Prepare_Clear_Point_Unite(char Aff); + + +/** + * @brief Prépare l'allumage de la LED demandée + * @note Exemple : Prepare_Set_LED(LED_Cible_2); + * prépare l'allumage de la LED correspondant à la cible n°2 + * L'action est différée à l'exécution de Mise_A_Jour_Afficheurs_LED() + * @param voir #define ci-dessous + * @retval None + */ +void Prepare_Set_LED(char LED); +void Prepare_Clear_LED(char LED); + + +/** + * @brief Effectue l'action d'écriture dans le module d'affichage + * à partir de tout ce qui a été préparé auparavant. + * @note + * @param None + * @retval None + */ +void Mise_A_Jour_Afficheurs_LED(void); + +/** + * @brief Spécifie le capteut actif, à savoir celui effectivement relié + * aux sorties disponibles sur la malette + * @note Exemple : Choix_Capteur(1) + * @param 1 à 4 + * @retval None + */ +void Choix_Capteur(char Capteur); +// define utile pour la fonction Prepare_Set_LED et Prepare_Clear_LED +#define LED_LCD_R 5 +#define LED_LCD_V 4 +#define LED_Cible_4 3 +#define LED_Cible_3 2 +#define LED_Cible_2 1 +#define LED_Cible_1 0 + + + +#endif + diff --git a/PjtKEIL_StepFini/Src/DFT.s b/PjtKEIL_StepFini/Src/DFT.s new file mode 100644 index 0000000..a41fcd0 --- /dev/null +++ b/PjtKEIL_StepFini/Src/DFT.s @@ -0,0 +1,274 @@ + PRESERVE8 + THUMB + + +; ====================== zone de réservation de données, ====================================== +;Section RAM (read only) : + area mesdata,data,readonly + + +;Section RAM (read write): + area maram,data,readwrite + + + +; =============================================================================================== + + + + +;Section ROM code (read only) : + area moncode,code,readonly +; écrire le code ici + +;int DFT_ModuleAuCarre_C( short int * Signal64ech, char k){ +; int somme_cos, somme_sin; +; for(int n = 0; n<63; n++){ +; somme_cos += TabCos[(n*k)%64]*LeSignal[n]; +; somme_sin += TabSin[n]*LeSignal[n]; +; } +; int somme_k = (int) (long long) somme_cos* (int) (long long) somme_cos + (int) (long long) somme_sin* (int) (long long) somme_sin; +; return somme_k; +;} + + + export DFT_ModuleAucarre_Reel + export DFT_ModuleAucarre_Im + export DFT_ModuleAuCarre + + import LeSignal + +DFT_ModuleAucarre_Reel proc + ; LeSignal dans r0 + ; k dans r1 + mov r2, #0 ;On met l'index a 0 + mov r3, #0 ; On initialise les registres ou on compte stocker somme_cos (r2) + + push {r4} + push {r5} + push {r6} + + ldr r4, = TabCos; + +Debut1 + cmp r2, #64 ; comparaison avec taille tableau + beq Fin1 + + mul r7, r2, r1 + and r7, r7, #63 + ldrsh r5, [r4, r7, LSL #1] ;on charge TabCos[n] dans r5 + ldrsh r6, [r0, r2, LSL #1] ;on charge LeSignal[n] dans r6 + + mul r5, r6, r5 + adds r3, r3, r5 + adds r2, #1 ; On incrémente + b Debut1 + +Fin1 + mov r0, r3 + pop {r6} + pop {r5} + pop {r4} + + bx lr + endp + +DFT_ModuleAucarre_Im proc + ; LeSignal dans r0 + ; k dans r1 + mov r2, #0 ;On met l'index a 0 + mov r3, #0 ; On initialise les registres ou on compte stocker somme_cos (r2) + + push {r4} + push {r5} + push {r6} + + ldr r4, = TabSin; + +Debut2 + cmp r2, #64 ; comparaison avec taille tableau + beq Fin2 + + mul r7, r2, r1 + and r7, r7, #63 + ldrsh r5, [r4, r7, LSL #1] ;on charge TabSin[n] dans r5 + ldrsh r6, [r0, r2, LSL #1] ;on charge LeSignal[n] dans r6 + + mul r5, r6, r5 + adds r3, r3, r5 + adds r2, #1 ; On incrémente + b Debut2 + +Fin2 + mov r0, r3 + pop {r6} + pop {r5} + pop {r4} + + bx lr + endp + + +DFT_ModuleAuCarre proc + push {lr} + + push {r0} + push {r1} + + bl DFT_ModuleAucarre_Reel + + mov r2, r0 + pop {r1} + pop {r0} + push {r2} + + bl DFT_ModuleAucarre_Im + + pop {r1} + smull r3, r2, r0, r0 + smlal r3, r2, r1, r1 + mov r0, r2 + + pop{lr} + bx lr + endp + +;Section ROM code (read only) : + AREA Trigo, DATA, READONLY +; codage fractionnaire 1.15 + +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/PjtKEIL_StepFini/Src/Signal.asm b/PjtKEIL_StepFini/Src/Signal.asm new file mode 100644 index 0000000..3ec879f --- /dev/null +++ b/PjtKEIL_StepFini/Src/Signal.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0800 ; 0 2048 0.50000 + DCW 0x05ad ; 1 1453 0.35474 + DCW 0x038e ; 2 910 0.22217 + DCW 0x01d1 ; 3 465 0.11353 + DCW 0x009c ; 4 156 0.03809 + DCW 0x000a ; 5 10 0.00244 + DCW 0x0027 ; 6 39 0.00952 + DCW 0x00f2 ; 7 242 0.05908 + DCW 0x0258 ; 8 600 0.14648 + DCW 0x043b ; 9 1083 0.26440 + DCW 0x0670 ; 10 1648 0.40234 + DCW 0x08c9 ; 11 2249 0.54907 + DCW 0x0b10 ; 12 2832 0.69141 + DCW 0x0d13 ; 13 3347 0.81714 + DCW 0x0ea7 ; 14 3751 0.91577 + DCW 0x0fa8 ; 15 4008 0.97852 + DCW 0x0fff ; 16 4095 0.99976 + DCW 0x0fa8 ; 17 4008 0.97852 + DCW 0x0ea7 ; 18 3751 0.91577 + DCW 0x0d13 ; 19 3347 0.81714 + DCW 0x0b10 ; 20 2832 0.69141 + DCW 0x08c9 ; 21 2249 0.54907 + DCW 0x0670 ; 22 1648 0.40234 + DCW 0x043b ; 23 1083 0.26440 + DCW 0x0258 ; 24 600 0.14648 + DCW 0x00f2 ; 25 242 0.05908 + DCW 0x0027 ; 26 39 0.00952 + DCW 0x000a ; 27 10 0.00244 + DCW 0x009c ; 28 156 0.03809 + DCW 0x01d1 ; 29 465 0.11353 + DCW 0x038e ; 30 910 0.22217 + DCW 0x05ad ; 31 1453 0.35474 + DCW 0x0800 ; 32 2048 0.50000 + DCW 0x0a53 ; 33 2643 0.64526 + DCW 0x0c72 ; 34 3186 0.77783 + DCW 0x0e2f ; 35 3631 0.88647 + DCW 0x0f64 ; 36 3940 0.96191 + DCW 0x0ff6 ; 37 4086 0.99756 + DCW 0x0fd9 ; 38 4057 0.99048 + DCW 0x0f0e ; 39 3854 0.94092 + DCW 0x0da8 ; 40 3496 0.85352 + DCW 0x0bc5 ; 41 3013 0.73560 + DCW 0x0990 ; 42 2448 0.59766 + DCW 0x0737 ; 43 1847 0.45093 + DCW 0x04f0 ; 44 1264 0.30859 + DCW 0x02ed ; 45 749 0.18286 + DCW 0x0159 ; 46 345 0.08423 + DCW 0x0058 ; 47 88 0.02148 + DCW 0x0000 ; 48 0 0.00000 + DCW 0x0058 ; 49 88 0.02148 + DCW 0x0159 ; 50 345 0.08423 + DCW 0x02ed ; 51 749 0.18286 + DCW 0x04f0 ; 52 1264 0.30859 + DCW 0x0737 ; 53 1847 0.45093 + DCW 0x0990 ; 54 2448 0.59766 + DCW 0x0bc5 ; 55 3013 0.73560 + DCW 0x0da8 ; 56 3496 0.85352 + DCW 0x0f0e ; 57 3854 0.94092 + DCW 0x0fd9 ; 58 4057 0.99048 + DCW 0x0ff6 ; 59 4086 0.99756 + DCW 0x0f64 ; 60 3940 0.96191 + DCW 0x0e2f ; 61 3631 0.88647 + DCW 0x0c72 ; 62 3186 0.77783 + DCW 0x0a53 ; 63 2643 0.64526 + END diff --git a/PjtKEIL_StepFini/Src/Signal1.asm b/PjtKEIL_StepFini/Src/Signal1.asm new file mode 100644 index 0000000..5a79596 --- /dev/null +++ b/PjtKEIL_StepFini/Src/Signal1.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0fff ; 0 4095 0.99976 + DCW 0x0ff6 ; 1 4086 0.99756 + DCW 0x0fd9 ; 2 4057 0.99048 + DCW 0x0fa8 ; 3 4008 0.97852 + DCW 0x0f64 ; 4 3940 0.96191 + DCW 0x0f0e ; 5 3854 0.94092 + DCW 0x0ea7 ; 6 3751 0.91577 + DCW 0x0e2f ; 7 3631 0.88647 + DCW 0x0da8 ; 8 3496 0.85352 + DCW 0x0d13 ; 9 3347 0.81714 + DCW 0x0c72 ; 10 3186 0.77783 + DCW 0x0bc5 ; 11 3013 0.73560 + DCW 0x0b10 ; 12 2832 0.69141 + DCW 0x0a53 ; 13 2643 0.64526 + DCW 0x0990 ; 14 2448 0.59766 + DCW 0x08c9 ; 15 2249 0.54907 + DCW 0x0800 ; 16 2048 0.50000 + DCW 0x0737 ; 17 1847 0.45093 + DCW 0x0670 ; 18 1648 0.40234 + DCW 0x05ad ; 19 1453 0.35474 + DCW 0x04f0 ; 20 1264 0.30859 + DCW 0x043b ; 21 1083 0.26440 + DCW 0x038e ; 22 910 0.22217 + DCW 0x02ed ; 23 749 0.18286 + DCW 0x0258 ; 24 600 0.14648 + DCW 0x01d1 ; 25 465 0.11353 + DCW 0x0159 ; 26 345 0.08423 + DCW 0x00f2 ; 27 242 0.05908 + DCW 0x009c ; 28 156 0.03809 + DCW 0x0058 ; 29 88 0.02148 + DCW 0x0027 ; 30 39 0.00952 + DCW 0x000a ; 31 10 0.00244 + DCW 0x0000 ; 32 0 0.00000 + DCW 0x000a ; 33 10 0.00244 + DCW 0x0027 ; 34 39 0.00952 + DCW 0x0058 ; 35 88 0.02148 + DCW 0x009c ; 36 156 0.03809 + DCW 0x00f2 ; 37 242 0.05908 + DCW 0x0159 ; 38 345 0.08423 + DCW 0x01d1 ; 39 465 0.11353 + DCW 0x0258 ; 40 600 0.14648 + DCW 0x02ed ; 41 749 0.18286 + DCW 0x038e ; 42 910 0.22217 + DCW 0x043b ; 43 1083 0.26440 + DCW 0x04f0 ; 44 1264 0.30859 + DCW 0x05ad ; 45 1453 0.35474 + DCW 0x0670 ; 46 1648 0.40234 + DCW 0x0737 ; 47 1847 0.45093 + DCW 0x0800 ; 48 2048 0.50000 + DCW 0x08c9 ; 49 2249 0.54907 + DCW 0x0990 ; 50 2448 0.59766 + DCW 0x0a53 ; 51 2643 0.64526 + DCW 0x0b10 ; 52 2832 0.69141 + DCW 0x0bc5 ; 53 3013 0.73560 + DCW 0x0c72 ; 54 3186 0.77783 + DCW 0x0d13 ; 55 3347 0.81714 + DCW 0x0da8 ; 56 3496 0.85352 + DCW 0x0e2f ; 57 3631 0.88647 + DCW 0x0ea7 ; 58 3751 0.91577 + DCW 0x0f0e ; 59 3854 0.94092 + DCW 0x0f64 ; 60 3940 0.96191 + DCW 0x0fa8 ; 61 4008 0.97852 + DCW 0x0fd9 ; 62 4057 0.99048 + DCW 0x0ff6 ; 63 4086 0.99756 + END diff --git a/PjtKEIL_StepFini/Src/principal.c b/PjtKEIL_StepFini/Src/principal.c new file mode 100644 index 0000000..5d22b89 --- /dev/null +++ b/PjtKEIL_StepFini/Src/principal.c @@ -0,0 +1,40 @@ +#include "DriverJeuLaser.h" + +extern int DFT_ModuleAucarre_Reel(short int * Signal64ech, char k); +extern int DFT_ModuleAucarre_Im(short int * Signal64ech, char k); +extern int DFT_ModuleAuCarre (short int * Signal64ech, char k); + +extern short int LeSignal[64]; + +//int DFT_ModuleAuCarre_C( short int * Signal64ech, char k){ +// int somme_cos, somme_sin; +// for(int n = 0; n<63; n++){ +// somme_cos += TabCos[n]; +// somme_sin += TabSin[n]; +// } +// int somme_k = (int) (long long) somme_cos* (int) (long long) somme_cos + (int) (long long) somme_sin* (int) (long long) somme_sin; +// return somme_k; +//} +int Resultat[64]; +int main(void) +{ + +// =========================================================================== +// ============= INIT PERIPH (faites qu'une seule fois) ===================== +// =========================================================================== + +// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers +CLOCK_Configure(); + +for (int k =0; k <64; k++){ + Resultat[k] = DFT_ModuleAuCarre(LeSignal,k); +} + +//============================================================================ + + +while (1) + { + } +} + diff --git a/PjtKEIL_StepFini/Src/startup-rvds.s b/PjtKEIL_StepFini/Src/startup-rvds.s new file mode 100644 index 0000000..a7b631a --- /dev/null +++ b/PjtKEIL_StepFini/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***** diff --git a/PjtKEIL_StepFini/StepDFT.uvprojx b/PjtKEIL_StepFini/StepDFT.uvprojx new file mode 100644 index 0000000..bdf0ac3 --- /dev/null +++ b/PjtKEIL_StepFini/StepDFT.uvprojx @@ -0,0 +1,1377 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Simu + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + + + CibleSondeKEIL + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + + + + + + + + + + + + + + CibleSondeST + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.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\ + StepDFT + 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 + 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 + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + son + + + Signal.asm + 2 + .\Src\Signal.asm + + + DFT.s + 2 + .\Src\DFT.s + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + + + + + + + StepDFT + 0 + 1 + + + + +
diff --git a/PjtKEIL_StepFini/son/GestionSon.h b/PjtKEIL_StepFini/son/GestionSon.h new file mode 100644 index 0000000..21a36bd --- /dev/null +++ b/PjtKEIL_StepFini/son/GestionSon.h @@ -0,0 +1,3 @@ +void CallbackSon(void); + +void StartSon(void); diff --git a/PjtKEIL_StepFini/son/GestionSon.s b/PjtKEIL_StepFini/son/GestionSon.s new file mode 100644 index 0000000..5ce8e7e --- /dev/null +++ b/PjtKEIL_StepFini/son/GestionSon.s @@ -0,0 +1,89 @@ + PRESERVE8 + THUMB + + export CallbackSon + export StartSon + import Son + import LongueurSon + + include DriverJeuLaser.inc + + + +; ====================== zone de réservation de données, ====================================== +;Section RAM (read only) : + area mesdata,data,readonly + + +;Section RAM (read write): + area maram,data,readwrite + +SortieSon dcw 0 ; reserve seulement 2 octet de memoire +Index dcw 0 + +; =============================================================================================== + + + + +;Section ROM code (read only) : + area moncode,code,readonly +; écrire le code ici +; +;if (iSoftware Packages used: diff --git a/PjtKEIL_StepSon/Obj/StepSon.hex b/PjtKEIL_StepSon/Obj/StepSon.hex index 6a179bb..270f19f 100644 --- a/PjtKEIL_StepSon/Obj/StepSon.hex +++ b/PjtKEIL_StepSon/Obj/StepSon.hex @@ -2,27 +2,27 @@ :10000000A804002005010008290100082B010008B0 :100010002D0100082F010008310100080000000038 :100020000000000000000000000000003301000894 -:100030003501000800000000370100083901000800 +:100030003501000800000000370100088D050008A8 :100040003B0100083B0100083B0100083B010008A0 :100050003B0100083B0100083B0100083B01000890 :100060003B0100083B0100083B0100083B01000880 :100070003B0100083B0100083B0100083B01000870 :100080003B0100083B0100083B0100083B01000860 :100090003B0100083B0100083B0100083B01000850 -:1000A0003B010008990600083B0100088D05000887 -:1000B000B1060008C1070008ED0800083B01000870 +:1000A0003B010008DD0600083B010008D1050008FF +:1000B000F506000805080008310900083B010008A2 :1000C0003B0100083B0100083B0100083B01000820 :1000D0003B0100083B0100083B0100083B01000810 :1000E0003B0100083B0100083B010008DFF810D08D -:1000F00000F02EF800480047B50A0008AFF3008072 +:1000F00000F02EF800480047F90A0008AFF300802E :10010000A80400200D488047DFF83400016841F45E :10011000E0210160BFF34F8FDFF82800DFF82810DF :1001200001600A4800477047FEE7FEE7FEE7FEE78A :10013000FEE7FEE7FEE7FEE7FEE7FEE72701000831 :1001400024ED00E00CED00E00003FA05ED000008EE :10015000064C074D06E0E06840F0010394E8070014 -:1001600098471034AC42F6D3FFF7C4FF400B0008A9 -:10017000600B00082DE9F041DFF8C4C0314B604549 +:1001600098471034AC42F6D3FFF7C4FFBC0B00082D +:10017000DC0B00082DE9F041DFF8C4C0314B6045CD :1001800003D19C6944F400649C614FF08046B04206 :1001900003D1DC6944F00104DC612B4DA84203D19A :1001A000DC6944F00204DC61284FB84203D1DC6909 @@ -77,7 +77,7 @@ :1004B00042688D402A4342602046F0BD000801405A :1004C00000100240000C01400010014000140140E7 :1004D000001801402DE9F0410D4604461146204622 -:1004E00000F09AFA032707230626681E4FF0040C33 +:1004E00000F0BCFA032707230626681E4FF0040C11 :1004F000012D01D0022D12D1218BC20007FA02F288 :1005000091432183228B0CEBC00103FA01F822EA0C :1005100008022283228B06FA01F10A432283032D6B @@ -87,799 +87,807 @@ :1005500003F39A432284228C800081400A43228440 :100560000648844205D1B4F8440040F40040A4F8A1 :100570004400A08D401C80B2BDE8F081002C0140F9 -:1005800001490880704700003C04004070B53B49B9 -:1005900008883B4C82073B4DA4F12006A4F1800063 -:1005A00018D50A8822F002020A800178012901D1B7 -:1005B000006A804728888107334802D40088208059 -:1005C00003E000882188401A3080288880F00200EB -:1005D000288070BD0A88520718D50A8822F00402C4 -:1005E0000A804178012901D1406A80472888810624 -:1005F000264802D40088608003E000886188401AA1 -:100600007080288880F02000288070BD0A8812073A -:1006100018D50A8822F008020A808178032901D1BE -:10062000806A804728888105194802D40088A08004 -:1006300003E00088A188401AB080288880F4007008 -:10064000288070BD0A88D206FBD50A8822F01002E5 -:100650000A80C178012901D1C06A804728888104B5 -:100660000C4802D40088E08003E00088E188401A4A -:10067000F080288880F40050288070BD102C014044 -:1006800080000020202C0140342C0140382C0140F7 -:100690003C2C0140402C01400348018821F001011D -:1006A0000180024800690047102C01400000002032 -:1006B00070B54FF08045288AC10740480AD0A98903 -:1006C000C90707D0298A21F0010129824069BDE8C4 -:1006D00070400047298A394C8A07384904F1880458 -:1006E000A4F12006497916D52A8A22F002022A822C -:1006F000012901D1006B8047288C800702D4A88E85 -:10070000208003E0A88E2188401A3080288C80F059 -:100710000200288470BD2A8A520716D52A8A22F040 -:1007200004022A82012901D1406B8047288C80066F -:1007300002D4288F608003E0288F6188401A70807F -:10074000288C80F02000288470BD298A090717D5DD -:10075000298A21F0080129828179012901D1806B40 -:100760008047288C800502D4A88FA08003E0A88F42 -:10077000A188401AB080288C80F40070288470BD55 -:10078000298AC906FBD5298A21F010012982C1795D -:10079000012901D1C06B8047288C800403D4B5F8AF -:1007A0004000E08004E0B5F84000E188401AF080A5 -:1007B000288C80F40050288470BD000000000020C8 -:1007C00070B543490888C20742480BD00A1F1288F7 -:1007D000D20707D00A8822F001020A808069BDE8AA -:1007E000704000470A883B4C3B4D04F1900492074F -:1007F000A4F1200618D50A8822F002020A80017AA4 -:10080000012901D1006C804728888107334802D430 -:100810000088208003E000882188401A30802888E2 -:1008200080F00200288070BD0A88520718D50A8817 -:1008300022F004020A80417A012901D1406C8047EC -:1008400028888106264802D40088608003E000885A -:100850006188401A7080288880F02000288070BD50 -:100860000A88120718D50A8822F008020A80817ABD -:10087000012901D1806C804728888105194802D45C -:100880000088A08003E00088A188401AB0802888F2 -:1008900080F40070288070BD0A88D206FBD50A88D3 -:1008A00022F010020A80C17A012901D1C06C804770 -:1008B000288881040C4802D40088E08003E0008886 -:1008C000E188401AF080288880F40050288070BDAC -:1008D00010040040000000202004004034040040C8 -:1008E000380400403C0400404004004070B54349D7 -:1008F0000888C20742480BD00A1F1288D20707D0C7 -:100900000A8822F001020A80C069BDE870400047F1 -:100910000A883B4C3B4D04F198049207A4F1200651 -:1009200018D50A8822F002020A80017B012901D130 -:10093000006D804728888107334802D400882080D2 -:1009400003E000882188401A3080288880F0020067 -:10095000288070BD0A88520718D50A8822F0040240 -:100960000A80417B012901D1406D8047288881069A -:10097000264802D40088608003E000886188401A1D -:100980007080288880F02000288070BD0A881207B7 -:1009900018D50A8822F008020A80817B012901D13A -:1009A000806D804728888105194802D40088A0807E -:1009B00003E00088A188401AB080288880F4007085 -:1009C000288070BD0A88D206FBD50A8822F0100262 -:1009D0000A80C17B012901D1C06D8047288881042C -:1009E0000C4802D40088E08003E00088E188401AC7 -:1009F000F080288880F40050288070BD10080040E6 -:100A00000000002020080040340800403808004062 -:100A10003C0800404008004070B504460D461949A6 -:100A200019488C4203D1816941F400618161B4F1BC -:100A3000804F03D1C16941F00101C16113498C426A -:100A400003D1C16941F00201C16111498C4203D156 -:100A5000C16941F00401C161FFF738FC0646204638 -:100A6000FFF738FCB6FBF0F0B5FBF0F0010C4A1CC8 -:100A7000B0FBF2F02185401EA085A08411202080CB -:100A800070BD0000002C0140001002400004004036 -:100A90000008004002E008C8121F08C1002AFAD16D -:100AA00070477047002001E001C1121F002AFBD1EE -:100AB00070470000FFF7D0FB02236F2200210A4895 -:100AC000FFF784FC41F698110848FFF7A5FF4FF4A3 -:100AD000347203210548FFF7FDFC054A0221034853 -:100AE000FFF748FB00BFFEE7000C01400004004098 -:100AF000F50A000800B50E4801680E4A13688B42DB -:100B00000FDD0D4A32F9113001F1010101804FF47E -:100B1000B47101FB03F34FEAE3330B44074A13803C -:100B200002E04FF0000108601846FFF729FD00BD04 -:100B3000A2000020600B0008680B0008A000002045 -:100B40007836000800000020A4000000940A000885 -:100B50001C370008A400002004040000A40A0008B8 -:100B6000881500005B00000001E5BA50C6FAF32AC0 -:100B700040A4D8B563747EAA6430B03F0080F233DD -:100B8000D15892B0EC1197146594AA4B68EF38E3F2 -:100B90002C6064AC6A3861132BE42A53B0A933E6A5 -:100BA000791A24C8452051F7C6E53F3EF9CCC0F17B -:100BB000774CFBC3FE1ED95953D861EA4DE46E0F42 -:100BC0003D1ED4DE96067FE5F9E5AC1568C2BEF79A -:100BD00095496FCCA50DBD546FF40F2084CD60D71F -:100BE0009B3FDFA920081154F9CFE5F2B60E38F982 -:100BF000F300FAF34C15C336E5DE82016AD0CCCAA5 -:100C00000D517FF8EC10972BA9BC81DB1E26D2D2A8 -:100C1000DAFE342041CBAE493F137AA7B5FA72E829 -:100C2000C2F8F5376BF57FF9B71D93E86F378FFE84 -:100C3000C0C7A24A67DDBFF42615BECFB53FE4FAB0 -:100C4000ABDA3C25230C59FAA1E3FFC2E92115EDEB -:100C50006FCBCF7AD4CA14EE4D0D4DA2FF7FDFFECD -:100C600019D87B7809BF24DF56F36BF3CC346DBF02 -:100C70003FD6FA3336C493D53A2C62CE8640701BE9 -:100C8000E4CE5166689C6500C446B3AFF44FEDC82E -:100C90004DD0B3485306841F75D56FE38B27C6FD2F -:100CA000C2109E1D01D065FCD61348E57D4441E18C -:100CB00067C924087CDCDE2DC5ED93FEB0157CDE13 -:100CC0008E044718F011FCE9D5F140BA6F1FB3311B -:100CD0007CA1FF18CD404CD22AE8465B61D29CD063 -:100CE000CD5767B6F609402759E54E1D72FB122411 -:100CF000D8C9D1DB902200EABC03130BCF0D27FB30 -:100D000044137DF145F74318FBDAA3EE5DD0872647 -:100D1000013D0BC91D15A025430141CC72FD623A6E -:100D2000FDCDD905060A3E068B25CCC7A9FAA939FF -:100D3000F9FA79982848E5490B9C223F56B5C9EC49 -:100D4000E84EB6B83F2C88F86F0DC5AD181AFF7F76 -:100D50004BAEAE36F5CE3602D904B3DBE35476BCE7 -:100D6000492356E0D7FB0A21FBB0563478F342F210 -:100D7000501548FB69D4192C9F1896AFF87B6ABCB4 -:100D80004BD9366CC5C3070908EFB1FB76D0542C9C -:100D9000F50C1EBB454D5FF120F012F9820098E67C -:100DA000F10C9D0A51E27B3870F0F1F863061BF6F6 -:100DB000BF09F0E42D085F07C7F49A2FC7CB800B5B -:100DC000023575C098FC0EFA85F271EE583F910914 -:100DD000E203612887BD6401C5FE77F7C1ECD80A3C -:100DE000D7F982EC462FABDCCF0F381062A3A411E9 -:100DF000C224D7CFAE0D1D2B78DD34F79C3B03B357 -:100E0000F90C473F47AE9D0EC72338F657F18229AC -:100E100067F4E3E91A1361D3AC2B871155D11E1384 -:100E2000940D8BE611285C1678C81E2828F7ABC5F0 -:100E30003948DE031FCC2A13501402F57BF9001643 -:100E4000FEF657F131DE2808630A17F66830DAEA51 -:100E5000D50362F62DF24208F5F6AA2198BCC2F934 -:100E6000D51C5C005F06BEE5B02DB6CD82E9642FCF -:100E7000CCF0E108C4193FFD8CE0BE3B43D4A1E0B7 -:100E8000A2480BC7B7091AFB54132A2C7FE37D062F -:100E900088F89314DDDB380EE51E10C605124609EE -:100EA000A2DF9C11741ED9C57612F31565C0403AB5 -:100EB000BFF48BFFE3114EC7B53A11E8BE0E9E306A -:100EC0007BCDD30F59E4E6048C0F5FF3292DB403D7 -:100ED000A6C9D615571D1BCA373CE7EA70C63A307B -:100EE0004BEBAE1E41F54DF848FE62E1302076E84E -:100EF000AC15FA09B20A0E108EC17E14A21CA3C54D -:100F0000D200E727D1C2BC2FAE1F26D6A63596C584 -:100F10006F0C901030E0E241AFD91DEFF63347ED92 -:100F20008AEC9426D1EED1EC0A0D6DFE2A14C4DAB7 -:100F3000350AA50EC6E67C0A84F8C8060001911D94 -:100F4000B1FBC2B93824141814C5513AA10C78B5B4 -:100F5000052985F299F55A1F59D3C41C3EF01DEBA3 -:100F6000BD3FD0E00DFF620B72D39CFB2809172018 -:100F70009109E5F1822D98E6F4D26A4F7AE98DDF86 -:100F80001320FADF3A1939092918380E8AC1F90DE8 -:100F900041F6BDEA972996F2A3EF16105BF3CF0D49 -:100FA00021EC3FFFFC2A82AAC101CF0E7EC0E5469C -:100FB000E5079DDF19FFCCDF391C1E11D7FC921904 -:100FC00030E360EE8616E6EFE7FE0B068E0388F54B -:100FD0003CE49327660C58D7472A15EA1DD7CA3E2A -:100FE00044FC4A0735064BEDA4FE49F5D73C1F0BE0 -:100FF00034E4512569EC81EFD229A0E5B30587FEE1 -:10100000E6C47832B3092E00163BA1CE32D7A10C2C -:10101000AEF69607D7258B10ECCE77F79A3010EE08 -:1010200026FDD30FD8C84E09181996F0241D02F5D5 -:1010300030F523F98AEDDF14EFEBD3F869FEEAF11E -:101040006F209FEBDC0D982629AF8507A025CBCE1E -:101050008531F0121BCABC190B082BE5B4182808FF -:10106000B2F9E602B2F6721047002EFF730DCAFB0A -:10107000A2F0F6F1451FC1FE8BEA021E96DCE7E7FF -:101080000128AFF05CFF331481038BFECDED970098 -:101090008A0253F18726FE1D09E92614AFEE65EB9F -:1010A000F8FEB8ED880A44F98D1C3A1743E949F86F -:1010B0008E031EFE73F9FE0BCD0247EDD006CF0E58 -:1010C000B6F80A0BC40439F1F8FC71EE11FD390BC6 -:1010D00052F5E82290F7DDDA512415ED47EE681855 -:1010E00050FF53F1300B37144FF01404BEFBA2F342 -:1010F00071FF200692040800511080F4C3F32CF411 -:101100004314501407DEFB1672FB73E4B402950A15 -:10111000B71CD0E05800340E65FC11153D09CBE139 -:101120006CEF9B1785DD730EB015C2F94BEC91F394 -:101130003D2037E9D601B8186A0D4ADCDA024702C9 -:1011400059FAFB2E37E9FA06EBD49DF7E51EC3DF0B -:101150002323DBFC9AF3020CC9FFB5FA51F8340ED5 -:1011600045F61915ECF9C0F08E1931F39D0C61E8C4 -:101170008CF612109F03BC057BF7F50D4FDA56086D -:101180000D1244FC570649E33C0F3601BB07D80A51 -:1011900085F17004CAFD200802F6D3112E03AEE2D9 -:1011A000BE1080F579053A048C0CC4087BF8D2FC9B -:1011B000DCF67A136FE10F1CCC0759E8021F72E5C9 -:1011C000C502AB05A9F8E4FA61FFEA030AF6EB12DF -:1011D000F608B708C3E036ECDB125EF63E1925EFE1 -:1011E00061FDEBFE8A04D227F6DB520C0AE335F0F0 -:1011F0001F200F0ACD182CE20C018FFF91F541F74B -:10120000DA187500EFEB4E20F2DD1E138A041DED97 -:10121000F61BFBDA2E027AFF2D06BB1D94FC43EC75 -:101220007AEBEF17FEF5BE103E05F4FB860259E897 -:101230007D1768F03E1AD0F5A7EDD61350E96A265F -:101240000EF7FCFED2006FCA83119120670837FEAB -:10125000F4FEF3EDBC044703E5F38519B9D53B165D -:101260003D0AB7F4602DDBCFBC032BFA76FF9B025F -:10127000A4FE24205CFF71019FEA4E08C5ED96078D -:101280008009B6F5BF0C66E3DC22ED0862F74D0C71 -:1012900036C4951E98F9F8FF842228E1662506CA0F -:1012A000E315B5FEAB18510D2CB6DE4098CEB44117 -:1012B0000AF8AEF3322E809F751643FED0209411AB -:1012C00033FE05E9F1DF7E13B0002F3BF9F90AE1A7 -:1012D0004BEC0CF0BE0D5B1A0E2220F0A8FEABC743 -:1012E0003CFA741D200A543DF7D547EA95F4AE093F -:1012F000F9257A14EBFE37D4A0FB03DB8E17BD165D -:10130000990BA90D64D861FF11EA5D127C1F5B087F -:10131000210116D1D8F4A1F9181C741EBBF4CB0C12 -:101320006ECF3F0216117406BF1D0AFAD7F8FBD91B -:101330000511B9E66419DC3715D5FF0549E178F5E3 -:10134000B415B81AEF146EE865FD24E0D40B5D13F4 -:101350004A0A6017CFE31D04DCE0F6050B1D0A0BFB -:10136000FB16B7DBDDF147EBC113FB1AEC11B9FE3D -:1013700033D23F0164EF8A150D272FFE0EF9D3E417 -:1013800043EC09FCF61DE314570484F472CF4302C6 -:101390008310AE1F541550E9FEE0A9E20D148C0F26 -:1013A000652A64025AE1EBECB6E3FF1B0A0D7C1ED2 -:1013B000FDFA78DE2DF180F4BA23340D3A1712E2EB -:1013C000EBD58E052600C432990D2FFDC7DF05E54C -:1013D000C6126C04B527DBFD5EF726E96DEDAC1592 -:1013E0008104C2243CF811EA19EDD1F0421BF90D39 -:1013F000FB1AEAEF25EDC4EEE0F8152A54FEDC0CEA -:10140000EDF3FCEBA5F896048F12A800AF1C77E172 -:101410000FF4EA04A2F2891BE00EDBFD0DEB02F5EE -:10142000D3FBAD10E714D7F80403B4EA01FAC00700 -:10143000600092198DF371FF35F32CF5630A5C029D -:10144000BD148DF2BBF5BFF59D0D59FC7101331133 -:10145000F0FB180711EB2D0423FBE00DB30883E428 -:10146000BA0E8CF6D8F3FA1B970285F261FFC6FA22 -:1014700016FBB5107901DBFD5A0971EDF204A8FFE6 -:10148000D30EED09DEFFF8FEF3EA800969FE2E17A0 -:1014900075002CF8D4F6F3ECF50D680483104B04BA -:1014A00097EAD6EBFB01800CDF117F0E4CEAB8EE19 -:1014B0009A0423FAF317790530F5A8FDC4F2E20087 -:1014C0009B0347172CF8890630F458E9CA10A4FE8C -:1014D0008311530413F4BBF33CFAD4097F0E4F017C -:1014E000B6F595F3E4F8D907EF13D6007EFD1100A9 -:1014F0004EF4AB0340FC170D9E07B804FEF43DF418 -:1015000067082AFE200A7E0190FAD0F5E3FD05FD6A -:101510006F0D6708B5FC48FC49F8B00104FF3105C0 -:101520006C043E0306F9F0FC23F974069D0B1502CA -:101530001AFEA5FB63F5FCFF340CD3FBBF088CFA45 -:1015400061FC27FC8A049F003202350AB7F20800CA -:10155000E0F7DA00E00D3105FC0065FC46F17EFEA7 -:101560007409DD075707B9FC55F8BDFD1AFB930058 -:10157000381044FDBD01DBF902F84205380C0707BD -:101580003BFF74F453ED2D07CC07620F81045FF22B -:101590007CF55B0511FEB3081B0E9EF3970087FADE -:1015A000A5F778093D0C7A00C90089F39EF1AB04D8 -:1015B000120D730ADE0252F401FAC003D6FE280BA4 -:1015C00009FC65FEA5FB69FF420569018E047101F6 -:1015D000D1021CF13CF9B0024A0A1E10A4FE03F32A -:1015E000A0FB66FAC904FD0C16FD06F9E3FB87FDB6 -:1015F0001D033D08BD004A0622FEE8FA27FBC5FE92 -:101600008E02FE095705B6F6CBF977F6060E280BC3 -:10161000A4FFDCF7DBFB9F01F303B0010EF771FFC2 -:1016200010EE4BED7EFF1006441080379230351ED1 -:10163000C00664D75DE7A5E30BDFBCEE88F53E0787 -:10164000800AFF1ABB1D18F3C8F3000056F6E7FF27 -:10165000541403F13CE68F1159F9D007380D12F9F3 -:10166000DD082310BFF57AE89A0413F3E908AD0FFB -:101670001BF5EE032A01A2077103B9FCBEF70CEDBE -:101680006BF52504F207010E8E164DF80400CAFB17 -:1016900000FED8F512FCCBF564EF0A215EE4A13A16 -:1016A000B9FEDFD1A61E03DC8600D3FAEA06B9FC38 -:1016B0004A1D421949F77AFD9DDF5207C2254CD1D8 -:1016C00047EC1F0C93E78D4961FEA9F90B0725EF45 -:1016D000C2E4FAF1B5FD94F86C30F3EE78201C0901 -:1016E000A7F062F774F188F751FA33FD8AEE5635A8 -:1016F000E80FB0FF4B02CBE1AAF32B12EEF2B802D7 -:101700001C096BF744103A0206F85306000079F002 -:10171000FA094CE8300BE314BF08410CD4F65DE540 -:1017200073F64F170FF6B81626FEECF84D0F1002A1 -:10173000CCF43A046AFC23FAB70696EE85053A051E -:10174000A207F0FBC30903F2E200670737FC740944 -:1017500066F7E700DFFB6804D8F6EE035EF9E711F1 -:10176000930045F87C07F3EE5E0C0304F5F67CF27B -:10177000200A0110FD0CC3F641F4AEF376FE3B01E6 -:1017800084F61A10390AB309630847ED0CEEAE0C63 -:10179000F9F79C0F4CFF9AEF2D0831076B0B600295 -:1017A000CFFAEAED0BF3B9FBA90D7407900C1C05F9 -:1017B0009F0292F149F841F551FB701C0EF99B0311 -:1017C00076FCA801170B3A06E1F336EB82FE7904AA -:1017D000D907EB13E1072CF8A80092EE4DF724F59A -:1017E000000121022F0F890654FD670958FFAF043D -:1017F0003AEC34F633FB69015D141C0866F9BE0E41 -:101800004AF2F0FC3604D3E431078009AA0851FB00 -:101810008F0040FCE00DDFFD78F16C0483FC3605A1 -:10182000D30E630615EB060A5FF3D2FC9D0B9EF206 -:1018300093FD700843FEC101BC044AF29C126FF68E -:10184000C0044810C1ECCAFD2F10D3F9AEF86112E4 -:1018500027E4D2FEBC1A17F8C6FABC060B08B5FB83 -:10186000B5E7F300F90F24F4020A501469EC4AF3C7 -:10187000C81B49F5F0F95706FBED3202380D371455 -:1018800000FE81EF81F11914F3EDAFEFF9250DEBB7 -:101890001005561EB7F4B4EEFC0015FE170ACCF383 -:1018A000FDFBE313B0EB8B10071AF2F163E0E107E5 -:1018B000A30481F0E108A4FFB31B7EFEE6EF16123D -:1018C000BAE1A6077B0E53F165FD59FB7119F1F8DA -:1018D0006F0B92EF74F43BFDBD01391FE2D9BE10CE -:1018E0009607C102D80880F394FBEDF7660C4AF323 -:1018F000100617F89B036419DEEE6BF773F7DB1223 -:10190000E50723FB660D9ADBD10453051B0C8FFC06 -:1019100077E2FB181004A50F7CF5F0F92CF35207C1 -:10192000B51459E82BFBCDEFFF1AA20A0DFEBB0838 -:101930003DDFEE0533131FF99EF2260074083D0BC0 -:1019400059107CDF4607E8F800FE0622C7E1821541 -:1019500046F1761490F7CAE79C138FEBE61737D25F -:10196000A5370EFAB8ECAB317BCC0B1E8BD2320113 -:101970004B1AF4FD5C00E5F3E83AF8E903086DC0A2 -:101980008D09C62490CFE04EB2CABC18CFFA8EEDB6 -:1019900029193FC09C3EF5CB513AB0FF29DB4D23BE -:1019A00012D0A53A22D25F1CA6DE4011C70B2DDC57 -:1019B000C63D78B4EC50DAEAA7EE3BFCC7DFB7349B -:1019C00051CDCC1D0ACD2918781FA524174C66903F -:1019D00062F988CD9206613D130B53306EBA990DB2 -:1019E000E5C92A13402498E339348CB969282FFBC0 -:1019F000DA012906E2EE02F4FEDFB24BC2BC9C25FE -:101A000041F434F8594FDFA8332832D9B4EB1F36EC -:101A10007C0B1E12E7C0840B85F36A3CAF06B2E074 -:101A20005D14DFA8B42DECFBB819B6F92EECC52B6C -:101A3000AFEE7323DAC03A189BEA5303B6247BB89F -:101A4000882446080235060A6DD5E5DDAACAD12EDE -:101A5000E40B87101D04D0F2DD30E7E8BC0643EA52 -:101A60004ADE9F03AB06E909A9F85539F302AD1028 -:101A70005ACABFDFC21027E54F2E2DEEEF00F1F658 -:101A80006B21C81BFBD9EFFF13DE8710E1F2820147 -:101A90009C2528F5222AA1F7F7EE45DFB1E683243D -:101AA0004EF5201CD9EE4A088A1799F4DDEF5DE661 -:101AB000F00EB8EB851AF8EA911CD506FCE8BF4A8F -:101AC000C1BD7AEAFE0897E9792CDBF98CF71D197C -:101AD0008DF527FCA910E9E07EE86A2384E06529FA -:101AE0001B0DFAB2AB4591F5BC021F0F21DAC9EE0E -:101AF000EFFF68035815662537BEE8234B00B3DBBC -:101B0000FE2113F74BEB241D12FA3ED9F93AF8E8FF -:101B10000AF7262A16D026FEAE1FD4DD313096F104 -:101B2000A2C7633143EB48FCF93813DEDFE8332604 -:101B3000F3C24F1BEF16DCE05A1F5C009BEB060E56 -:101B4000DE029DE32F28C2D1A2F5673584E1CB0EDA -:101B5000F538FBC254EC622224C72627E311ADE519 -:101B6000A21EE6EC46EFAA35B3DC90F94E1C9AC4EF -:101B700016103A2E55E3D615B4190BB48820D1EEC1 -:101B80009CFB3C23A9CFCD18340EA1F79E098B27CF -:101B9000C4C61804631C0EB8472EB20B14F2953459 -:101BA000B1E4B1E7240BBAE5EA1A8310C6D089087C -:101BB000882132D8082CA20A00BE8B2665FC1404AA -:101BC000440F3CE648FD7A1475EB0B08501554D3CE -:101BD000222A5401B1CFC92B76FC44E4A429D6ECC7 -:101BE0000FE02C205EF5A415170A60C2AA1FB309E6 -:101BF000D0F16B344DE299DFA412ADFDDCF43A1B59 -:101C0000E5F2A7EDCB21E2D9B3082D1AF5E1C625FF -:101C1000CEE9CAD39A3214EEA6082A2A0ACBE3E602 -:101C2000F7154E06A3040B1DBBDE9DF92F1128DE10 -:101C3000B528D8F481F1152C85D901E65924F0FA9C -:101C40000707CC1BC3CA01FAD51C06F9E11BEFEB51 -:101C5000BBE0C7200AF642069D20D2D2F6F2A21DB2 -:101C60006CF2C1014C13D6D79717BC1934CC931220 -:101C7000F2F15EF9A61D29EFAAF5461A712C340B74 -:101C80009EF397D69B02B7F11DEB8D346AE675EF94 -:101C9000D00994FC4B1921052DF2C9FFC70A05CFC5 -:101CA000351C120F13DED049BBDE8AD89F2C2BE4E3 -:101CB000C2F8B926B8D97CF2A92643EB3D1FEA0346 -:101CC00067C976263E048DC7CC1FAB04F3EC5C2DB0 -:101CD0008FE733FF6732E8CCB3F3E7166DD7CE1347 -:101CE000E00F35F4862C4EF48CB86332CF100ACF57 -:101CF000C02D6FE0C5FF1C31C0DA9C0F941125D8B0 -:101D00007408AC0174DC5E243B1412E5FE1F6DEB1D -:101D10009ADDC52C22EAA0FDA719E6DBE00D0B1B1E -:101D20005BF33C0D8AEB45E23A1B07F446083A1B8D -:101D300081F198FB9E078AEE5DFAB51190F7430298 -:101D4000A0FFC4EE8D078D1EE1057CF512E577F846 -:101D5000800817F49A1B58006AE5BC1830F7AEF5F6 -:101D6000BF1FC2E72BF95E0D3DF32FFC0F0A76FD76 -:101D7000EA03520CB3DDF315520A49E4251924F1A4 -:101D80005CEBB01876FE47021805B2F6DE026EFD77 -:101D900012FA3F014E06F7EDAC17EFFEC1EA531BF6 -:101DA0008EEEEA02B110C0DC7EFF0926ACEB7E00AD -:101DB000E80EA9E49713EB126FE1F41073F546DD1A -:101DC000C12AB5FEB803AA0CE3E764027406D5ED98 -:101DD00025051F0DEAF0840A09FEF701A0132BF96F -:101DE0004AF3F4FD2BE407055524F8FBCD0037FF3B -:101DF000C6E59F034413A7EC7610F4FB32EC4B17B7 -:101E0000F8FBA0FC410C03F32FFC6EFCE6F0B816C7 -:101E100018072FFAC1FE1101B7F4D103D506A0FFB0 -:101E200029051AE4DC0B5B05E8F9B1129F0030F9D3 -:101E30008E0405E97DEE9825420681F1F10ABFF690 -:101E4000FDF7B111A9F8FCFF0EFAD0F13D0AA90D7A -:101E500050FDE3FEA0FD91F2170B99F46806730D97 -:101E600014F1D104E4F83DF6F3175DFE8DF2F4139E -:101E700025EF24F1BF1EB9FC47EC3F13C7E300FE7A -:101E800041221DED5F08E202F2F0D007C404D9EE52 -:101E90000707DD0751F8680527FC58FFA50E76FDFA -:101EA000F6F4AF04EAF12C094F05BEF8910A34F9B3 -:101EB0009F02300CB4ED7CF3BE10D4F43506481408 -:101EC00070F14204FB0566E56709D40BABF0BB0B70 -:101ED00021057CF42EFF93003D0C980EABEEE1F44F -:101EE00091F58FFDFF04730C030594FB1501F9FABE -:101EF0007A12CBF55802AF04F6F34AF1D1EE6A112B -:101F0000641AB111C6FB3B001EE6FEDF590F9C119F -:101F100080F32A0257059204340FDE0312F9CAE84F -:101F20003AF0F9F85C15F8119D0C4B0527FC4CFCB8 -:101F30007FE4D8F75C0346F1AF08AC15CEFCFB1983 -:101F400011FE09E60C0208EBA1F671167A0026FFD5 -:101F50009F18A702E3FF61FBF4E7DDF10304A8FD8E -:101F6000F10A3D0BC903031927FC81EFC8F082EB8E -:101F7000EB01400FC5014B04240BEA02F60537FFC5 -:101F800076E9A1F76EFA23FBAF1DD8F566F975194E -:101F900078F52808FA0907DD840AD10196DA181ABB -:101FA000AC1644FB4608E50990E40AF90E0D70F101 -:101FB00058FF5EF67903B4041B0B741C5DFA3FEB0B -:101FC000A0FDDDF091F408179604E3FC1B0AD7F995 -:101FD000BEF8D006B306E204E5F27AEACEFC3D098B -:101FE0008505E11CFF0403D9EA035302EAED910AD7 -:101FF000BA0C94FBB1123B120EF852F6AAF6F9FA9B -:10200000D2E911E71113AC13CD020F20E3FE22E851 -:102010000EF90EF71EFD8FFED103AB03F8FDBC05D4 -:10202000BB1C22FC53F03BFFD3E4B2F548104E0A30 -:10203000A400660C5A0A56F565FF9CFE2BFC1CF3A7 -:10204000C8F37C0BA6F5410C5A20C0044EF492EE66 -:1020500020F3B1FB2A023700230C63F5FB01060BCA -:10206000BB087B0D85F32CF59EF49B018FFF570772 -:1020700061FC38F6B514A607B7F377F8A2F20AFAAE -:10208000900F97FEE6022D05D6FFF8FFC80523F94D -:1020900041F3AA0893FDE2038D07A6F215FFC30CD6 -:1020A00074F2930076FF000187FCAFF2D51AFBEFC4 -:1020B0004AF3301FDCF4B900AA0C78F359F973F82D -:1020C000A10DB9FFB5FBDC0D29048EED01FAEB1271 -:1020D00077F88CFA7BFB1EFCB2F77118C70CA6F3DD -:1020E000F30166FA4DF9DAFF0B0946F3EA03F0FC57 -:1020F000880A3BFE0FF6A10E2FFDD3FAE9F4C7F5CF -:1021000002F8D2163F1433FD24F42A02F4FAC4066E -:102110005B0563F41FF817F8811B61FE82FFC5FFA2 -:102120009B016AFA4AF368047BF742068C0C2D0681 -:10213000A6F31C0900FE6401BEFA72E98201670978 -:10214000F3171407790202F428F53EF1CAFA33FDB9 -:102150009B014C1197FE2F0F11FD02F7E0F990F84B -:102160005AF8A4FCF61CAC141AFE5DFDB7F1E7E9C1 -:1021700016F97EFF130CC6FA9108FB1998FBD4F6EA -:102180004EF133FEECFBC3F63909410B6803350908 -:102190006C038CF9A4FD0EE302F7C6125A0BE6019C -:1021A0006D010910A0FE0EF853F017F7D7F950FE95 -:1021B00065111807D80A27FA05FCC100D1EE0801FD -:1021C0004302F8FEED0A1AFD18065E0B6EFA87FE52 -:1021D000EEF11BF78A00E7FF5207C0078FFC0802E9 -:1021E000F205FDF9E3FC53EF670A3E06D5EF8FFFDA -:1021F000340B2C0DA1F94205C4F15BF2DD07BB0BDA -:102200008DF454E9042ABB1E42D9B9D1292DDE2E02 -:1022100092DBDFE5AEF7B511EF1363F251F8530629 -:102220003E06B3F103F1CC1DBB0A18F36EFB5BF065 -:1022300092062A15790265EA5DFDA3011D02170ABF -:10224000EDF3A90D520844FA14EECDEB841FE90911 -:102250002CF8EA0418F2C4EFE109681837FF3F02CE -:10226000FFEDCEFE7FD102B8FF7FF8500080FBB0BB -:10227000FF7FFF7F008000806B61FF7F340B008059 -:102280001C09006D1CF3C807A58FD2FCFF7F99E1E4 -:1022900006CA29DAC9155D527140CA910080FF7FD4 -:1022A0009534FD9048128FD3B93D7F25B6E2A2B296 -:1022B000B621A25F0080F0282032E8B94D3680F6C2 -:1022C00016F906DFE932C3F68EB0FF7F02CA3BC0C3 -:1022D0008A2E92D70C30ACFE000095CC4E1DE7291B -:1022E000E1B2E15D0DD426BFD54678F533FB77E347 -:1022F000E91F0A0BF4FC1C057BB77A284E1DD8F3A6 -:10230000BF09BFE065FC1C09C03120F069D3052579 -:102310008DDF4300FA1CF1F5570472FDED08F0D192 -:10232000AD25EA1A3FBE4C3F8CE4A4D5A32C06F79A -:102330006E0EADFC4D0FF8D271FF3B41F9BA592634 -:102340008D06FDCF8B2646F3510D6FF4A90EEAF1F1 -:10235000CAE95F1D25DB252F1F0CF7D7D904020B17 -:10236000FB017AEB851CB3DAE2003F28A9E358159C -:10237000F8FD91F62EFFE203ACE945F5503F56DF3C -:1023800003F0BC3010DA43ECCA1334F66F0C0707C5 -:1023900096F08DF3DC1F1A13B5D0951DFADEC7F445 -:1023A000373FE0E1CF0C9DE3800CA50D71EDC12816 -:1023B000F9BA510D2B23EFED211608EBDD08BFF222 -:1023C000FE094B00C2E47721EFEB4302A31631F084 -:1023D00015FEB60B6BF3FAF1251A71EC85F0CC1FE4 -:1023E000200847EAA608DA020EE51222A40022EA33 -:1023F0004B17F6F308ED510D410B7BF8BDFE27FAA4 -:10240000BEF8EB00AD110801F1F4890751E5EB16B8 -:10241000E80CFAF4CF0DDCE35A0CF0F90C0264047A -:1024200092EF062110EFB5FA61FFF1F48C0F9F01D6 -:1024300089062EEBAA08630713F33618EEEF1FF791 -:10244000490C7FE64811922F90CC0CEC4D36C2E43B -:102450009CFD3FFF6AE3F9254A067CE0BD01C320ED -:10246000A2F498E3DE19C2F958FEF10BBAE2B804FF -:102470005A1FE0F9AAF2450B75EF8DF27518D503D6 -:1024800010EF940E651140E4A400660D46F11210A1 -:10249000980FF2DE2BFAF00EC5E9A718D504F7D78E -:1024A000490CDB121B0C51F7E00CAF04D3E64810CB -:1024B0000DE99702B71CF4E7CD00FD0E2DEF0AE3FE -:1024C000031C230D40E55014BEF738F6A717AEF7EE -:1024D00002F87C0B4B02EAF1CC051002FCFDAE09C0 -:1024E00033FC27FB1BF56AFC09FFE7139A0638E269 -:1024F000BC03AD0F1FF7B000300E17F696072FFB89 -:10250000EEF0C21197FE51FA00FF960439F588F7F4 -:10251000C917E203FDF8B9FC28F2CAFB19180C042C -:1025200042EFE90900FFD6016B0CB2F4E6F0B0020D -:102530006C0365FC950CB1FE8BFB35070DFF99F61E -:1025400041F3FB02D6016F0D9509F7ED910A9E0844 -:1025500013F59301C0F0A8003E047008460833E864 -:10256000230C16FC65FF331493E89EF4C309DF11B6 -:102570000D00ED084FECB4EB7F270BF490F9ECFA6B -:102580007F0F6A0E42DB140519010F1DF7EFD1EE24 -:102590005F07E1F25319CEE7841FD8F729EFE40F64 -:1025A0003AD80A25C2FC16F9B709000270F3DA011D -:1025B000A61D17E11114D5EF04ED3F14DD072BFC28 -:1025C0000EFA33146BE22213F3FF5EF637FC09FBBD -:1025D000FF1A05E96515D5EEAB079CFE01F97AFFF8 -:1025E000F9E145378DDD5A1FA4FE9EDE891DB6E454 -:1025F0007A117BE4112921ED95F493297FCD1127E0 -:10260000B9E911FDCA1075EBE10722E83E2DB3F1DF -:102610005400D40C34E1160FE8E4D32328F6570312 -:10262000A50EA9E2FC1404EA2F11EDF5BF0C9DF8EC -:1026300064F0761394E4881F1FF76FF7F303CD015E -:10264000140356F43616FEF5A4001CF1B402081863 -:1026500032EECB0F1BF5D4F5A1F8DD07F50C75EFC5 -:10266000D02055E767F3CD00B5108A1540E78E16E8 -:102670001DD8BC026913BBF3D7110400B60B2CE0C4 -:102680004B05C5004CFC0C17FFEE4E0BA3EE26FECF -:102690003B019717BEF886D67F3B6DD80AF7B9265F -:1026A00052F2AC0114F2871303EFEBFE3C0D6EFC0B -:1026B0009B0043013B01A0E860177100C2F9E00FE5 -:1026C000CFE1C102A10EBBF52409A50CF8E8A1F9E0 -:1026D000181AADE3DC0B2325E3FCDAD5DBE7B237D0 -:1026E0002FD1900F663B3EC5750276FE41F4D2298C -:1026F000F8FB76E95B1E33D0F300222666E3B331A4 -:10270000FCD568EF5A1F7FE35E2453F112F8A8123C -:102710000DE630F47D2E55FCABDAE11E23E1DE1729 -:10272000C40677E2772125DB0A0EF413E5F2890867 -:10273000D9F2C8F38F15690028F2AB1AABD9840B14 -:10274000FA1D68D8BF1E54019ADC780A340F40FC89 -:10275000390B8F00CDEB310904ED1A0F840DA6F46F -:10276000140767DF5C19780AA1F9A90E5EE3CAFBBA -:10277000D6157BF7A7EE631DC9EC6000211835F173 -:10278000AF08C1E83D0BF60735F1900F38F6600150 -:10279000E907B0EC990BF00EFAE0BF0B9300FBEEEB -:1027A0001A26D2FFB0EAB70807F048FE8C22E6EE00 -:1027B00098F912FBF6F05028C5EA94FA11152ED4B8 -:1027C000791A6C1D57DB410BB70A7FE6ED0C7007D9 -:1027D00050FD150231F0F208A1F65A0DD90381EE31 -:1027E000662272D2CFFA9B2A9BE99B00BC06D3FBE0 -:1027F00036EFF11F01FD38E45A1F03EFCEFD1B0B2E -:102800009CFB72FD49F70D1116FDF0FA290747EB05 -:1028100040111E1045E2E7119F01EFE9A10F76FF7D -:1028200001F9D40BB2F940F9800C26FF710361FD68 -:10283000FDFB33FC6FF682139CFE60EF441339F509 -:10284000A9F9551111EC410A2C0C7DEDFF056A0F19 -:10285000BCEC8CF7AC147BFBBF0841F762F6910827 -:1028600028F49D0D24F46F0A280853DA0525A4FFE7 -:1028700068ED971708EDC3F648115302B3F0B0188E -:1028800030F8B2E1E11DA0FB67F5D40B00012BF994 -:10289000F5F7450BCEFBB1FBC20E38F7E602C101DE -:1028A000E9F2170B530430F5CEFCF50BE9F201FC0D -:1028B000D31102F7C90126FFDFFAAB039A04BC0269 -:1028C000F1F4B70A50FED1ED421A7AFCD0F12B1088 -:1028D000D8F6F9F981054B01BDFCF20877F61BF536 -:1028E00086155DFB61FC3202B803EF010FF3331371 -:1028F000B6F638F6900E1DED4F174CFEEBE9620E62 -:1029000051FA000187FE780A26FDFAF1C70A2A0269 -:1029100011002601DFFD30F9FF045401ECFA5911D2 -:10292000E9F3DAECFC1172FE61FD5B0602F8E3FFED -:102930006002B5FD1B0B3105CFF6C901C101B70718 -:1029400018F07AEA120E83FD670A4D0EFBEF1A0F9C -:102950005000FCE9BF0BB6F9CCF292034206560CCC -:102960000C04820045F50AF9730B02F767F33B1478 -:10297000EE0419EC001783FD91F30D123DDFA31651 -:10298000240814D9D51BF70205FC4703A301A0FEB8 -:10299000AAF5ADFCB5FF9826DDF261D0FB18C72083 -:1029A00080F58AEBC70A34FA01FCE7000DEB262B11 -:1029B000F20675D69F174F03E1F1FA0784F5C903B4 -:1029C0002B0F3CE34204AC2ACCDF09FC96197CE1D6 -:1029D000A50EFCFF26EA4922A9FBB5E62A16F30359 -:1029E000B1E70A0C7007BBF1A608ECF8EDF6251963 -:1029F00009FEC9ED1C1BB2F907DE631DD90496F070 -:102A0000401160EF8F006111D6ECE40DAF070EE2CC -:102A1000A3044F050402D80DC4F08F00C20F9BED34 -:102A200083FAE218E8FB8FEBFE08580209FD2AFE44 -:102A3000FEF4CF0F890897EB780651104CEAB803E3 -:102A4000C11602F5A20A01FA8BEA501499F625EE96 -:102A500025189CFC57EE980E0305C1012D076DEC5F -:102A600016F9270F78F44B02291AFEF213F6410CDF -:102A70005AF88BFD6803FDF8AF079E09AEF3EA0331 -:102A80005F071DEED2FD14057E007D039CFB25062D -:102A9000FD0E66FA77F8310853EEAEF3300E93FE72 -:102AA0005A0EB000B8EC4D106D020CECE2020C05B1 -:102AB00080F6BF0B8C0CB9FB3604E9F2E9F3FA0A95 -:102AC00009FF35F4A6090F09C2FB6F0ADFFDD4F434 -:102AD000EBFD8DF4AE09F81089F1BC028D094EF5BD -:102AE000B7070001A6F63605A2F205FDDD1C33FC92 -:102AF000B8EEFE082AFE2BFD180430F9F2052D056C -:102B00000BF31003340E20F3E3FC940F23F733FB95 -:102B1000150209FFC407EF0033FB6C04CAFD20F463 -:102B200074068104CEFD21036AFAEFFF2D04D3F968 -:102B3000EE053108F3EC6D015A0EE1F078098D0ACB -:102B40009AEF3E0593FEB9FCCF0FC5FE9EF44703F6 -:102B50002E011FFA100544FC4704BC030BF2830E40 -:102B6000AB07CDEC3700F60997FEFF03150134F5EE -:102B7000180443001BF70F0AB0015AF7A7033604E5 -:102B80004F02A303FDF70FF6CC067AFFC1FF39070A -:102B900087FCCEFFC4048A0159FC99F6A0FE300BD5 -:102BA0009CFC7FFAD80869FD83FA3A044B030D00B8 -:102BB00016FC2CF76C03730D3CF810034D0DC6E7A3 -:102BC00011009C117FFCFDF932EBEC100A206EE63F -:102BD0006EE62820A20A53DCDA00311A660D2BE4D7 -:102BE00068ED0E23C006CCDD2A01E52078F559E713 -:102BF000EE040620EA0524C996066D2D2EEAF3EBB5 -:102C00002E17E90832EE2FFD2E039010DCF55BDD68 -:102C10006224A10C4BEB880E4AF424F6A81434F875 -:102C200001E74A1E380FCAD46DFFA9239B0152DF6A -:102C30003CF92F2531052ED69E085029B1E823E115 -:102C4000971541200DE9E3D3851C0636C5E967CA0F -:102C50004C269B181BCC7903F025F10BBCD8A6DEC3 -:102C6000E037B817C0C47006CE2875EBDCE1FB0472 -:102C7000033137FDE1C5340F82298DF38CE4840BD9 -:102C8000141B1AE58CE09424BF1ED0DFD3E61C1A77 -:102C9000B514B1E83EEFA21CF30280DDB305301F8E -:102CA000560841E18DF401250AF81FE45414A209E5 -:102CB0005FF21BF56003CF2159FAB5D281186D1769 -:102CC00074DE7E01C5150DFD2AEAD3FB6B1E9E0541 -:102CD0007BE522FC4715AF043BE897FEB819A5F742 -:102CE0009FED2B0FF609DDF3B3F2D105E2195FF08A -:102CF00061EA3E1A14066BF36AF8E10898126EE86E -:102D000068EDBB206405B5E5170A700844FAECFAD3 -:102D100048FC441311FD4DE3A2084A1DE8FBA9E657 -:102D2000B000E216E4F814F0840D89082DF053EF9A -:102D30000418471772E90CEFBA10920318F36402F3 -:102D4000E604740947EAB1FBCC1ED7F807F4BDFCD2 -:102D500057042504CFF93FFF8F110FF6ACEC711526 -:102D6000890788F63CF8EF000A0CD2FCD0F59010E9 -:102D7000C6FBCDEE240A6707B4033DF249F966109D -:102D80001100DFFAD505690177FA4FF0E1089714D1 -:102D90005FF3AFF07807B7095DFC8CF74E06450B83 -:102DA0009BEA22FD1D1733FC03F12A025F06D007C0 -:102DB00045F78CF8A41249F7E1F4A3035E0C1D0259 -:102DC00070F0A703730C30F5ECF9410AAF0477F803 -:102DD00024F4900D3203B7F043FF312FC903E1C94A -:102DE0006CF0281FC22424DD9FEDD30F940D2D0419 -:102DF000EADA8D0A552574DE45F70B1F11EB6002E8 -:102E0000F2070EF74D0DB4ECEF02141BB0ED74F0A9 -:102E1000E6016A11F30339F24B03820099F4F606D6 -:102E2000A90F44FC8200A3ED0306F812DDF35B0852 -:102E300002F8D0F4D90583FCE617C2F9ECE4B01629 -:102E400004012BFB280A95F4E3FE20063AEF581400 -:102E50005B0866E6C806B0FFFF03430219FFE70000 -:102E60001AFC7AFC840A5401F1F6DBFD55F98C0F4B -:102E700079012CF7A206E7FF3DF45304300E0C0253 -:102E8000D4F2F6F39D0E470161FFEE05AAF5E605C3 -:102E9000C3F7A800681925EED1EFBF0820086DFF21 -:102EA0009B003BFE22FFCAFD63F20513390B19EEAE -:102EB00023FB53026B09110116F99A071BF9C7F797 -:102EC0002D050B06FB052CF55EF79D0DA302A6F361 -:102ED000C8086306BBF554FD80084E0730F9F1F5CC -:102EE000D009C1FDBEF98E0469FD7C0BC7F4CFF794 -:102EF000F715BAF614F2520CD503E200C2FC0DFC31 -:102F0000670BA5FB6FF65E0B680351F848FA1004D7 -:102F1000340FC4F15EF9C809DBFB190186FF8E0589 -:102F2000C900FEF39701941027FB80F4B3069B00C1 -:102F3000ACFF8BFBB001020D7DF04DF9490D03068E -:102F40007EFE10F1D9068E0567F46806740945F512 -:102F5000A5F881076707790334F551FB9D0D2FFA1A -:102F60006AF9B20D72FC34F912FA5609BF0918F267 -:102F700098FB3E049A08B9FDC6FC2D0554FFDDF20E -:102F800081043313BAF928F2B400CC0987FE83FD1B -:102F900010057101D0F383FD7B0FD90388F8DDEFB5 -:102FA0001309DC0C3CF88105D2FCADFC2BFDB00212 -:102FB00095092BFCD3FB40F9D409080395F5DE02F3 -:102FC0007C08C2FB25EF1B0DFA0A4EF52101F5F92D -:102FD000DD043D0830F7890526FF34F743038D09EA -:102FE00012FCE0F53605A7045CFFE8F99B009A05A2 -:102FF00094FBF3FFDAFFEE07B40121EC7F0E3508F6 -:1030000063F579033BFDC005E3FB62FA9A067C0792 -:103010006FF891F60E0CEBFD55FBDD047E0187FE8B -:1030200094FAB404F700ADFDD6016DFE2105ECFA6B -:10303000FDFAF20883FCECF90F08D80973F713F3D3 -:103040003507D1031AFE740558001AFB98FCCEFE12 -:10305000C0069607E4F7ECF936028E04AC02B9FB21 -:10306000CEFFA4FE51FAA206630683FB15FE26FDE1 -:103070001308CD03A2F54303CC065AF438F8E40D47 -:10308000060B6AF8A7EEA3033D0AE60204022CF43D -:10309000DBFD9604D601FE09A5FA8DF19B033109EB -:1030A000190161FE40F8D007340D77E382FF41211A -:1030B000CCF27EE9BB09880B65FD7EFFD3F8C5FE27 -:1030C0004607A9FA8905950981F1ECF8C807BC0300 -:1030D0002809BEF89AF0E5091C0622FC5F09E9F60A -:1030E0006BF3BF0A1002F605E7FE08EFD40891095A -:1030F000E9F6AF04D50680F309FDF2059F010E0E37 -:103100001BF5B4EEC20E9B038DF5C807790436EEAD -:103110008D06240890FBC9044EF5D102AE0D06F8C9 -:10312000F8FE81061FF797FE7405E2014B05BFF319 -:1031300087FA5E0E00FE76FD0804F5F52AFF81078A -:1031400026FED009F0FB3FECD0085D135EF6D3F805 -:10315000DC0966F953042FFC250244103FEC56F6B7 -:103160008908E50647FF76FC22FF66FB0306B805E3 -:103170002006B1FA1EE899097F2494FC37E67BFB10 -:103180004B052006A8FE4701D10246EFA0FCB11175 -:10319000A304BFF39CFBE1092FFCE7FE7501C1010D -:1031A0004A0AF4E99B004F1935F165FCBB088BFB1B -:1031B00027FC0400C80586036BF5B2F82B0FA4FFAB -:1031C0003CFBA8015DFD5B072BFA76FF5F0538F934 -:1031D0003605FF04A1F6CEFE8E018E026C07D4F3F5 -:1031E00072FA3D0B9202E7FC66F7D502170CBEF9A6 -:1031F00033FE7101FCFDEE0550FCBDFF920448FB5F -:1032000000FE2905CAFC43FFC10172FB3908F0FA30 -:10321000F5F9510D83F9BEFA960533FF8D061EFCB4 -:103220001AFA8907150137FCF8FF9A042FFE77FA7E -:103230001100A703100398F9CAFC1F0B67089BEC49 -:10324000E9F629184F0374F248FBFF055F05F4FB0C -:103250001900D50472FD98FAB0FFFF0247016EFB1A -:103260007807A4FFFAF326FFA414EB0152DFC6107F -:103270007D18B6E41CF4512401FDC8DD55105D1025 -:103280002AFE2AEBE4F8DB26DDF0DED93C26D71156 -:103290008EDAFCFDC515C405EBFEA8E8F10C660F3F -:1032A000AADF9618140458EC9A0893FD0000100544 -:1032B0004702A6F1800AB5FBF0F94717CFF717F5DB -:1032C0001D0186FFCC07F608AFF2F5F8230DA5FB2C -:1032D0002103F30260EEA4136C034DE27A13D00ACB -:1032E00068F0D907D2FC23F7331334F578F55C1670 -:1032F0002DF12AFF9E05E8F89108B1FA9BFF7005B1 -:1033000047FF52F4730D7005EEEF5F08CAFB10061D -:103310009CFDD7FB520AF4FA61FE33FE3506D4F663 -:10332000E602770E9BED4F029E09DBFA8BFCC5FE91 -:10333000B7064B025EF805FC8B1034FAB8EBB915F2 -:10334000100353F06003DFFCFE0ACD00FEF41C0501 -:10335000E106C1FD24F4E21761FF4EDDD409FC1340 -:103360002D0556F47CF50DFFAA0AFCFD4B014D0E10 -:10337000B9E8B5FB280C6306D905EBECDBFBBA100A -:103380007BF9CD01C212BCEEBCEE3E07B20CAA0C1A -:10339000E5F53EF0FB0509FF3E07C503630640F96E -:1033A00096DB1A25ED0AB7F0EA06B7F03109B6F850 -:1033B000950A100505FC44FC7AE9D41DE70078F570 -:1033C0001501CFFAA60B0BF2471599F808EB6D140F -:1033D000F2F0E713D80A28E183FDD00A3908D2FDBC -:1033E000EE0753F153ED7518AC012C09A5F787E7EB -:1033F00022114301F10B4AF42E034E0966E2A7178E -:1034000043FE37FD8E011CF0F90FF1F8EA04790252 -:10341000BDFEDE0364EFBE106C0545F68BFD84F83F -:10342000270FF0FC7C09E4F6BDEAC01AEAF01B0E97 -:103430005F052BE5A50DBDFE5B08F0FA5704E0F82B -:1034400049F77E1217F8730C18F295F61A0FD6FD8D -:10345000EA0373F9D40A02F4B6F8F90E27FA4E0B10 -:10346000D0F1DFFA0A0F87FADA0061FCE507E0F92C -:10347000A9FB830F98FBFDF9E8F84109E602DFFCA0 -:10348000520757EE4703A70569FE620FA2F140F805 -:10349000B002A4002C09EFFEAF0496F18BFDED0CF9 -:1034A0008A00180452F35401A4003F02A70412F941 -:1034B0003A0539F54E08460874F0E508A8FD50FFB6 -:1034C0001B0A40F9150216FB72FC32043E03A706E4 -:1034D00034F840F811FD200A2E0158006002F3ED87 -:1034E0001B0B530215FFC70AD9F0A4FF4B045F055D -:1034F000930145F8290412FCE6010C0451FBDAFFA4 -:103500006D0015FEA4FE7407C6FA48FC9A0591F6F4 -:103510005707B80559F9850462F93A03CD028F00BF -:10352000D104E1F0B708030462F99A08E3FE52F40B -:10353000E7FC16121AFA080172FD42F1541383FCDB -:1035400076FC5B08ECF9F9F904022F0FBBF5CFF814 -:103550005F0801FBE10758FEA1FA4B0326FEC6FDFA -:103560008A02C30A5BF237FDF6082BFC310727FC01 -:10357000CAFECEFBC5FF9A08A5FAB3053200C8F211 -:103580004204BB0905FADE01D5027CF4A206B306AB -:1035900073F65306B9FD17F8A50C93FFA5F922FEA3 -:1035A00036024B0482FEEF0188F91EFFC40405FEBB -:1035B00035062600A5F73BFE3108C9011AFA4F046B -:1035C0003FFD26FE5C0208028603A1F9370027FBB7 -:1035D000A3044F056FF64A0993FD56F621036707CA -:1035E00004FF2AFE65FFB6F5B3076804F6063F0040 -:1035F00068ED1D04AF0782FF5DFE61FEB5FF5DFC57 -:103600009A04780902F6BAFA1C063BFF250398FCD7 -:1036100022FE9605CEFC4CFBC007E6016AF97AFF54 -:10362000F301200651FA48FBE2044701B0FF8F0086 -:1036300093FD51F8950A310861FDB9FE10F087FC41 -:103640006114E204F30189F33BE747185B0644FD8C -:103650000E0F50EBABF18909380CA208B0021EE83E -:10366000A9FBAA0BADFDA013E4F8C3F32FFACAFC23 -:1036700008195800F1F406F70000000000000000EF -:10368000000000000000000000000000000000003A -:10369000000000000000000000000000000000002A -:1036A000000000000000000000000000000000001A -:1036B000000000000000000000000000000000000A -:1036C00000000000000000000000000000000000FA -:1036D00000000000000000000000000000000000EA -:1036E00000000000000000000000000000000000DA -:1036F00000000000000000000000000000000000CA +:1005800001490880704700003C04004001480068B1 +:1005900000470000A00000204FF0E0210A6942F06F +:1005A00004020A616FF07F42904204D30A6922F08C +:1005B00004020A61C008486170470000024A1160E5 +:1005C0000249000108707047A000002023ED00E000 +:1005D00070B53B4908883B4C82073B4DA4F120068F +:1005E000A4F1800018D50A8822F002020A8001785E +:1005F000012901D1006A804728888107334802D445 +:100600000088208003E000882188401A30802888F4 +:1006100080F00200288070BD0A88520718D50A8829 +:1006200022F004020A804178012901D1406A804702 +:1006300028888106264802D40088608003E000886C +:100640006188401A7080288880F02000288070BD62 +:100650000A88120718D50A8822F008020A808178D1 +:10066000032901D1806A804728888105194802D46E +:100670000088A08003E00088A188401AB080288804 +:1006800080F40070288070BD0A88D206FBD50A88E5 +:1006900022F010020A80C178012901D1C06A804786 +:1006A000288881040C4802D40088E08003E0008898 +:1006B000E188401AF080288880F40050288070BDBE +:1006C000102C014080000020202C0140342C0140DF +:1006D000382C01403C2C0140402C0140034801884B +:1006E00021F001010180024800690047102C0140FF +:1006F0000000002070B54FF08045288AC1074048AF +:100700000AD0A989C90707D0298A21F001012982C5 +:100710004069BDE870400047298A394C8A0738494A +:1007200004F18804A4F12006497916D52A8A22F01A +:1007300002022A82012901D1006B8047288C8007A0 +:1007400002D4A88E208003E0A88E2188401A308031 +:10075000288C80F00200288470BD2A8A520716D5A2 +:100760002A8A22F004022A82012901D1406B8047A3 +:10077000288C800602D4288F608003E0288F61884F +:10078000401A7080288C80F02000288470BD298A4F +:10079000090717D5298A21F00801298281790129C1 +:1007A00001D1806B8047288C800502D4A88FA0805F +:1007B00003E0A88FA188401AB080288C80F40070D4 +:1007C000288470BD298AC906FBD5298A21F0100129 +:1007D0002982C179012901D1C06B8047288C80040E +:1007E00003D4B5F84000E08004E0B5F84000E188AB +:1007F000401AF080288C80F40050288470BD0000DE +:100800000000002070B543490888C20742480BD059 +:100810000A1F1288D20707D00A8822F001020A8034 +:100820008069BDE8704000470A883B4C3B4D04F1AD +:1008300090049207A4F1200618D50A8822F002023B +:100840000A80017A012901D1006C8047288881073C +:10085000334802D40088208003E000882188401AB1 +:100860003080288880F00200288070BD0A885207F6 +:1008700018D50A8822F004020A80417A012901D1A0 +:10088000406C804728888106264802D40088608012 +:1008900003E000886188401A7080288880F020007A +:1008A000288070BD0A88120718D50A8822F008022D +:1008B0000A80817A012901D1806C804728888105CE +:1008C000194802D40088A08003E00088A188401A5B +:1008D000B080288880F40070288070BD0A88D20615 +:1008E000FBD50A8822F010020A80C17A012901D1C1 +:1008F000C06C8047288881040C4802D40088E080BE +:1009000003E00088E188401AF080288880F40050D5 +:10091000288070BD1004004000000020200400402A +:1009200034040040380400403C04004040040040CF +:1009300070B543490888C20742480BD00A1F128885 +:10094000D20707D00A8822F001020A80C069BDE8F8 +:10095000704000470A883B4C3B4D04F198049207D5 +:10096000A4F1200618D50A8822F002020A80017B31 +:10097000012901D1006D804728888107334802D4BE +:100980000088208003E000882188401A3080288871 +:1009900080F00200288070BD0A88520718D50A88A6 +:1009A00022F004020A80417B012901D1406D804779 +:1009B00028888106264802D40088608003E00088E9 +:1009C0006188401A7080288880F02000288070BDDF +:1009D0000A88120718D50A8822F008020A80817B4B +:1009E000012901D1806D804728888105194802D4EA +:1009F0000088A08003E00088A188401AB080288881 +:100A000080F40070288070BD0A88D206FBD50A8861 +:100A100022F010020A80C17B012901D1C06D8047FC +:100A2000288881040C4802D40088E08003E0008814 +:100A3000E188401AF080288880F40050288070BD3A +:100A4000100800400000002020080040340800404A +:100A5000380800403C0800404008004070B504469B +:100A60000D46194919488C4203D1816941F400614E +:100A70008161B4F1804F03D1C16941F00101C161CD +:100A800013498C4203D1C16941F00201C16111498E +:100A90008C4203D1C16941F00401C161FFF716FC2A +:100AA00006462046FFF716FCB6FBF0F0B5FBF0F06B +:100AB000010C4A1CB0FBF2F02185401EA085A084E9 +:100AC0001120208070BD0000002C01400010024069 +:100AD000000400400008004002E008C8121F08C1DE +:100AE000002AFAD170477047002001E001C1121FAF +:100AF000002AFBD170470000FFF7AEFB02236F22F4 +:100B000000211448FFF762FC41F698111248FFF7E4 +:100B1000A5FF4FF4347203210F48FFF7DBFC0F48A9 +:100B2000FFF73AFD0E4A02210B48FFF723FB0D4960 +:100B30000120FFF743FD4FF0E020006940F0010085 +:100B40004FF0E02108610846006940F002000861AA +:100B500000BFFEE7000C014000040040C0E1E400DB +:100B6000730B0008690B000810484FF0000101806A +:100B7000704700B50D4801680D4A13688B420FDDC0 +:100B80000C4A32F9113001F1010101804FF4B471C6 +:100B900001FB03F34FEAE3330B44074A138000E001 +:100BA00008601846FFF7ECFC00BD0000A60000201E +:100BB000DC0B0008E40B0008A4000020F436000859 +:100BC00000000020A8000000D80A00089C37000898 +:100BD000A800002000040000E80A000888150000B2 +:100BE0005B00000001E5BA50C6FAF32A40A4D8B56C +:100BF00063747EAA6430B03F0080F233D15892B063 +:100C0000EC1197146594AA4B68EF38E32C6064AC40 +:100C10006A3861132BE42A53B0A933E6791A24C841 +:100C2000452051F7C6E53F3EF9CCC0F1774CFBC3F8 +:100C3000FE1ED95953D861EA4DE46E0F3D1ED4DE35 +:100C400096067FE5F9E5AC1568C2BEF795496FCC0D +:100C5000A50DBD546FF40F2084CD60D79B3FDFA955 +:100C600020081154F9CFE5F2B60E38F9F300FAF383 +:100C70004C15C336E5DE82016AD0CCCA0D517FF82F +:100C8000EC10972BA9BC81DB1E26D2D2DAFE3420D1 +:100C900041CBAE493F137AA7B5FA72E8C2F8F537EF +:100CA0006BF57FF9B71D93E86F378FFEC0C7A24A77 +:100CB00067DDBFF42615BECFB53FE4FAABDA3C25BD +:100CC000230C59FAA1E3FFC2E92115ED6FCBCF7ACE +:100CD000D4CA14EE4D0D4DA2FF7FDFFE19D87B78EC +:100CE00009BF24DF56F36BF3CC346DBF3FD6FA3324 +:100CF00036C493D53A2C62CE8640701BE4CE516642 +:100D0000689C6500C446B3AFF44FEDC84DD0B348FE +:100D10005306841F75D56FE38B27C6FDC2109E1D39 +:100D200001D065FCD61348E57D4441E167C924083C +:100D30007CDCDE2DC5ED93FEB0157CDE8E044718FD +:100D4000F011FCE9D5F140BA6F1FB3317CA1FF1857 +:100D5000CD404CD22AE8465B61D29CD0CD5767B6D5 +:100D6000F609402759E54E1D72FB1224D8C9D1DB84 +:100D7000902200EABC03130BCF0D27FB44137DF137 +:100D800045F74318FBDAA3EE5DD08726013D0BC97A +:100D90001D15A025430141CC72FD623AFDCDD90558 +:100DA000060A3E068B25CCC7A9FAA939F9FA799823 +:100DB0002848E5490B9C223F56B5C9ECE84EB6B829 +:100DC0003F2C88F86F0DC5AD181AFF7F4BAEAE36BD +:100DD000F5CE3602D904B3DBE35476BC492356E0A2 +:100DE000D7FB0A21FBB0563478F342F2501548FB8A +:100DF00069D4192C9F1896AFF87B6ABC4BD9366C16 +:100E0000C5C3070908EFB1FB76D0542CF50C1EBB07 +:100E1000454D5FF120F012F9820098E6F10C9D0A31 +:100E200051E27B3870F0F1F863061BF6BF09F0E47D +:100E30002D085F07C7F49A2FC7CB800B023575C00A +:100E400098FC0EFA85F271EE583F9109E203612891 +:100E500087BD6401C5FE77F7C1ECD80AD7F982ECEB +:100E6000462FABDCCF0F381062A3A411C224D7CF1A +:100E7000AE0D1D2B78DD34F79C3B03B3F90C473FD7 +:100E800047AE9D0EC72338F657F1822967F4E3E990 +:100E90001A1361D3AC2B871155D11E13940D8BE619 +:100EA00011285C1678C81E2828F7ABC53948DE0320 +:100EB0001FCC2A13501402F57BF90016FEF657F1E9 +:100EC00031DE2808630A17F66830DAEAD50362F6DD +:100ED0002DF24208F5F6AA2198BCC2F9D51C5C0097 +:100EE0005F06BEE5B02DB6CD82E9642FCCF0E108F7 +:100EF000C4193FFD8CE0BE3B43D4A1E0A2480BC720 +:100F0000B7091AFB54132A2C7FE37D0688F8931443 +:100F1000DDDB380EE51E10C605124609A2DF9C1166 +:100F2000741ED9C57612F31565C0403ABFF48BFF25 +:100F3000E3114EC7B53A11E8BE0E9E307BCDD30FFC +:100F400059E4E6048C0F5FF3292DB403A6C9D61526 +:100F5000571D1BCA373CE7EA70C63A304BEBAE1E52 +:100F600041F54DF848FE62E1302076E8AC15FA090B +:100F7000B20A0E108EC17E14A21CA3C5D200E727B0 +:100F8000D1C2BC2FAE1F26D6A63596C56F0C9010C9 +:100F900030E0E241AFD91DEFF63347ED8AEC9426FD +:100FA000D1EED1EC0A0D6DFE2A14C4DA350AA50E75 +:100FB000C6E67C0A84F8C8060001911DB1FBC2B9DF +:100FC0003824141814C5513AA10C78B5052985F2B6 +:100FD00099F55A1F59D3C41C3EF01DEBBD3FD0E01C +:100FE0000DFF620B72D39CFB280917209109E5F1D4 +:100FF000822D98E6F4D26A4F7AE98DDF1320FADF6A +:101000003A1939092918380E8AC1F90D41F6BDEA95 +:10101000972996F2A3EF16105BF3CF0D21EC3FFF5B +:10102000FC2A82AAC101CF0E7EC0E546E5079DDFFE +:1010300019FFCCDF391C1E11D7FC921930E360EE8A +:101040008616E6EFE7FE0B068E0388F53CE4932751 +:10105000660C58D7472A15EA1DD7CA3E44FC4A07F2 +:1010600035064BEDA4FE49F5D73C1F0B34E4512562 +:1010700069EC81EFD229A0E5B30587FEE6C478329A +:10108000B3092E00163BA1CE32D7A10CAEF69607BF +:10109000D7258B10ECCE77F79A3010EE26FDD30FC4 +:1010A000D8C84E09181996F0241D02F530F523F919 +:1010B0008AEDDF14EFEBD3F869FEEAF16F209FEBC6 +:1010C000DC0D982629AF8507A025CBCE8531F012FF +:1010D0001BCABC190B082BE5B4182808B2F9E602A4 +:1010E000B2F6721047002EFF730DCAFBA2F0F6F1A4 +:1010F000451FC1FE8BEA021E96DCE7E70128AFF030 +:101100005CFF331481038BFECDED97008A0253F10F +:101110008726FE1D09E92614AFEE65EBF8FEB8ED53 +:10112000880A44F98D1C3A1743E949F88E031EFEDC +:1011300073F9FE0BCD0247EDD006CF0EB6F80A0BC1 +:10114000C40439F1F8FC71EE11FD390B52F5E822B7 +:1011500090F7DDDA512415ED47EE681850FF53F192 +:10116000300B37144FF01404BEFBA2F371FF2006BE +:1011700092040800511080F4C3F32CF4431450146B +:1011800007DEFB1672FB73E4B402950AB71CD0E0CD +:101190005800340E65FC11153D09CBE16CEF9B172F +:1011A00085DD730EB015C2F94BEC91F33D2037E9A4 +:1011B000D601B8186A0D4ADCDA02470259FAFB2E4A +:1011C00037E9FA06EBD49DF7E51EC3DF2323DBFCEA +:1011D0009AF3020CC9FFB5FA51F8340E45F6191509 +:1011E000ECF9C0F08E1931F39D0C61E88CF6121009 +:1011F0009F03BC057BF7F50D4FDA56080D1244FC32 +:10120000570649E33C0F3601BB07D80A85F1700445 +:10121000CAFD200802F6D3112E03AEE2BE1080F5FF +:1012200079053A048C0CC4087BF8D2FCDCF67A13FE +:101230006FE10F1CCC0759E8021F72E5C502AB0530 +:10124000A9F8E4FA61FFEA030AF6EB12F608B70818 +:10125000C3E036ECDB125EF63E1925EF61FDEBFED6 +:101260008A04D227F6DB520C0AE335F01F200F0A5E +:10127000CD182CE20C018FFF91F541F7DA187500BB +:10128000EFEB4E20F2DD1E138A041DEDF61BFBDA98 +:101290002E027AFF2D06BB1D94FC43EC7AEBEF1770 +:1012A000FEF5BE103E05F4FB860259E87D1768F096 +:1012B0003E1AD0F5A7EDD61350E96A260EF7FCFECC +:1012C000D2006FCA83119120670837FEF4FEF3ED58 +:1012D000BC044703E5F38519B9D53B163D0AB7F4BD +:1012E000602DDBCFBC032BFA76FF9B02A4FE2420EB +:1012F0005CFF71019FEA4E08C5ED96078009B6F5BF +:10130000BF0C66E3DC22ED0862F74D0C36C4951E77 +:1013100098F9F8FF842228E1662506CAE315B5FE90 +:10132000AB18510D2CB6DE4098CEB4410AF8AEF39E +:10133000322E809F751643FED020941133FE05E9AE +:10134000F1DF7E13B0002F3BF9F90AE14BEC0CF012 +:10135000BE0D5B1A0E2220F0A8FEABC73CFA741D2E +:10136000200A543DF7D547EA95F4AE09F9257A14D9 +:10137000EBFE37D4A0FB03DB8E17BD16990BA90D2E +:1013800064D861FF11EA5D127C1F5B08210116D150 +:10139000D8F4A1F9181C741EBBF4CB0C6ECF3F021D +:1013A00016117406BF1D0AFAD7F8FBD90511B9E664 +:1013B0006419DC3715D5FF0549E178F5B415B81A7D +:1013C000EF146EE865FD24E0D40B5D134A0A601744 +:1013D000CFE31D04DCE0F6050B1D0A0BFB16B7DBA3 +:1013E000DDF147EBC113FB1AEC11B9FE33D23F011B +:1013F00064EF8A150D272FFE0EF9D3E443EC09FCA8 +:10140000F61DE314570484F472CF43028310AE1F19 +:10141000541550E9FEE0A9E20D148C0F652A640210 +:101420005AE1EBECB6E3FF1B0A0D7C1EFDFA78DEF9 +:101430002DF180F4BA23340D3A1712E2EBD58E0564 +:101440002600C432990D2FFDC7DF05E5C6126C04D6 +:10145000B527DBFD5EF726E96DEDAC158104C224EE +:101460003CF811EA19EDD1F0421BF90DFB1AEAEF35 +:1014700025EDC4EEE0F8152A54FEDC0CEDF3FCEB90 +:10148000A5F896048F12A800AF1C77E10FF4EA04C8 +:10149000A2F2891BE00EDBFD0DEB02F5D3FBAD10D4 +:1014A000E714D7F80403B4EA01FAC0076000921900 +:1014B0008DF371FF35F32CF5630A5C02BD148DF2D8 +:1014C000BBF5BFF59D0D59FC71013311F0FB1807F9 +:1014D00011EB2D0423FBE00DB30883E4BA0E8CF668 +:1014E000D8F3FA1B970285F261FFC6FA16FBB51016 +:1014F0007901DBFD5A0971EDF204A8FFD30EED0965 +:10150000DEFFF8FEF3EA800969FE2E1775002CF85D +:10151000D4F6F3ECF50D680483104B0497EAD6EB90 +:10152000FB01800CDF117F0E4CEAB8EE9A0423FA1F +:10153000F317790530F5A8FDC4F2E2009B034717C5 +:101540002CF8890630F458E9CA10A4FE831153041C +:1015500013F4BBF33CFAD4097F0E4F01B6F595F3B3 +:10156000E4F8D907EF13D6007EFD11004EF4AB036B +:1015700040FC170D9E07B804FEF43DF467082AFEF0 +:10158000200A7E0190FAD0F5E3FD05FD6F0D670896 +:10159000B5FC48FC49F8B00104FF31056C043E037A +:1015A00006F9F0FC23F974069D0B15021AFEA5FB43 +:1015B00063F5FCFF340CD3FBBF088CFA61FC27FCFD +:1015C0008A049F003202350AB7F20800E0F7DA0019 +:1015D000E00D3105FC0065FC46F17EFE7409DD0777 +:1015E0005707B9FC55F8BDFD1AFB9300381044FDB0 +:1015F000BD01DBF902F84205380C07073BFF74F424 +:1016000053ED2D07CC07620F81045FF27CF55B057B +:1016100011FEB3081B0E9EF3970087FAA5F7780911 +:101620003D0C7A00C90089F39EF1AB04120D730AD8 +:10163000DE0252F401FAC003D6FE280B09FC65FE57 +:10164000A5FB69FF420569018E047101D1021CF1FD +:101650003CF9B0024A0A1E10A4FE03F3A0FB66FA8E +:10166000C904FD0C16FD06F9E3FB87FD1D033D08CB +:10167000BD004A0622FEE8FA27FBC5FE8E02FE09DF +:101680005705B6F6CBF977F6060E280BA4FFDCF764 +:10169000DBFB9F01F303B0010EF771FF10EE4BED82 +:1016A0007EFF1006441080379230351EC00664D786 +:1016B0005DE7A5E30BDFBCEE88F53E07800AFF1A65 +:1016C000BB1D18F3C8F3000056F6E7FF541403F1EE +:1016D0003CE68F1159F9D007380D12F9DD082310B7 +:1016E000BFF57AE89A0413F3E908AD0F1BF5EE0392 +:1016F0002A01A2077103B9FCBEF70CED6BF52504B6 +:10170000F207010E8E164DF80400CAFB00FED8F554 +:1017100012FCCBF564EF0A215EE4A13AB9FEDFD1F9 +:10172000A61E03DC8600D3FAEA06B9FC4A1D42195C +:1017300049F77AFD9DDF5207C2254CD147EC1F0CBB +:1017400093E78D4961FEA9F90B0725EFC2E4FAF191 +:10175000B5FD94F86C30F3EE78201C09A7F062F721 +:1017600074F188F751FA33FD8AEE5635E80FB0FF71 +:101770004B02CBE1AAF32B12EEF2B8021C096BF775 +:1017800044103A0206F85306000079F0FA094CE8D2 +:10179000300BE314BF08410CD4F65DE573F64F1728 +:1017A0000FF6B81626FEECF84D0F1002CCF43A04F2 +:1017B0006AFC23FAB70696EE85053A05A207F0FB08 +:1017C000C30903F2E200670737FC740966F7E70014 +:1017D000DFFB6804D8F6EE035EF9E711930045F8E5 +:1017E0007C07F3EE5E0C0304F5F67CF2200A011090 +:1017F000FD0CC3F641F4AEF376FE3B0184F61A10FD +:10180000390AB309630847ED0CEEAE0CF9F79C0FEB +:101810004CFF9AEF2D0831076B0B6002CFFAEAED0F +:101820000BF3B9FBA90D7407900C1C059F0292F1F4 +:1018300049F841F551FB701C0EF99B0376FCA80199 +:10184000170B3A06E1F336EB82FE7904D907EB1366 +:10185000E1072CF8A80092EE4DF724F500012102D3 +:101860002F0F890654FD670958FFAF043AEC34F690 +:1018700033FB69015D141C0866F9BE0E4AF2F0FCE8 +:101880003604D3E431078009AA0851FB8F0040FCDD +:10189000E00DDFFD78F16C0483FC3605D30E6306A2 +:1018A00015EB060A5FF3D2FC9D0B9EF293FD7008C8 +:1018B00043FEC101BC044AF29C126FF6C0044810FA +:1018C000C1ECCAFD2F10D3F9AEF8611227E4D2FEA5 +:1018D000BC1A17F8C6FABC060B08B5FBB5E7F3004F +:1018E000F90F24F4020A501469EC4AF3C81B49F5B5 +:1018F000F0F95706FBED3202380D371400FE81EF88 +:1019000081F11914F3EDAFEFF9250DEB1005561E1B +:10191000B7F4B4EEFC0015FE170ACCF3FDFBE3139D +:10192000B0EB8B10071AF2F163E0E107A30481F03A +:10193000E108A4FFB31B7EFEE6EF1612BAE1A6078C +:101940007B0E53F165FD59FB7119F1F86F0B92EFA6 +:1019500074F43BFDBD01391FE2D9BE109607C102E8 +:10196000D80880F394FBEDF7660C4AF3100617F8DD +:101970009B036419DEEE6BF773F7DB12E50723FBBD +:10198000660D9ADBD10453051B0C8FFC77E2FB1824 +:101990001004A50F7CF5F0F92CF35207B51459E8A3 +:1019A0002BFBCDEFFF1AA20A0DFEBB083DDFEE05B3 +:1019B00033131FF99EF2260074083D0B59107CDF8B +:1019C0004607E8F800FE0622C7E1821546F17614C4 +:1019D00090F7CAE79C138FEBE61737D2A5370EFABC +:1019E000B8ECAB317BCC0B1E8BD232014B1AF4FD21 +:1019F0005C00E5F3E83AF8E903086DC08D09C624F8 +:101A000090CFE04EB2CABC18CFFA8EED29193FC074 +:101A10009C3EF5CB513AB0FF29DB4D2312D0A53ABD +:101A200022D25F1CA6DE4011C70B2DDCC63D78B468 +:101A3000EC50DAEAA7EE3BFCC7DFB73451CDCC1D42 +:101A40000ACD2918781FA524174C669062F988CD15 +:101A50009206613D130B53306EBA990DE5C92A13F6 +:101A6000402498E339348CB969282FFBDA01290620 +:101A7000E2EE02F4FEDFB24BC2BC9C2541F434F826 +:101A8000594FDFA8332832D9B4EB1F367C0B1E1216 +:101A9000E7C0840B85F36A3CAF06B2E05D14DFA8B3 +:101AA000B42DECFBB819B6F92EECC52BAFEE7323B1 +:101AB000DAC03A189BEA5303B6247BB88824460858 +:101AC0000235060A6DD5E5DDAACAD12EE40B8710D2 +:101AD0001D04D0F2DD30E7E8BC0643EA4ADE9F038E +:101AE000AB06E909A9F85539F302AD105ACABFDFB0 +:101AF000C21027E54F2E2DEEEF00F1F66B21C81B2B +:101B0000FBD9EFFF13DE8710E1F282019C2528F557 +:101B1000222AA1F7F7EE45DFB1E683244EF5201C1B +:101B2000D9EE4A088A1799F4DDEF5DE6F00EB8EBBE +:101B3000851AF8EA911CD506FCE8BF4AC1BD7AEACD +:101B4000FE0897E9792CDBF98CF71D198DF527FC38 +:101B5000A910E9E07EE86A2384E065291B0DFAB24A +:101B6000AB4591F5BC021F0F21DAC9EEEFFF680308 +:101B70005815662537BEE8234B00B3DBFE2113F76B +:101B80004BEB241D12FA3ED9F93AF8E80AF7262A57 +:101B900016D026FEAE1FD4DD313096F1A2C76331D8 +:101BA00043EB48FCF93813DEDFE83326F3C24F1B62 +:101BB000EF16DCE05A1F5C009BEB060EDE029DE395 +:101BC0002F28C2D1A2F5673584E1CB0EF538FBC2D0 +:101BD00054EC622224C72627E311ADE5A21EE6ECF1 +:101BE00046EFAA35B3DC90F94E1C9AC416103A2E73 +:101BF00055E3D615B4190BB48820D1EE9CFB3C23D9 +:101C0000A9CFCD18340EA1F79E098B27C4C618049E +:101C1000631C0EB8472EB20B14F29534B1E4B1E751 +:101C2000240BBAE5EA1A8310C6D08908882132D875 +:101C3000082CA20A00BE8B2665FC1404440F3CE667 +:101C400048FD7A1475EB0B08501554D3222A540121 +:101C5000B1CFC92B76FC44E4A429D6EC0FE02C20AC +:101C60005EF5A415170A60C2AA1FB309D0F16B3440 +:101C70004DE299DFA412ADFDDCF43A1BE5F2A7EDCD +:101C8000CB21E2D9B3082D1AF5E1C625CEE9CAD396 +:101C90009A3214EEA6082A2A0ACBE3E6F7154E0676 +:101CA000A3040B1DBBDE9DF92F1128DEB528D8F447 +:101CB00081F1152C85D901E65924F0FA0707CC1BD0 +:101CC000C3CA01FAD51C06F9E11BEFEBBBE0C72044 +:101CD0000AF642069D20D2D2F6F2A21D6CF2C10194 +:101CE0004C13D6D79717BC1934CC9312F2F15EF986 +:101CF000A61D29EFAAF5461A712C340B9EF397D630 +:101D00009B02B7F11DEB8D346AE675EFD00994FCA8 +:101D10004B1921052DF2C9FFC70A05CF351C120F3B +:101D200013DED049BBDE8AD89F2C2BE4C2F8B9263B +:101D3000B8D97CF2A92643EB3D1FEA0367C9762692 +:101D40003E048DC7CC1FAB04F3EC5C2D8FE733FF53 +:101D50006732E8CCB3F3E7166DD7CE13E00F35F456 +:101D6000862C4EF48CB86332CF100ACFC02D6FE0B2 +:101D7000C5FF1C31C0DA9C0F941125D87408AC0142 +:101D800074DC5E243B1412E5FE1F6DEB9ADDC52C5E +:101D900022EAA0FDA719E6DBE00D0B1B5BF33C0D6F +:101DA0008AEB45E23A1B07F446083A1B81F198FB9F +:101DB0009E078AEE5DFAB51190F74302A0FFC4EECC +:101DC0008D078D1EE1057CF512E577F8800817F484 +:101DD0009A1B58006AE5BC1830F7AEF5BF1FC2E782 +:101DE0002BF95E0D3DF32FFC0F0A76FDEA03520C32 +:101DF000B3DDF315520A49E4251924F15CEBB01860 +:101E000076FE47021805B2F6DE026EFD12FA3F01B9 +:101E10004E06F7EDAC17EFFEC1EA531B8EEEEA0259 +:101E2000B110C0DC7EFF0926ACEB7E00E80EA9E411 +:101E30009713EB126FE1F41073F546DDC12AB5FE7E +:101E4000B803AA0CE3E764027406D5ED25051F0D5F +:101E5000EAF0840A09FEF701A0132BF94AF3F4FD16 +:101E60002BE407055524F8FBCD0037FFC6E59F039B +:101E70004413A7EC7610F4FB32EC4B17F8FBA0FCF4 +:101E8000410C03F32FFC6EFCE6F0B81618072FFA8E +:101E9000C1FE1101B7F4D103D506A0FF29051AE44C +:101EA000DC0B5B05E8F9B1129F0030F98E0405E9FF +:101EB0007DEE9825420681F1F10ABFF6FDF7B111DA +:101EC000A9F8FCFF0EFAD0F13D0AA90D50FDE3FE82 +:101ED000A0FD91F2170B99F46806730D14F1D1046B +:101EE000E4F83DF6F3175DFE8DF2F41325EF24F1CF +:101EF000BF1EB9FC47EC3F13C7E300FE41221DEDB6 +:101F00005F08E202F2F0D007C404D9EE0707DD074C +:101F100051F8680527FC58FFA50E76FDF6F4AF04CE +:101F2000EAF12C094F05BEF8910A34F99F02300CF2 +:101F3000B4ED7CF3BE10D4F43506481470F14204BD +:101F4000FB0566E56709D40BABF0BB0B21057CF400 +:101F50002EFF93003D0C980EABEEE1F491F58FFD52 +:101F6000FF04730C030594FB1501F9FA7A12CBF503 +:101F70005802AF04F6F34AF1D1EE6A11641AB111B6 +:101F8000C6FB3B001EE6FEDF590F9C1180F32A02C0 +:101F900057059204340FDE0312F9CAE83AF0F9F853 +:101FA0005C15F8119D0C4B0527FC4CFC7FE4D8F721 +:101FB0005C0346F1AF08AC15CEFCFB1911FE09E637 +:101FC0000C0208EBA1F671167A0026FF9F18A702F3 +:101FD000E3FF61FBF4E7DDF10304A8FDF10A3D0B2B +:101FE000C903031927FC81EFC8F082EBEB01400F16 +:101FF000C5014B04240BEA02F60537FF76E9A1F789 +:102000006EFA23FBAF1DD8F566F9751978F5280827 +:10201000FA0907DD840AD10196DA181AAC1644FBD6 +:102020004608E50990E40AF90E0D70F158FF5EF6D6 +:102030007903B4041B0B741C5DFA3FEBA0FDDDF0CB +:1020400091F408179604E3FC1B0AD7F9BEF8D006F2 +:10205000B306E204E5F27AEACEFC3D098505E11C0F +:10206000FF0403D9EA035302EAED910ABA0C94FB88 +:10207000B1123B120EF852F6AAF6F9FAD2E911E7BC +:102080001113AC13CD020F20E3FE22E80EF90EF778 +:102090001EFD8FFED103AB03F8FDBC05BB1C22FC6B +:1020A00053F03BFFD3E4B2F548104E0AA400660C8F +:1020B0005A0A56F565FF9CFE2BFC1CF3C8F37C0BFB +:1020C000A6F5410C5A20C0044EF492EE20F3B1FB69 +:1020D0002A023700230C63F5FB01060BBB087B0DBE +:1020E00085F32CF59EF49B018FFF570761FC38F6B2 +:1020F000B514A607B7F377F8A2F20AFA900F97FE85 +:10210000E6022D05D6FFF8FFC80523F941F3AA081A +:1021100093FDE2038D07A6F215FFC30C74F2930042 +:1021200076FF000187FCAFF2D51AFBEF4AF3301FB0 +:10213000DCF4B900AA0C78F359F973F8A10DB9FFD2 +:10214000B5FBDC0D29048EED01FAEB1277F88CFA61 +:102150007BFB1EFCB2F77118C70CA6F3F30166FAFD +:102160004DF9DAFF0B0946F3EA03F0FC880A3BFE5F +:102170000FF6A10E2FFDD3FAE9F4C7F502F8D21637 +:102180003F1433FD24F42A02F4FAC4065B0563F419 +:102190001FF817F8811B61FE82FFC5FF9B016AFAD9 +:1021A0004AF368047BF742068C0C2D06A6F31C0943 +:1021B00000FE6401BEFA72E982016709F317140791 +:1021C000790202F428F53EF1CAFA33FD9B014C1165 +:1021D00097FE2F0F11FD02F7E0F990F85AF8A4FCD2 +:1021E000F61CAC141AFE5DFDB7F1E7E916F97EFFA7 +:1021F000130CC6FA9108FB1998FBD4F64EF133FE86 +:10220000ECFBC3F63909410B680335096C038CF903 +:10221000A4FD0EE302F7C6125A0BE6016D01091088 +:10222000A0FE0EF853F017F7D7F950FE6511180706 +:10223000D80A27FA05FCC100D1EE08014302F8FED6 +:10224000ED0A1AFD18065E0B6EFA87FEEEF11BF71B +:102250008A00E7FF5207C0078FFC0802F205FDF96C +:10226000E3FC53EF670A3E06D5EF8FFF340B2C0DCE +:10227000A1F94205C4F15BF2DD07BB0B8DF454E913 +:10228000042ABB1E42D9B9D1292DDE2E92DBDFE50F +:10229000AEF7B511EF1363F251F853063E06B3F1F2 +:1022A00003F1CC1DBB0A18F36EFB5BF092062A15F6 +:1022B000790265EA5DFDA3011D02170AEDF3A90D80 +:1022C000520844FA14EECDEB841FE9092CF8EA0415 +:1022D00018F2C4EFE109681837FF3F02FFEDCEFEA8 +:1022E0007FD102B8FF7FF8500080FBB0FF7FFF7FF7 +:1022F000008000806B61FF7F340B00801C09006D43 +:102300001CF3C807A58FD2FCFF7F99E106CA29DA22 +:10231000C9155D527140CA910080FF7F9534FD90D0 +:1023200048128FD3B93D7F25B6E2A2B2B621A25F93 +:102330000080F0282032E8B94D3680F616F906DF25 +:10234000E932C3F68EB0FF7F02CA3BC08A2E92D715 +:102350000C30ACFE000095CC4E1DE729E1B2E15DEA +:102360000DD426BFD54678F533FB77E3E91F0A0B7A +:10237000F4FC1C057BB77A284E1DD8F3BF09BFE0DB +:1023800065FC1C09C03120F069D305258DDF4300B1 +:10239000FA1CF1F5570472FDED08F0D1AD25EA1AEB +:1023A0003FBE4C3F8CE4A4D5A32C06F76E0EADFCCB +:1023B0004D0FF8D271FF3B41F9BA59268D06FDCF7A +:1023C0008B2646F3510D6FF4A90EEAF1CAE95F1DA1 +:1023D00025DB252F1F0CF7D7D904020BFB017AEB65 +:1023E000851CB3DAE2003F28A9E35815F8FD91F601 +:1023F0002EFFE203ACE945F5503F56DF03F0BC3059 +:1024000010DA43ECCA1334F66F0C070796F08DF31D +:10241000DC1F1A13B5D0951DFADEC7F4373FE0E193 +:10242000CF0C9DE3800CA50D71EDC128F9BA510DBB +:102430002B23EFED211608EBDD08BFF2FE094B0060 +:10244000C2E47721EFEB4302A31631F015FEB60B81 +:102450006BF3FAF1251A71EC85F0CC1F200847EADE +:10246000A608DA020EE51222A40022EA4B17F6F3C0 +:1024700008ED510D410B7BF8BDFE27FABEF8EB00CD +:10248000AD110801F1F4890751E5EB16E80CFAF4F7 +:10249000CF0DDCE35A0CF0F90C02640492EF062134 +:1024A00010EFB5FA61FFF1F48C0F9F0189062EEB56 +:1024B000AA08630713F33618EEEF1FF7490C7FE6FF +:1024C0004811922F90CC0CEC4D36C2E49CFD3FFF9E +:1024D0006AE3F9254A067CE0BD01C320A2F498E333 +:1024E000DE19C2F958FEF10BBAE2B8045A1FE0F93E +:1024F000AAF2450B75EF8DF27518D50310EF940E07 +:10250000651140E4A400660D46F11210980FF2DE4A +:102510002BFAF00EC5E9A718D504F7D7490CDB1242 +:102520001B0C51F7E00CAF04D3E648100DE99702FD +:10253000B71CF4E7CD00FD0E2DEF0AE3031C230DBD +:1025400040E55014BEF738F6A717AEF702F87C0B3B +:102550004B02EAF1CC051002FCFDAE0933FC27FB6F +:102560001BF56AFC09FFE7139A0638E2BC03AD0FBE +:102570001FF7B000300E17F696072FFBEEF0C211D2 +:1025800097FE51FA00FF960439F588F7C917E20360 +:10259000FDF8B9FC28F2CAFB19180C0442EFE9094E +:1025A00000FFD6016B0CB2F4E6F0B0026C0365FCE0 +:1025B000950CB1FE8BFB35070DFF99F641F3FB023D +:1025C000D6016F0D9509F7ED910A9E0813F5930159 +:1025D000C0F0A8003E047008460833E8230C16FC3F +:1025E00065FF331493E89EF4C309DF110D00ED0875 +:1025F0004FECB4EB7F270BF490F9ECFA7F0F6A0EE7 +:1026000042DB140519010F1DF7EFD1EE5F07E1F270 +:102610005319CEE7841FD8F729EFE40F3AD80A25DB +:10262000C2FC16F9B709000270F3DA01A61D17E122 +:102630001114D5EF04ED3F14DD072BFC0EFA331413 +:102640006BE22213F3FF5EF637FC09FBFF1A05E984 +:102650006515D5EEAB079CFE01F97AFFF9E1453728 +:102660008DDD5A1FA4FE9EDE891DB6E47A117BE43F +:10267000112921ED95F493297FCD1127B9E911FD99 +:10268000CA1075EBE10722E83E2DB3F15400D40CDB +:1026900034E1160FE8E4D32328F65703A50EA9E288 +:1026A000FC1404EA2F11EDF5BF0C9DF864F07613CD +:1026B00094E4881F1FF76FF7F303CD01140356F45A +:1026C0003616FEF5A4001CF1B402081832EECB0F4A +:1026D0001BF5D4F5A1F8DD07F50C75EFD02055E713 +:1026E00067F3CD00B5108A1540E78E161DD8BC02E1 +:1026F0006913BBF3D7110400B60B2CE04B05C500E2 +:102700004CFC0C17FFEE4E0BA3EE26FE3B01971779 +:10271000BEF886D67F3B6DD80AF7B92652F2AC01D7 +:1027200014F2871303EFEBFE3C0D6EFC9B0043019C +:102730003B01A0E860177100C2F9E00FCFE1C102D0 +:10274000A10EBBF52409A50CF8E8A1F9181AADE310 +:10275000DC0B2325E3FCDAD5DBE7B2372FD1900F72 +:10276000663B3EC5750276FE41F4D229F8FB76E958 +:102770005B1E33D0F300222666E3B331FCD568EF4D +:102780005A1F7FE35E2453F112F8A8120DE630F4CD +:102790007D2E55FCABDAE11E23E1DE17C40677E29D +:1027A000772125DB0A0EF413E5F28908D9F2C8F384 +:1027B0008F15690028F2AB1AABD9840BFA1D68D8C3 +:1027C000BF1E54019ADC780A340F40FC390B8F008D +:1027D000CDEB310904ED1A0F840DA6F4140767DF61 +:1027E0005C19780AA1F9A90E5EE3CAFBD6157BF73E +:1027F000A7EE631DC9EC6000211835F1AF08C1E8F0 +:102800003D0BF60735F1900F38F66001E907B0ECA3 +:10281000990BF00EFAE0BF0B9300FBEE1A26D2FFE5 +:10282000B0EAB70807F048FE8C22E6EE98F912FBF2 +:10283000F6F05028C5EA94FA11152ED4791A6C1DB9 +:1028400057DB410BB70A7FE6ED0C700750FD150210 +:1028500031F0F208A1F65A0DD90381EE662272D248 +:10286000CFFA9B2A9BE99B00BC06D3FB36EFF11FF6 +:1028700001FD38E45A1F03EFCEFD1B0B9CFB72FDDC +:1028800049F70D1116FDF0FA290747EB40111E100C +:1028900045E2E7119F01EFE9A10F76FF01F9D40BA3 +:1028A000B2F940F9800C26FF710361FDFDFB33FC9A +:1028B0006FF682139CFE60EF441339F5A9F95511A8 +:1028C00011EC410A2C0C7DEDFF056A0FBCEC8CF776 +:1028D000AC147BFBBF0841F762F6910828F49D0D0C +:1028E00024F46F0A280853DA0525A4FF68ED97172A +:1028F00008EDC3F648115302B3F0B01830F8B2E156 +:10290000E11DA0FB67F5D40B00012BF9F5F7450B92 +:10291000CEFBB1FBC20E38F7E602C101E9F2170B9C +:10292000530430F5CEFCF50BE9F201FCD31102F7AC +:10293000C90126FFDFFAAB039A04BC02F1F4B70A1F +:1029400050FED1ED421A7AFCD0F12B10D8F6F9F9ED +:1029500081054B01BDFCF20877F61BF586155DFB82 +:1029600061FC3202B803EF010FF33313B6F638F609 +:10297000900E1DED4F174CFEEBE9620E51FA00016F +:1029800087FE780A26FDFAF1C70A2A0211002601FD +:10299000DFFD30F9FF045401ECFA5911E9F3DAECE8 +:1029A000FC1172FE61FD5B0602F8E3FF6002B5FDFB +:1029B0001B0B3105CFF6C901C101B70718F07AEA40 +:1029C000120E83FD670A4D0EFBEF1A0F5000FCE953 +:1029D000BF0BB6F9CCF292034206560C0C048200EF +:1029E00045F50AF9730B02F767F33B14EE0419EC93 +:1029F000001783FD91F30D123DDFA316240814D9AF +:102A0000D51BF70205FC4703A301A0FEAAF5ADFC08 +:102A1000B5FF9826DDF261D0FB18C72080F58AEB60 +:102A2000C70A34FA01FCE7000DEB262BF20675D637 +:102A30009F174F03E1F1FA0784F5C9032B0F3CE31D +:102A40004204AC2ACCDF09FC96197CE1A50EFCFF00 +:102A500026EA4922A9FBB5E62A16F303B1E70A0CD8 +:102A60007007BBF1A608ECF8EDF6251909FEC9EDD3 +:102A70001C1BB2F907DE631DD90496F0401160EF0C +:102A80008F006111D6ECE40DAF070EE2A3044F05F1 +:102A90000402D80DC4F08F00C20F9BED83FAE21838 +:102AA000E8FB8FEBFE08580209FD2AFEFEF4CF0F6B +:102AB000890897EB780651104CEAB803C11602F565 +:102AC000A20A01FA8BEA501499F625EE25189CFC0F +:102AD00057EE980E0305C1012D076DEC16F9270F6F +:102AE00078F44B02291AFEF213F6410C5AF88BFDCA +:102AF0006803FDF8AF079E09AEF3EA035F071DEE1A +:102B0000D2FD14057E007D039CFB2506FD0E66FAB2 +:102B100077F8310853EEAEF3300E93FE5A0EB00044 +:102B2000B8EC4D106D020CECE2020C0580F6BF0B08 +:102B30008C0CB9FB3604E9F2E9F3FA0A09FF35F423 +:102B4000A6090F09C2FB6F0ADFFDD4F4EBFD8DF47B +:102B5000AE09F81089F1BC028D094EF5B7070001E6 +:102B6000A6F63605A2F205FDDD1C33FCB8EEFE0824 +:102B70002AFE2BFD180430F9F2052D050BF3100386 +:102B8000340E20F3E3FC940F23F733FB150209FF07 +:102B9000C407EF0033FB6C04CAFD20F47406810403 +:102BA000CEFD21036AFAEFFF2D04D3F9EE053108BB +:102BB000F3EC6D015A0EE1F078098D0A9AEF3E05AB +:102BC00093FEB9FCCF0FC5FE9EF447032E011FFAFA +:102BD000100544FC4704BC030BF2830EAB07CDEC9D +:102BE0003700F60997FEFF03150134F5180443007A +:102BF0001BF70F0AB0015AF7A70336044F02A303CD +:102C0000FDF70FF6CC067AFFC1FF390787FCCEFF30 +:102C1000C4048A0159FC99F6A0FE300B9CFC7FFA93 +:102C2000D80869FD83FA3A044B030D0016FC2CF713 +:102C30006C03730D3CF810034D0DC6E711009C1199 +:102C40007FFCFDF932EBEC100A206EE66EE62820E0 +:102C5000A20A53DCDA00311A660D2BE468ED0E236C +:102C6000C006CCDD2A01E52078F559E7EE04062000 +:102C7000EA0524C996066D2D2EEAF3EB2E17E90816 +:102C800032EE2FFD2E039010DCF55BDD6224A10CEB +:102C90004BEB880E4AF424F6A81434F801E74A1ED8 +:102CA000380FCAD46DFFA9239B0152DF3CF92F25B1 +:102CB00031052ED69E085029B1E823E19715412011 +:102CC0000DE9E3D3851C0636C5E967CA4C269B1877 +:102CD0001BCC7903F025F10BBCD8A6DEE037B81782 +:102CE000C0C47006CE2875EBDCE1FB04033137FD70 +:102CF000E1C5340F82298DF38CE4840B141B1AE593 +:102D00008CE09424BF1ED0DFD3E61C1AB514B1E8C2 +:102D10003EEFA21CF30280DDB305301F560841E1EF +:102D20008DF401250AF81FE45414A2095FF21BF583 +:102D30006003CF2159FAB5D281186D1774DE7E0178 +:102D4000C5150DFD2AEAD3FB6B1E9E057BE522FC13 +:102D50004715AF043BE897FEB819A5F79FED2B0F79 +:102D6000F609DDF3B3F2D105E2195FF061EA3E1A2C +:102D700014066BF36AF8E10898126EE868EDBB2060 +:102D80006405B5E5170A700844FAECFA48FC4413E8 +:102D900011FD4DE3A2084A1DE8FBA9E6B000E216CA +:102DA000E4F814F0840D89082DF053EF0418471748 +:102DB00072E90CEFBA10920318F36402E604740986 +:102DC00047EAB1FBCC1ED7F807F4BDFC5704250435 +:102DD000CFF93FFF8F110FF6ACEC7115890788F61C +:102DE0003CF8EF000A0CD2FCD0F59010C6FBCDEEFB +:102DF000240A6707B4033DF249F966101100DFFAAF +:102E0000D505690177FA4FF0E10897145FF3AFF049 +:102E10007807B7095DFC8CF74E06450B9BEA22FD4F +:102E20001D1733FC03F12A025F06D00745F78CF823 +:102E3000A41249F7E1F4A3035E0C1D0270F0A7038E +:102E4000730C30F5ECF9410AAF0477F824F4900DD7 +:102E50003203B7F043FF312FC903E1C96CF0281FDB +:102E6000C22424DD9FEDD30F940D2D04EADA8D0AE0 +:102E7000552574DE45F70B1F11EB6002F2070EF7C4 +:102E80004D0DB4ECEF02141BB0ED74F0E6016A11C5 +:102E9000F30339F24B03820099F4F606A90F44FCC0 +:102EA0008200A3ED0306F812DDF35B0802F8D0F40C +:102EB000D90583FCE617C2F9ECE4B01604012BFB3C +:102EC000280A95F4E3FE20063AEF58145B0866E6FC +:102ED000C806B0FFFF03430219FFE7001AFC7AFCA3 +:102EE000840A5401F1F6DBFD55F98C0F79012CF7BA +:102EF000A206E7FF3DF45304300E0C02D4F2F6F3C1 +:102F00009D0E470161FFEE05AAF5E605C3F7A8008F +:102F1000681925EED1EFBF0820086DFF9B003BFE2E +:102F200022FFCAFD63F20513390B19EE23FB53028E +:102F30006B09110116F99A071BF9C7F72D050B0646 +:102F4000FB052CF55EF79D0DA302A6F3C8086306EA +:102F5000BBF554FD80084E0730F9F1F5D009C1FDED +:102F6000BEF98E0469FD7C0BC7F4CFF7F715BAF6EE +:102F700014F2520CD503E200C2FC0DFC670BA5FB5A +:102F80006FF65E0B680351F848FA1004340FC4F171 +:102F90005EF9C809DBFB190186FF8E05C900FEF347 +:102FA0009701941027FB80F4B3069B00ACFF8BFBCA +:102FB000B001020D7DF04DF9490D03067EFE10F1C2 +:102FC000D9068E0567F46806740945F5A5F88107EA +:102FD0006707790334F551FB9D0D2FFA6AF9B20D9D +:102FE00072FC34F912FA5609BF0918F298FB3E0434 +:102FF0009A08B9FDC6FC2D0554FFDDF28104331398 +:10300000BAF928F2B400CC0987FE83FD10057101DE +:10301000D0F383FD7B0FD90388F8DDEF1309DC0CB7 +:103020003CF88105D2FCADFC2BFDB00295092BFCD0 +:10303000D3FB40F9D409080395F5DE027C08C2FBF6 +:1030400025EF1B0DFA0A4EF52101F5F9DD043D08C7 +:1030500030F7890526FF34F743038D0912FCE0F5AC +:103060003605A7045CFFE8F99B009A0594FBF3FF83 +:10307000DAFFEE07B40121EC7F0E350863F5790322 +:103080003BFDC005E3FB62FA9A067C076FF891F6F8 +:103090000E0CEBFD55FBDD047E0187FE94FAB404B3 +:1030A000F700ADFDD6016DFE2105ECFAFDFAF20840 +:1030B00083FCECF90F08D80973F713F33507D10334 +:1030C0001AFE740558001AFB98FCCEFEC00696073F +:1030D000E4F7ECF936028E04AC02B9FBCEFFA4FE95 +:1030E00051FAA206630683FB15FE26FD1308CD03E5 +:1030F000A2F54303CC065AF438F8E40D060B6AF83F +:10310000A7EEA3033D0AE60204022CF4DBFD9604BD +:10311000D601FE09A5FA8DF19B033109190161FE63 +:1031200040F8D007340D77E382FF4121CCF27EE9ED +:10313000BB09880B65FD7EFFD3F8C5FE4607A9FADB +:103140008905950981F1ECF8C807BC032809BEF888 +:103150009AF0E5091C0622FC5F09E9F66BF3BF0A49 +:103160001002F605E7FE08EFD4089109E9F6AF046E +:10317000D50680F309FDF2059F010E0E1BF5B4EE96 +:10318000C20E9B038DF5C807790436EE8D06240820 +:1031900090FBC9044EF5D102AE0D06F8F8FE81068B +:1031A0001FF797FE7405E2014B05BFF387FA5E0E29 +:1031B00000FE76FD0804F5F52AFF810726FED009FA +:1031C000F0FB3FECD0085D135EF6D3F8DC0966F93E +:1031D00053042FFC250244103FEC56F68908E506FF +:1031E00047FF76FC22FF66FB0306B8052006B1FA0E +:1031F0001EE899097F2494FC37E67BFB4B052006EB +:10320000A8FE4701D10246EFA0FCB111A304BFF311 +:103210009CFBE1092FFCE7FE7501C1014A0AF4E9B4 +:103220009B004F1935F165FCBB088BFB27FC0400A4 +:10323000C80586036BF5B2F82B0FA4FF3CFBA80171 +:103240005DFD5B072BFA76FF5F0538F93605FF0455 +:10325000A1F6CEFE8E018E026C07D4F372FA3D0BFE +:103260009202E7FC66F7D502170CBEF933FE710136 +:10327000FCFDEE0550FCBDFF920448FB00FE290555 +:10328000CAFC43FFC10172FB3908F0FAF5F9510D90 +:1032900083F9BEFA960533FF8D061EFC1AFA8907DC +:1032A000150137FCF8FF9A042FFE77FA1100A703E7 +:1032B000100398F9CAFC1F0B67089BECE9F6291864 +:1032C0004F0374F248FBFF055F05F4FB1900D504BA +:1032D00072FD98FAB0FFFF0247016EFB7807A4FF6A +:1032E000FAF326FFA414EB0152DFC6107D18B6E4F2 +:1032F0001CF4512401FDC8DD55105D102AFE2AEB97 +:10330000E4F8DB26DDF0DED93C26D7118EDAFCFDB1 +:10331000C515C405EBFEA8E8F10C660FAADF9618E8 +:10332000140458EC9A0893FD000010054702A6F11A +:10333000800AB5FBF0F94717CFF717F51D0186FF97 +:10334000CC07F608AFF2F5F8230DA5FB2103F30235 +:1033500060EEA4136C034DE27A13D00A68F0D9072B +:10336000D2FC23F7331334F578F55C162DF12AFFE0 +:103370009E05E8F89108B1FA9BFF700547FF52F4EB +:10338000730D7005EEEF5F08CAFB10069CFDD7FBBE +:10339000520AF4FA61FE33FE3506D4F6E602770EE1 +:1033A0009BED4F029E09DBFA8BFCC5FEB7064B0274 +:1033B0005EF805FC8B1034FAB8EBB915100353F026 +:1033C0006003DFFCFE0ACD00FEF41C05E106C1FD32 +:1033D00024F4E21761FF4EDDD409FC132D0556F4E9 +:1033E0007CF50DFFAA0AFCFD4B014D0EB9E8B5FBBB +:1033F000280C6306D905EBECDBFBBA107BF9CD0199 +:10340000C212BCEEBCEE3E07B20CAA0CE5F53EF0D3 +:10341000FB0509FF3E07C503630640F996DB1A2545 +:10342000ED0AB7F0EA06B7F03109B6F8950A1005CB +:1034300005FC44FC7AE9D41DE70078F51501CFFAC4 +:10344000A60B0BF2471599F808EB6D14F2F0E71391 +:10345000D80A28E183FDD00A3908D2FDEE0753F1DE +:1034600053ED7518AC012C09A5F787E7221143012C +:10347000F10B4AF42E034E0966E2A71743FE37FD0F +:103480008E011CF0F90FF1F8EA047902BDFEDE03AB +:1034900064EFBE106C0545F68BFD84F8270FF0FC39 +:1034A0007C09E4F6BDEAC01AEAF01B0E5F052BE5C5 +:1034B000A50DBDFE5B08F0FA5704E0F849F77E124F +:1034C00017F8730C18F295F61A0FD6FDEA0373F984 +:1034D000D40A02F4B6F8F90E27FA4E0BD0F1DFFA4F +:1034E0000A0F87FADA0061FCE507E0F9A9FB830F10 +:1034F00098FBFDF9E8F84109E602DFFC520757EEB8 +:103500004703A70569FE620FA2F140F8B002A400CC +:103510002C09EFFEAF0496F18BFDED0C8A00180428 +:1035200052F35401A4003F02A70412F93A0539F5F9 +:103530004E08460874F0E508A8FD50FF1B0A40F944 +:10354000150216FB72FC32043E03A70634F840F85D +:1035500011FD200A2E0158006002F3ED1B0B5302EF +:1035600015FFC70AD9F0A4FF4B045F05930145F886 +:10357000290412FCE6010C0451FBDAFF6D0015FE74 +:10358000A4FE7407C6FA48FC9A0591F65707B805D9 +:1035900059F9850462F93A03CD028F00D104E1F0B4 +:1035A000B708030462F99A08E3FE52F4E7FC161226 +:1035B0001AFA080172FD42F1541383FC76FC5B0891 +:1035C000ECF9F9F904022F0FBBF5CFF85F0801FB06 +:1035D000E10758FEA1FA4B0326FEC6FD8A02C30A84 +:1035E0005BF237FDF6082BFC310727FCCAFECEFB49 +:1035F000C5FF9A08A5FAB3053200C8F24204BB0918 +:1036000005FADE01D5027CF4A206B30673F6530672 +:10361000B9FD17F8A50C93FFA5F922FE36024B045D +:1036200082FEEF0188F91EFFC40405FE3506260060 +:10363000A5F73BFE3108C9011AFA4F043FFD26FEEB +:103640005C0208028603A1F9370027FBA3044F059B +:103650006FF64A0993FD56F62103670704FF2AFE19 +:1036600065FFB6F5B3076804F6063F0068ED1D0474 +:10367000AF0782FF5DFE61FEB5FF5DFC9A0478092D +:1036800002F6BAFA1C063BFF250398FC22FE9605BB +:10369000CEFC4CFBC007E6016AF97AFFF301200675 +:1036A00051FA48FBE2044701B0FF8F0093FD51F847 +:1036B000950A310861FDB9FE10F087FC6114E2043F +:1036C000F30189F33BE747185B0644FD0E0F50EB0F +:1036D000ABF18909380CA208B0021EE8A9FBAA0BBD +:1036E000ADFDA013E4F8C3F32FFACAFC0819580083 +:1036F000F1F406F7000000000000000000000000E8 :1037000000000000000000000000000000000000B9 -:0C371000000000000000000000000000AD +:1037100000000000000000000000000000000000A9 +:103720000000000000000000000000000000000099 +:103730000000000000000000000000000000000089 +:103740000000000000000000000000000000000079 +:103750000000000000000000000000000000000069 +:103760000000000000000000000000000000000059 +:103770000000000000000000000000000000000049 +:103780000000000000000000000000000000000039 +:0C3790000000000000000000000000002D :04000005080000ED02 :00000001FF diff --git a/PjtKEIL_StepSon/Obj/StepSon.htm b/PjtKEIL_StepSon/Obj/StepSon.htm index 2d78f6c..3623a49 100644 --- a/PjtKEIL_StepSon/Obj/StepSon.htm +++ b/PjtKEIL_StepSon/Obj/StepSon.htm @@ -3,7 +3,7 @@ Static Call Graph - [.\Obj\StepSon.axf]

Static Call Graph for image .\Obj\StepSon.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Tue Apr 11 16:09:00 2023 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Tue Apr 18 15:41:27 2023

Maximum Stack Usage = 40 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

@@ -19,7 +19,6 @@ Mutually Recursive functions
  • SVC_Handler   ⇒   SVC_Handler
  • DebugMon_Handler   ⇒   DebugMon_Handler
  • PendSV_Handler   ⇒   PendSV_Handler
    -
  • SysTick_Handler   ⇒   SysTick_Handler
  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler

    @@ -63,7 +62,8 @@ Function Pointers

  • SPI1_IRQHandler from startup-rvds.o(.text) referenced from startup-rvds.o(RESET)
  • SPI2_IRQHandler from startup-rvds.o(.text) referenced from startup-rvds.o(RESET)
  • SVC_Handler from startup-rvds.o(.text) referenced from startup-rvds.o(RESET) -
  • SysTick_Handler from startup-rvds.o(.text) referenced from startup-rvds.o(RESET) +
  • StartSon from gestionson.o(moncode) referenced from principal.o(i.main) +
  • SysTick_Handler from timer_systick.o(i.SysTick_Handler) referenced from startup-rvds.o(RESET)
  • SystemInit from startup-rvds.o(.text) referenced from startup-rvds.o(.text)
  • TAMPER_IRQHandler from startup-rvds.o(.text) referenced from startup-rvds.o(RESET)
  • TIM1_BRK_IRQHandler from startup-rvds.o(.text) referenced from startup-rvds.o(RESET) @@ -91,27 +91,27 @@ Global Symbols

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
    [Address Reference Count : 1]

    • startup-rvds.o(.text)
    -

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) +

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) -

    _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

    [Calls]

    • >>   __scatterload +

      _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

      [Calls]

      • >>   __scatterload
      -

      __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

      [Called By]

      • >>   __scatterload +

        __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

        [Called By]

        • >>   __scatterload
        -

        _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) +

        _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) -

        _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) +

        _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) -

        _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) +

        _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) -

        __rt_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E)) +

        __rt_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E)) -

        __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F)) +

        __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F)) -

        __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011)) +

        __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))

        Reset_Handler (Thumb, 34 bytes, Stack size 0 bytes, startup-rvds.o(.text))
        [Address Reference Count : 1]

        • startup-rvds.o(RESET) @@ -175,13 +175,6 @@ Global Symbols

        [Address Reference Count : 1]
        • startup-rvds.o(RESET)
        -

        SysTick_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup-rvds.o(.text)) -

        [Calls]

        • >>   SysTick_Handler -
        -
        [Called By]
        • >>   SysTick_Handler -
        -
        [Address Reference Count : 1]
        • startup-rvds.o(RESET) -

        ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup-rvds.o(.text))

        [Calls]

        • >>   ADC1_2_IRQHandler
        @@ -300,66 +293,77 @@ Global Symbols

        WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup-rvds.o(.text))
        [Address Reference Count : 1]

        • startup-rvds.o(RESET)
        -

        __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) -

        [Calls]

        • >>   __main_after_scatterload +

          __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) +

          [Calls]

          • >>   __main_after_scatterload
          -
          [Called By]
          • >>   _main_scatterload +
            [Called By]
            • >>   _main_scatterload
            -

            __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) +

            __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) -

            Active_IT_Debordement_Timer (Thumb, 204 bytes, Stack size 24 bytes, timer_1234.o(i.Active_IT_Debordement_Timer)) +

            Active_IT_Debordement_Timer (Thumb, 204 bytes, Stack size 24 bytes, timer_1234.o(i.Active_IT_Debordement_Timer))

            [Stack]

            • Max Depth = 24
            • Call Chain = Active_IT_Debordement_Timer

            [Called By]
            • >>   main
            -

            CLOCK_Configure (Thumb, 104 bytes, Stack size 16 bytes, clock.o(i.CLOCK_Configure)) +

            CLOCK_Configure (Thumb, 104 bytes, Stack size 16 bytes, clock.o(i.CLOCK_Configure))

            [Stack]

            • Max Depth = 16
            • Call Chain = CLOCK_Configure
            -
            [Calls]
            • >>   CLOCK_HPRECompute +
              [Calls]
              • >>   CLOCK_HPRECompute

              [Called By]
              • >>   main
              -

              CLOCK_GetHCLK (Thumb, 4 bytes, Stack size 0 bytes, clock.o(i.CLOCK_GetHCLK)) -

              [Called By]

              • >>   Timer_1234_Init_ff +

                CLOCK_GetHCLK (Thumb, 4 bytes, Stack size 0 bytes, clock.o(i.CLOCK_GetHCLK)) +

                [Called By]

                • >>   Timer_1234_Init_ff
                -

                CLOCK_GetTIMCLK (Thumb, 22 bytes, Stack size 0 bytes, clock.o(i.CLOCK_GetTIMCLK)) -

                [Called By]

                • >>   Timer_1234_Init_ff +

                  CLOCK_GetTIMCLK (Thumb, 22 bytes, Stack size 0 bytes, clock.o(i.CLOCK_GetTIMCLK)) +

                  [Called By]

                  • >>   Timer_1234_Init_ff
                  -

                  GPIOA_Clear (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOA_Clear), UNUSED) +

                  GPIOA_Clear (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOA_Clear), UNUSED) -

                  GPIOA_Set (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOA_Set), UNUSED) +

                  GPIOA_Set (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOA_Set), UNUSED) -

                  GPIOB_Clear (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOB_Clear), UNUSED) +

                  GPIOB_Clear (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOB_Clear), UNUSED) -

                  GPIOB_Set (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOB_Set), UNUSED) +

                  GPIOB_Set (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOB_Set), UNUSED) -

                  GPIOC_Clear (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOC_Clear), UNUSED) +

                  GPIOC_Clear (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOC_Clear), UNUSED) -

                  GPIOC_Set (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOC_Set), UNUSED) +

                  GPIOC_Set (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.GPIOC_Set), UNUSED) -

                  GPIO_Configure (Thumb, 240 bytes, Stack size 20 bytes, gpio.o(i.GPIO_Configure)) +

                  GPIO_Configure (Thumb, 240 bytes, Stack size 20 bytes, gpio.o(i.GPIO_Configure))

                  [Stack]

                  • Max Depth = 20
                  • Call Chain = GPIO_Configure

                  [Called By]
                  • >>   main
                  -

                  PWM_Init_ff (Thumb, 168 bytes, Stack size 24 bytes, timer_1234.o(i.PWM_Init_ff)) +

                  PWM_Init_ff (Thumb, 168 bytes, Stack size 24 bytes, timer_1234.o(i.PWM_Init_ff))

                  [Stack]

                  • Max Depth = 40
                  • Call Chain = PWM_Init_ff ⇒ Timer_1234_Init_ff
                  -
                  [Calls]
                  • >>   Timer_1234_Init_ff +
                    [Calls]
                    • >>   Timer_1234_Init_ff

                    [Called By]
                    • >>   main
                    -

                    PWM_Set_Value_TIM3_Ch3 (Thumb, 6 bytes, Stack size 0 bytes, timer_1234.o(i.PWM_Set_Value_TIM3_Ch3)) +

                    PWM_Set_Value_TIM3_Ch3 (Thumb, 6 bytes, Stack size 0 bytes, timer_1234.o(i.PWM_Set_Value_TIM3_Ch3))

                    [Called By]

                    • >>   CallbackSon
                    +

                    SysTick_Handler (Thumb, 6 bytes, Stack size 0 bytes, timer_systick.o(i.SysTick_Handler)) +
                    [Address Reference Count : 1]

                    • startup-rvds.o(RESET) +
                    +

                    Systick_Period_ff (Thumb, 34 bytes, Stack size 0 bytes, timer_systick.o(i.Systick_Period_ff)) +

                    [Called By]

                    • >>   main +
                    + +

                    Systick_Prio_IT (Thumb, 12 bytes, Stack size 0 bytes, timer_systick.o(i.Systick_Prio_IT)) +

                    [Called By]

                    • >>   main +
                    +

                    TIM1_CC_IRQHandler (Thumb, 240 bytes, Stack size 16 bytes, timer_1234.o(i.TIM1_CC_IRQHandler))

                    [Stack]

                    • Max Depth = 16
                    • Call Chain = TIM1_CC_IRQHandler
                    @@ -383,43 +387,48 @@ Global Symbols

                  [Address Reference Count : 1]
                  • startup-rvds.o(RESET)
                  -

                  Timer_1234_Init_ff (Thumb, 106 bytes, Stack size 16 bytes, timer_1234.o(i.Timer_1234_Init_ff)) +

                  Timer_1234_Init_ff (Thumb, 106 bytes, Stack size 16 bytes, timer_1234.o(i.Timer_1234_Init_ff))

                  [Stack]

                  • Max Depth = 16
                  • Call Chain = Timer_1234_Init_ff
                  -
                  [Calls]
                  • >>   CLOCK_GetTIMCLK -
                  • >>   CLOCK_GetHCLK +
                    [Calls]
                    • >>   CLOCK_GetTIMCLK +
                    • >>   CLOCK_GetHCLK
                    -
                    [Called By]
                    • >>   PWM_Init_ff +
                      [Called By]
                      • >>   PWM_Init_ff
                      • >>   main
                      -

                      __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) +

                      __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) -

                      __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) +

                      __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) -

                      __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) +

                      __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) -

                      main (Thumb, 52 bytes, Stack size 0 bytes, principal.o(i.main)) +

                      main (Thumb, 92 bytes, Stack size 0 bytes, principal.o(i.main))

                      [Stack]

                      • Max Depth = 40
                      • Call Chain = main ⇒ PWM_Init_ff ⇒ Timer_1234_Init_ff
                      -
                      [Calls]
                      • >>   Timer_1234_Init_ff -
                      • >>   PWM_Init_ff -
                      • >>   GPIO_Configure -
                      • >>   CLOCK_Configure -
                      • >>   Active_IT_Debordement_Timer +
                        [Calls]
                        • >>   Timer_1234_Init_ff +
                        • >>   Systick_Prio_IT +
                        • >>   Systick_Period_ff +
                        • >>   PWM_Init_ff +
                        • >>   GPIO_Configure +
                        • >>   CLOCK_Configure +
                        • >>   Active_IT_Debordement_Timer

                        [Address Reference Count : 1]
                        • entry9a.o(.ARM.Collect$$$$0000000B)
                        -

                        CallbackSon (Thumb, 60 bytes, Stack size 0 bytes, gestionson.o(moncode)) -

                        [Calls]

                        • >>   PWM_Set_Value_TIM3_Ch3 +

                          StartSon (Thumb, 10 bytes, Stack size 0 bytes, gestionson.o(moncode)) +
                          [Address Reference Count : 1]

                          • principal.o(i.main) +
                          +

                          CallbackSon (Thumb, 56 bytes, Stack size 0 bytes, gestionson.o(moncode)) +

                          [Calls]

                          • >>   PWM_Set_Value_TIM3_Ch3

                          [Address Reference Count : 1]
                          • principal.o(i.main)

                          Local Symbols

                          -

                          CLOCK_HPRECompute (Thumb, 116 bytes, Stack size 0 bytes, clock.o(i.CLOCK_HPRECompute)) -

                          [Called By]

                          • >>   CLOCK_Configure +

                            CLOCK_HPRECompute (Thumb, 116 bytes, Stack size 0 bytes, clock.o(i.CLOCK_HPRECompute)) +

                            [Called By]

                            • >>   CLOCK_Configure

                            diff --git a/PjtKEIL_StepSon/Obj/StepSon.map b/PjtKEIL_StepSon/Obj/StepSon.map index 6a06d45..61ebb30 100644 --- a/PjtKEIL_StepSon/Obj/StepSon.map +++ b/PjtKEIL_StepSon/Obj/StepSon.map @@ -8,10 +8,13 @@ Section Cross References principal.o(i.main) refers to gpio.o(i.GPIO_Configure) for GPIO_Configure 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.PWM_Init_ff) for PWM_Init_ff + principal.o(i.main) refers to timer_systick.o(i.Systick_Period_ff) for Systick_Period_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 timer_systick.o(i.Systick_Prio_IT) for Systick_Prio_IT principal.o(i.main) refers to gestionson.o(moncode) for CallbackSon 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 @@ -77,6 +80,17 @@ Section Cross References 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 entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000F) for __rt_final_cpp entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$00000011) for __rt_final_exit entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry12b.o(.ARM.Collect$$$$0000000E) for __rt_lib_shutdown_fini @@ -146,6 +160,10 @@ Removing Unused input sections from the image. 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 fmul.o(.text), (100 bytes). Removing fdiv.o(.text), (124 bytes). Removing fscalb.o(.text), (24 bytes). @@ -161,7 +179,7 @@ Removing Unused input sections from the image. Removing fepilogue.o(.text), (110 bytes). Removing depilogue.o(.text), (186 bytes). -38 unused section(s) (total 3920 bytes) removed from the image. +42 unused section(s) (total 4130 bytes) removed from the image. ============================================================================== @@ -171,9 +189,9 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE @@ -182,9 +200,9 @@ Image Symbol Table ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE @@ -197,8 +215,8 @@ Image Symbol Table ../fplib/microlib/fpdiv.c 0x00000000 Number 0 fdiv.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE - ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.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 dmul.o ABSOLUTE @@ -206,8 +224,10 @@ Image Symbol Table ../fplib/microlib/fpscalb.c 0x00000000 Number 0 fscalb.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\\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 Src\GestionSon.s 0x00000000 Number 0 gestionson.o ABSOLUTE @@ -247,18 +267,21 @@ Image Symbol Table i.GPIO_Configure 0x080003cc Section 0 gpio.o(i.GPIO_Configure) i.PWM_Init_ff 0x080004d4 Section 0 timer_1234.o(i.PWM_Init_ff) i.PWM_Set_Value_TIM3_Ch3 0x08000580 Section 0 timer_1234.o(i.PWM_Set_Value_TIM3_Ch3) - i.TIM1_CC_IRQHandler 0x0800058c Section 0 timer_1234.o(i.TIM1_CC_IRQHandler) - i.TIM1_UP_IRQHandler 0x08000698 Section 0 timer_1234.o(i.TIM1_UP_IRQHandler) - i.TIM2_IRQHandler 0x080006b0 Section 0 timer_1234.o(i.TIM2_IRQHandler) - i.TIM3_IRQHandler 0x080007c0 Section 0 timer_1234.o(i.TIM3_IRQHandler) - i.TIM4_IRQHandler 0x080008ec Section 0 timer_1234.o(i.TIM4_IRQHandler) - i.Timer_1234_Init_ff 0x08000a18 Section 0 timer_1234.o(i.Timer_1234_Init_ff) - i.__scatterload_copy 0x08000a94 Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x08000aa2 Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x08000aa4 Section 14 handlers.o(i.__scatterload_zeroinit) - i.main 0x08000ab4 Section 0 principal.o(i.main) - moncode 0x08000af4 Section 76 gestionson.o(moncode) - SecSon 0x08000b60 Section 11032 bruitverre.o(SecSon) + i.SysTick_Handler 0x0800058c Section 0 timer_systick.o(i.SysTick_Handler) + i.Systick_Period_ff 0x08000598 Section 0 timer_systick.o(i.Systick_Period_ff) + i.Systick_Prio_IT 0x080005bc Section 0 timer_systick.o(i.Systick_Prio_IT) + i.TIM1_CC_IRQHandler 0x080005d0 Section 0 timer_1234.o(i.TIM1_CC_IRQHandler) + i.TIM1_UP_IRQHandler 0x080006dc Section 0 timer_1234.o(i.TIM1_UP_IRQHandler) + i.TIM2_IRQHandler 0x080006f4 Section 0 timer_1234.o(i.TIM2_IRQHandler) + i.TIM3_IRQHandler 0x08000804 Section 0 timer_1234.o(i.TIM3_IRQHandler) + i.TIM4_IRQHandler 0x08000930 Section 0 timer_1234.o(i.TIM4_IRQHandler) + i.Timer_1234_Init_ff 0x08000a5c Section 0 timer_1234.o(i.Timer_1234_Init_ff) + i.__scatterload_copy 0x08000ad8 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x08000ae6 Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08000ae8 Section 14 handlers.o(i.__scatterload_zeroinit) + i.main 0x08000af8 Section 0 principal.o(i.main) + moncode 0x08000b68 Section 84 gestionson.o(moncode) + SecSon 0x08000bdc Section 11032 bruitverre.o(SecSon) .data 0x20000000 Section 160 timer_1234.o(.data) Ptr_TIM1 0x20000010 Data 4 timer_1234.o(.data) Ptr_TIM2 0x20000014 Data 4 timer_1234.o(.data) @@ -288,8 +311,10 @@ Image Symbol Table Date_T2 0x20000088 Data 8 timer_1234.o(.data) Date_T3 0x20000090 Data 8 timer_1234.o(.data) Date_T4 0x20000098 Data 8 timer_1234.o(.data) - maram 0x200000a0 Section 4 gestionson.o(maram) - Index 0x200000a2 Data 2 gestionson.o(maram) + .data 0x200000a0 Section 4 timer_systick.o(.data) + Ptr_Systick 0x200000a0 Data 4 timer_systick.o(.data) + maram 0x200000a4 Section 4 gestionson.o(maram) + Index 0x200000a6 Data 2 gestionson.o(maram) STACK 0x200000a8 Section 1024 startup-rvds.o(STACK) Global Symbols @@ -327,7 +352,6 @@ Image Symbol Table SVC_Handler 0x08000133 Thumb Code 2 startup-rvds.o(.text) DebugMon_Handler 0x08000135 Thumb Code 2 startup-rvds.o(.text) PendSV_Handler 0x08000137 Thumb Code 2 startup-rvds.o(.text) - SysTick_Handler 0x08000139 Thumb Code 2 startup-rvds.o(.text) ADC1_2_IRQHandler 0x0800013b Thumb Code 0 startup-rvds.o(.text) CAN1_RX1_IRQHandler 0x0800013b Thumb Code 0 startup-rvds.o(.text) CAN1_SCE_IRQHandler 0x0800013b Thumb Code 0 startup-rvds.o(.text) @@ -381,22 +405,26 @@ Image Symbol Table GPIO_Configure 0x080003cd Thumb Code 240 gpio.o(i.GPIO_Configure) PWM_Init_ff 0x080004d5 Thumb Code 168 timer_1234.o(i.PWM_Init_ff) PWM_Set_Value_TIM3_Ch3 0x08000581 Thumb Code 6 timer_1234.o(i.PWM_Set_Value_TIM3_Ch3) - TIM1_CC_IRQHandler 0x0800058d Thumb Code 240 timer_1234.o(i.TIM1_CC_IRQHandler) - TIM1_UP_IRQHandler 0x08000699 Thumb Code 16 timer_1234.o(i.TIM1_UP_IRQHandler) - TIM2_IRQHandler 0x080006b1 Thumb Code 266 timer_1234.o(i.TIM2_IRQHandler) - TIM3_IRQHandler 0x080007c1 Thumb Code 272 timer_1234.o(i.TIM3_IRQHandler) - TIM4_IRQHandler 0x080008ed Thumb Code 272 timer_1234.o(i.TIM4_IRQHandler) - Timer_1234_Init_ff 0x08000a19 Thumb Code 106 timer_1234.o(i.Timer_1234_Init_ff) - __scatterload_copy 0x08000a95 Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x08000aa3 Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x08000aa5 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - main 0x08000ab5 Thumb Code 52 principal.o(i.main) - CallbackSon 0x08000af5 Thumb Code 60 gestionson.o(moncode) - Region$$Table$$Base 0x08000b40 Number 0 anon$$obj.o(Region$$Table) - LongueurSon 0x08000b60 Data 4 bruitverre.o(SecSon) - Region$$Table$$Limit 0x08000b60 Number 0 anon$$obj.o(Region$$Table) - PeriodeSonMicroSec 0x08000b64 Data 4 bruitverre.o(SecSon) - Son 0x08000b68 Data 0 bruitverre.o(SecSon) + SysTick_Handler 0x0800058d Thumb Code 6 timer_systick.o(i.SysTick_Handler) + Systick_Period_ff 0x08000599 Thumb Code 34 timer_systick.o(i.Systick_Period_ff) + Systick_Prio_IT 0x080005bd Thumb Code 12 timer_systick.o(i.Systick_Prio_IT) + TIM1_CC_IRQHandler 0x080005d1 Thumb Code 240 timer_1234.o(i.TIM1_CC_IRQHandler) + TIM1_UP_IRQHandler 0x080006dd Thumb Code 16 timer_1234.o(i.TIM1_UP_IRQHandler) + TIM2_IRQHandler 0x080006f5 Thumb Code 266 timer_1234.o(i.TIM2_IRQHandler) + TIM3_IRQHandler 0x08000805 Thumb Code 272 timer_1234.o(i.TIM3_IRQHandler) + TIM4_IRQHandler 0x08000931 Thumb Code 272 timer_1234.o(i.TIM4_IRQHandler) + Timer_1234_Init_ff 0x08000a5d Thumb Code 106 timer_1234.o(i.Timer_1234_Init_ff) + __scatterload_copy 0x08000ad9 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x08000ae7 Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08000ae9 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + main 0x08000af9 Thumb Code 92 principal.o(i.main) + StartSon 0x08000b69 Thumb Code 10 gestionson.o(moncode) + CallbackSon 0x08000b73 Thumb Code 56 gestionson.o(moncode) + Region$$Table$$Base 0x08000bbc Number 0 anon$$obj.o(Region$$Table) + LongueurSon 0x08000bdc Data 4 bruitverre.o(SecSon) + Region$$Table$$Limit 0x08000bdc Number 0 anon$$obj.o(Region$$Table) + PeriodeSonMicroSec 0x08000be0 Data 4 bruitverre.o(SecSon) + Son 0x08000be4 Data 0 bruitverre.o(SecSon) Enable_Fct_IT_Compare_Match_TIM1_Voie1 0x20000000 Data 1 timer_1234.o(.data) Enable_Fct_IT_Compare_Match_TIM1_Voie2 0x20000001 Data 1 timer_1234.o(.data) Enable_Fct_IT_Compare_Match_TIM1_Voie3 0x20000002 Data 1 timer_1234.o(.data) @@ -413,7 +441,7 @@ Image Symbol Table Enable_Fct_IT_Compare_Match_TIM4_Voie2 0x2000000d Data 1 timer_1234.o(.data) Enable_Fct_IT_Compare_Match_TIM4_Voie3 0x2000000e Data 1 timer_1234.o(.data) Enable_Fct_IT_Compare_Match_TIM4_Voie4 0x2000000f Data 1 timer_1234.o(.data) - SortieSon 0x200000a0 Data 2 gestionson.o(maram) + SortieSon 0x200000a4 Data 2 gestionson.o(maram) __initial_sp 0x200004a8 Data 0 startup-rvds.o(STACK) @@ -424,25 +452,25 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000371c, Max: 0x00020000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000379c, Max: 0x00020000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003678, Max: 0x00020000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000036f4, Max: 0x00020000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x000000ec Data RO 59 RESET startup-rvds.o - 0x080000ec 0x080000ec 0x00000000 Code RO 150 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) - 0x080000ec 0x080000ec 0x00000004 Code RO 177 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) - 0x080000f0 0x080000f0 0x00000004 Code RO 180 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) - 0x080000f4 0x080000f4 0x00000000 Code RO 182 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) - 0x080000f4 0x080000f4 0x00000000 Code RO 184 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) - 0x080000f4 0x080000f4 0x00000008 Code RO 185 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) - 0x080000fc 0x080000fc 0x00000004 Code RO 192 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) - 0x08000100 0x08000100 0x00000000 Code RO 187 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) - 0x08000100 0x08000100 0x00000000 Code RO 189 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) - 0x08000100 0x08000100 0x00000004 Code RO 178 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x080000ec 0x080000ec 0x00000000 Code RO 165 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x080000ec 0x080000ec 0x00000004 Code RO 192 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x080000f0 0x080000f0 0x00000004 Code RO 195 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 197 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 199 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x080000f4 0x080000f4 0x00000008 Code RO 200 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x080000fc 0x080000fc 0x00000004 Code RO 207 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) + 0x08000100 0x08000100 0x00000000 Code RO 202 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) + 0x08000100 0x08000100 0x00000000 Code RO 204 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) + 0x08000100 0x08000100 0x00000004 Code RO 193 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) 0x08000104 0x08000104 0x0000004c Code RO 60 .text startup-rvds.o - 0x08000150 0x08000150 0x00000024 Code RO 202 .text mc_w.l(init.o) + 0x08000150 0x08000150 0x00000024 Code RO 217 .text mc_w.l(init.o) 0x08000174 0x08000174 0x000000e4 Code RO 115 i.Active_IT_Debordement_Timer DriverJeuLaser.lib(timer_1234.o) 0x08000258 0x08000258 0x00000074 Code RO 74 i.CLOCK_Configure DriverJeuLaser.lib(clock.o) 0x080002cc 0x080002cc 0x00000008 Code RO 76 i.CLOCK_GetHCLK DriverJeuLaser.lib(clock.o) @@ -457,29 +485,33 @@ Memory Map of the image 0x080003cc 0x080003cc 0x00000108 Code RO 100 i.GPIO_Configure DriverJeuLaser.lib(gpio.o) 0x080004d4 0x080004d4 0x000000ac Code RO 120 i.PWM_Init_ff DriverJeuLaser.lib(timer_1234.o) 0x08000580 0x08000580 0x0000000c Code RO 121 i.PWM_Set_Value_TIM3_Ch3 DriverJeuLaser.lib(timer_1234.o) - 0x0800058c 0x0800058c 0x0000010c Code RO 122 i.TIM1_CC_IRQHandler DriverJeuLaser.lib(timer_1234.o) - 0x08000698 0x08000698 0x00000018 Code RO 123 i.TIM1_UP_IRQHandler DriverJeuLaser.lib(timer_1234.o) - 0x080006b0 0x080006b0 0x00000110 Code RO 124 i.TIM2_IRQHandler DriverJeuLaser.lib(timer_1234.o) - 0x080007c0 0x080007c0 0x0000012c Code RO 125 i.TIM3_IRQHandler DriverJeuLaser.lib(timer_1234.o) - 0x080008ec 0x080008ec 0x0000012c Code RO 126 i.TIM4_IRQHandler DriverJeuLaser.lib(timer_1234.o) - 0x08000a18 0x08000a18 0x0000007c Code RO 128 i.Timer_1234_Init_ff DriverJeuLaser.lib(timer_1234.o) - 0x08000a94 0x08000a94 0x0000000e Code RO 208 i.__scatterload_copy mc_w.l(handlers.o) - 0x08000aa2 0x08000aa2 0x00000002 Code RO 209 i.__scatterload_null mc_w.l(handlers.o) - 0x08000aa4 0x08000aa4 0x0000000e Code RO 210 i.__scatterload_zeroinit mc_w.l(handlers.o) - 0x08000ab2 0x08000ab2 0x00000002 PAD - 0x08000ab4 0x08000ab4 0x00000040 Code RO 4 i.main principal.o - 0x08000af4 0x08000af4 0x0000004c Code RO 67 moncode gestionson.o - 0x08000b40 0x08000b40 0x00000020 Data RO 206 Region$$Table anon$$obj.o - 0x08000b60 0x08000b60 0x00002b18 Data RO 64 SecSon bruitverre.o + 0x0800058c 0x0800058c 0x0000000c Code RO 153 i.SysTick_Handler DriverJeuLaser.lib(timer_systick.o) + 0x08000598 0x08000598 0x00000022 Code RO 155 i.Systick_Period_ff DriverJeuLaser.lib(timer_systick.o) + 0x080005ba 0x080005ba 0x00000002 PAD + 0x080005bc 0x080005bc 0x00000014 Code RO 156 i.Systick_Prio_IT DriverJeuLaser.lib(timer_systick.o) + 0x080005d0 0x080005d0 0x0000010c Code RO 122 i.TIM1_CC_IRQHandler DriverJeuLaser.lib(timer_1234.o) + 0x080006dc 0x080006dc 0x00000018 Code RO 123 i.TIM1_UP_IRQHandler DriverJeuLaser.lib(timer_1234.o) + 0x080006f4 0x080006f4 0x00000110 Code RO 124 i.TIM2_IRQHandler DriverJeuLaser.lib(timer_1234.o) + 0x08000804 0x08000804 0x0000012c Code RO 125 i.TIM3_IRQHandler DriverJeuLaser.lib(timer_1234.o) + 0x08000930 0x08000930 0x0000012c Code RO 126 i.TIM4_IRQHandler DriverJeuLaser.lib(timer_1234.o) + 0x08000a5c 0x08000a5c 0x0000007c Code RO 128 i.Timer_1234_Init_ff DriverJeuLaser.lib(timer_1234.o) + 0x08000ad8 0x08000ad8 0x0000000e Code RO 223 i.__scatterload_copy mc_w.l(handlers.o) + 0x08000ae6 0x08000ae6 0x00000002 Code RO 224 i.__scatterload_null mc_w.l(handlers.o) + 0x08000ae8 0x08000ae8 0x0000000e Code RO 225 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x08000af6 0x08000af6 0x00000002 PAD + 0x08000af8 0x08000af8 0x00000070 Code RO 4 i.main principal.o + 0x08000b68 0x08000b68 0x00000054 Code RO 67 moncode gestionson.o + 0x08000bbc 0x08000bbc 0x00000020 Data RO 221 Region$$Table anon$$obj.o + 0x08000bdc 0x08000bdc 0x00002b18 Data RO 64 SecSon bruitverre.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003678, Size: 0x000004a8, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080036f4, Size: 0x000004a8, Max: 0x00005000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x08003678 0x000000a0 Data RW 130 .data DriverJeuLaser.lib(timer_1234.o) - 0x200000a0 0x08003718 0x00000004 Data RW 66 maram gestionson.o - 0x200000a4 0x0800371c 0x00000004 PAD + 0x20000000 0x080036f4 0x000000a0 Data RW 130 .data DriverJeuLaser.lib(timer_1234.o) + 0x200000a0 0x08003794 0x00000004 Data RW 157 .data DriverJeuLaser.lib(timer_systick.o) + 0x200000a4 0x08003798 0x00000004 Data RW 66 maram gestionson.o 0x200000a8 - 0x00000400 Zero RW 57 STACK startup-rvds.o @@ -491,14 +523,14 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name 0 0 11032 0 0 0 bruitverre.o - 76 16 0 4 0 336 gestionson.o - 64 12 0 0 0 1907 principal.o + 84 18 0 4 0 376 gestionson.o + 112 20 0 0 0 1923 principal.o 76 20 236 0 1024 800 startup-rvds.o ---------------------------------------------------------------------- - 216 48 11300 4 1028 3043 Object Totals + 272 58 11300 4 1024 3099 Object Totals 0 0 32 0 0 0 (incl. Generated) - 0 0 0 0 4 0 (incl. Padding) + 0 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- @@ -507,6 +539,7 @@ Image component sizes 276 30 0 0 0 284 clock.o 360 60 0 0 0 492 gpio.o 1700 150 0 160 0 740 timer_1234.o + 66 14 0 4 0 204 timer_systick.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 @@ -520,18 +553,18 @@ Image component sizes 36 8 0 0 0 68 init.o ---------------------------------------------------------------------- - 2428 256 0 160 0 1584 Library Totals - 2 0 0 0 0 0 (incl. Padding) + 2496 270 0 164 0 1788 Library Totals + 4 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name - 2336 240 0 160 0 1516 DriverJeuLaser.lib + 2402 254 0 164 0 1720 DriverJeuLaser.lib 90 16 0 0 0 68 mc_w.l ---------------------------------------------------------------------- - 2428 256 0 160 0 1584 Library Totals + 2496 270 0 164 0 1788 Library Totals ---------------------------------------------------------------------- @@ -540,15 +573,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 2644 304 11300 164 1028 3843 Grand Totals - 2644 304 11300 164 1028 3843 ELF Image Totals - 2644 304 11300 164 0 0 ROM Totals + 2768 328 11300 168 1024 3947 Grand Totals + 2768 328 11300 168 1024 3947 ELF Image Totals + 2768 328 11300 168 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 13944 ( 13.62kB) + Total RO Size (Code + RO Data) 14068 ( 13.74kB) Total RW Size (RW Data + ZI Data) 1192 ( 1.16kB) - Total ROM Size (Code + RO Data + RW Data) 14108 ( 13.78kB) + Total ROM Size (Code + RO Data + RW Data) 14236 ( 13.90kB) ============================================================================== diff --git a/PjtKEIL_StepSon/Obj/StepSon_Simu.dep b/PjtKEIL_StepSon/Obj/StepSon_Simu.dep index 67a28be..e7566f2 100644 --- a/PjtKEIL_StepSon/Obj/StepSon_Simu.dep +++ b/PjtKEIL_StepSon/Obj/StepSon_Simu.dep @@ -1,6 +1,6 @@ Dependencies for Project 'StepSon', Target 'Simu': (DO NOT MODIFY !) CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC -F (.\Src\principal.c)(0x643569EF)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\Driver --C99 -I.\RTE\_Simu -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DSTM32F103xB -DUSE_FULL_LL_DRIVER -o .\obj\principal.o --omf_browse .\obj\principal.crf --depend .\obj\principal.d) +F (.\Src\principal.c)(0x643E9DF5)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\Driver --C99 -I.\RTE\_Simu -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DSTM32F103xB -DUSE_FULL_LL_DRIVER -o .\obj\principal.o --omf_browse .\obj\principal.crf --depend .\obj\principal.d) I (.\Driver\DriverJeuLaser.h)(0x6037C015) I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC) I (.\RTE\_Simu\RTE_Components.h)(0x6427017D) @@ -10,8 +10,9 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_versio I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compiler.h)(0x5E835B22) I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582) I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC) +I (Src\GestionSon.h)(0x643E9DF0) F (.\Src\startup-rvds.s)(0x5FE38AC6)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I .\Driver -I.\RTE\_Simu -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list startup-rvds.lst --xref -o .\obj\startup-rvds.o --depend .\obj\startup-rvds.d) F (.\Driver\DriverJeuLaser.lib)(0x6037BEDF)() F (.\Src\bruitverre.asm)(0x5ED5F990)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I .\Driver -I.\RTE\_Simu -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list bruitverre.lst --xref -o .\obj\bruitverre.o --depend .\obj\bruitverre.d) -F (.\Src\GestionSon.s)(0x64356917)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I .\Driver -I.\RTE\_Simu -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list gestionson.lst --xref -o .\obj\gestionson.o --depend .\obj\gestionson.d) +F (.\Src\GestionSon.s)(0x6435732E)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I .\Driver -I.\RTE\_Simu -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list gestionson.lst --xref -o .\obj\gestionson.o --depend .\obj\gestionson.d) I (.\Driver\DriverJeuLaser.inc)(0x6037BEDF) diff --git a/PjtKEIL_StepSon/Obj/gestionson.o b/PjtKEIL_StepSon/Obj/gestionson.o index 559617b..5430408 100644 Binary files a/PjtKEIL_StepSon/Obj/gestionson.o and b/PjtKEIL_StepSon/Obj/gestionson.o differ diff --git a/PjtKEIL_StepSon/Obj/principal.crf b/PjtKEIL_StepSon/Obj/principal.crf index 05df2a0..48d9c4a 100644 Binary files a/PjtKEIL_StepSon/Obj/principal.crf and b/PjtKEIL_StepSon/Obj/principal.crf differ diff --git a/PjtKEIL_StepSon/Obj/principal.d b/PjtKEIL_StepSon/Obj/principal.d index 5d6c601..bcda8d8 100644 --- a/PjtKEIL_StepSon/Obj/principal.d +++ b/PjtKEIL_StepSon/Obj/principal.d @@ -8,3 +8,4 @@ .\obj\principal.o: C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compiler.h .\obj\principal.o: C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h .\obj\principal.o: C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h +.\obj\principal.o: Src\GestionSon.h diff --git a/PjtKEIL_StepSon/Obj/principal.o b/PjtKEIL_StepSon/Obj/principal.o index bff6788..c75000a 100644 Binary files a/PjtKEIL_StepSon/Obj/principal.o and b/PjtKEIL_StepSon/Obj/principal.o differ diff --git a/PjtKEIL_StepSon/Src/GestionSon.h b/PjtKEIL_StepSon/Src/GestionSon.h new file mode 100644 index 0000000..21a36bd --- /dev/null +++ b/PjtKEIL_StepSon/Src/GestionSon.h @@ -0,0 +1,3 @@ +void CallbackSon(void); + +void StartSon(void); diff --git a/PjtKEIL_StepSon/Src/GestionSon.s b/PjtKEIL_StepSon/Src/GestionSon.s index 04464f8..5ce8e7e 100644 --- a/PjtKEIL_StepSon/Src/GestionSon.s +++ b/PjtKEIL_StepSon/Src/GestionSon.s @@ -2,6 +2,7 @@ THUMB export CallbackSon + export StartSon import Son import LongueurSon @@ -38,6 +39,15 @@ Index dcw 0 ; i=0; ;} +StartSon proc + + ldr r0, = Index; ; On charge la valeur d'index + mov r1, #0 + strh r1, [r0] + + bx lr + endp + CallbackSon proc push {lr} @@ -66,7 +76,7 @@ CallbackSon proc b fin Sinon - mov r1, #0 ; On remet l'index à 0 + ;mov r1, #0 ; On remet l'index à 0 str r0, [r1] ; On store l'index fin diff --git a/PjtKEIL_StepSon/Src/principal.c b/PjtKEIL_StepSon/Src/principal.c index eee3682..9e4e52d 100644 --- a/PjtKEIL_StepSon/Src/principal.c +++ b/PjtKEIL_StepSon/Src/principal.c @@ -1,9 +1,7 @@ #include "DriverJeuLaser.h" - -void CallbackSon(void); - +#include "GestionSon.h" int main(void) @@ -16,12 +14,16 @@ int main(void) // Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers CLOCK_Configure(); + GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL); Timer_1234_Init_ff( TIM3, 91*72); PWM_Init_ff( TIM3, 3, 720); - Active_IT_Debordement_Timer( TIM3, 2, CallbackSon ); - + Systick_Period_ff(15000000); + Active_IT_Debordement_Timer( TIM3, 2, CallbackSon ); + Systick_Prio_IT(1,StartSon); + SysTick_On; + SysTick_Enable_IT; //============================================================================ diff --git a/PjtKEIL_StepSon/StepSon.uvguix.criquet b/PjtKEIL_StepSon/StepSon.uvguix.criquet index bfa4368..dce2136 100644 --- a/PjtKEIL_StepSon/StepSon.uvguix.criquet +++ b/PjtKEIL_StepSon/StepSon.uvguix.criquet @@ -15,17 +15,17 @@ 38003 Registers - 140 100 + 140 106 346 Code Coverage - 1070 596 + 1090 160 204 Performance Analyzer - 1250 187 187 100 + 1250 @@ -64,7 +64,7 @@ 2506 Trace Data FiltIdx=0;DescrEn=0;DescrHeight=4;FuncTrc=1;FindType=8;ColWidths=004B00870082005F004600E600C80096 - 75 135 95 70 230 200 150 + 75 135 130 95 70 230 200 150 466 @@ -82,7 +82,7 @@ 0 0 88 - 16 + 22 @@ -110,8 +110,8 @@ 0 - 534 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000000000000010000003A553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C7072696E636970616C2E63000000000B7072696E636970616C2E6300000000C5D4F200FFFFFFFF3D553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C737461727475702D727664732E73000000000E737461727475702D727664732E7300000000FFDC7800FFFFFFFF3D553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C627275697476657272652E61736D000000000E627275697476657272652E61736D00000000BECEA100FFFFFFFF3B553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C47657374696F6E536F6E2E73000000000C47657374696F6E536F6E2E7300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000004010000660000008007000011030000 + 723 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000600000000000000010000003A553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C7072696E636970616C2E63000000000B7072696E636970616C2E6300000000C5D4F200FFFFFFFF3D553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C737461727475702D727664732E73000000000E737461727475702D727664732E7300000000FFDC7800FFFFFFFF3D553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C627275697476657272652E61736D000000000E627275697476657272652E61736D00000000BECEA100FFFFFFFF3B553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C47657374696F6E536F6E2E73000000000C47657374696F6E536F6E2E7300000000F0A0A100FFFFFFFF42553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C4472697665725C4472697665724A65754C617365722E6800000000104472697665724A65754C617365722E6800000000BCA8E100FFFFFFFF3B553A5C334D49435C42455F434854495C417373656D626C6575725C506A744B45494C5F53746570536F6E5C5372635C47657374696F6E536F6E2E68000000000C47657374696F6E536F6E2E68000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000004010000660000008007000011030000 @@ -1806,7 +1806,7 @@ File 2570 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000756617254696D65960000000000000002000756617254696D6509436F6D706F6E656E740000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000756617254696D65960000000000000002000756617254696D6509436F6D706F6E656E740000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 1004 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000453696D75960000000000000003000453696D750E4369626C65536F6E64654B45494C0C4369626C65536F6E646553540000000000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000453696D75960000000000000003000453696D750E4369626C65536F6E64654B45494C0C4369626C65536F6E646553540000000000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1871,11 +1871,11 @@ 0 16 - F40000004F000000800700006C010000 + F40000004F00000080070000E0000000 16 - F4000000660000008007000083010000 + F40000006600000080070000F7000000 @@ -1891,11 +1891,11 @@ 0 16 - 0300000066000000ED00000025030000 + 0300000066000000ED000000EA020000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -1911,11 +1911,11 @@ 0 16 - 0300000066000000ED00000025030000 + 0300000066000000ED000000EA020000 16 - D8000000EF000000F40100002F030000 + F2000000090100000E02000049030000 @@ -1931,11 +1931,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -1951,11 +1951,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -1971,11 +1971,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -1991,11 +1991,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2015,7 +2015,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2027,15 +2027,15 @@ 0 32767 0 - 8192 + 4096 0 16 - F7000000660000007D07000053010000 + F7000000660000007D070000C7000000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2051,11 +2051,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2071,11 +2071,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2091,11 +2091,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2111,11 +2111,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2131,11 +2131,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2151,11 +2151,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2171,11 +2171,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2191,11 +2191,11 @@ 0 16 - 0300000066000000ED00000025030000 + 0300000066000000ED000000EA020000 16 - D8000000EF000000F40100002F030000 + F2000000090100000E02000049030000 @@ -2211,11 +2211,11 @@ 0 16 - 0300000066000000ED00000025030000 + 0300000066000000ED000000EA020000 16 - D8000000EF000000F40100002F030000 + F2000000090100000E02000049030000 @@ -2231,11 +2231,11 @@ 0 16 - 03000000440200008D050000A4020000 + 030000006D0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2251,11 +2251,11 @@ 0 16 - 0000000042030000C0030000E6030000 + 0000000007030000C0030000E6030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2271,17 +2271,17 @@ 0 16 - 03000000440200008D050000A4020000 + 030000006D0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 203 203 - 0 + 1 0 0 0 @@ -2291,11 +2291,11 @@ 0 16 - F7000000660000007D07000053010000 + F40000006300000080070000E0000000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2307,15 +2307,15 @@ 0 32767 0 - 8192 + 4096 0 16 - F7000000660000007D07000053010000 + F7000000660000007D070000C7000000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2355,7 +2355,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2371,11 +2371,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2387,15 +2387,15 @@ 0 32767 0 - 8192 + 4096 0 16 - F7000000660000007D07000053010000 + F7000000660000007D070000C7000000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2407,15 +2407,15 @@ 0 32767 0 - 8192 + 4096 0 16 - F7000000660000007D07000053010000 + F7000000660000007D070000C7000000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2427,35 +2427,35 @@ 0 32767 0 - 8192 + 4096 0 16 - F7000000660000007D07000053010000 + F7000000660000007D070000C7000000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 35824 35824 - 1 + 0 0 0 0 32767 0 - 8192 + 4096 0 16 - F400000063000000800700006C010000 + F7000000660000007D070000C7000000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2475,7 +2475,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2495,7 +2495,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2515,7 +2515,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2535,7 +2535,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2555,7 +2555,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2575,7 +2575,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2595,7 +2595,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2615,7 +2615,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2635,7 +2635,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2655,7 +2655,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2675,7 +2675,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2695,7 +2695,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2715,7 +2715,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2735,7 +2735,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2755,7 +2755,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2775,7 +2775,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2795,7 +2795,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2815,7 +2815,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2835,7 +2835,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2855,7 +2855,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2875,7 +2875,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2891,11 +2891,11 @@ 0 16 - 0300000066000000ED00000025030000 + 0300000066000000ED000000EA020000 16 - D8000000EF000000F40100002F030000 + F2000000090100000E02000049030000 @@ -2911,11 +2911,11 @@ 0 16 - 03000000440200008D050000A4020000 + 030000006D0300007D070000CD030000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -2931,11 +2931,11 @@ 0 16 - 03000000440200008D050000A4020000 + 030000006D0300007D070000CD030000 16 - D8000000EF000000F40100002F030000 + F2000000090100000E02000049030000 @@ -2951,11 +2951,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2971,11 +2971,11 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -2991,11 +2991,11 @@ 0 16 - 03000000440200008D050000A4020000 + 030000006D0300007D070000CD030000 16 - D8000000EF000000F40100002F030000 + F2000000090100000E02000049030000 @@ -3011,11 +3011,11 @@ 0 16 - 03000000440200008D050000A4020000 + 030000006D0300007D070000CD030000 16 - D8000000EF000000F40100002F030000 + F2000000090100000E02000049030000 @@ -3027,15 +3027,15 @@ 0 32767 0 - 8192 + 4096 0 16 - F7000000660000007D07000053010000 + F7000000660000007D070000C7000000 16 - D8000000EF000000A00300007F010000 + F200000009010000BA03000099010000 @@ -3055,7 +3055,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3075,7 +3075,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3095,7 +3095,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3115,7 +3115,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3135,7 +3135,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3155,7 +3155,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3175,7 +3175,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3195,7 +3195,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3215,7 +3215,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3235,7 +3235,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3255,7 +3255,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3275,7 +3275,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3295,7 +3295,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3315,7 +3315,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3335,7 +3335,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3355,7 +3355,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3375,7 +3375,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3395,7 +3395,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3415,7 +3415,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3435,7 +3435,7 @@ 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 @@ -3531,16 +3531,16 @@ 0 16 - C7030000590300007D070000CD030000 + C70300001E0300007D070000CD030000 16 - D8000000EF000000C8010000BA010000 + F200000009010000E2010000D4010000 - 3311 - 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFF40000006C01000080070000700100000100000001000010040000000100000017FFFFFFFB010000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000F4000000660000008007000083010000F40000004F000000800700006C0100000000000040280056080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657201000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF03000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F40000003E030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F000000055030000000000004F000000F00000003E0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000003E030000800700004203000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000C40300005903000080070000FD030000C40300004203000080070000E603000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0A0000000000000001000000000000000100000001000000FFFFFFFFC003000042030000C4030000E603000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000029020000900500002D020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000004402000090050000D4020000000000002D02000090050000BD0200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 3312 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFF4000000E000000080070000E40000000100000001000010040000000100000072FFFFFF1B020000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000F40000006600000080070000F7000000F40000004F00000080070000E00000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000003030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F00000001A030000000000004F000000F0000000030300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000003030000800700000703000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000C40300001E03000080070000FD030000C40300000703000080070000E603000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFFC003000007030000C4030000E603000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000520300008007000056030000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000006D03000080070000FD030000000000005603000080070000E60300000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 @@ -3562,8 +3562,8 @@ 59399 Build - 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 1004 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000453696D75960000000000000003000453696D750E4369626C65536F6E64654B45494C0C4369626C65536F6E646553540000000000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3606,9 +3606,9 @@ 0 .\Src\principal.c - 31 + 32 1 - 21 + 24 1 0 @@ -3616,7 +3616,7 @@ .\Src\startup-rvds.s 0 - 126 + 132 133 0 @@ -3624,22 +3624,40 @@ .\Src\bruitverre.asm - 6 + 4 1 - 16 + 13 1 0 .\Src\GestionSon.s - 8 - 10 - 10 + 1 + 41 + 78 1 0 + + .\Driver\DriverJeuLaser.h + 0 + 121 + 148 + 1 + + 0 + + + Src\GestionSon.h + 0 + 1 + 4 + 0 + + 0 + diff --git a/PjtKEIL_StepSon/StepSon.uvoptx b/PjtKEIL_StepSon/StepSon.uvoptx index 92080df..0c85455 100644 --- a/PjtKEIL_StepSon/StepSon.uvoptx +++ b/PjtKEIL_StepSon/StepSon.uvoptx @@ -120,7 +120,7 @@ 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=75,104,496,531,0)(121=859,154,1280,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=614,0,1208,751,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) + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=442,165,818,401,0)(1009=-1,-1,-1,-1,0)(100=15,39,661,712,0)(110=60,88,280,548,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=75,104,496,531,0)(121=859,154,1280,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=614,0,1208,751,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 @@ -208,12 +208,12 @@ 0 (SortieSon & 0xFFFF) >> 0 - 008000000000000000000000000000000080864000000000000000000000000000000000536F72746965536F6E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000001000000000000000000E03F1000000000000000000000000000000000000000CA080008 + 008000000000000000000000000000000080864000000000000000000000000000000000536F72746965536F6E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000001000000000000000000E03F1600000000000000000000000000000000000000CA080008 1 ((portb & 0x00000001) & 0x1) >> 0 - 00800000000000000000000000000000008086400100000000000000000000000000000028706F72746220262030783030303030303031290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000002000000000000000000E03F1000000000000000000000000000000000000000080A0008 + 00800000000000000000000000000000008086400100000000000000000000000000000028706F72746220262030783030303030303031290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000002000000000000000000E03F1600000000000000000000000000000000000000080A0008 @@ -373,7 +373,7 @@ 0 1 - 1 + 0 0 0 0 @@ -387,7 +387,7 @@ 0 0 0 - 0 + 1 0 0 0 diff --git a/PjtKEIL_StepSon/StepSon.uvprojx b/PjtKEIL_StepSon/StepSon.uvprojx index b34880e..3902e1a 100644 --- a/PjtKEIL_StepSon/StepSon.uvprojx +++ b/PjtKEIL_StepSon/StepSon.uvprojx @@ -434,7 +434,7 @@ CibleSondeKEIL 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::.\ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 @@ -781,7 +781,7 @@ - + .\Driver diff --git a/PjtKEIL_StepSon/gestionson.lst b/PjtKEIL_StepSon/gestionson.lst index ca93f6c..e2239e8 100644 --- a/PjtKEIL_StepSon/gestionson.lst +++ b/PjtKEIL_StepSon/gestionson.lst @@ -8,10 +8,11 @@ ARM Macro Assembler Page 1 2 00000000 THUMB 3 00000000 4 00000000 export CallbackSon - 5 00000000 import Son - 6 00000000 import LongueurSon - 7 00000000 - 8 00000000 include DriverJeuLaser.inc + 5 00000000 export StartSon + 6 00000000 import Son + 7 00000000 import LongueurSon + 8 00000000 + 9 00000000 include DriverJeuLaser.inc 1 00000000 2 00000000 ; Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) @@ -62,13 +63,13 @@ ARM Macro Assembler Page 1 41 00000000 ; * @brief Mise à 0 d'une broche GPIO 42 00000000 ; * @note Une fonction par GPIO 43 00000000 ; * @param Broche : 0 à 15 - 44 00000000 ; * @retval None ARM Macro Assembler Page 2 + 44 00000000 ; * @retval None 45 00000000 ; */ 46 00000000 47 00000000 ;void GPIOA_Clear(char Broche); @@ -81,107 +82,123 @@ ARM Macro Assembler Page 2 54 00000000 import GPIOC_Clear 55 00000000 56 00000000 end - 9 00000000 10 00000000 11 00000000 - 12 00000000 ; ====================== zone de réservation de données, + 12 00000000 + 13 00000000 ; ====================== zone de réservation de données, ====================================== - 13 00000000 ;Section RAM (read only) : - 14 00000000 area mesdata,data,readonly - 15 00000000 + 14 00000000 ;Section RAM (read only) : + 15 00000000 area mesdata,data,readonly 16 00000000 - 17 00000000 ;Section RAM (read write): - 18 00000000 area maram,data,readwrite - 19 00000000 - 20 00000000 00 00 SortieSon + 17 00000000 + 18 00000000 ;Section RAM (read write): + 19 00000000 area maram,data,readwrite + 20 00000000 + 21 00000000 00 00 SortieSon dcw 0 ; reserve seulement 2 octet de memoire - 21 00000002 00 00 Index dcw 0 - 22 00000004 - 23 00000004 ; ====================================================== + 22 00000002 00 00 Index dcw 0 + 23 00000004 + 24 00000004 ; ====================================================== ========================================= - 24 00000004 25 00000004 26 00000004 27 00000004 - 28 00000004 ;Section ROM code (read only) : - 29 00000004 area moncode,code,readonly - 30 00000000 ; écrire le code ici - 31 00000000 ; - 32 00000000 ;if (iV(Compteur),3.3,0) -;ac dec 100 1 10meg -.tran 0 1.5m 0 0.01u -* Compteur de l'unité Timer -* Partie PWM de l'unité Timer -* TIMER3 -* PB0 -* Chanel 3 -* STM32F103 -.backanno -.end