Compare commits

...

2 commits

Author SHA1 Message Date
Clément Gauché
5bf3dc3397 Ajout du README.md 2023-04-17 19:33:28 +02:00
78171ec308 Girouette IDX done 2023-04-11 15:03:30 +02:00
31 changed files with 2380 additions and 1424 deletions

View file

@ -1,6 +1,7 @@
{
"files.associations": {
"driver_uart.h": "c",
"app_girouette.h": "c"
"app_girouette.h": "c",
"app_orientation.h": "c"
}
}

View file

@ -1 +1,44 @@
# Projet-Voilier-3
Dans le cadre de la matière "Microcontrôleur", nous réalisons un projet sur un voilier.
Pour cela, nous avons travaillé sur une carte nucléo avec un micro STM32F103RB.
Durant ce projet, nous avons réalisé des fichiers génériques qui sont des drivers.
Chacun d'eux a été codé et testé avec différentes solutions (simulation + tests réels).
Chaque périphérique a été exploité à l'aide de drivers.
Les différentes fonctionnalités validés du projet répondant au cahier des charges sont :
- Le réglage des voiles en fonction de l'angle de la girouette positionnée au bout du mat du bateau.
- La gestion de de la vitesse de rotation du plateau, en fonction de la consigne donnée par la télécommande.
- La gestion de la communication avec la télécommande au travers d'un module XBEE
Fonctionnalité manquante :
- Réaction de repliment des voiles en cas de fort ballotage (Driver IMU opérationnel)
Liste des drivers et de leur fonctionnalités.
Driver GPIO :
- Configurer la valeur des GPIO
- Set/Reset des GPIO configurés en sortie
- Lire la valeur des entrées
Driver ADC :
- Initialisation
- Lancement de lecture & de la conversion
- Lecture
Driver Timer :
- Initialisation générique des Timers et passage de l'adresse d'une fonction appelé lors de l'interruption.
- Start & Stop du timer.
- Génération de PWM
- Lecture d'un encoder incrémental
Driver UART :
- Initialisation
- Envoi d'un octet
- Envoi d'une chaine de caractères (X octets qui composent les X caractères de la chaine)
- Reception d'un octet
Driver IMU :
- Envoi de 2 octets successif (adresse registre + valeur) par SPI
- Initialisation du module par communication SPI (configuration de registres du module)
- Lecture de valeurs successives (x,y,z), puis leur stockage dans un tableau.

62
driver/Driver_IMU.c Normal file
View file

@ -0,0 +1,62 @@
#include "MySpi.h"
const char POWER_CTL = 0x2D; // Power Control Register
const char BW_RATE = 0x2C;
const char DATA_FORMAT = 0x31;
/*fonction écriture registre IMU*/
void driver_IMU_write_register(char registerAddress, char value)
{
// On s'assure que le Chip Select est bien au niveau bas
MySPI_Clear_NSS();
// Envoi de l'adresse du registre par SPI
MySPI_Send(registerAddress);
// Envoi de la valeur désirée du registre par SPI
MySPI_Send(value);
// On active le chip select
MySPI_Set_NSS();
}
/* Fonction d'initialisation*/
void driver_IMU_init(void)
{
/* FSCK = 281kHz, Repos SCK = '1', Front actif = up
Gestion /CS logicielle à part, configure les 4 IO
- SCK, MOSI : Out Alt push pull
- MISO : floating input
- /NSS (/CS) : Out push pull */
MySPI_Init(SPI1);
// Paramètrage du registre POWER_CTL
driver_IMU_write_register(POWER_CTL, 0x08);
// Paramètrage du registe BW_RATE
driver_IMU_write_register(BW_RATE, 0x0A);
// Paramètrage du registre DATA_FORMAT
driver_IMU_write_register(BW_RATE, 0x08); // Full resolution, et alignement à droite
}
/* Fonction de lecture des données*/
/*
@param *values : Les valeurs x, y, z sont chacune stockée sur 2 octets dans le tableau values
x = values[1]<<8 & value[0];
y = values[3]<<8 & value[2];
z = values[5]<<8 & value[4];
@param numBytes : Le nombre de registre à lire à partir de registerAddress
@param registerAddress : Adresse du premier registre à lire*/
void driver_IMU_read(char registerAddress, int numBytes, unsigned char *values)
{
int i;
// Pour effectuer une lecture des registre, on doit mettre les bits R/W et MB à 1
char trame = registerAddress | 0x80;
trame = trame | 0x40;
// On active le chip select (niveau bas)
MySPI_Clear_NSS();
// Envoie de la config
MySPI_Send(trame);
// On effectue la lecture
for (i = 0; i < numBytes; i++)
{
values[i] = MySPI_Read();
}
// On met le Chip Select au niveau haut
MySPI_Set_NSS();
}

26
driver/Driver_IMU.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef IMU_H_
#define IMU_H_
#include "stm32f10x.h"
/**
*************************************************************************************************
* @brief Fonction d'initialisation de l'IMU
* @param -> none
* @Note -> Fonction a appelé avant l'utilisation du périphérique
*************************************************************************************************
*/
void driver_IMU_init(void);
/**
*************************************************************************************************
* @brief Fonction de lecture des données de l'IMU
* @param -> char registerAddress : adresse du registre
* -> int numBytes : nombre de bytes à recevoir
* -> unsigned char * values : tableau les valeurs seront stockés
* @Note ->
*************************************************************************************************
*/
void driver_IMU_read(char registerAddress, int numBytes, unsigned char *values);
#endif

View file

@ -40,7 +40,7 @@ void MyTimer_Stop(MyTimer_Struct_TypeDef * Timer)
// Note : PWM Tested on PA0 and PA1
void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint16_t duty_cycle) {
uint16_t CCR_Value = (duty_cycle * TIM2->ARR) / 100;
uint16_t CCR_Value = (duty_cycle * Timer->Timer->ARR) / 100;
// Configurer le Channel
if (Timer->channel == 1) {
@ -68,7 +68,7 @@ void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint16_t duty_cycle) {
}
void MyTimer_SetPWMDutyCycle(MyTimer_Struct_TypeDef *Timer, uint16_t duty_cycle) {
uint16_t CCR_Value = (duty_cycle * TIM2->ARR) / 100;
uint16_t CCR_Value = (duty_cycle * Timer->Timer->ARR) / 100;
if (Timer->channel == 1) {
Timer->Timer->CCR1 = CCR_Value;

View file

@ -1,73 +1,83 @@
#include "Driver_UART.h"
void MyUART_Init(MyUART_Struct_TypeDef *UART) {
void MyUART_Init(MyUART_Struct_TypeDef *UART)
{
// Active l'horloge du périphérique UART
if (UART->UART == USART1) {
if (UART->UART == USART1)
{
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
} else if (UART->UART == USART2) {
}
else if (UART->UART == USART2)
{
RCC->APB1ENR |= RCC_APB1ENR_USART2EN;
} else if (UART->UART == USART3) {
}
else if (UART->UART == USART3)
{
RCC->APB1ENR |= RCC_APB1ENR_USART3EN;
}
// Active l'UART pour permettre la transmission/réception de données
// Active l'UART pour permettre la transmission/réception de données
UART->UART->CR1 |= USART_CR1_UE;
// Configure la vitesse de transmission en utilisant la valeur de BRR
UART->UART->BRR = 7500/2; // Note : Certains UARTs sont connectés au 72Mhz/2
UART->UART->BRR = 7500 / 2; // Note : Certains UARTs sont connectés au 72Mhz/2
// Configure le format des données transmises/reçues : 8 bits de données, 1 bit de stop, pas de parité
UART->UART->CR1 &= ~(USART_CR1_M | USART_CR1_PS);
UART->UART->CR1 |= USART_CR1_TE | USART_CR1_RE;
UART->UART->CR2 &= ~(0x11 << 12);
USART3->CR1 |= USART_CR1_RXNEIE | USART_CR1_TXEIE; // Active les interruptions de l'UART
__enable_irq();// Active les interruptions globales
__enable_irq(); // Active les interruptions globales
}
void MyUART_SendByte(MyUART_Struct_TypeDef *UART, uint8_t data) {
void MyUART_SendByte(MyUART_Struct_TypeDef *UART, uint8_t data)
{
// Envoyer la donnée
UART->UART->DR = data;
// Attendre que la transmission soit terminée
while ((UART->UART->SR & USART_SR_TC) == 0);
while ((UART->UART->SR & USART_SR_TC) == 0)
;
}
void MyUART_SendString(MyUART_Struct_TypeDef *UART, const char *str) {
void MyUART_SendString(MyUART_Struct_TypeDef *UART, const char *str)
{
// Envoyer chaque caractère de la chaîne
while (*str != '\0') {
while (*str != '\0')
{
MyUART_SendByte(UART, *str);
str++;
}
}
uint8_t MyUART_ReceiveByte(MyUART_Struct_TypeDef *UART) {
uint8_t MyUART_ReceiveByte(MyUART_Struct_TypeDef *UART)
{
// Attendre que le registre de données soit rempli avec une nouvelle donnée
while (!(UART->UART->SR & USART_SR_RXNE));
while (!(UART->UART->SR & USART_SR_RXNE))
;
// Lire la donnée reçue
uint8_t data = (uint8_t)(UART->UART->DR & 0xFF);
// Remettre flag à 0
UART->UART->SR &= ~USART_SR_RXNE;
// Remettre flag à 0
UART->UART->SR &= ~USART_SR_RXNE;
// Renvoyer la donnée lue
return data;
}
void USART3_IRQHandler(void) {
if (USART3->SR & USART_SR_RXNE) {
void USART3_IRQHandler(void)
{
if (USART3->SR & USART_SR_RXNE)
{
}
if (USART3->SR & USART_SR_TXE) {
if (USART3->SR & USART_SR_TXE)
{
}
}

View file

@ -1,40 +0,0 @@
#include "Driver_ADC.h"
#include "stm32f10x.h"
#include "stdio.h"
void init_adc1 (void)
{
//Activation de l'external trig
ADC1->CR2 |= ADC_CR2_EXTTRIG;
//Activation SWSTART
ADC1->CR2 |= ADC_CR2_EXTSEL;
//On règle la fréquence à 12Mhz
RCC->CFGR |= RCC_CFGR_ADCPRE_DIV6;
//Activation de l'ADC
ADC1->CR2 |= ADC_CR2_ADON;
//Fixe le nb de conversion, ici 1
ADC1->SQR1 &= ADC_SQR1_L;
//Numéro de voie à convertir
ADC1->SQR3 |= 1;
//Lancement de la calibration
ADC1->CR2 |= ADC_CR2_CAL;
//Attente de la fin de la calibration
while((ADC1->CR2 & ADC_CR2_CAL));
//Activation de l'intéruption sur le flag EOC
ADC1->CR1 |= ADC_CR1_EOCIE;
}
void launch_read_adc1 (void)
{
//Lancement de la conversion
ADC1->CR2 |= ADC_CR2_SWSTART;
}
int read_adc1 (void)
{
//On abaisse le flag pour la prochaine lecture
ADC1->SR &= ~ADC_SR_EOC;
//Retour de la conversion
return ADC1->DR &~ ((0x0F) << 12);
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

View file

@ -8,4 +8,5 @@
C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h \
C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h \
..\driver\Driver_GPIO.h ..\driver\Driver_Timer.h \
..\driver\Driver_UART.h src\App_girouette.h
..\driver\Driver_UART.h src\App_girouette.h src\App_Orientation.h \
C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\math.h

Binary file not shown.

View file

@ -27,17 +27,39 @@ Project File Date: 04/11/2023
<h2>Output:</h2>
*** Using Compiler 'V6.19', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'sim'
assembling startup_stm32f10x_md.s...
compiling App_girouette.c...
compiling Driver_UART.c...
compiling Driver_ADC.c...
src/main.c(122): warning: incompatible pointer types passing 'MyGPIO_Struct_TypeDef *' to parameter of type 'GPIO_TypeDef *' [-Wincompatible-pointer-types]
MyGPIO_Set(&DirPlateau, 9);
^~~~~~~~~~~
../driver\Driver_GPIO.h(22): note: passing argument to parameter 'GPIO' here
void MyGPIO_Set ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
^
src/main.c(124): warning: incompatible pointer types passing 'MyGPIO_Struct_TypeDef *' to parameter of type 'GPIO_TypeDef *' [-Wincompatible-pointer-types]
MyGPIO_Reset(&DirPlateau, 9);
^~~~~~~~~~~
../driver\Driver_GPIO.h(23): note: passing argument to parameter 'GPIO' here
void MyGPIO_Reset ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
^
src/main.c(127): warning: implicitly declaring library function 'abs' with type 'int (int)' [-Wimplicit-function-declaration]
MyTimer_SetPWMDutyCycle(&PWM_PLATEAU, abs(tc));
^
src/main.c(127): note: include the header <stdlib.h> or explicitly provide a declaration for 'abs'
src/main.c(132): warning: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Wimplicit-function-declaration]
sprintf(str, "Dir: %f deg", (float)dir);
^
src/main.c(132): note: include the header <stdio.h> or explicitly provide a declaration for 'sprintf'
4 warnings generated.
compiling main.c...
compiling App_girouette.c...
compiling Driver_GPIO.c...
compiling App_Orientation.c...
compiling Driver_ADC.c...
compiling Driver_UART.c...
compiling Driver_Timer.c...
assembling startup_stm32f10x_md.s...
compiling system_stm32f10x.c...
linking...
Program Size: Code=1528 RO-data=268 RW-data=16 ZI-data=1632
".\Objects\projet-voilier.axf" - 0 Error(s), 0 Warning(s).
Program Size: Code=6980 RO-data=444 RW-data=16 ZI-data=1640
".\Objects\projet-voilier.axf" - 0 Error(s), 4 Warning(s).
<h2>Software Packages used:</h2>

View file

@ -3,16 +3,16 @@
<title>Static Call Graph - [.\Objects\projet-voilier.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\projet-voilier.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Tue Apr 11 10:57:51 2023
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Tue Apr 11 14:14:23 2023
<BR><P>
<H3>Maximum Stack Usage = 72 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 324 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
__rt_entry_main &rArr; main &rArr; App_Girouette_Init &rArr; MyGPIO_Init
_printf_f &rArr; _printf_fp_dec &rArr; _printf_fp_dec_real &rArr; _fp_digits &rArr; _btod_etento &rArr; _btod_emul &rArr; _e2e
<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[39]">__user_initial_stackheap</a>
<LI><a href="#[3b]">__user_initial_stackheap</a>
</UL>
</UL>
<P>
@ -28,17 +28,17 @@ Mutually Recursive functions
<LI><a href="#[8]">PendSV_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[8]">PendSV_Handler</a><BR>
<LI><a href="#[9]">SysTick_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[9]">SysTick_Handler</a><BR>
<LI><a href="#[1f]">CAN1_RX1_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1f]">CAN1_RX1_IRQHandler</a><BR>
<LI><a href="#[38]">Bug</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[38]">Bug</a><BR>
<LI><a href="#[37]">erreur</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[37]">erreur</a><BR>
<LI><a href="#[3a]">Bug</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[3a]">Bug</a><BR>
<LI><a href="#[39]">erreur</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[39]">erreur</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[1c]">ADC1_2_IRQHandler</a> from driver_adc.o(.text.ADC1_2_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[38]">Bug</a> from driver_timer.o(.text.Bug) referenced from driver_timer.o(.data.TIM2_fx)
<LI><a href="#[38]">Bug</a> from driver_timer.o(.text.Bug) referenced from driver_timer.o(.data.TIM3_fx)
<LI><a href="#[38]">Bug</a> from driver_timer.o(.text.Bug) referenced from driver_timer.o(.data.TIM4_fx)
<LI><a href="#[3a]">Bug</a> from driver_timer.o(.text.Bug) referenced from driver_timer.o(.data.TIM2_fx)
<LI><a href="#[3a]">Bug</a> from driver_timer.o(.text.Bug) referenced from driver_timer.o(.data.TIM3_fx)
<LI><a href="#[3a]">Bug</a> from driver_timer.o(.text.Bug) referenced from driver_timer.o(.data.TIM4_fx)
<LI><a href="#[4]">BusFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[1f]">CAN1_RX1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[20]">CAN1_SCE_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
@ -93,146 +93,172 @@ Function Pointers
<LI><a href="#[5]">UsageFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[a]">WWDG_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[36]">__main</a> from __main.o(!!!main) referenced from startup_stm32f10x_md.o(.text)
<LI><a href="#[37]">erreur</a> from driver_adc.o(.text.erreur) referenced from driver_adc.o(.data.ADC1_2_fx)
<LI><a href="#[38]">_printf_input_char</a> from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text)
<LI><a href="#[37]">_sputc</a> from _sputc.o(.text) referenced from noretval__2sprintf.o(.text)
<LI><a href="#[39]">erreur</a> from driver_adc.o(.text.erreur) referenced from driver_adc.o(.data.ADC1_2_fx)
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[36]"></a>__main</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Calls]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
<LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
<BR><BR>[Calls]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
<P><STRONG><a name="[3a]"></a>__scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<P><STRONG><a name="[3c]"></a>__scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
</UL>
<P><STRONG><a name="[3c]"></a>__scatterload_rt2</STRONG> (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
<P><STRONG><a name="[3e]"></a>__scatterload_rt2</STRONG> (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>
<P><STRONG><a name="[54]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[7f]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[55]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[80]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[3d]"></a>__scatterload_copy</STRONG> (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
<P><STRONG><a name="[3f]"></a>__scatterload_copy</STRONG> (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
<BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL>
<P><STRONG><a name="[56]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[81]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[41]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li
<P><STRONG><a name="[40]"></a>_printf_f</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, _printf_f.o(.ARM.Collect$$_printf_percent$$00000003))
<BR><BR>[Stack]<UL><LI>Max Depth = 324 + Unknown Stack Size
<LI>Call Chain = _printf_f &rArr; _printf_fp_dec &rArr; _printf_fp_dec_real &rArr; _fp_digits &rArr; _btod_etento &rArr; _btod_emul &rArr; _e2e
</UL>
<BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_dec
</UL>
<P><STRONG><a name="[57]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[58]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[59]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[5a]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[5b]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034))
<P><STRONG><a name="[5c]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[5d]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[5e]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[5f]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[60]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[61]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[62]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[63]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[64]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[65]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[66]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006))
<P><STRONG><a name="[67]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010))
<P><STRONG><a name="[68]"></a>__rt_lib_init_relocate_pie_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[69]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035))
<P><STRONG><a name="[6a]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[6b]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027))
<P><STRONG><a name="[6c]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[46]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls
<P><STRONG><a name="[54]"></a>_printf_percent</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__printf
</UL>
<P><STRONG><a name="[6d]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[82]"></a>_printf_percent_end</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017))
<P><STRONG><a name="[6e]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007))
<P><STRONG><a name="[49]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li
</UL>
<P><STRONG><a name="[6f]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F))
<P><STRONG><a name="[83]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[70]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010))
<P><STRONG><a name="[84]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[71]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A))
<P><STRONG><a name="[42]"></a>__rt_lib_init_lc_common</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011))
<BR><BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_locale
</UL>
<P><STRONG><a name="[72]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[85]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006))
<P><STRONG><a name="[73]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[86]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010))
<P><STRONG><a name="[3b]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
<P><STRONG><a name="[87]"></a>__rt_lib_init_relocate_pie_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[88]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[89]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[8a]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[8b]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[44]"></a>__rt_lib_init_lc_numeric_2</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000018))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __rt_lib_init_lc_numeric_2 &rArr; _get_lc_numeric
</UL>
<BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_get_lc_numeric
</UL>
<P><STRONG><a name="[8c]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[8d]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[8e]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[8f]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[90]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034))
<P><STRONG><a name="[91]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[92]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[93]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[94]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[95]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[96]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035))
<P><STRONG><a name="[97]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[98]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027))
<P><STRONG><a name="[4e]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls
</UL>
<P><STRONG><a name="[99]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[9a]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007))
<P><STRONG><a name="[9b]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F))
<P><STRONG><a name="[9c]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010))
<P><STRONG><a name="[9d]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A))
<P><STRONG><a name="[9e]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[9f]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[3d]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
<LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
</UL>
<P><STRONG><a name="[74]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[a0]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[3e]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
<P><STRONG><a name="[46]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __rt_entry_sh &rArr; __user_setup_stackheap
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
<BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[40]"></a>__rt_entry_li</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A))
<BR><BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
<P><STRONG><a name="[48]"></a>__rt_entry_li</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A))
<BR><BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
</UL>
<P><STRONG><a name="[75]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[a1]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[42]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
<BR><BR>[Stack]<UL><LI>Max Depth = 72 + Unknown Stack Size
<LI>Call Chain = __rt_entry_main &rArr; main &rArr; App_Girouette_Init &rArr; MyGPIO_Init
<P><STRONG><a name="[4a]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
<BR><BR>[Stack]<UL><LI>Max Depth = 208 + Unknown Stack Size
<LI>Call Chain = __rt_entry_main &rArr; main &rArr; __2sprintf &rArr; _printf_char_common &rArr; __printf
</UL>
<BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[76]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[a2]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[4a]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<P><STRONG><a name="[5f]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
</UL>
<P><STRONG><a name="[45]"></a>__rt_exit_ls</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003))
<BR><BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown
<P><STRONG><a name="[4d]"></a>__rt_exit_ls</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003))
<BR><BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown
</UL>
<P><STRONG><a name="[77]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[a3]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[47]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit
<P><STRONG><a name="[4f]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit
</UL>
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
@ -416,79 +442,156 @@ Global Symbols
<P><STRONG><a name="[a]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[39]"></a>__user_initial_stackheap</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
<P><STRONG><a name="[3b]"></a>__user_initial_stackheap</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[78]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[51]"></a>__2sprintf</STRONG> (Thumb, 34 bytes, Stack size 32 bytes, noretval__2sprintf.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120 + Unknown Stack Size
<LI>Call Chain = __2sprintf &rArr; _printf_char_common &rArr; __printf
</UL>
<BR>[Calls]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sputc
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_char_common
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[79]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[53]"></a>__printf</STRONG> (Thumb, 104 bytes, Stack size 24 bytes, __printf.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24 + Unknown Stack Size
<LI>Call Chain = __printf
</UL>
<BR>[Calls]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_percent
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_char_common
</UL>
<P><STRONG><a name="[7a]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[a4]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[3f]"></a>__user_setup_stackheap</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
<P><STRONG><a name="[a5]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[a6]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[5b]"></a>_printf_fp_dec_real</STRONG> (Thumb, 620 bytes, Stack size 104 bytes, _printf_fp_dec.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 324<LI>Call Chain = _printf_fp_dec_real &rArr; _fp_digits &rArr; _btod_etento &rArr; _btod_emul &rArr; _e2e
</UL>
<BR>[Calls]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassify
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_infnan
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_locale
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_dec
</UL>
<P><STRONG><a name="[52]"></a>_printf_char_common</STRONG> (Thumb, 32 bytes, Stack size 64 bytes, _printf_char_common.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 88 + Unknown Stack Size
<LI>Call Chain = _printf_char_common &rArr; __printf
</UL>
<BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__printf
</UL>
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2sprintf
</UL>
<P><STRONG><a name="[37]"></a>_sputc</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, _sputc.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2sprintf
</UL>
<BR>[Address Reference Count : 1]<UL><LI> noretval__2sprintf.o(.text)
</UL>
<P><STRONG><a name="[43]"></a>__rt_locale</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, rt_locale_intlibspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init_lc_common
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_dec_real
</UL>
<P><STRONG><a name="[5a]"></a>_ll_udiv10</STRONG> (Thumb, 138 bytes, Stack size 12 bytes, lludiv10.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = _ll_udiv10
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[5d]"></a>_printf_fp_infnan</STRONG> (Thumb, 112 bytes, Stack size 24 bytes, _printf_fp_infnan.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = _printf_fp_infnan
</UL>
<BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_dec_real
</UL>
<P><STRONG><a name="[56]"></a>_btod_etento</STRONG> (Thumb, 224 bytes, Stack size 72 bytes, bigflt0.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 124<LI>Call Chain = _btod_etento &rArr; _btod_emul &rArr; _e2e
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_emul
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_ediv
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[a7]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[5e]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[a8]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[47]"></a>__user_setup_stackheap</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __user_setup_stackheap
</UL>
<BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_perproc_libspace
<LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_initial_stackheap
<BR>[Calls]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_perproc_libspace
<LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_initial_stackheap
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_sh
<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_sh
</UL>
<P><STRONG><a name="[44]"></a>exit</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text))
<P><STRONG><a name="[4c]"></a>exit</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = exit
</UL>
<BR>[Calls]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit
<BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit
</UL>
<BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
<BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[7b]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[49]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
<P><STRONG><a name="[7a]"></a>strcmp</STRONG> (Thumb, 128 bytes, Stack size 0 bytes, strcmpv7m.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_get_lc_numeric
</UL>
<P><STRONG><a name="[7c]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[48]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit
<P><STRONG><a name="[50]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit
</UL>
<P><STRONG><a name="[7d]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[a9]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[7e]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[aa]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[7f]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[ab]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[1c]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, driver_adc.o(.text.ADC1_2_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[4b]"></a>App_Girouette_GetDirection</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, app_girouette.o(.text.App_Girouette_GetDirection))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = App_Girouette_GetDirection
<P><STRONG><a name="[60]"></a>App_Girouette_GetDirection</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, app_girouette.o(.text.App_Girouette_GetDirection))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = App_Girouette_GetDirection &rArr; __aeabi_dmul
</UL>
<BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_GetCounter
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_GetCounter
</UL>
<BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4d]"></a>App_Girouette_Init</STRONG> (Thumb, 80 bytes, Stack size 48 bytes, app_girouette.o(.text.App_Girouette_Init))
<P><STRONG><a name="[65]"></a>App_Girouette_Init</STRONG> (Thumb, 80 bytes, Stack size 48 bytes, app_girouette.o(.text.App_Girouette_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = App_Girouette_Init &rArr; MyGPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Start
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigureEncoder
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Base_Init
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigureEncoder
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Start
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Base_Init
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[38]"></a>Bug</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_timer.o(.text.Bug))
<BR><BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bug
<P><STRONG><a name="[3a]"></a>Bug</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_timer.o(.text.Bug))
<BR><BR>[Calls]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bug
</UL>
<BR>[Called By]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bug
<BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bug
</UL>
<BR>[Address Reference Count : 3]<UL><LI> driver_timer.o(.data.TIM2_fx)
<LI> driver_timer.o(.data.TIM3_fx)
@ -497,31 +600,59 @@ Global Symbols
<P><STRONG><a name="[13]"></a>EXTI3_IRQHandler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_timer.o(.text.EXTI3_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[51]"></a>MyGPIO_Init</STRONG> (Thumb, 140 bytes, Stack size 8 bytes, driver_gpio.o(.text.MyGPIO_Init))
<P><STRONG><a name="[69]"></a>MyGPIO_Init</STRONG> (Thumb, 144 bytes, Stack size 8 bytes, driver_gpio.o(.text.MyGPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;telecommande_init
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4e]"></a>MyTimer_Base_Init</STRONG> (Thumb, 140 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_Base_Init))
<BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<P><STRONG><a name="[6f]"></a>MyGPIO_Reset</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, driver_gpio.o(.text.MyGPIO_Reset))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4f]"></a>MyTimer_ConfigureEncoder</STRONG> (Thumb, 168 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_ConfigureEncoder))
<BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<P><STRONG><a name="[74]"></a>MyGPIO_Set</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, driver_gpio.o(.text.MyGPIO_Set))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[50]"></a>MyTimer_Start</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_Start))
<BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<P><STRONG><a name="[66]"></a>MyTimer_Base_Init</STRONG> (Thumb, 140 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_Base_Init))
<BR><BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[52]"></a>MyUART_Init</STRONG> (Thumb, 76 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_Init))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<P><STRONG><a name="[67]"></a>MyTimer_ConfigureEncoder</STRONG> (Thumb, 168 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_ConfigureEncoder))
<BR><BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
</UL>
<P><STRONG><a name="[53]"></a>MyUART_SendByte</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_SendByte))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<P><STRONG><a name="[6c]"></a>MyTimer_ConfigurePWM</STRONG> (Thumb, 158 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_ConfigurePWM))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[70]"></a>MyTimer_SetPWMDutyCycle</STRONG> (Thumb, 92 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_SetPWMDutyCycle))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[68]"></a>MyTimer_Start</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_Start))
<BR><BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6d]"></a>MyUART_Init</STRONG> (Thumb, 152 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_Init))
<BR><BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;telecommande_init
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6b]"></a>MyUART_ReceiveByte</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_ReceiveByte))
<BR><BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Telecommande_Get_Dir
</UL>
<P><STRONG><a name="[73]"></a>MyUART_SendByte</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_SendByte))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[72]"></a>MyUART_SendString</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_SendString))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[35]"></a>SystemInit</STRONG> (Thumb, 272 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SystemInit))
@ -538,35 +669,194 @@ Global Symbols
<P><STRONG><a name="[28]"></a>TIM4_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, driver_timer.o(.text.TIM4_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[4c]"></a>TIM_GetCounter</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_timer.o(.text.TIM_GetCounter))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
<P><STRONG><a name="[61]"></a>TIM_GetCounter</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_timer.o(.text.TIM_GetCounter))
<BR><BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[6a]"></a>Telecommande_Get_Dir</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, app_orientation.o(.text.Telecommande_Get_Dir))
<BR><BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_ReceiveByte
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[31]"></a>USART3_IRQHandler</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, driver_uart.o(.text.USART3_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[37]"></a>erreur</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_adc.o(.text.erreur))
<BR><BR>[Calls]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;erreur
<P><STRONG><a name="[39]"></a>erreur</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_adc.o(.text.erreur))
<BR><BR>[Calls]<UL><LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;erreur
</UL>
<BR>[Called By]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;erreur
<BR>[Called By]<UL><LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;erreur
</UL>
<BR>[Address Reference Count : 1]<UL><LI> driver_adc.o(.data.ADC1_2_fx)
</UL>
<P><STRONG><a name="[43]"></a>main</STRONG> (Thumb, 82 bytes, Stack size 16 bytes, main.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = main &rArr; App_Girouette_Init &rArr; MyGPIO_Init
<P><STRONG><a name="[4b]"></a>main</STRONG> (Thumb, 388 bytes, Stack size 88 bytes, main.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 208 + Unknown Stack Size
<LI>Call Chain = main &rArr; __2sprintf &rArr; _printf_char_common &rArr; __printf
</UL>
<BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendByte
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_Init
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
<BR>[Calls]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2d
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2sprintf
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Set
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Telecommande_Get_Dir
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendByte
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendString
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_SetPWMDutyCycle
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Reset
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;telecommande_init
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_Init
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Start
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigurePWM
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Base_Init
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
<BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[6e]"></a>telecommande_init</STRONG> (Thumb, 74 bytes, Stack size 24 bytes, app_orientation.o(.text.telecommande_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = telecommande_init &rArr; MyGPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_Init
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[57]"></a>_btod_d2e</STRONG> (Thumb, 62 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e))
<BR><BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_d2e_norm_op1
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[76]"></a>_d2e_denorm_low</STRONG> (Thumb, 70 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_denorm_low))
<BR><BR>[Called By]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_d2e_norm_op1
</UL>
<P><STRONG><a name="[75]"></a>_d2e_norm_op1</STRONG> (Thumb, 96 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_norm_op1))
<BR><BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_d2e_denorm_low
</UL>
<BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_d2e
</UL>
<P><STRONG><a name="[77]"></a>__btod_div_common</STRONG> (Thumb, 696 bytes, Stack size 24 bytes, btod.o(CL$$btod_div_common))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __btod_div_common
</UL>
<BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_ediv
</UL>
<P><STRONG><a name="[78]"></a>_e2e</STRONG> (Thumb, 220 bytes, Stack size 24 bytes, btod.o(CL$$btod_e2e))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = _e2e
</UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_emul
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_ediv
</UL>
<P><STRONG><a name="[58]"></a>_btod_ediv</STRONG> (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_ediv))
<BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = _btod_ediv &rArr; _e2e
</UL>
<BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_e2e
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__btod_div_common
</UL>
<BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_etento
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[59]"></a>_btod_emul</STRONG> (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_emul))
<BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = _btod_emul &rArr; _e2e
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__btod_mult_common
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_e2e
</UL>
<BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_etento
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[79]"></a>__btod_mult_common</STRONG> (Thumb, 580 bytes, Stack size 16 bytes, btod.o(CL$$btod_mult_common))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __btod_mult_common
</UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_emul
</UL>
<P><STRONG><a name="[5c]"></a>__ARM_fpclassify</STRONG> (Thumb, 40 bytes, Stack size 0 bytes, fpclassify.o(i.__ARM_fpclassify))
<BR><BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_dec_real
</UL>
<P><STRONG><a name="[45]"></a>_get_lc_numeric</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, lc_numeric_c.o(locale$$code))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = _get_lc_numeric
</UL>
<BR>[Calls]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strcmp
</UL>
<BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init_lc_numeric_2
</UL>
<P><STRONG><a name="[64]"></a>__aeabi_d2iz</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __aeabi_d2iz
</UL>
<BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[7b]"></a>_dfix</STRONG> (Thumb, 94 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dnaninf
</UL>
<P><STRONG><a name="[62]"></a>__aeabi_i2d</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt))
<BR><BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[ac]"></a>_dflt</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt), UNUSED)
<P><STRONG><a name="[71]"></a>__aeabi_ui2d</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[ad]"></a>_dfltu</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu), UNUSED)
<P><STRONG><a name="[63]"></a>__aeabi_dmul</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __aeabi_dmul
</UL>
<BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[7d]"></a>_dmul</STRONG> (Thumb, 332 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dretinf
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dnaninf
</UL>
<P><STRONG><a name="[7c]"></a>__fpl_dnaninf</STRONG> (Thumb, 156 bytes, Stack size 16 bytes, dnaninf.o(x$fpl$dnaninf), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dmul
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dfix
</UL>
<P><STRONG><a name="[7e]"></a>__fpl_dretinf</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, dretinf.o(x$fpl$dretinf), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dmul
</UL>
<P><STRONG><a name="[41]"></a>_printf_fp_dec</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, printf1.o(x$fpl$printf1))
<BR><BR>[Stack]<UL><LI>Max Depth = 324<LI>Call Chain = _printf_fp_dec &rArr; _printf_fp_dec_real &rArr; _fp_digits &rArr; _btod_etento &rArr; _btod_emul &rArr; _e2e
</UL>
<BR>[Calls]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_dec_real
</UL>
<BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_f
</UL>
<P>
<H3>
Local Symbols
</H3><P>
</H3>
<P><STRONG><a name="[55]"></a>_fp_digits</STRONG> (Thumb, 432 bytes, Stack size 96 bytes, _printf_fp_dec.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 220<LI>Call Chain = _fp_digits &rArr; _btod_etento &rArr; _btod_emul &rArr; _e2e
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_emul
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_ediv
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_d2e
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_btod_etento
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_ll_udiv10
</UL>
<BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_fp_dec_real
</UL>
<P><STRONG><a name="[38]"></a>_printf_input_char</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, _printf_char_common.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> _printf_char_common.o(.text)
</UL><P>
<H3>
Undefined Global Symbols
</H3><HR></body></html>

View file

@ -1,6 +1,7 @@
--cpu Cortex-M3
".\objects\main.o"
".\objects\app_girouette.o"
".\objects\app_orientation.o"
".\objects\driver_gpio.o"
".\objects\driver_timer.o"
".\objects\driver_uart.o"

View file

@ -27,22 +27,38 @@ Project File Date: 04/11/2023
<h2>Output:</h2>
*** Using Compiler 'V6.19', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'reel'
assembling startup_stm32f10x_md.s...
compiling Driver_GPIO.c...
compiling App_girouette.c...
compiling Driver_UART.c...
src/main.c(108): warning: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Wimplicit-function-declaration]
src/main.c(21): warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses]
while(!MyGPIO_Read(Gir_IDX.GPIO, 9) != 0);
^ ~~
src/main.c(21): note: add parentheses after the '!' to evaluate the comparison first
while(!MyGPIO_Read(Gir_IDX.GPIO, 9) != 0);
^
( )
src/main.c(21): note: add parentheses around left hand side expression to silence this warning
while(!MyGPIO_Read(Gir_IDX.GPIO, 9) != 0);
^
( )
src/main.c(139): warning: implicitly declaring library function 'abs' with type 'int (int)' [-Wimplicit-function-declaration]
MyTimer_SetPWMDutyCycle(&PWM_PLATEAU, abs(tc));
^
src/main.c(139): note: include the header <stdlib.h> or explicitly provide a declaration for 'abs'
src/main.c(144): warning: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Wimplicit-function-declaration]
sprintf(str, "Dir: %f deg", (float)dir);
^
src/main.c(108): note: include the header <stdio.h> or explicitly provide a declaration for 'sprintf'
1 warning generated.
src/main.c(144): note: include the header <stdio.h> or explicitly provide a declaration for 'sprintf'
3 warnings generated.
compiling main.c...
compiling Driver_Timer.c...
compiling App_girouette.c...
compiling App_Orientation.c...
compiling Driver_GPIO.c...
compiling Driver_ADC.c...
compiling Driver_Timer.c...
assembling startup_stm32f10x_md.s...
compiling system_stm32f10x.c...
linking...
Program Size: Code=5584 RO-data=268 RW-data=16 ZI-data=1024
".\Objects\projet-voilier_reel.axf" - 0 Error(s), 1 Warning(s).
Program Size: Code=7192 RO-data=280 RW-data=16 ZI-data=1032
".\Objects\projet-voilier_reel.axf" - 0 Error(s), 3 Warning(s).
<h2>Software Packages used:</h2>

View file

@ -1,6 +1,6 @@
Dependencies for Project 'projet-voilier', Target 'reel': (DO NOT MODIFY !)
CompilerVersion: 6190000::V6.19::ARMCLANG
F (.\src\main.c)(0x6435437D)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/main.o -MD)
F (.\src\main.c)(0x64355760)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/main.o -MD)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -9,12 +9,14 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (..\driver\Driver_GPIO.h)(0x64351540)
I (..\driver\Driver_Timer.h)(0x64351540)
I (..\driver\Driver_UART.h)(0x64352E77)
I (src\App_girouette.h)(0x643516BD)
F (.\src\App_girouette.c)(0x64353982)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/app_girouette.o -MD)
I (src\App_girouette.h)(0x643516BD)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (..\driver\Driver_Timer.h)(0x6435468D)
I (..\driver\Driver_UART.h)(0x6435459E)
I (src\App_girouette.h)(0x6435459E)
I (src\App_Orientation.h)(0x64354C74)
I (C:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6388AB78)
F (.\src\App_girouette.c)(0x6435459E)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/app_girouette.o -MD)
I (src\App_girouette.h)(0x6435459E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -23,11 +25,11 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (..\driver\Driver_GPIO.h)(0x64351540)
I (..\driver\Driver_Timer.h)(0x64351540)
F (.\src\App_girouette.h)(0x643516BD)()
F (..\driver\Driver_GPIO.c)(0x6435274E)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_gpio.o -MD)
I (..\driver\Driver_GPIO.h)(0x64351540)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (..\driver\Driver_Timer.h)(0x6435468D)
F (.\src\App_girouette.h)(0x6435459E)()
F (.\src\App_Orientation.c)(0x64354B52)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/app_orientation.o -MD)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -37,9 +39,11 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
F (..\driver\Driver_GPIO.h)(0x64351540)()
F (..\driver\Driver_Timer.c)(0x64353731)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_timer.o -MD)
I (..\driver\Driver_Timer.h)(0x64351540)
I (..\driver\Driver_UART.h)(0x6435459E)
I (src\App_Orientation.h)(0x64354C74)
F (.\src\App_Orientation.h)(0x64354C74)()
F (..\driver\Driver_GPIO.c)(0x6435468D)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_gpio.o -MD)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -49,19 +53,9 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
F (..\driver\Driver_Timer.h)(0x64351540)()
F (..\driver\Driver_UART.c)(0x64352E6F)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_uart.o -MD)
I (..\driver\Driver_UART.h)(0x64352E77)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6388AB78)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_version.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
F (..\driver\Driver_UART.h)(0x64352E77)()
F (..\driver\Driver_ADC.c)(0x64351540)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_adc.o -MD)
F (..\driver\Driver_GPIO.h)(0x6435468D)()
F (..\driver\Driver_Timer.c)(0x64354E19)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_timer.o -MD)
I (..\driver\Driver_Timer.h)(0x6435468D)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -71,11 +65,33 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
I (..\driver\Driver_ADC.h)(0x64351540)
F (..\driver\Driver_ADC.h)(0x64351540)()
F (..\driver\Driver_Timer.h)(0x6435468D)()
F (..\driver\Driver_UART.c)(0x6435459E)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_uart.o -MD)
I (..\driver\Driver_UART.h)(0x6435459E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6388AB78)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_version.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
F (..\driver\Driver_UART.h)(0x6435459E)()
F (..\driver\Driver_ADC.c)(0x6435468D)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_adc.o -MD)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6388AB78)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_version.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
I (..\driver\Driver_ADC.h)(0x6435468D)
F (..\driver\Driver_ADC.h)(0x6435468D)()
F (RTE/Device/STM32F103RB/RTE_Device.h)(0x641B050C)()
F (RTE/Device/STM32F103RB/startup_stm32f10x_md.s)(0x641B050C)(--target=arm-arm-none-eabi -mcpu=cortex-m3 -masm=auto -Wa,armasm,--diag_suppress=A1950W -c -gdwarf-4 -Wa,armasm,--pd,"__MICROLIB SETA 1" -Wa,armasm,--pd,"__EVAL SETA 1" -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -Wa,armasm,--pd,"__UVISION_VERSION SETA 538" -Wa,armasm,--pd,"_RTE_ SETA 1" -Wa,armasm,--pd,"STM32F10X_MD SETA 1" -Wa,armasm,--pd,"_RTE_ SETA 1" -o ./objects/startup_stm32f10x_md.o)
F (RTE/Device/STM32F103RB/system_stm32f10x.c)(0x641B050C)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/system_stm32f10x.o -MD)
F (RTE/Device/STM32F103RB/system_stm32f10x.c)(0x641B050C)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./src -I ../driver -I./RTE/Device/STM32F103RB -I./RTE/_reel -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/system_stm32f10x.o -MD)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_reel\RTE_Components.h)(0x64218849)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)

View file

@ -3,9 +3,9 @@
<title>Static Call Graph - [.\Objects\projet-voilier_reel.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\projet-voilier_reel.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Tue Apr 11 13:30:39 2023
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Tue Apr 11 14:50:11 2023
<BR><P>
<H3>Maximum Stack Usage = 168 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 272 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; App_Girouette_GetDirection &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
<P>
@ -21,8 +21,6 @@ Mutually Recursive functions
<LI><a href="#[8]">PendSV_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[8]">PendSV_Handler</a><BR>
<LI><a href="#[9]">SysTick_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[9]">SysTick_Handler</a><BR>
<LI><a href="#[1f]">CAN1_RX1_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1f]">CAN1_RX1_IRQHandler</a><BR>
<LI><a href="#[3a]">Bug</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[3a]">Bug</a><BR>
<LI><a href="#[39]">erreur</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[39]">erreur</a><BR>
</UL>
<P>
<H3>
@ -97,25 +95,25 @@ Global Symbols
<P><STRONG><a name="[37]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
<P><STRONG><a name="[61]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[6f]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[3b]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[4c]"></a>__main_after_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<P><STRONG><a name="[4d]"></a>__main_after_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Called By]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[62]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[70]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[63]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[71]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[64]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[72]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[65]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[73]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[66]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[74]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
@ -298,325 +296,452 @@ Global Symbols
<P><STRONG><a name="[a]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[65]"></a>abs</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, siabs.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[3d]"></a>__aeabi_dmul</STRONG> (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[3f]"></a>__aeabi_i2d</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = __aeabi_i2d &rArr; _double_epilogue &rArr; _double_round
<P><STRONG><a name="[3f]"></a>__aeabi_i2f</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fflti.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = __aeabi_i2f &rArr; _float_epilogue
</UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[40]"></a>__aeabi_ui2d</STRONG> (Thumb, 26 bytes, Stack size 16 bytes, dfltui.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = __aeabi_ui2d &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<BR>[Calls]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_float_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[41]"></a>__aeabi_d2iz</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, dfixi.o(.text))
<P><STRONG><a name="[41]"></a>__aeabi_i2d</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = __aeabi_i2d &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[42]"></a>__aeabi_d2iz</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, dfixi.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_d2iz
</UL>
<BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
<BR>[Called By]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[67]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[60]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<P><STRONG><a name="[66]"></a>__aeabi_f2d</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, f2d.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[43]"></a>__aeabi_uldivmod</STRONG> (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<P><STRONG><a name="[75]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[6e]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[42]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<P><STRONG><a name="[44]"></a>__aeabi_uldivmod</STRONG> (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[43]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
</UL>
<P><STRONG><a name="[68]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[76]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[69]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, iusefp.o(.text), UNUSED)
<P><STRONG><a name="[77]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED)
<P><STRONG><a name="[45]"></a>_double_round</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text))
<P><STRONG><a name="[78]"></a>_float_round</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text), UNUSED)
<P><STRONG><a name="[40]"></a>_float_epilogue</STRONG> (Thumb, 92 bytes, Stack size 4 bytes, fepilogue.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = _float_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f
</UL>
<P><STRONG><a name="[46]"></a>_double_round</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = _double_round
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[3e]"></a>_double_epilogue</STRONG> (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2d
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
</UL>
<P><STRONG><a name="[46]"></a>__aeabi_dadd</STRONG> (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<P><STRONG><a name="[47]"></a>__aeabi_dadd</STRONG> (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_lasr
<LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_lasr
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[48]"></a>__aeabi_dsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<P><STRONG><a name="[49]"></a>__aeabi_dsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[49]"></a>__aeabi_drsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<P><STRONG><a name="[4a]"></a>__aeabi_drsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[4a]"></a>__aeabi_ddiv</STRONG> (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<P><STRONG><a name="[4b]"></a>__aeabi_ddiv</STRONG> (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
</UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[4b]"></a>__aeabi_d2ulz</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<P><STRONG><a name="[4c]"></a>__aeabi_d2ulz</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[5d]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<P><STRONG><a name="[6b]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[3c]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main_after_scatterload
<BR><BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main_after_scatterload
</UL>
<BR>[Called By]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[6a]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[79]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[44]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<P><STRONG><a name="[45]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
</UL>
<P><STRONG><a name="[6b]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[7a]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[47]"></a>__aeabi_lasr</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<P><STRONG><a name="[48]"></a>__aeabi_lasr</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[6c]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<P><STRONG><a name="[7b]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<P><STRONG><a name="[1c]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, driver_adc.o(.text.ADC1_2_IRQHandler))
<P><STRONG><a name="[1c]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, driver_adc.o(.text.ADC1_2_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ADC1_2_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[4d]"></a>App_Girouette_GetDirection</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, app_girouette.o(.text.App_Girouette_GetDirection))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = App_Girouette_GetDirection &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
<P><STRONG><a name="[4e]"></a>App_Girouette_GetDirection</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, app_girouette.o(.text.App_Girouette_GetDirection))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = App_Girouette_GetDirection &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_GetCounter
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_GetCounter
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4f]"></a>App_Girouette_Init</STRONG> (Thumb, 80 bytes, Stack size 48 bytes, app_girouette.o(.text.App_Girouette_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = App_Girouette_Init &rArr; MyGPIO_Init
<P><STRONG><a name="[50]"></a>App_Girouette_Init</STRONG> (Thumb, 98 bytes, Stack size 48 bytes, app_girouette.o(.text.App_Girouette_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = App_Girouette_Init &rArr; MyTimer_ConfigureEncoder &rArr; __NVIC_SetPriority
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigureEncoder
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Start
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Base_Init
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
<BR>[Calls]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigureEncoder
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Start
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Base_Init
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[3a]"></a>Bug</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_timer.o(.text.Bug))
<BR><BR>[Calls]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bug
</UL>
<BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bug
</UL>
<P><STRONG><a name="[3a]"></a>Bug</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_timer.o(.text.Bug))
<BR>[Address Reference Count : 3]<UL><LI> driver_timer.o(.data.TIM2_fx)
<LI> driver_timer.o(.data.TIM3_fx)
<LI> driver_timer.o(.data.TIM4_fx)
</UL>
<P><STRONG><a name="[13]"></a>EXTI3_IRQHandler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_timer.o(.text.EXTI3_IRQHandler))
<P><STRONG><a name="[13]"></a>EXTI3_IRQHandler</STRONG> (Thumb, 16 bytes, Stack size 16 bytes, driver_timer.o(.text.EXTI3_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = EXTI3_IRQHandler &rArr; seed
</UL>
<BR>[Calls]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;seed
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[53]"></a>MyGPIO_Init</STRONG> (Thumb, 144 bytes, Stack size 8 bytes, driver_gpio.o(.text.MyGPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Init
<P><STRONG><a name="[54]"></a>MyGPIO_Init</STRONG> (Thumb, 322 bytes, Stack size 4 bytes, driver_gpio.o(.text.MyGPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;telecommande_init
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[50]"></a>MyTimer_Base_Init</STRONG> (Thumb, 140 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_Base_Init))
<BR><BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[51]"></a>MyTimer_ConfigureEncoder</STRONG> (Thumb, 168 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_ConfigureEncoder))
<BR><BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
</UL>
<P><STRONG><a name="[54]"></a>MyTimer_ConfigurePWM</STRONG> (Thumb, 166 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_ConfigurePWM))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[56]"></a>MyTimer_SetPWMDutyCycle</STRONG> (Thumb, 82 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_SetPWMDutyCycle))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[52]"></a>MyTimer_Start</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, driver_timer.o(.text.MyTimer_Start))
<BR><BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[55]"></a>MyUART_Init</STRONG> (Thumb, 152 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_Init))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[59]"></a>MyUART_SendByte</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_SendByte))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[58]"></a>MyUART_SendString</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, driver_uart.o(.text.MyUART_SendString))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[36]"></a>SystemInit</STRONG> (Thumb, 272 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SystemInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SystemInit
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
<P><STRONG><a name="[26]"></a>TIM2_IRQHandler</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, driver_timer.o(.text.TIM2_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[27]"></a>TIM3_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, driver_timer.o(.text.TIM3_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[28]"></a>TIM4_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, driver_timer.o(.text.TIM4_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[4e]"></a>TIM_GetCounter</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_timer.o(.text.TIM_GetCounter))
<BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[31]"></a>USART3_IRQHandler</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, driver_uart.o(.text.USART3_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[39]"></a>erreur</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, driver_adc.o(.text.erreur))
<BR><BR>[Calls]<UL><LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;erreur
</UL>
<BR>[Called By]<UL><LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;erreur
</UL>
<BR>[Address Reference Count : 1]<UL><LI> driver_adc.o(.data.ADC1_2_fx)
</UL>
<P><STRONG><a name="[35]"></a>main</STRONG> (Thumb, 272 bytes, Stack size 72 bytes, main.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = main &rArr; App_Girouette_GetDirection &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2sprintf
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendByte
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendString
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2d
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_SetPWMDutyCycle
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_Init
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Start
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigurePWM
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Base_Init
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[5a]"></a>__0sprintf</STRONG> (Thumb, 34 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sputc
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[6d]"></a>__1sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<P><STRONG><a name="[57]"></a>__2sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2sprintf
<P><STRONG><a name="[5e]"></a>MyGPIO_Read</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, driver_gpio.o(.text.MyGPIO_Read))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Read
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6e]"></a>__c89sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<P><STRONG><a name="[64]"></a>MyGPIO_Reset</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, driver_gpio.o(.text.MyGPIO_Reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Reset
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6f]"></a>sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<P><STRONG><a name="[63]"></a>MyGPIO_Set</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, driver_gpio.o(.text.MyGPIO_Set))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Set
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[70]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[51]"></a>MyTimer_Base_Init</STRONG> (Thumb, 168 bytes, Stack size 4 bytes, driver_timer.o(.text.MyTimer_Base_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = MyTimer_Base_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[71]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[52]"></a>MyTimer_ConfigureEncoder</STRONG> (Thumb, 200 bytes, Stack size 16 bytes, driver_timer.o(.text.MyTimer_ConfigureEncoder))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = MyTimer_ConfigureEncoder &rArr; __NVIC_SetPriority
</UL>
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_EnableIRQ
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_SetPriority
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
</UL>
<P><STRONG><a name="[72]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[5f]"></a>MyTimer_ConfigurePWM</STRONG> (Thumb, 286 bytes, Stack size 8 bytes, driver_timer.o(.text.MyTimer_ConfigurePWM))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyTimer_ConfigurePWM
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[62]"></a>MyTimer_SetPWMDutyCycle</STRONG> (Thumb, 154 bytes, Stack size 8 bytes, driver_timer.o(.text.MyTimer_SetPWMDutyCycle))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyTimer_SetPWMDutyCycle
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[53]"></a>MyTimer_Start</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, driver_timer.o(.text.MyTimer_Start))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = MyTimer_Start
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[60]"></a>MyUART_Init</STRONG> (Thumb, 196 bytes, Stack size 4 bytes, driver_uart.o(.text.MyUART_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = MyUART_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;telecommande_init
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[5d]"></a>MyUART_ReceiveByte</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, driver_uart.o(.text.MyUART_ReceiveByte))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyUART_ReceiveByte
</UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Telecommande_Get_Dir
</UL>
<P><STRONG><a name="[59]"></a>MyUART_SendByte</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, driver_uart.o(.text.MyUART_SendByte))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyUART_SendByte
</UL>
<BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendString
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[58]"></a>MyUART_SendString</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, driver_uart.o(.text.MyUART_SendString))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = MyUART_SendString &rArr; MyUART_SendByte
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendByte
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[36]"></a>SystemInit</STRONG> (Thumb, 102 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SystemInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = SystemInit &rArr; SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
<P><STRONG><a name="[26]"></a>TIM2_IRQHandler</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, driver_timer.o(.text.TIM2_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TIM2_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[27]"></a>TIM3_IRQHandler</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, driver_timer.o(.text.TIM3_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TIM3_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[28]"></a>TIM4_IRQHandler</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, driver_timer.o(.text.TIM4_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TIM4_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[4f]"></a>TIM_GetCounter</STRONG> (Thumb, 12 bytes, Stack size 4 bytes, driver_timer.o(.text.TIM_GetCounter))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = TIM_GetCounter
</UL>
<BR>[Called By]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
</UL>
<P><STRONG><a name="[5c]"></a>Telecommande_Get_Dir</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, app_orientation.o(.text.Telecommande_Get_Dir))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Telecommande_Get_Dir &rArr; MyUART_ReceiveByte
</UL>
<BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_ReceiveByte
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[31]"></a>USART3_IRQHandler</STRONG> (Thumb, 42 bytes, Stack size 0 bytes, driver_uart.o(.text.USART3_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[39]"></a>erreur</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_adc.o(.text.erreur))
<BR>[Address Reference Count : 1]<UL><LI> driver_adc.o(.data.ADC1_2_fx)
</UL>
<P><STRONG><a name="[35]"></a>main</STRONG> (Thumb, 620 bytes, Stack size 168 bytes, main.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 272<LI>Call Chain = main &rArr; App_Girouette_GetDirection &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sprintf
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;abs
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendByte
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_SendString
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Reset
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Set
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_SetPWMDutyCycle
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Telecommande_Get_Dir
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_GetDirection
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;telecommande_init
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;App_Girouette_Init
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_Init
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Start
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigurePWM
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_Base_Init
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Read
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[55]"></a>seed</STRONG> (Thumb, 12 bytes, Stack size 4 bytes, driver_timer.o(.text.seed))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = seed
</UL>
<BR>[Called By]<UL><LI><a href="#[13]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EXTI3_IRQHandler
</UL>
<P><STRONG><a name="[61]"></a>telecommande_init</STRONG> (Thumb, 88 bytes, Stack size 24 bytes, app_orientation.o(.text.telecommande_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = telecommande_init &rArr; MyUART_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyUART_Init
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[68]"></a>__0sprintf</STRONG> (Thumb, 34 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sputc
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[7c]"></a>__1sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<P><STRONG><a name="[7d]"></a>__2sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<P><STRONG><a name="[7e]"></a>__c89sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<P><STRONG><a name="[67]"></a>sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = sprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[7f]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[80]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[81]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P>
<H3>
Local Symbols
</H3>
<P><STRONG><a name="[5c]"></a>_fp_digits</STRONG> (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple
<P><STRONG><a name="[56]"></a>__NVIC_SetPriority</STRONG> (Thumb, 66 bytes, Stack size 8 bytes, driver_timer.o(.text.__NVIC_SetPriority))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __NVIC_SetPriority
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigureEncoder
</UL>
<P><STRONG><a name="[57]"></a>__NVIC_EnableIRQ</STRONG> (Thumb, 48 bytes, Stack size 4 bytes, driver_timer.o(.text.__NVIC_EnableIRQ))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = __NVIC_EnableIRQ
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_ConfigureEncoder
</UL>
<P><STRONG><a name="[5a]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SetSysClock))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClockTo72
</UL>
<BR>[Called By]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemInit
</UL>
<P><STRONG><a name="[5b]"></a>SetSysClockTo72</STRONG> (Thumb, 290 bytes, Stack size 16 bytes, system_stm32f10x.o(.text.SetSysClockTo72))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = SetSysClockTo72
</UL>
<BR>[Called By]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<P><STRONG><a name="[6a]"></a>_fp_digits</STRONG> (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
</UL>
<BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[5b]"></a>_printf_core</STRONG> (Thumb, 1744 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<P><STRONG><a name="[69]"></a>_printf_core</STRONG> (Thumb, 1744 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<BR>[Called By]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0sprintf
<BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0sprintf
</UL>
<P><STRONG><a name="[5f]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<P><STRONG><a name="[6d]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[5e]"></a>_printf_pre_padding</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<P><STRONG><a name="[6c]"></a>_printf_pre_padding</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[38]"></a>_sputc</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, printfa.o(i._sputc))
<BR><BR>[Called By]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0sprintf
<BR><BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0sprintf
</UL>
<BR>[Address Reference Count : 1]<UL><LI> printfa.o(i.__0sprintf)
</UL><P>

View file

@ -1,6 +1,7 @@
--cpu Cortex-M3
".\objects\main.o"
".\objects\app_girouette.o"
".\objects\app_orientation.o"
".\objects\driver_gpio.o"
".\objects\driver_timer.o"
".\objects\driver_uart.o"

View file

@ -1,6 +1,6 @@
Dependencies for Project 'projet-voilier', Target 'sim': (DO NOT MODIFY !)
CompilerVersion: 6190000::V6.19::ARMCLANG
F (.\src\main.c)(0x64352014)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/main.o -MD)
F (.\src\main.c)(0x64354D85)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/main.o -MD)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -9,12 +9,14 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (..\driver\Driver_GPIO.h)(0x64351540)
I (..\driver\Driver_Timer.h)(0x64351540)
I (..\driver\Driver_UART.h)(0x642C85A4)
I (src\App_girouette.h)(0x643516BD)
F (.\src\App_girouette.c)(0x643517F2)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/app_girouette.o -MD)
I (src\App_girouette.h)(0x643516BD)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (..\driver\Driver_Timer.h)(0x6435468D)
I (..\driver\Driver_UART.h)(0x6435459E)
I (src\App_girouette.h)(0x6435459E)
I (src\App_Orientation.h)(0x64354C74)
I (C:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6388AB78)
F (.\src\App_girouette.c)(0x6435459E)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/app_girouette.o -MD)
I (src\App_girouette.h)(0x6435459E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -23,11 +25,11 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (..\driver\Driver_GPIO.h)(0x64351540)
I (..\driver\Driver_Timer.h)(0x64351540)
F (.\src\App_girouette.h)(0x643516BD)()
F (..\driver\Driver_GPIO.c)(0x64351540)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_gpio.o -MD)
I (..\driver\Driver_GPIO.h)(0x64351540)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (..\driver\Driver_Timer.h)(0x6435468D)
F (.\src\App_girouette.h)(0x6435459E)()
F (.\src\App_Orientation.c)(0x64354B52)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/app_orientation.o -MD)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -37,9 +39,11 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
F (..\driver\Driver_GPIO.h)(0x64351540)()
F (..\driver\Driver_Timer.c)(0x643517CC)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_timer.o -MD)
I (..\driver\Driver_Timer.h)(0x64351540)
I (..\driver\Driver_UART.h)(0x6435459E)
I (src\App_Orientation.h)(0x64354C74)
F (.\src\App_Orientation.h)(0x64354C74)()
F (..\driver\Driver_GPIO.c)(0x6435468D)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_gpio.o -MD)
I (..\driver\Driver_GPIO.h)(0x6435468D)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -49,19 +53,9 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
F (..\driver\Driver_Timer.h)(0x64351540)()
F (..\driver\Driver_UART.c)(0x6435210E)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_uart.o -MD)
I (..\driver\Driver_UART.h)(0x642C85A4)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6388AB78)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_version.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
F (..\driver\Driver_UART.h)(0x642C85A4)()
F (..\driver\Driver_ADC.c)(0x64351540)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_adc.o -MD)
F (..\driver\Driver_GPIO.h)(0x6435468D)()
F (..\driver\Driver_Timer.c)(0x64354E19)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_timer.o -MD)
I (..\driver\Driver_Timer.h)(0x6435468D)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -71,8 +65,30 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
I (..\driver\Driver_ADC.h)(0x64351540)
F (..\driver\Driver_ADC.h)(0x64351540)()
F (..\driver\Driver_Timer.h)(0x6435468D)()
F (..\driver\Driver_UART.c)(0x6435459E)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_uart.o -MD)
I (..\driver\Driver_UART.h)(0x6435459E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6388AB78)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_version.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
F (..\driver\Driver_UART.h)(0x6435459E)()
F (..\driver\Driver_ADC.c)(0x6435468D)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_adc.o -MD)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6388AB78)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_version.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_compiler.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
I (..\driver\Driver_ADC.h)(0x6435468D)
F (..\driver\Driver_ADC.h)(0x6435468D)()
F (RTE/Device/STM32F103RB/RTE_Device.h)(0x641B050C)()
F (RTE/Device/STM32F103RB/startup_stm32f10x_md.s)(0x641B050C)(--target=arm-arm-none-eabi -mcpu=cortex-m3 -masm=auto -Wa,armasm,--diag_suppress=A1950W -c -gdwarf-4 -Wa,armasm,--pd,"__EVAL SETA 1" -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -Wa,armasm,--pd,"__UVISION_VERSION SETA 538" -Wa,armasm,--pd,"_RTE_ SETA 1" -Wa,armasm,--pd,"STM32F10X_MD SETA 1" -Wa,armasm,--pd,"_RTE_ SETA 1" -o ./objects/startup_stm32f10x_md.o)
F (RTE/Device/STM32F103RB/system_stm32f10x.c)(0x641B050C)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/system_stm32f10x.o -MD)

File diff suppressed because one or more lines are too long

View file

@ -79,8 +79,8 @@
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
<uSim>1</uSim>
<uTrg>0</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
@ -117,6 +117,11 @@
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGDARM</Key>
<Name>(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,1)(121=-1,-1,-1,-1,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=882,149,1476,900,1)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
@ -130,7 +135,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name></Name>
<Name>-T0</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -148,40 +153,7 @@
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>50</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219480</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\src\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier\src/main.c\50</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>27</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219466</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\src\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier\src/main.c\27</Expression>
</Bp>
</Breakpoint>
<Breakpoint/>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -338,7 +310,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>DLGTARM</Key>
<Name>(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=16,47,662,720,0)(110=61,96,281,556,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=942,311,1363,716,0)(121=961,76,1382,481,0)(122=1030,235,1451,640,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=105,137,504,482,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=120,153,405,449,0)(130=-1,-1,-1,-1,0)(131=418,192,1012,886,0)(132=207,214,801,908,0)(133=955,258,1549,952,1)(160=-1,-1,-1,-1,0)(161=978,399,1426,813,0)(162=455,416,903,830,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)(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)</Name>
<Name>(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=16,47,662,720,0)(110=61,96,281,556,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=495,261,916,666,0)(121=961,76,1382,481,0)(122=1030,235,1451,640,1)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=105,137,504,482,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=120,153,405,449,0)(130=-1,-1,-1,-1,0)(131=418,192,1012,886,0)(132=591,257,1185,951,0)(133=955,258,1549,952,0)(160=-1,-1,-1,-1,0)(161=978,399,1426,813,0)(162=455,416,903,830,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)(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)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -378,6 +350,38 @@
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier_reel\RTE/Device/STM32F103RB/system_stm32f10x.c\409</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>26</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134221086</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\src\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier_reel\src/main.c\26</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>21</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134221068</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\src\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier_reel\src/main.c\21</Expression>
</Bp>
</Breakpoint>
<Tracepoint>
<THDelay>0</THDelay>
@ -473,6 +477,30 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\src\App_Orientation.c</PathWithFileName>
<FilenameWithoutPath>App_Orientation.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\src\App_Orientation.h</PathWithFileName>
<FilenameWithoutPath>App_Orientation.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -483,7 +511,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -495,7 +523,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber>
<FileNumber>7</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -507,7 +535,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -519,7 +547,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>7</FileNumber>
<FileNumber>9</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -531,7 +559,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -543,7 +571,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>9</FileNumber>
<FileNumber>11</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -555,7 +583,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>10</FileNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -567,7 +595,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>11</FileNumber>
<FileNumber>13</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View file

@ -399,6 +399,16 @@
<FileType>5</FileType>
<FilePath>.\src\App_girouette.h</FilePath>
</File>
<File>
<FileName>App_Orientation.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\App_Orientation.c</FilePath>
</File>
<File>
<FileName>App_Orientation.h</FileName>
<FileType>5</FileType>
<FilePath>.\src\App_Orientation.h</FilePath>
</File>
</Files>
</Group>
<Group>
@ -762,7 +772,7 @@
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>2</Optim>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>1</OneElfS>
@ -847,6 +857,16 @@
<FileType>5</FileType>
<FilePath>.\src\App_girouette.h</FilePath>
</File>
<File>
<FileName>App_Orientation.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\App_Orientation.c</FilePath>
</File>
<File>
<FileName>App_Orientation.h</FileName>
<FileType>5</FileType>
<FilePath>.\src\App_Orientation.h</FilePath>
</File>
</Files>
</Group>
<Group>

View file

@ -0,0 +1,41 @@
#include "Driver_GPIO.h"
#include "stm32f10x.h"
#include "stdio.h"
#include "Driver_UART.h"
#include "App_Orientation.h"
MyUART_Struct_TypeDef MY_UART;
void telecommande_init(void)
{
MyGPIO_Struct_TypeDef UART;
UART.GPIO_Pin = 10;
UART.GPIO_Conf = AltOut_Ppull;
UART.GPIO = GPIOB;
MyGPIO_Init(&UART);
UART.GPIO_Pin = 11;
UART.GPIO_Conf = In_Floating;
UART.GPIO = GPIOB;
MyGPIO_Init(&UART);
//MyUART_Struct_TypeDef MY_UART;
MY_UART.baudrate = 9600;
MY_UART.UART = USART3; // USART3_TX : PB10
MyUART_Init(&MY_UART);
}
char Telecommande_Get_Dir(void)
{
return MyUART_ReceiveByte(&MY_UART);
}
void Telecommande_Send_Data(const char *str) {
// Envoyer chaque caractère de la chaîne
while (*str != '\0') {
MyUART_SendByte(&MY_UART, *str);
str++;
}
}

View file

@ -0,0 +1,8 @@
#ifndef ORIENTATION_H
#define ORIENTATION_H
void telecommande_init(void);
uint16_t App_Girouette_GetDirection(void);
void Telecommande_Send_Data(const char *str);
#endif

View file

@ -5,19 +5,35 @@
// Application
#include "App_girouette.h"
#include "App_Orientation.h"
// Utils
#include "math.h"
int main() {
MyGPIO_Struct_TypeDef Gir_IDX;
Gir_IDX.GPIO = GPIOC;
Gir_IDX.GPIO_Conf = In_PullUp;
Gir_IDX.GPIO_Pin = 9;
MyGPIO_Init(&Gir_IDX);
while(!MyGPIO_Read(Gir_IDX.GPIO, 9) != 0);
MyGPIO_Struct_TypeDef PWM_GPIO;
PWM_GPIO.GPIO_Pin = 1;
PWM_GPIO.GPIO_Conf = AltOut_Ppull;
PWM_GPIO.GPIO = GPIOA;
MyGPIO_Init(&PWM_GPIO);
PWM_GPIO.GPIO_Pin = 0;
PWM_GPIO.GPIO_Pin = 6;
PWM_GPIO.GPIO_Conf = AltOut_Ppull;
PWM_GPIO.GPIO = GPIOA;
MyGPIO_Init(&PWM_GPIO);
MyTimer_Struct_TypeDef PWM_VOILE;
@ -30,14 +46,14 @@ int main() {
MyTimer_Start(&PWM_VOILE);
// MyTimer_Struct_TypeDef PWM_PLATEAU;
// PWM_PLATEAU.Timer = TIM2;
// PWM_PLATEAU.PSC = 7200;
// PWM_PLATEAU.ARR = 200;
// PWM_PLATEAU.channel = 1;
// MyTimer_Base_Init(&PWM_PLATEAU);
// MyTimer_ConfigurePWM(&PWM_PLATEAU, 60);
// MyTimer_Start(&PWM_PLATEAU);
MyTimer_Struct_TypeDef PWM_PLATEAU;
PWM_PLATEAU.Timer = TIM3;
PWM_PLATEAU.PSC = 7200;
PWM_PLATEAU.ARR = 200;
PWM_PLATEAU.channel = 1; // PA6
MyTimer_Base_Init(&PWM_PLATEAU);
MyTimer_ConfigurePWM(&PWM_PLATEAU, 50);
MyTimer_Start(&PWM_PLATEAU);
@ -71,19 +87,29 @@ int main() {
// RX: PB11
// Direction plateau
MyGPIO_Struct_TypeDef DirPlateau;
DirPlateau.GPIO_Pin = 9;
DirPlateau.GPIO = GPIOB;
DirPlateau.GPIO_Conf = Out_Ppull;
MyGPIO_Init(&DirPlateau);
// Initialisation
App_Girouette_Init();
telecommande_init();
while(1) {
int dir = App_Girouette_GetDirection();
signed char tc = Telecommande_Get_Dir();
if ((dir >= 335) && (dir < 25)) { //Vent debout
@ -103,7 +129,15 @@ int main() {
MyTimer_SetPWMDutyCycle(&PWM_VOILE, 10); //Reste
}
if (tc > 0) {
MyGPIO_Set(DirPlateau.GPIO, 9);
} else {
MyGPIO_Reset(DirPlateau.GPIO, 9);
}
MyTimer_SetPWMDutyCycle(&PWM_PLATEAU, abs(tc));
char str[32];