Compare commits

...

38 commits
USART ... main

Author SHA1 Message Date
17dce03f2a Actualiser Application/principal.c 2025-12-19 14:26:13 +01:00
df0723ffda Actualiser Pilotes/Source/PWM.c 2025-12-19 14:08:32 +01:00
0f0531465b Tout fonctionne bien ensemble, sauf le plateau, qui est à verifier 2025-12-17 11:46:52 +01:00
3702278f10
On a refait le projet de base sur keil, pour pouvoir compiler 2025-12-17 11:09:54 +01:00
d5ce192720
Harmonsation cosmetique 2025-12-16 20:33:39 +01:00
b2d06d9efc correction plateau.c, ajout dans principal des fonctions pour pilotage plateau 2025-12-16 19:58:38 +01:00
cb112ab21f ajout uart.h 2025-12-16 19:52:11 +01:00
d3781bbe3f harmonisation driver usart, ajout plateau.c 2025-12-16 19:46:30 +01:00
a11ce66ee8 Merge branch 'main' of https://git.etud.insa-toulouse.fr/johnse/BE_VOILIER 2025-12-16 19:36:36 +01:00
9d15cc7fd8
Ajout de RTC.h 2025-12-16 19:36:33 +01:00
e9f22497fd Merge branch 'main' of https://git.etud.insa-toulouse.fr/johnse/BE_VOILIER 2025-12-16 19:26:30 +01:00
814f1ec7b5 test 2025-12-16 19:04:30 +01:00
262e198447 RTC au principal 2025-12-16 17:56:10 +01:00
8a8a0b650c RTC au principal 2025-12-16 17:52:19 +01:00
a27c7040ce RTC pilote ajoute, reste à tester 2025-12-16 17:32:16 +01:00
96b50fe875
On n'utilise plus MyTimer.c 2025-12-16 16:49:08 +01:00
6e0c198702
La version de horloge généralisée et maintenant disponible. Elle sera l'unique pilote horloge, on n'utilisera plus Timer.c, qui est donc retirée. 2025-12-16 16:45:35 +01:00
399ce1d926
Merge branch 'main' of https://git.etud.insa-toulouse.fr/johnse/BE_VOILIER 2025-12-16 16:21:31 +01:00
1758acd46d
On retire des choses inutiles et non utilisées 2025-12-16 16:21:15 +01:00
7d032ee3ce MàJ avec le pilote Horloge.c 2025-12-16 16:00:40 +01:00
8fe96167f6
MyTimer est un service et non un pilote, et à été déménagé au repertoire correct 2025-12-16 15:51:12 +01:00
53fa8a38f7
MyTimer est un service et non un pilote, et à été déménagé au repertoire correct 2025-12-16 15:50:13 +01:00
01f88c8163
Grammaire 2025-12-16 12:02:47 +01:00
1c3cbc1953 Add of ADC broche 2025-12-16 11:31:09 +01:00
2ac48cf4a1
Rien d'important, tqt 2025-12-15 23:44:39 +01:00
7a9419bb05
Màj des objets 2025-12-15 23:43:29 +01:00
4adeddb6f2
Màj des commentaires et la structure de principal.c 2025-12-15 23:42:52 +01:00
d8cda927b5
Homogénéisation visuelle 2025-12-15 23:36:07 +01:00
766683d008
Encore une farse venu de notre bon ami Keil Microvision 2025-12-15 23:02:33 +01:00
0f2b4c0c99
Restructuration du projet 2025-12-15 23:00:48 +01:00
4300e84c25
La lib SPI copié depuis la branche Acceleromètre 2025-12-15 22:33:37 +01:00
77b52e9cc0
Harmonsation de la notation et l'indentation dans le projet 2025-12-15 22:29:42 +01:00
fb5c6d1a38
Harmonsation de la notation dans le projet 2025-12-15 21:35:33 +01:00
5caa67a4f6
Changement de nom pour qu'il represente toute l'équipe 2025-12-15 18:30:55 +01:00
eaf48b455e
Nettoyage du projet 2025-12-15 18:30:14 +01:00
77ae0d32b4 Merge branche Accelerateur/Girouette au 'main' 2025-12-13 17:34:23 +01:00
9d9002f6c4 Merge girouette et Accelerateur - LacheVoile désactivé 2025-12-13 17:25:48 +01:00
9a99a9ec86 Merge girouette accelereomètre - LacheVoile désactivé 2025-12-13 17:22:40 +01:00
92 changed files with 13988 additions and 1406 deletions

76
Application/principal.c Executable file
View file

@ -0,0 +1,76 @@
#include <stm32f10x.h>
#include <stdio.h>
#include "Horloge.h"
#include "Accelerometre.h"
#include "Girouette.h"
#include "Servo.h"
#include "MyUart.h"
#include "Plateau.h"
#include "I2C.h"
#include "RTC.h"
#include "ADC.h"
//Variables
int angleVentVar;
int angleVoileVar;
volatile uint32_t moy;
void pilotage(volatile int commande) {
Update_Motor_PWM(commande,TIM3,3);
};
int main (void) {
// ---- Setup ------
// Servo.c
initServo(TIM4, 3);
// Giroutte.c
configEncoder(TIM2);
LocaliserZero();
// Test de lecture ADC
My_USART_Config(USART1, 7500);
initADC();
// Init moyenne glissante
int i = 0;
uint32_t moyenne[LONGUEUR_MOY];
for (int p = 0; p<LONGUEUR_MOY; p++){moyenne[p]=0xFFFF;}
uint32_t sum;
//init Uart
My_USART_Config(USART1, 7500); //call with baudrate which is one over this value times clock frequency
USART_IT_Receive_Enable(USART1);
USART_Send_String(USART1,"bonjour bateau\r\n");
// Init plateau
initPlato(TIM3,3);
Init_IT_Receive(pilotage);
// Init lacheurVoile
initAccelo();
initServo(TIM4, 3);
//Init RTC
//initRTC();
//getTime();
// ----- Opération -----
while(1){
// Girouette
angleVentVar = angleVent(TIM2); // Récupérer l'angle de girouette
angleVoileVar = vent2voile(angleVentVar); // Transformer l'angle de girouette au l'angle des voiles souhaités
Servo_Moteur(angleVoileVar, TIM4, 3); // Faire bouger le moteur servo
// Acceleromètre
moyenne[i] = RecupAccelo()[2]; // Récuperation et ajout de la valeur plus récente dans le tableau dans la position i
i++; if (i >= LONGUEUR_MOY) {i = 0;} // Géstion de la position i dans le tableau pour la moyenne glissante
sum = 0; for (int j = 0; j < LONGUEUR_MOY; j++){sum += moyenne[j];} moy = sum / LONGUEUR_MOY; // Calcul de la moyenne glissante
LacheVoile(ANGLE_LIMITE, (uint16_t) moy); // Lache la voile si le bateau dépasse l'angle limite
// ADC
sendinfoADC();
}
}

View file

@ -0,0 +1,36 @@
// File: STM32F101_102_103_105_107.dbgconf
// Version: 1.0.0
// Note: refer to STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx Reference manual (RM0008)
// STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx datasheets
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU configuration register (DBGMCU_CR)
// <i> Reserved bits must be kept at reset value
// <o.30> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
// <o.29> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
// <o.28> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
// <o.27> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
// <o.26> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
// <o.25> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
// <o.21> DBG_CAN2_STOP <i> Debug CAN2 stopped when core is halted
// <o.20> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
// <o.19> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
// <o.18> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
// <o.17> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
// <o.16> DBG_I2C2_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.15> DBG_I2C1_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.14> DBG_CAN1_STOP <i> Debug CAN1 stopped when Core is halted
// <o.13> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
// <o.12> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
// <o.11> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
// <o.10> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
// <o.9> DBG_WWDG_STOP <i> Debug window watchdog stopped when core is halted
// <o.8> DBG_IWDG_STOP <i> Debug independent watchdog stopped when core is halted
// <o.2> DBG_STANDBY <i> Debug standby mode
// <o.1> DBG_STOP <i> Debug stop mode
// <o.0> DBG_SLEEP <i> Debug sleep mode
// </h>
DbgMCU_CR = 0x00000007;
// <<< end of configuration section >>>

9
EventRecorderStub.scvd Normal file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="EventRecorderStub" version="1.0.0"/> <!--name and version of the component-->
<events>
</events>
</component_viewer>

BIN
Lib_Com_Periph_2022.lib Executable file

Binary file not shown.

892
Listings/Projet0.map Normal file
View file

@ -0,0 +1,892 @@
Component: Arm Compiler for Embedded 6.23 Tool: armlink [5f102400]
==============================================================================
Section Cross References
principal.o(.text.pilotage) refers to plateau.o(.text.Update_Motor_PWM) for Update_Motor_PWM
principal.o(.ARM.exidx.text.pilotage) refers to principal.o(.text.pilotage) for [Anonymous Symbol]
principal.o(.text.main) refers to servo.o(.text.initServo) for initServo
principal.o(.text.main) refers to girouette.o(.text.configEncoder) for configEncoder
principal.o(.text.main) refers to girouette.o(.text.LocaliserZero) for LocaliserZero
principal.o(.text.main) refers to myuart.o(.text.My_USART_Config) for My_USART_Config
principal.o(.text.main) refers to adc.o(.text.initADC) for initADC
principal.o(.text.main) refers to myuart.o(.text.USART_IT_Receive_Enable) for USART_IT_Receive_Enable
principal.o(.text.main) refers to principal.o(.rodata.str1.1) for .L.str
principal.o(.text.main) refers to myuart.o(.text.USART_Send_String) for USART_Send_String
principal.o(.text.main) refers to plateau.o(.text.initPlato) for initPlato
principal.o(.text.main) refers to principal.o(.text.pilotage) for pilotage
principal.o(.text.main) refers to myuart.o(.text.Init_IT_Receive) for Init_IT_Receive
principal.o(.text.main) refers to accelerometre.o(.text.initAccelo) for initAccelo
principal.o(.text.main) refers to girouette.o(.text.angleVent) for angleVent
principal.o(.text.main) refers to principal.o(.bss.angleVentVar) for angleVentVar
principal.o(.text.main) refers to girouette.o(.text.vent2voile) for vent2voile
principal.o(.text.main) refers to principal.o(.bss.angleVoileVar) for angleVoileVar
principal.o(.text.main) refers to servo.o(.text.Servo_Moteur) for Servo_Moteur
principal.o(.text.main) refers to accelerometre.o(.text.RecupAccelo) for RecupAccelo
principal.o(.text.main) refers to principal.o(.bss.moy) for moy
principal.o(.text.main) refers to accelerometre.o(.text.LacheVoile) for LacheVoile
principal.o(.text.main) refers to adc.o(.text.sendinfoADC) for sendinfoADC
principal.o(.ARM.exidx.text.main) refers to principal.o(.text.main) for [Anonymous Symbol]
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Init) for MySPI_Init
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Send) for MySPI_Send
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
accelerometre.o(.ARM.exidx.text.initAccelo) refers to accelerometre.o(.text.initAccelo) for [Anonymous Symbol]
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Send) for MySPI_Send
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Read) for MySPI_Read
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
accelerometre.o(.text.RecupAccelo) refers to accelerometre.o(.bss.RecupAccelo.Messie) for RecupAccelo.Messie
accelerometre.o(.ARM.exidx.text.RecupAccelo) refers to accelerometre.o(.text.RecupAccelo) for [Anonymous Symbol]
accelerometre.o(.text.initLacheur) refers to horloge.o(.text.Timer_Init) for Timer_Init
accelerometre.o(.ARM.exidx.text.initLacheur) refers to accelerometre.o(.text.initLacheur) for [Anonymous Symbol]
accelerometre.o(.text.LacheVoile) refers to servo.o(.text.Servo_Moteur) for Servo_Moteur
accelerometre.o(.ARM.exidx.text.LacheVoile) refers to accelerometre.o(.text.LacheVoile) for [Anonymous Symbol]
girouette.o(.text.configEncoder) refers to horloge.o(.text.Timer_Init) for Timer_Init
girouette.o(.text.configEncoder) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
girouette.o(.ARM.exidx.text.configEncoder) refers to girouette.o(.text.configEncoder) for [Anonymous Symbol]
girouette.o(.ARM.exidx.text.angleVent) refers to girouette.o(.text.angleVent) for [Anonymous Symbol]
girouette.o(.ARM.exidx.text.vent2voile) refers to girouette.o(.text.vent2voile) for [Anonymous Symbol]
girouette.o(.text.LocaliserZero) refers to drivergpio.o(.text.MyGPIO_Read) for MyGPIO_Read
girouette.o(.ARM.exidx.text.LocaliserZero) refers to girouette.o(.text.LocaliserZero) for [Anonymous Symbol]
servo.o(.text.Servo_Moteur) refers to pwm.o(.text.Set_DutyCycle_PWM) for Set_DutyCycle_PWM
servo.o(.ARM.exidx.text.Servo_Moteur) refers to servo.o(.text.Servo_Moteur) for [Anonymous Symbol]
servo.o(.text.initServo) refers to horloge.o(.text.Timer_Init) for Timer_Init
servo.o(.text.initServo) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
servo.o(.text.initServo) refers to pwm.o(.text.MyTimer_PWM) for MyTimer_PWM
servo.o(.ARM.exidx.text.initServo) refers to servo.o(.text.initServo) for [Anonymous Symbol]
adc.o(.ARM.exidx.text.initADC) refers to adc.o(.text.initADC) for [Anonymous Symbol]
adc.o(.ARM.exidx.text.recupADC) refers to adc.o(.text.recupADC) for [Anonymous Symbol]
adc.o(.text.sendinfoADC) refers to adc.o(.text.recupADC) for recupADC
adc.o(.text.sendinfoADC) refers to dflti.o(.text) for __aeabi_i2d
adc.o(.text.sendinfoADC) refers to dmul.o(.text) for __aeabi_dmul
adc.o(.text.sendinfoADC) refers to dfixi.o(.text) for __aeabi_d2iz
adc.o(.text.sendinfoADC) refers to adc.o(.rodata.str1.1) for .L.str
adc.o(.text.sendinfoADC) refers to printfa.o(i.__0snprintf) for snprintf
adc.o(.text.sendinfoADC) refers to myuart.o(.text.USART_Send_String) for USART_Send_String
adc.o(.ARM.exidx.text.sendinfoADC) refers to adc.o(.text.sendinfoADC) for [Anonymous Symbol]
drivergpio.o(.ARM.exidx.text.MyGPIO_Init) refers to drivergpio.o(.text.MyGPIO_Init) for [Anonymous Symbol]
drivergpio.o(.ARM.exidx.text.MyGPIO_Read) refers to drivergpio.o(.text.MyGPIO_Read) for [Anonymous Symbol]
drivergpio.o(.ARM.exidx.text.MyGPIO_Set) refers to drivergpio.o(.text.MyGPIO_Set) for [Anonymous Symbol]
drivergpio.o(.ARM.exidx.text.MyGPIO_Reset) refers to drivergpio.o(.text.MyGPIO_Reset) for [Anonymous Symbol]
drivergpio.o(.ARM.exidx.text.MYGPIO_PinOn) refers to drivergpio.o(.text.MYGPIO_PinOn) for [Anonymous Symbol]
drivergpio.o(.ARM.exidx.text.MYGPIO_PinOff) refers to drivergpio.o(.text.MYGPIO_PinOff) for [Anonymous Symbol]
drivergpio.o(.ARM.exidx.text.MyGPIO_Toggle) refers to drivergpio.o(.text.MyGPIO_Toggle) for [Anonymous Symbol]
horloge.o(.ARM.exidx.text.Timer_Init) refers to horloge.o(.text.Timer_Init) for [Anonymous Symbol]
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.bss.TIM2_Appel) for TIM2_Appel
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.text.__NVIC_EnableIRQ) for __NVIC_EnableIRQ
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.text.__NVIC_SetPriority) for __NVIC_SetPriority
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.bss.TIM3_Appel) for TIM3_Appel
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.bss.TIM4_Appel) for TIM4_Appel
horloge.o(.ARM.exidx.text.MyTimer_ActiveIT) refers to horloge.o(.text.MyTimer_ActiveIT) for [Anonymous Symbol]
horloge.o(.ARM.exidx.text.__NVIC_EnableIRQ) refers to horloge.o(.text.__NVIC_EnableIRQ) for [Anonymous Symbol]
horloge.o(.ARM.exidx.text.__NVIC_SetPriority) refers to horloge.o(.text.__NVIC_SetPriority) for [Anonymous Symbol]
horloge.o(.text.TIM2_IRQHandler) refers to horloge.o(.bss.TIM2_Appel) for TIM2_Appel
horloge.o(.ARM.exidx.text.TIM2_IRQHandler) refers to horloge.o(.text.TIM2_IRQHandler) for [Anonymous Symbol]
horloge.o(.text.TIM3_IRQHandler) refers to horloge.o(.bss.TIM3_Appel) for TIM3_Appel
horloge.o(.ARM.exidx.text.TIM3_IRQHandler) refers to horloge.o(.text.TIM3_IRQHandler) for [Anonymous Symbol]
horloge.o(.text.TIM4_IRQHandler) refers to horloge.o(.bss.TIM4_Appel) for TIM4_Appel
horloge.o(.ARM.exidx.text.TIM4_IRQHandler) refers to horloge.o(.text.TIM4_IRQHandler) for [Anonymous Symbol]
i2c.o(.ARM.exidx.text.initI2C) refers to i2c.o(.text.initI2C) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.initGPIO_Interne) refers to mygpio.o(.text.initGPIO_Interne) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.boutonAppuye_Interne) refers to mygpio.o(.text.boutonAppuye_Interne) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.allumerDEL_Interne) refers to mygpio.o(.text.allumerDEL_Interne) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.eteindreDEL_Interne) refers to mygpio.o(.text.eteindreDEL_Interne) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.commuterDEL_Interne) refers to mygpio.o(.text.commuterDEL_Interne) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.initGPIO_Externe) refers to mygpio.o(.text.initGPIO_Externe) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.boutonAppuye_Externe) refers to mygpio.o(.text.boutonAppuye_Externe) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.allumerDEL_Externe) refers to mygpio.o(.text.allumerDEL_Externe) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.eteindreDEL_Externe) refers to mygpio.o(.text.eteindreDEL_Externe) for [Anonymous Symbol]
mygpio.o(.ARM.exidx.text.commuterDEL_Externe) refers to mygpio.o(.text.commuterDEL_Externe) for [Anonymous Symbol]
myuart.o(.text.My_USART_Config) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
myuart.o(.text.My_USART_Config) refers to myuart.o(.text.__NVIC_EnableIRQ) for __NVIC_EnableIRQ
myuart.o(.text.My_USART_Config) refers to myuart.o(.text.__NVIC_SetPriority) for __NVIC_SetPriority
myuart.o(.ARM.exidx.text.My_USART_Config) refers to myuart.o(.text.My_USART_Config) for [Anonymous Symbol]
myuart.o(.ARM.exidx.text.__NVIC_EnableIRQ) refers to myuart.o(.text.__NVIC_EnableIRQ) for [Anonymous Symbol]
myuart.o(.ARM.exidx.text.__NVIC_SetPriority) refers to myuart.o(.text.__NVIC_SetPriority) for [Anonymous Symbol]
myuart.o(.ARM.exidx.text.USART_Send_Char) refers to myuart.o(.text.USART_Send_Char) for [Anonymous Symbol]
myuart.o(.text.USART_Send_String) refers to myuart.o(.text.USART_Send_Char) for USART_Send_Char
myuart.o(.ARM.exidx.text.USART_Send_String) refers to myuart.o(.text.USART_Send_String) for [Anonymous Symbol]
myuart.o(.ARM.exidx.text.USART_IT_Receive_Enable) refers to myuart.o(.text.USART_IT_Receive_Enable) for [Anonymous Symbol]
myuart.o(.text.Init_IT_Receive) refers to myuart.o(.bss.pFnc_Receive) for pFnc_Receive
myuart.o(.ARM.exidx.text.Init_IT_Receive) refers to myuart.o(.text.Init_IT_Receive) for [Anonymous Symbol]
myuart.o(.text.USART1_IRQHandler) refers to myuart.o(.bss.pFnc_Receive) for pFnc_Receive
myuart.o(.ARM.exidx.text.USART1_IRQHandler) refers to myuart.o(.text.USART1_IRQHandler) for [Anonymous Symbol]
plateau.o(.text.initPlato) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
plateau.o(.text.initPlato) refers to horloge.o(.text.Timer_Init) for Timer_Init
plateau.o(.text.initPlato) refers to pwm.o(.text.MyTimer_PWM) for MyTimer_PWM
plateau.o(.ARM.exidx.text.initPlato) refers to plateau.o(.text.initPlato) for [Anonymous Symbol]
plateau.o(.text.Update_Motor_PWM) refers to drivergpio.o(.text.MyGPIO_Set) for MyGPIO_Set
plateau.o(.text.Update_Motor_PWM) refers to drivergpio.o(.text.MyGPIO_Reset) for MyGPIO_Reset
plateau.o(.text.Update_Motor_PWM) refers to pwm.o(.text.Set_DutyCycle_PWM_Plateau) for Set_DutyCycle_PWM_Plateau
plateau.o(.ARM.exidx.text.Update_Motor_PWM) refers to plateau.o(.text.Update_Motor_PWM) for [Anonymous Symbol]
pwm.o(.ARM.exidx.text.MyTimer_PWM) refers to pwm.o(.text.MyTimer_PWM) for [Anonymous Symbol]
pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM) refers to pwm.o(.text.Set_DutyCycle_PWM) for [Anonymous Symbol]
pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM_Plateau) refers to pwm.o(.text.Set_DutyCycle_PWM_Plateau) for [Anonymous Symbol]
rtc.o(.ARM.exidx.text.initRTC) refers to rtc.o(.text.initRTC) for [Anonymous Symbol]
rtc.o(.ARM.exidx.text.getTime) refers to rtc.o(.text.getTime) for [Anonymous Symbol]
startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(STACK) for __initial_sp
startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(.text) for Reset_Handler
startup_stm32f10x_md.o(RESET) refers to horloge.o(.text.TIM2_IRQHandler) for TIM2_IRQHandler
startup_stm32f10x_md.o(RESET) refers to horloge.o(.text.TIM3_IRQHandler) for TIM3_IRQHandler
startup_stm32f10x_md.o(RESET) refers to horloge.o(.text.TIM4_IRQHandler) for TIM4_IRQHandler
startup_stm32f10x_md.o(RESET) refers to myuart.o(.text.USART1_IRQHandler) for USART1_IRQHandler
startup_stm32f10x_md.o(.text) refers to system_stm32f10x.o(.text.SystemInit) for SystemInit
startup_stm32f10x_md.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main
system_stm32f10x.o(.text.SystemInit) refers to system_stm32f10x.o(.text.SetSysClock) for SetSysClock
system_stm32f10x.o(.ARM.exidx.text.SystemInit) refers to system_stm32f10x.o(.text.SystemInit) for [Anonymous Symbol]
system_stm32f10x.o(.text.SetSysClock) refers to system_stm32f10x.o(.text.SetSysClockTo72) for SetSysClockTo72
system_stm32f10x.o(.ARM.exidx.text.SetSysClock) refers to system_stm32f10x.o(.text.SetSysClock) for [Anonymous Symbol]
system_stm32f10x.o(.text.SystemCoreClockUpdate) refers to system_stm32f10x.o(.data.SystemCoreClock) for SystemCoreClock
system_stm32f10x.o(.text.SystemCoreClockUpdate) refers to system_stm32f10x.o(.rodata.AHBPrescTable) for AHBPrescTable
system_stm32f10x.o(.ARM.exidx.text.SystemCoreClockUpdate) refers to system_stm32f10x.o(.text.SystemCoreClockUpdate) for [Anonymous Symbol]
system_stm32f10x.o(.ARM.exidx.text.SetSysClockTo72) refers to system_stm32f10x.o(.text.SetSysClockTo72) for [Anonymous Symbol]
myspi.o(i.MySPI_Clear_NSS) refers to myspi.o(.data) for ActiveSPI
myspi.o(i.MySPI_Init) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
myspi.o(i.MySPI_Init) refers to myspi.o(.data) for ActiveSPI
myspi.o(i.MySPI_Read) refers to myspi.o(.data) for ActiveSPI
myspi.o(i.MySPI_Send) refers to myspi.o(.data) for ActiveSPI
myspi.o(i.MySPI_Set_NSS) refers to myspi.o(.data) for ActiveSPI
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000D) for __rt_final_cpp
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$0000000F) for __rt_final_exit
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry9a.o(.ARM.Collect$$$$0000000B) for _main_init
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk
printfa.o(i.__0fprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0fprintf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0fprintf) refers to fputc.o(i.fputc) for fputc
printfa.o(i.__0printf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0printf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0printf) refers to fputc.o(i.fputc) for fputc
printfa.o(i.__0printf) refers to stdout.o(.data) for __stdout
printfa.o(i.__0snprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0snprintf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0snprintf) refers to printfa.o(i._snputc) for _snputc
printfa.o(i.__0sprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0sprintf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0sprintf) refers to printfa.o(i._sputc) for _sputc
printfa.o(i.__0vfprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0vfprintf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0vfprintf) refers to fputc.o(i.fputc) for fputc
printfa.o(i.__0vprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0vprintf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0vprintf) refers to fputc.o(i.fputc) for fputc
printfa.o(i.__0vprintf) refers to stdout.o(.data) for __stdout
printfa.o(i.__0vsnprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0vsnprintf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0vsnprintf) refers to printfa.o(i._snputc) for _snputc
printfa.o(i.__0vsprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i.__0vsprintf) refers to printfa.o(i._printf_core) for _printf_core
printfa.o(i.__0vsprintf) refers to printfa.o(i._sputc) for _sputc
printfa.o(i._fp_digits) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i._fp_digits) refers to dmul.o(.text) for __aeabi_dmul
printfa.o(i._fp_digits) refers to ddiv.o(.text) for __aeabi_ddiv
printfa.o(i._fp_digits) refers to cdrcmple.o(.text) for __aeabi_cdrcmple
printfa.o(i._fp_digits) refers to dadd.o(.text) for __aeabi_dadd
printfa.o(i._fp_digits) refers to dfixul.o(.text) for __aeabi_d2ulz
printfa.o(i._fp_digits) refers to uldiv.o(.text) for __aeabi_uldivmod
printfa.o(i._printf_core) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i._printf_core) refers to printfa.o(i._printf_pre_padding) for _printf_pre_padding
printfa.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod
printfa.o(i._printf_core) refers to printfa.o(i._printf_post_padding) for _printf_post_padding
printfa.o(i._printf_core) refers to printfa.o(i._fp_digits) for _fp_digits
printfa.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod
printfa.o(i._printf_post_padding) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i._printf_pre_padding) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i._snputc) refers (Special) to iusefp.o(.text) for __I$use$fp
printfa.o(i._sputc) refers (Special) to iusefp.o(.text) for __I$use$fp
dmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
dmul.o(.text) refers to depilogue.o(.text) for _double_epilogue
dflti.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
dflti.o(.text) refers to depilogue.o(.text) for _double_epilogue
dfixi.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
dfixi.o(.text) refers to llushr.o(.text) for __aeabi_llsr
entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000
entry2.o(.ARM.Collect$$$$00002712) refers to startup_stm32f10x_md.o(STACK) for __initial_sp
entry2.o(__vectab_stack_and_reset_area) refers to startup_stm32f10x_md.o(STACK) for __initial_sp
entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main
entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload
entry9a.o(.ARM.Collect$$$$0000000B) refers to principal.o(.text.main) for main
entry9b.o(.ARM.Collect$$$$0000000C) refers to principal.o(.text.main) for main
fputc.o(i.fputc) refers (Special) to iusesemip.o(.text) for __I$use$semihosting$fputc
fputc.o(i.fputc) refers (Special) to semi.o(.text) for __semihosting_library_function
fputc_h.o(i._fputc$hlt) refers (Special) to iusesemip.o(.text) for __I$use$semihosting$fputc
fputc_h.o(i._fputc$hlt) refers (Special) to semi.o(.text) for __semihosting_library_function
uldiv.o(.text) refers to llushr.o(.text) for __aeabi_llsr
uldiv.o(.text) refers to llshl.o(.text) for __aeabi_llsl
depilogue.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
depilogue.o(.text) refers to llshl.o(.text) for __aeabi_llsl
depilogue.o(.text) refers to llushr.o(.text) for __aeabi_llsr
dadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
dadd.o(.text) refers to llshl.o(.text) for __aeabi_llsl
dadd.o(.text) refers to llsshr.o(.text) for __aeabi_lasr
dadd.o(.text) refers to depilogue.o(.text) for _double_epilogue
ddiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
ddiv.o(.text) refers to depilogue.o(.text) for _double_round
dfixul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
dfixul.o(.text) refers to llushr.o(.text) for __aeabi_llsr
dfixul.o(.text) refers to llshl.o(.text) for __aeabi_llsl
cdrcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload
==============================================================================
Removing Unused input sections from the image.
Removing principal.o(.text), (0 bytes).
Removing principal.o(.ARM.exidx.text.pilotage), (8 bytes).
Removing principal.o(.ARM.exidx.text.main), (8 bytes).
Removing principal.o(.ARM.use_no_argv), (4 bytes).
Removing accelerometre.o(.text), (0 bytes).
Removing accelerometre.o(.ARM.exidx.text.initAccelo), (8 bytes).
Removing accelerometre.o(.ARM.exidx.text.RecupAccelo), (8 bytes).
Removing accelerometre.o(.text.initLacheur), (46 bytes).
Removing accelerometre.o(.ARM.exidx.text.initLacheur), (8 bytes).
Removing accelerometre.o(.ARM.exidx.text.LacheVoile), (8 bytes).
Removing girouette.o(.text), (0 bytes).
Removing girouette.o(.ARM.exidx.text.configEncoder), (8 bytes).
Removing girouette.o(.ARM.exidx.text.angleVent), (8 bytes).
Removing girouette.o(.ARM.exidx.text.vent2voile), (8 bytes).
Removing girouette.o(.ARM.exidx.text.LocaliserZero), (8 bytes).
Removing servo.o(.text), (0 bytes).
Removing servo.o(.ARM.exidx.text.Servo_Moteur), (8 bytes).
Removing servo.o(.ARM.exidx.text.initServo), (8 bytes).
Removing adc.o(.text), (0 bytes).
Removing adc.o(.ARM.exidx.text.initADC), (8 bytes).
Removing adc.o(.ARM.exidx.text.recupADC), (8 bytes).
Removing adc.o(.ARM.exidx.text.sendinfoADC), (8 bytes).
Removing drivergpio.o(.text), (0 bytes).
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Init), (8 bytes).
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Read), (8 bytes).
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Set), (8 bytes).
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Reset), (8 bytes).
Removing drivergpio.o(.text.MYGPIO_PinOn), (30 bytes).
Removing drivergpio.o(.ARM.exidx.text.MYGPIO_PinOn), (8 bytes).
Removing drivergpio.o(.text.MYGPIO_PinOff), (30 bytes).
Removing drivergpio.o(.ARM.exidx.text.MYGPIO_PinOff), (8 bytes).
Removing drivergpio.o(.text.MyGPIO_Toggle), (30 bytes).
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Toggle), (8 bytes).
Removing horloge.o(.text), (0 bytes).
Removing horloge.o(.ARM.exidx.text.Timer_Init), (8 bytes).
Removing horloge.o(.text.MyTimer_ActiveIT), (268 bytes).
Removing horloge.o(.ARM.exidx.text.MyTimer_ActiveIT), (8 bytes).
Removing horloge.o(.text.__NVIC_EnableIRQ), (48 bytes).
Removing horloge.o(.ARM.exidx.text.__NVIC_EnableIRQ), (8 bytes).
Removing horloge.o(.text.__NVIC_SetPriority), (66 bytes).
Removing horloge.o(.ARM.exidx.text.__NVIC_SetPriority), (8 bytes).
Removing horloge.o(.ARM.exidx.text.TIM2_IRQHandler), (8 bytes).
Removing horloge.o(.ARM.exidx.text.TIM3_IRQHandler), (8 bytes).
Removing horloge.o(.ARM.exidx.text.TIM4_IRQHandler), (8 bytes).
Removing i2c.o(.text), (0 bytes).
Removing i2c.o(.text.initI2C), (42 bytes).
Removing i2c.o(.ARM.exidx.text.initI2C), (8 bytes).
Removing mygpio.o(.text), (0 bytes).
Removing mygpio.o(.text.initGPIO_Interne), (66 bytes).
Removing mygpio.o(.ARM.exidx.text.initGPIO_Interne), (8 bytes).
Removing mygpio.o(.text.boutonAppuye_Interne), (16 bytes).
Removing mygpio.o(.ARM.exidx.text.boutonAppuye_Interne), (8 bytes).
Removing mygpio.o(.text.allumerDEL_Interne), (18 bytes).
Removing mygpio.o(.ARM.exidx.text.allumerDEL_Interne), (8 bytes).
Removing mygpio.o(.text.eteindreDEL_Interne), (18 bytes).
Removing mygpio.o(.ARM.exidx.text.eteindreDEL_Interne), (8 bytes).
Removing mygpio.o(.text.commuterDEL_Interne), (18 bytes).
Removing mygpio.o(.ARM.exidx.text.commuterDEL_Interne), (8 bytes).
Removing mygpio.o(.text.initGPIO_Externe), (58 bytes).
Removing mygpio.o(.ARM.exidx.text.initGPIO_Externe), (8 bytes).
Removing mygpio.o(.text.boutonAppuye_Externe), (16 bytes).
Removing mygpio.o(.ARM.exidx.text.boutonAppuye_Externe), (8 bytes).
Removing mygpio.o(.text.allumerDEL_Externe), (18 bytes).
Removing mygpio.o(.ARM.exidx.text.allumerDEL_Externe), (8 bytes).
Removing mygpio.o(.text.eteindreDEL_Externe), (18 bytes).
Removing mygpio.o(.ARM.exidx.text.eteindreDEL_Externe), (8 bytes).
Removing mygpio.o(.text.commuterDEL_Externe), (18 bytes).
Removing mygpio.o(.ARM.exidx.text.commuterDEL_Externe), (8 bytes).
Removing myuart.o(.text), (0 bytes).
Removing myuart.o(.ARM.exidx.text.My_USART_Config), (8 bytes).
Removing myuart.o(.ARM.exidx.text.__NVIC_EnableIRQ), (8 bytes).
Removing myuart.o(.ARM.exidx.text.__NVIC_SetPriority), (8 bytes).
Removing myuart.o(.ARM.exidx.text.USART_Send_Char), (8 bytes).
Removing myuart.o(.ARM.exidx.text.USART_Send_String), (8 bytes).
Removing myuart.o(.ARM.exidx.text.USART_IT_Receive_Enable), (8 bytes).
Removing myuart.o(.ARM.exidx.text.Init_IT_Receive), (8 bytes).
Removing myuart.o(.ARM.exidx.text.USART1_IRQHandler), (8 bytes).
Removing plateau.o(.text), (0 bytes).
Removing plateau.o(.ARM.exidx.text.initPlato), (8 bytes).
Removing plateau.o(.ARM.exidx.text.Update_Motor_PWM), (8 bytes).
Removing pwm.o(.text), (0 bytes).
Removing pwm.o(.ARM.exidx.text.MyTimer_PWM), (8 bytes).
Removing pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM), (8 bytes).
Removing pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM_Plateau), (8 bytes).
Removing rtc.o(.text), (0 bytes).
Removing rtc.o(.text.initRTC), (30 bytes).
Removing rtc.o(.ARM.exidx.text.initRTC), (8 bytes).
Removing rtc.o(.text.getTime), (12 bytes).
Removing rtc.o(.ARM.exidx.text.getTime), (8 bytes).
Removing startup_stm32f10x_md.o(HEAP), (512 bytes).
Removing system_stm32f10x.o(.text), (0 bytes).
Removing system_stm32f10x.o(.ARM.exidx.text.SystemInit), (8 bytes).
Removing system_stm32f10x.o(.ARM.exidx.text.SetSysClock), (8 bytes).
Removing system_stm32f10x.o(.text.SystemCoreClockUpdate), (290 bytes).
Removing system_stm32f10x.o(.ARM.exidx.text.SystemCoreClockUpdate), (8 bytes).
Removing system_stm32f10x.o(.ARM.exidx.text.SetSysClockTo72), (8 bytes).
Removing system_stm32f10x.o(.data.SystemCoreClock), (4 bytes).
Removing system_stm32f10x.o(.rodata.AHBPrescTable), (16 bytes).
Removing myspi.o(.rev16_text), (4 bytes).
Removing myspi.o(.revsh_text), (4 bytes).
Removing myspi.o(.rrx_text), (6 bytes).
101 unused section(s) (total 2178 bytes) removed from the image.
==============================================================================
Image Symbol Table
Local Symbols
Symbol Name Value Ov Type Size Object(Section)
../clib/division.s 0x00000000 Number 0 aeabi_sdiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/stdio/fputc.c 0x00000000 Number 0 fputc.o ABSOLUTE
../clib/microlib/stdio/fputc.c 0x00000000 Number 0 fputc_h.o ABSOLUTE
../clib/microlib/stdio/semi.s 0x00000000 Number 0 semi.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusesemip.o ABSOLUTE
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE
../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE
../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixi.o ABSOLUTE
../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE
../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE
../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE
ADC.c 0x00000000 Number 0 adc.o ABSOLUTE
Accelerometre.c 0x00000000 Number 0 accelerometre.o ABSOLUTE
DriverGPIO.c 0x00000000 Number 0 drivergpio.o ABSOLUTE
Girouette.c 0x00000000 Number 0 girouette.o ABSOLUTE
Horloge.c 0x00000000 Number 0 horloge.o ABSOLUTE
I2C.c 0x00000000 Number 0 i2c.o ABSOLUTE
MYGPIO.c 0x00000000 Number 0 mygpio.o ABSOLUTE
MyDrivers\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
MyDrivers\\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
MyUart.c 0x00000000 Number 0 myuart.o ABSOLUTE
PWM.c 0x00000000 Number 0 pwm.o ABSOLUTE
Plateau.c 0x00000000 Number 0 plateau.o ABSOLUTE
RTC.c 0x00000000 Number 0 rtc.o ABSOLUTE
RTE/Device/STM32F103RB/startup_stm32f10x_md.s 0x00000000 Number 0 startup_stm32f10x_md.o ABSOLUTE
Servo.c 0x00000000 Number 0 servo.o ABSOLUTE
cdrcmple.s 0x00000000 Number 0 cdrcmple.o ABSOLUTE
dc.s 0x00000000 Number 0 dc.o ABSOLUTE
handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE
init.s 0x00000000 Number 0 init.o ABSOLUTE
principal.c 0x00000000 Number 0 principal.o ABSOLUTE
system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE
RESET 0x08000000 Section 236 startup_stm32f10x_md.o(RESET)
.ARM.Collect$$$$00000000 0x080000ec Section 0 entry.o(.ARM.Collect$$$$00000000)
.ARM.Collect$$$$00000001 0x080000ec Section 4 entry2.o(.ARM.Collect$$$$00000001)
.ARM.Collect$$$$00000004 0x080000f0 Section 4 entry5.o(.ARM.Collect$$$$00000004)
.ARM.Collect$$$$00000008 0x080000f4 Section 0 entry7b.o(.ARM.Collect$$$$00000008)
.ARM.Collect$$$$0000000A 0x080000f4 Section 0 entry8b.o(.ARM.Collect$$$$0000000A)
.ARM.Collect$$$$0000000B 0x080000f4 Section 8 entry9a.o(.ARM.Collect$$$$0000000B)
__lit__00000000 0x080000fc Data 4 entry2.o(.ARM.Collect$$$$00002712)
.ARM.Collect$$$$0000000D 0x080000fc Section 0 entry10a.o(.ARM.Collect$$$$0000000D)
.ARM.Collect$$$$0000000F 0x080000fc Section 0 entry11a.o(.ARM.Collect$$$$0000000F)
.ARM.Collect$$$$00002712 0x080000fc Section 4 entry2.o(.ARM.Collect$$$$00002712)
.text 0x08000100 Section 36 startup_stm32f10x_md.o(.text)
.text 0x08000124 Section 0 dmul.o(.text)
.text 0x08000208 Section 0 dflti.o(.text)
.text 0x0800022a Section 0 dfixi.o(.text)
.text 0x08000268 Section 0 uidiv.o(.text)
.text 0x08000294 Section 0 uldiv.o(.text)
.text 0x080002f6 Section 0 llushr.o(.text)
.text 0x08000316 Section 0 iusefp.o(.text)
.text 0x08000316 Section 0 depilogue.o(.text)
.text 0x080003d0 Section 0 dadd.o(.text)
.text 0x0800051e Section 0 ddiv.o(.text)
.text 0x080005fc Section 0 dfixul.o(.text)
.text 0x0800062c Section 48 cdrcmple.o(.text)
.text 0x0800065c Section 48 init.o(.text)
.text 0x0800068c Section 0 llshl.o(.text)
.text 0x080006aa Section 0 llsshr.o(.text)
[Anonymous Symbol] 0x080006d0 Section 0 myuart.o(.text.Init_IT_Receive)
[Anonymous Symbol] 0x080006e4 Section 0 accelerometre.o(.text.LacheVoile)
[Anonymous Symbol] 0x08000724 Section 0 girouette.o(.text.LocaliserZero)
[Anonymous Symbol] 0x08000760 Section 0 drivergpio.o(.text.MyGPIO_Init)
[Anonymous Symbol] 0x08000928 Section 0 drivergpio.o(.text.MyGPIO_Read)
[Anonymous Symbol] 0x08000944 Section 0 drivergpio.o(.text.MyGPIO_Reset)
[Anonymous Symbol] 0x08000960 Section 0 drivergpio.o(.text.MyGPIO_Set)
[Anonymous Symbol] 0x08000978 Section 0 pwm.o(.text.MyTimer_PWM)
[Anonymous Symbol] 0x08000d6c Section 0 myuart.o(.text.My_USART_Config)
[Anonymous Symbol] 0x08000dd8 Section 0 accelerometre.o(.text.RecupAccelo)
[Anonymous Symbol] 0x08000e44 Section 0 servo.o(.text.Servo_Moteur)
SetSysClock 0x08000e7d Thumb Code 8 system_stm32f10x.o(.text.SetSysClock)
[Anonymous Symbol] 0x08000e7c Section 0 system_stm32f10x.o(.text.SetSysClock)
SetSysClockTo72 0x08000e85 Thumb Code 290 system_stm32f10x.o(.text.SetSysClockTo72)
[Anonymous Symbol] 0x08000e84 Section 0 system_stm32f10x.o(.text.SetSysClockTo72)
[Anonymous Symbol] 0x08000fa8 Section 0 pwm.o(.text.Set_DutyCycle_PWM)
[Anonymous Symbol] 0x08001010 Section 0 pwm.o(.text.Set_DutyCycle_PWM_Plateau)
[Anonymous Symbol] 0x0800108c Section 0 system_stm32f10x.o(.text.SystemInit)
[Anonymous Symbol] 0x080010f4 Section 0 horloge.o(.text.TIM2_IRQHandler)
[Anonymous Symbol] 0x08001134 Section 0 horloge.o(.text.TIM3_IRQHandler)
[Anonymous Symbol] 0x08001178 Section 0 horloge.o(.text.TIM4_IRQHandler)
[Anonymous Symbol] 0x080011bc Section 0 horloge.o(.text.Timer_Init)
[Anonymous Symbol] 0x080012a4 Section 0 myuart.o(.text.USART1_IRQHandler)
[Anonymous Symbol] 0x080012dc Section 0 myuart.o(.text.USART_IT_Receive_Enable)
[Anonymous Symbol] 0x080012f0 Section 0 myuart.o(.text.USART_Send_Char)
[Anonymous Symbol] 0x08001314 Section 0 myuart.o(.text.USART_Send_String)
[Anonymous Symbol] 0x0800133c Section 0 plateau.o(.text.Update_Motor_PWM)
__NVIC_EnableIRQ 0x08001391 Thumb Code 48 myuart.o(.text.__NVIC_EnableIRQ)
[Anonymous Symbol] 0x08001390 Section 0 myuart.o(.text.__NVIC_EnableIRQ)
__NVIC_SetPriority 0x080013c1 Thumb Code 66 myuart.o(.text.__NVIC_SetPriority)
[Anonymous Symbol] 0x080013c0 Section 0 myuart.o(.text.__NVIC_SetPriority)
[Anonymous Symbol] 0x08001404 Section 0 girouette.o(.text.angleVent)
[Anonymous Symbol] 0x0800143c Section 0 girouette.o(.text.configEncoder)
[Anonymous Symbol] 0x080014dc Section 0 adc.o(.text.initADC)
[Anonymous Symbol] 0x08001564 Section 0 accelerometre.o(.text.initAccelo)
[Anonymous Symbol] 0x080015cc Section 0 plateau.o(.text.initPlato)
[Anonymous Symbol] 0x08001638 Section 0 servo.o(.text.initServo)
[Anonymous Symbol] 0x08001694 Section 0 principal.o(.text.main)
[Anonymous Symbol] 0x08001804 Section 0 principal.o(.text.pilotage)
[Anonymous Symbol] 0x08001820 Section 0 adc.o(.text.recupADC)
[Anonymous Symbol] 0x08001834 Section 0 adc.o(.text.sendinfoADC)
[Anonymous Symbol] 0x080018f8 Section 0 girouette.o(.text.vent2voile)
i.MySPI_Clear_NSS 0x08001930 Section 0 myspi.o(i.MySPI_Clear_NSS)
i.MySPI_Init 0x08001960 Section 0 myspi.o(i.MySPI_Init)
i.MySPI_Read 0x08001b54 Section 0 myspi.o(i.MySPI_Read)
i.MySPI_Send 0x08001ba8 Section 0 myspi.o(i.MySPI_Send)
i.MySPI_Set_NSS 0x08001bf8 Section 0 myspi.o(i.MySPI_Set_NSS)
i.__0snprintf 0x08001c24 Section 0 printfa.o(i.__0snprintf)
i.__scatterload_copy 0x08001c58 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001c66 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001c68 Section 14 handlers.o(i.__scatterload_zeroinit)
_fp_digits 0x08001c79 Thumb Code 366 printfa.o(i._fp_digits)
i._fp_digits 0x08001c78 Section 0 printfa.o(i._fp_digits)
_printf_core 0x08001dfd Thumb Code 1744 printfa.o(i._printf_core)
i._printf_core 0x08001dfc Section 0 printfa.o(i._printf_core)
_printf_post_padding 0x080024d9 Thumb Code 36 printfa.o(i._printf_post_padding)
i._printf_post_padding 0x080024d8 Section 0 printfa.o(i._printf_post_padding)
_printf_pre_padding 0x080024fd Thumb Code 46 printfa.o(i._printf_pre_padding)
i._printf_pre_padding 0x080024fc Section 0 printfa.o(i._printf_pre_padding)
_snputc 0x0800252b Thumb Code 22 printfa.o(i._snputc)
i._snputc 0x0800252a Section 0 printfa.o(i._snputc)
.L.str 0x08002540 Data 17 principal.o(.rodata.str1.1)
[Anonymous Symbol] 0x08002540 Section 0 principal.o(.rodata.str1.1)
.L.str 0x08002551 Data 55 adc.o(.rodata.str1.1)
[Anonymous Symbol] 0x08002551 Section 0 adc.o(.rodata.str1.1)
.L.str.1 0x08002588 Data 27 adc.o(.rodata.str1.1)
.data 0x20000000 Section 4 myspi.o(.data)
RecupAccelo.Messie 0x20000008 Data 6 accelerometre.o(.bss.RecupAccelo.Messie)
[Anonymous Symbol] 0x20000008 Section 0 accelerometre.o(.bss.RecupAccelo.Messie)
TIM2_Appel 0x20000010 Data 4 horloge.o(.bss.TIM2_Appel)
[Anonymous Symbol] 0x20000010 Section 0 horloge.o(.bss.TIM2_Appel)
TIM3_Appel 0x20000014 Data 4 horloge.o(.bss.TIM3_Appel)
[Anonymous Symbol] 0x20000014 Section 0 horloge.o(.bss.TIM3_Appel)
TIM4_Appel 0x20000018 Data 4 horloge.o(.bss.TIM4_Appel)
[Anonymous Symbol] 0x20000018 Section 0 horloge.o(.bss.TIM4_Appel)
STACK 0x20000030 Section 1024 startup_stm32f10x_md.o(STACK)
Global Symbols
Symbol Name Value Ov Type Size Object(Section)
BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$~IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$ROPI$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE
__cpp_initialize__aeabi_ - Undefined Weak Reference
__cxa_finalize - Undefined Weak Reference
__decompress - Undefined Weak Reference
_clock_init - Undefined Weak Reference
_microlib_exit - Undefined Weak Reference
__Vectors_Size 0x000000ec Number 0 startup_stm32f10x_md.o ABSOLUTE
__Vectors 0x08000000 Data 4 startup_stm32f10x_md.o(RESET)
__Vectors_End 0x080000ec Data 0 startup_stm32f10x_md.o(RESET)
__main 0x080000ed Thumb Code 0 entry.o(.ARM.Collect$$$$00000000)
_main_stk 0x080000ed Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001)
_main_scatterload 0x080000f1 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004)
__main_after_scatterload 0x080000f5 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004)
_main_clock 0x080000f5 Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008)
_main_cpp_init 0x080000f5 Thumb Code 0 entry8b.o(.ARM.Collect$$$$0000000A)
_main_init 0x080000f5 Thumb Code 0 entry9a.o(.ARM.Collect$$$$0000000B)
__rt_final_cpp 0x080000fd Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000D)
__rt_final_exit 0x080000fd Thumb Code 0 entry11a.o(.ARM.Collect$$$$0000000F)
Reset_Handler 0x08000101 Thumb Code 8 startup_stm32f10x_md.o(.text)
NMI_Handler 0x08000109 Thumb Code 2 startup_stm32f10x_md.o(.text)
HardFault_Handler 0x0800010b Thumb Code 2 startup_stm32f10x_md.o(.text)
MemManage_Handler 0x0800010d Thumb Code 2 startup_stm32f10x_md.o(.text)
BusFault_Handler 0x0800010f Thumb Code 2 startup_stm32f10x_md.o(.text)
UsageFault_Handler 0x08000111 Thumb Code 2 startup_stm32f10x_md.o(.text)
SVC_Handler 0x08000113 Thumb Code 2 startup_stm32f10x_md.o(.text)
DebugMon_Handler 0x08000115 Thumb Code 2 startup_stm32f10x_md.o(.text)
PendSV_Handler 0x08000117 Thumb Code 2 startup_stm32f10x_md.o(.text)
SysTick_Handler 0x08000119 Thumb Code 2 startup_stm32f10x_md.o(.text)
ADC1_2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_RX1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_SCE_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel4_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel5_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel6_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel7_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
EXTI0_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
EXTI15_10_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
EXTI1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
EXTI2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
EXTI3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
EXTI4_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
EXTI9_5_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
FLASH_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
I2C1_ER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
I2C1_EV_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
I2C2_ER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
I2C2_EV_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
PVD_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
RCC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
RTCAlarm_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
RTC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
SPI1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
SPI2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
TAMPER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
TIM1_BRK_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
TIM1_CC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
TIM1_TRG_COM_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
TIM1_UP_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
USART2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
USART3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
USBWakeUp_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
USB_HP_CAN1_TX_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
USB_LP_CAN1_RX0_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
WWDG_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
__aeabi_dmul 0x08000125 Thumb Code 228 dmul.o(.text)
__aeabi_i2d 0x08000209 Thumb Code 34 dflti.o(.text)
__aeabi_d2iz 0x0800022b Thumb Code 62 dfixi.o(.text)
__aeabi_uidiv 0x08000269 Thumb Code 0 uidiv.o(.text)
__aeabi_uidivmod 0x08000269 Thumb Code 44 uidiv.o(.text)
__aeabi_uldivmod 0x08000295 Thumb Code 98 uldiv.o(.text)
__aeabi_llsr 0x080002f7 Thumb Code 32 llushr.o(.text)
_ll_ushift_r 0x080002f7 Thumb Code 0 llushr.o(.text)
__I$use$fp 0x08000317 Thumb Code 0 iusefp.o(.text)
_double_round 0x08000317 Thumb Code 30 depilogue.o(.text)
_double_epilogue 0x08000335 Thumb Code 156 depilogue.o(.text)
__aeabi_dadd 0x080003d1 Thumb Code 322 dadd.o(.text)
__aeabi_dsub 0x08000513 Thumb Code 6 dadd.o(.text)
__aeabi_drsub 0x08000519 Thumb Code 6 dadd.o(.text)
__aeabi_ddiv 0x0800051f Thumb Code 222 ddiv.o(.text)
__aeabi_d2ulz 0x080005fd Thumb Code 48 dfixul.o(.text)
__aeabi_cdrcmple 0x0800062d Thumb Code 48 cdrcmple.o(.text)
__scatterload 0x0800065d Thumb Code 38 init.o(.text)
__scatterload_rt2 0x0800065d Thumb Code 0 init.o(.text)
__aeabi_llsl 0x0800068d Thumb Code 30 llshl.o(.text)
_ll_shift_l 0x0800068d Thumb Code 0 llshl.o(.text)
__aeabi_lasr 0x080006ab Thumb Code 36 llsshr.o(.text)
_ll_sshift_r 0x080006ab Thumb Code 0 llsshr.o(.text)
Init_IT_Receive 0x080006d1 Thumb Code 20 myuart.o(.text.Init_IT_Receive)
LacheVoile 0x080006e5 Thumb Code 64 accelerometre.o(.text.LacheVoile)
LocaliserZero 0x08000725 Thumb Code 58 girouette.o(.text.LocaliserZero)
MyGPIO_Init 0x08000761 Thumb Code 454 drivergpio.o(.text.MyGPIO_Init)
MyGPIO_Read 0x08000929 Thumb Code 26 drivergpio.o(.text.MyGPIO_Read)
MyGPIO_Reset 0x08000945 Thumb Code 28 drivergpio.o(.text.MyGPIO_Reset)
MyGPIO_Set 0x08000961 Thumb Code 24 drivergpio.o(.text.MyGPIO_Set)
MyTimer_PWM 0x08000979 Thumb Code 1010 pwm.o(.text.MyTimer_PWM)
My_USART_Config 0x08000d6d Thumb Code 108 myuart.o(.text.My_USART_Config)
RecupAccelo 0x08000dd9 Thumb Code 108 accelerometre.o(.text.RecupAccelo)
Servo_Moteur 0x08000e45 Thumb Code 56 servo.o(.text.Servo_Moteur)
Set_DutyCycle_PWM 0x08000fa9 Thumb Code 102 pwm.o(.text.Set_DutyCycle_PWM)
Set_DutyCycle_PWM_Plateau 0x08001011 Thumb Code 124 pwm.o(.text.Set_DutyCycle_PWM_Plateau)
SystemInit 0x0800108d Thumb Code 102 system_stm32f10x.o(.text.SystemInit)
TIM2_IRQHandler 0x080010f5 Thumb Code 62 horloge.o(.text.TIM2_IRQHandler)
TIM3_IRQHandler 0x08001135 Thumb Code 66 horloge.o(.text.TIM3_IRQHandler)
TIM4_IRQHandler 0x08001179 Thumb Code 66 horloge.o(.text.TIM4_IRQHandler)
Timer_Init 0x080011bd Thumb Code 230 horloge.o(.text.Timer_Init)
USART1_IRQHandler 0x080012a5 Thumb Code 54 myuart.o(.text.USART1_IRQHandler)
USART_IT_Receive_Enable 0x080012dd Thumb Code 18 myuart.o(.text.USART_IT_Receive_Enable)
USART_Send_Char 0x080012f1 Thumb Code 36 myuart.o(.text.USART_Send_Char)
USART_Send_String 0x08001315 Thumb Code 40 myuart.o(.text.USART_Send_String)
Update_Motor_PWM 0x0800133d Thumb Code 84 plateau.o(.text.Update_Motor_PWM)
angleVent 0x08001405 Thumb Code 54 girouette.o(.text.angleVent)
configEncoder 0x0800143d Thumb Code 160 girouette.o(.text.configEncoder)
initADC 0x080014dd Thumb Code 136 adc.o(.text.initADC)
initAccelo 0x08001565 Thumb Code 104 accelerometre.o(.text.initAccelo)
initPlato 0x080015cd Thumb Code 106 plateau.o(.text.initPlato)
initServo 0x08001639 Thumb Code 92 servo.o(.text.initServo)
main 0x08001695 Thumb Code 366 principal.o(.text.main)
pilotage 0x08001805 Thumb Code 26 principal.o(.text.pilotage)
recupADC 0x08001821 Thumb Code 20 adc.o(.text.recupADC)
sendinfoADC 0x08001835 Thumb Code 196 adc.o(.text.sendinfoADC)
vent2voile 0x080018f9 Thumb Code 54 girouette.o(.text.vent2voile)
MySPI_Clear_NSS 0x08001931 Thumb Code 30 myspi.o(i.MySPI_Clear_NSS)
MySPI_Init 0x08001961 Thumb Code 480 myspi.o(i.MySPI_Init)
MySPI_Read 0x08001b55 Thumb Code 70 myspi.o(i.MySPI_Read)
MySPI_Send 0x08001ba9 Thumb Code 68 myspi.o(i.MySPI_Send)
MySPI_Set_NSS 0x08001bf9 Thumb Code 28 myspi.o(i.MySPI_Set_NSS)
__0snprintf 0x08001c25 Thumb Code 48 printfa.o(i.__0snprintf)
__1snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
__2snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
__c89snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
__scatterload_copy 0x08001c59 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001c67 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001c69 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
Region$$Table$$Base 0x080025a4 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080025c4 Number 0 anon$$obj.o(Region$$Table)
ActiveSPI 0x20000000 Data 4 myspi.o(.data)
angleVentVar 0x2000001c Data 4 principal.o(.bss.angleVentVar)
angleVoileVar 0x20000020 Data 4 principal.o(.bss.angleVoileVar)
moy 0x20000024 Data 4 principal.o(.bss.moy)
pFnc_Receive 0x20000028 Data 4 myuart.o(.bss.pFnc_Receive)
__initial_sp 0x20000430 Data 0 startup_stm32f10x_md.o(STACK)
==============================================================================
Memory Map of the image
Image Entry point : 0x08000101
Load Region LR_1 (Base: 0x08000000, Size: 0x000025c8, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000025c4, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000ec Data RO 214 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000000 Code RO 255 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x080000ec 0x080000ec 0x00000004 Code RO 292 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x080000f0 0x080000f0 0x00000004 Code RO 295 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x080000f4 0x080000f4 0x00000000 Code RO 297 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x080000f4 0x080000f4 0x00000000 Code RO 299 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x080000f4 0x080000f4 0x00000008 Code RO 300 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x080000fc 0x080000fc 0x00000000 Code RO 302 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
0x080000fc 0x080000fc 0x00000000 Code RO 304 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
0x080000fc 0x080000fc 0x00000004 Code RO 293 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000100 0x08000100 0x00000024 Code RO 215 * .text startup_stm32f10x_md.o
0x08000124 0x08000124 0x000000e4 Code RO 286 .text mf_w.l(dmul.o)
0x08000208 0x08000208 0x00000022 Code RO 288 .text mf_w.l(dflti.o)
0x0800022a 0x0800022a 0x0000003e Code RO 290 .text mf_w.l(dfixi.o)
0x08000268 0x08000268 0x0000002c Code RO 320 .text mc_w.l(uidiv.o)
0x08000294 0x08000294 0x00000062 Code RO 322 .text mc_w.l(uldiv.o)
0x080002f6 0x080002f6 0x00000020 Code RO 324 .text mc_w.l(llushr.o)
0x08000316 0x08000316 0x00000000 Code RO 326 .text mc_w.l(iusefp.o)
0x08000316 0x08000316 0x000000ba Code RO 327 .text mf_w.l(depilogue.o)
0x080003d0 0x080003d0 0x0000014e Code RO 329 .text mf_w.l(dadd.o)
0x0800051e 0x0800051e 0x000000de Code RO 331 .text mf_w.l(ddiv.o)
0x080005fc 0x080005fc 0x00000030 Code RO 333 .text mf_w.l(dfixul.o)
0x0800062c 0x0800062c 0x00000030 Code RO 335 .text mf_w.l(cdrcmple.o)
0x0800065c 0x0800065c 0x00000030 Code RO 337 .text mc_w.l(init.o)
0x0800068c 0x0800068c 0x0000001e Code RO 340 .text mc_w.l(llshl.o)
0x080006aa 0x080006aa 0x00000024 Code RO 342 .text mc_w.l(llsshr.o)
0x080006ce 0x080006ce 0x00000002 PAD
0x080006d0 0x080006d0 0x00000014 Code RO 166 .text.Init_IT_Receive myuart.o
0x080006e4 0x080006e4 0x00000040 Code RO 24 .text.LacheVoile accelerometre.o
0x08000724 0x08000724 0x0000003a Code RO 40 .text.LocaliserZero girouette.o
0x0800075e 0x0800075e 0x00000002 PAD
0x08000760 0x08000760 0x000001c6 Code RO 74 .text.MyGPIO_Init drivergpio.o
0x08000926 0x08000926 0x00000002 PAD
0x08000928 0x08000928 0x0000001a Code RO 76 .text.MyGPIO_Read drivergpio.o
0x08000942 0x08000942 0x00000002 PAD
0x08000944 0x08000944 0x0000001c Code RO 80 .text.MyGPIO_Reset drivergpio.o
0x08000960 0x08000960 0x00000018 Code RO 78 .text.MyGPIO_Set drivergpio.o
0x08000978 0x08000978 0x000003f2 Code RO 189 .text.MyTimer_PWM pwm.o
0x08000d6a 0x08000d6a 0x00000002 PAD
0x08000d6c 0x08000d6c 0x0000006c Code RO 154 .text.My_USART_Config myuart.o
0x08000dd8 0x08000dd8 0x0000006c Code RO 20 .text.RecupAccelo accelerometre.o
0x08000e44 0x08000e44 0x00000038 Code RO 49 .text.Servo_Moteur servo.o
0x08000e7c 0x08000e7c 0x00000008 Code RO 224 .text.SetSysClock system_stm32f10x.o
0x08000e84 0x08000e84 0x00000122 Code RO 228 .text.SetSysClockTo72 system_stm32f10x.o
0x08000fa6 0x08000fa6 0x00000002 PAD
0x08000fa8 0x08000fa8 0x00000066 Code RO 191 .text.Set_DutyCycle_PWM pwm.o
0x0800100e 0x0800100e 0x00000002 PAD
0x08001010 0x08001010 0x0000007c Code RO 193 .text.Set_DutyCycle_PWM_Plateau pwm.o
0x0800108c 0x0800108c 0x00000066 Code RO 222 .text.SystemInit system_stm32f10x.o
0x080010f2 0x080010f2 0x00000002 PAD
0x080010f4 0x080010f4 0x0000003e Code RO 103 .text.TIM2_IRQHandler horloge.o
0x08001132 0x08001132 0x00000002 PAD
0x08001134 0x08001134 0x00000042 Code RO 105 .text.TIM3_IRQHandler horloge.o
0x08001176 0x08001176 0x00000002 PAD
0x08001178 0x08001178 0x00000042 Code RO 107 .text.TIM4_IRQHandler horloge.o
0x080011ba 0x080011ba 0x00000002 PAD
0x080011bc 0x080011bc 0x000000e6 Code RO 95 .text.Timer_Init horloge.o
0x080012a2 0x080012a2 0x00000002 PAD
0x080012a4 0x080012a4 0x00000036 Code RO 168 .text.USART1_IRQHandler myuart.o
0x080012da 0x080012da 0x00000002 PAD
0x080012dc 0x080012dc 0x00000012 Code RO 164 .text.USART_IT_Receive_Enable myuart.o
0x080012ee 0x080012ee 0x00000002 PAD
0x080012f0 0x080012f0 0x00000024 Code RO 160 .text.USART_Send_Char myuart.o
0x08001314 0x08001314 0x00000028 Code RO 162 .text.USART_Send_String myuart.o
0x0800133c 0x0800133c 0x00000054 Code RO 180 .text.Update_Motor_PWM plateau.o
0x08001390 0x08001390 0x00000030 Code RO 156 .text.__NVIC_EnableIRQ myuart.o
0x080013c0 0x080013c0 0x00000042 Code RO 158 .text.__NVIC_SetPriority myuart.o
0x08001402 0x08001402 0x00000002 PAD
0x08001404 0x08001404 0x00000036 Code RO 36 .text.angleVent girouette.o
0x0800143a 0x0800143a 0x00000002 PAD
0x0800143c 0x0800143c 0x000000a0 Code RO 34 .text.configEncoder girouette.o
0x080014dc 0x080014dc 0x00000088 Code RO 60 .text.initADC adc.o
0x08001564 0x08001564 0x00000068 Code RO 18 .text.initAccelo accelerometre.o
0x080015cc 0x080015cc 0x0000006a Code RO 178 .text.initPlato plateau.o
0x08001636 0x08001636 0x00000002 PAD
0x08001638 0x08001638 0x0000005c Code RO 51 .text.initServo servo.o
0x08001694 0x08001694 0x0000016e Code RO 4 .text.main principal.o
0x08001802 0x08001802 0x00000002 PAD
0x08001804 0x08001804 0x0000001a Code RO 2 .text.pilotage principal.o
0x0800181e 0x0800181e 0x00000002 PAD
0x08001820 0x08001820 0x00000014 Code RO 62 .text.recupADC adc.o
0x08001834 0x08001834 0x000000c4 Code RO 64 .text.sendinfoADC adc.o
0x080018f8 0x080018f8 0x00000036 Code RO 38 .text.vent2voile girouette.o
0x0800192e 0x0800192e 0x00000002 PAD
0x08001930 0x08001930 0x00000030 Code RO 241 i.MySPI_Clear_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x08001960 0x08001960 0x000001f4 Code RO 242 i.MySPI_Init Lib_Com_Periph_2022.lib(myspi.o)
0x08001b54 0x08001b54 0x00000054 Code RO 243 i.MySPI_Read Lib_Com_Periph_2022.lib(myspi.o)
0x08001ba8 0x08001ba8 0x00000050 Code RO 244 i.MySPI_Send Lib_Com_Periph_2022.lib(myspi.o)
0x08001bf8 0x08001bf8 0x0000002c Code RO 245 i.MySPI_Set_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x08001c24 0x08001c24 0x00000034 Code RO 260 i.__0snprintf mc_w.l(printfa.o)
0x08001c58 0x08001c58 0x0000000e Code RO 347 i.__scatterload_copy mc_w.l(handlers.o)
0x08001c66 0x08001c66 0x00000002 Code RO 348 i.__scatterload_null mc_w.l(handlers.o)
0x08001c68 0x08001c68 0x0000000e Code RO 349 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x08001c76 0x08001c76 0x00000002 PAD
0x08001c78 0x08001c78 0x00000184 Code RO 266 i._fp_digits mc_w.l(printfa.o)
0x08001dfc 0x08001dfc 0x000006dc Code RO 267 i._printf_core mc_w.l(printfa.o)
0x080024d8 0x080024d8 0x00000024 Code RO 268 i._printf_post_padding mc_w.l(printfa.o)
0x080024fc 0x080024fc 0x0000002e Code RO 269 i._printf_pre_padding mc_w.l(printfa.o)
0x0800252a 0x0800252a 0x00000016 Code RO 270 i._snputc mc_w.l(printfa.o)
0x08002540 0x08002540 0x00000011 Data RO 6 .rodata.str1.1 principal.o
0x08002551 0x08002551 0x00000052 Data RO 66 .rodata.str1.1 adc.o
0x080025a3 0x080025a3 0x00000001 PAD
0x080025a4 0x080025a4 0x00000020 Data RO 346 Region$$Table anon$$obj.o
Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x080025c4, Size: 0x00000004, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080025c4 0x00000004 Data RW 246 .data Lib_Com_Periph_2022.lib(myspi.o)
Execution Region ER_ZI (Exec base: 0x20000008, Load base: 0x080025c8, Size: 0x00000428, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000008 - 0x00000006 Zero RW 26 .bss.RecupAccelo.Messie accelerometre.o
0x2000000e 0x080025c8 0x00000002 PAD
0x20000010 - 0x00000004 Zero RW 109 .bss.TIM2_Appel horloge.o
0x20000014 - 0x00000004 Zero RW 110 .bss.TIM3_Appel horloge.o
0x20000018 - 0x00000004 Zero RW 111 .bss.TIM4_Appel horloge.o
0x2000001c - 0x00000004 Zero RW 7 .bss.angleVentVar principal.o
0x20000020 - 0x00000004 Zero RW 8 .bss.angleVoileVar principal.o
0x20000024 - 0x00000004 Zero RW 9 .bss.moy principal.o
0x20000028 - 0x00000004 Zero RW 170 .bss.pFnc_Receive myuart.o
0x2000002c 0x080025c8 0x00000004 PAD
0x20000030 - 0x00000400 Zero RW 212 STACK startup_stm32f10x_md.o
==============================================================================
Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
276 0 0 0 6 3114 accelerometre.o
352 0 82 0 0 2438 adc.o
532 0 0 0 0 2325 drivergpio.o
326 0 0 0 0 2374 girouette.o
424 0 0 0 12 5304 horloge.o
390 0 0 0 4 4845 myuart.o
190 0 0 0 0 2120 plateau.o
392 0 17 0 12 2757 principal.o
1236 16 0 0 0 3013 pwm.o
148 0 0 0 0 2070 servo.o
36 8 236 0 1024 840 startup_stm32f10x_md.o
400 0 0 0 0 3012 system_stm32f10x.o
----------------------------------------------------------------------
4740 24 368 0 1064 34212 Object Totals
0 0 32 0 0 0 (incl. Generated)
38 0 1 0 6 0 (incl. Padding)
----------------------------------------------------------------------
Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name
756 80 0 4 0 348 myspi.o
0 0 0 0 0 0 entry.o
0 0 0 0 0 0 entry10a.o
0 0 0 0 0 0 entry11a.o
8 4 0 0 0 0 entry2.o
4 0 0 0 0 0 entry5.o
0 0 0 0 0 0 entry7b.o
0 0 0 0 0 0 entry8b.o
8 4 0 0 0 0 entry9a.o
30 0 0 0 0 0 handlers.o
48 10 0 0 0 68 init.o
0 0 0 0 0 0 iusefp.o
30 0 0 0 0 68 llshl.o
36 0 0 0 0 68 llsshr.o
32 0 0 0 0 68 llushr.o
2300 84 0 0 0 524 printfa.o
44 0 0 0 0 80 uidiv.o
98 0 0 0 0 92 uldiv.o
48 0 0 0 0 68 cdrcmple.o
334 0 0 0 0 148 dadd.o
222 0 0 0 0 100 ddiv.o
186 0 0 0 0 176 depilogue.o
62 0 0 0 0 80 dfixi.o
48 0 0 0 0 68 dfixul.o
34 0 0 0 0 76 dflti.o
228 0 0 0 0 96 dmul.o
----------------------------------------------------------------------
4560 182 0 4 0 2128 Library Totals
4 0 0 0 0 0 (incl. Padding)
----------------------------------------------------------------------
Code (inc. data) RO Data RW Data ZI Data Debug Library Name
756 80 0 4 0 348 Lib_Com_Periph_2022.lib
2638 102 0 0 0 968 mc_w.l
1162 0 0 0 0 812 mf_w.l
----------------------------------------------------------------------
4560 182 0 4 0 2128 Library Totals
----------------------------------------------------------------------
==============================================================================
Code (inc. data) RO Data RW Data ZI Data Debug
9300 206 368 4 1064 35200 Grand Totals
9300 206 368 4 1064 35200 ELF Image Totals
9300 206 368 4 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 9668 ( 9.44kB)
Total RW Size (RW Data + ZI Data) 1068 ( 1.04kB)
Total ROM Size (Code + RO Data + RW Data) 9672 ( 9.45kB)
==============================================================================

2
Objects/ExtDll.iex Normal file
View file

@ -0,0 +1,2 @@
[EXTDLL]
Count=0

BIN
Objects/Projet0.axf Normal file

Binary file not shown.

View file

@ -0,0 +1,84 @@
<html>
<body>
<pre>
<h1>µVision Build Log</h1>
<h2>Tool Versions:</h2>
IDE-Version: µVision V5.42.0.0
Copyright (C) 2025 ARM Ltd and ARM Germany GmbH. All rights reserved.
License Information: Brage Johnsen
INSA
User-based license: Keil MDK Community (non-commercial free of charge)
Valid until: Jun 1 2033. Cached until: Dec 22 2025
Tool Versions:
Toolchain: Keil MDK Community (non-commercial free of charge Version: 5.42.0.0
Toolchain Path: C:\Users\Brage\AppData\Local\Keil_v5\ARM\ARMCLANG\Bin
C Compiler: ArmClang.exe V6.23
Assembler: Armasm.exe V6.23
Linker/Locator: ArmLink.exe V6.23
Library Manager: ArmAr.exe V6.23
Hex Converter: FromElf.exe V6.23
CPU DLL: SARMCM3.DLL V5.42.0.0
Dialog DLL: DARMSTM.DLL V1.69.1.0
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.3.0.0
Dialog DLL: TARMSTM.DLL V1.67.1.0
<h2>Project:</h2>
C:\Users\Brage\Documents\INSA\4ANNEE\MC\BE_VOILIER\Projet0.uvprojx
Project File Date: 12/17/2025
<h2>Output:</h2>
*** Using Compiler 'V6.23', folder: 'C:\Users\Brage\AppData\Local\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'Reel'
compiling principal.c...
compiling I2C.c...
compiling PWM.c...
compiling RTC.c...
compiling Accelerometre.c...
compiling DriverGPIO.c...
compiling Horloge.c...
compiling Plateau.c...
compiling ADC.c...
assembling startup_stm32f10x_md.s...
compiling MyUart.c...
compiling system_stm32f10x.c...
compiling Servo.c...
compiling Girouette.c...
compiling MYGPIO.c...
linking...
Program Size: Code=9300 RO-data=368 RW-data=4 ZI-data=1064
".\Objects\Projet0.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2>
Package Vendor: ARM
https://www.keil.com/pack/ARM.CMSIS.6.1.0.pack
ARM::CMSIS@6.1.0
CMSIS (Common Microcontroller Software Interface Standard)
* Component: CORE Version: 6.1.0
Package Vendor: Keil
https://www.keil.com/pack/Keil.STM32F1xx_DFP.2.4.1.pack
Keil::STM32F1xx_DFP@2.4.1
STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
* Component: Startup Version: 1.0.0
<h2>Collection of Component include folders:</h2>
./RTE/Device/STM32F103RB
./RTE/_Reel
C:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
C:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
<h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE@6.1.0
* Component: Keil::Device:Startup@1.0.0
Include file: RTE_Driver/Config/RTE_Device.h
Source file: Device/Source/ARM/startup_stm32f10x_md.s
Source file: Device/Source/system_stm32f10x.c
Source file: Device/Source/ARM/STM32F1xx_OPT.s
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

812
Objects/Projet0.htm Normal file
View file

@ -0,0 +1,812 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\Objects\Projet0.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\Projet0.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6230001: Last Updated: Wed Dec 17 11:42:48 2025
<BR><P>
<H3>Maximum Stack Usage = 320 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; sendinfoADC &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[1]">NMI_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1]">NMI_Handler</a><BR>
<LI><a href="#[2]">HardFault_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[2]">HardFault_Handler</a><BR>
<LI><a href="#[3]">MemManage_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[3]">MemManage_Handler</a><BR>
<LI><a href="#[4]">BusFault_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[4]">BusFault_Handler</a><BR>
<LI><a href="#[5]">UsageFault_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[5]">UsageFault_Handler</a><BR>
<LI><a href="#[6]">SVC_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[6]">SVC_Handler</a><BR>
<LI><a href="#[7]">DebugMon_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[7]">DebugMon_Handler</a><BR>
<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="#[1c]">ADC1_2_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1c]">ADC1_2_IRQHandler</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[1c]">ADC1_2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<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)
<LI><a href="#[15]">DMA1_Channel1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[16]">DMA1_Channel2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[17]">DMA1_Channel3_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[18]">DMA1_Channel4_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[19]">DMA1_Channel5_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[1a]">DMA1_Channel6_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[1b]">DMA1_Channel7_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[7]">DebugMon_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[10]">EXTI0_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[32]">EXTI15_10_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[11]">EXTI1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[12]">EXTI2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[13]">EXTI3_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[14]">EXTI4_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[21]">EXTI9_5_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[e]">FLASH_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[2]">HardFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[2a]">I2C1_ER_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[29]">I2C1_EV_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[2c]">I2C2_ER_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[2b]">I2C2_EV_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[3]">MemManage_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[1]">NMI_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[b]">PVD_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[8]">PendSV_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[f]">RCC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[33]">RTCAlarm_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[d]">RTC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[0]">Reset_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[2d]">SPI1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[2e]">SPI2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[6]">SVC_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[9]">SysTick_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[36]">SystemInit</a> from system_stm32f10x.o(.text.SystemInit) referenced from startup_stm32f10x_md.o(.text)
<LI><a href="#[c]">TAMPER_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[22]">TIM1_BRK_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[25]">TIM1_CC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[24]">TIM1_TRG_COM_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[23]">TIM1_UP_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[26]">TIM2_IRQHandler</a> from horloge.o(.text.TIM2_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[27]">TIM3_IRQHandler</a> from horloge.o(.text.TIM3_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[28]">TIM4_IRQHandler</a> from horloge.o(.text.TIM4_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[2f]">USART1_IRQHandler</a> from myuart.o(.text.USART1_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[30]">USART2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[31]">USART3_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[34]">USBWakeUp_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[1d]">USB_HP_CAN1_TX_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[1e]">USB_LP_CAN1_RX0_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<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="#[37]">__main</a> from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f10x_md.o(.text)
<LI><a href="#[39]">_snputc</a> from printfa.o(i._snputc) referenced from printfa.o(i.__0snprintf)
<LI><a href="#[35]">main</a> from principal.o(.text.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
<LI><a href="#[38]">pilotage</a> from principal.o(.text.pilotage) referenced 2 times from principal.o(.text.main)
</UL>
<P>
<H3>
Global Symbols
</H3>
<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="[77]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[3a]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[4a]"></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="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[78]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[79]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[7a]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[7b]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[7c]"></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)
</UL>
<P><STRONG><a name="[1]"></a>NMI_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NMI_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NMI_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[2]"></a>HardFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[3]"></a>MemManage_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MemManage_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MemManage_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[4]"></a>BusFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BusFault_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BusFault_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[5]"></a>UsageFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UsageFault_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UsageFault_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[6]"></a>SVC_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SVC_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SVC_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[7]"></a>DebugMon_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DebugMon_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DebugMon_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[8]"></a>PendSV_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PendSV_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PendSV_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[9]"></a>SysTick_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[1c]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADC1_2_IRQHandler
</UL>
<BR>[Called By]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADC1_2_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[1f]"></a>CAN1_RX1_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="[20]"></a>CAN1_SCE_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="[15]"></a>DMA1_Channel1_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="[16]"></a>DMA1_Channel2_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="[17]"></a>DMA1_Channel3_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="[18]"></a>DMA1_Channel4_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="[19]"></a>DMA1_Channel5_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="[1a]"></a>DMA1_Channel6_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="[1b]"></a>DMA1_Channel7_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="[10]"></a>EXTI0_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="[32]"></a>EXTI15_10_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="[11]"></a>EXTI1_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="[12]"></a>EXTI2_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="[13]"></a>EXTI3_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="[14]"></a>EXTI4_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="[21]"></a>EXTI9_5_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="[e]"></a>FLASH_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="[2a]"></a>I2C1_ER_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="[29]"></a>I2C1_EV_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="[2c]"></a>I2C2_ER_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="[2b]"></a>I2C2_EV_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="[b]"></a>PVD_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="[f]"></a>RCC_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="[33]"></a>RTCAlarm_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="[d]"></a>RTC_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="[2d]"></a>SPI1_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="[2e]"></a>SPI2_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="[c]"></a>TAMPER_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="[22]"></a>TIM1_BRK_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="[25]"></a>TIM1_CC_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="[24]"></a>TIM1_TRG_COM_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="[23]"></a>TIM1_UP_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="[30]"></a>USART2_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="[31]"></a>USART3_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="[34]"></a>USBWakeUp_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="[1d]"></a>USB_HP_CAN1_TX_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="[1e]"></a>USB_LP_CAN1_RX0_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="[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="[3c]"></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="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sendinfoADC
</UL>
<P><STRONG><a name="[3e]"></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="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sendinfoADC
</UL>
<P><STRONG><a name="[3f]"></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="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sendinfoADC
</UL>
<P><STRONG><a name="[7d]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[76]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[41]"></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_llsl
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[40]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
</UL>
<P><STRONG><a name="[7e]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[7f]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, iusefp.o(.text), UNUSED)
<P><STRONG><a name="[43]"></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="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[3d]"></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="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
</UL>
<P><STRONG><a name="[44]"></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;__aeabi_lasr
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[46]"></a>__aeabi_dsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[47]"></a>__aeabi_drsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[48]"></a>__aeabi_ddiv</STRONG> (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
</UL>
<BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[49]"></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_llsl
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[73]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[3b]"></a>__scatterload</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main_after_scatterload
</UL>
<BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[80]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[42]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
</UL>
<P><STRONG><a name="[81]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[45]"></a>__aeabi_lasr</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[82]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<P><STRONG><a name="[6a]"></a>Init_IT_Receive</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, myuart.o(.text.Init_IT_Receive))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = Init_IT_Receive
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4b]"></a>LacheVoile</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, accelerometre.o(.text.LacheVoile))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = LacheVoile &rArr; Servo_Moteur &rArr; Set_DutyCycle_PWM
</UL>
<BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Servo_Moteur
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4d]"></a>LocaliserZero</STRONG> (Thumb, 58 bytes, Stack size 16 bytes, girouette.o(.text.LocaliserZero))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = LocaliserZero &rArr; MyGPIO_Read
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Read
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[50]"></a>MyGPIO_Init</STRONG> (Thumb, 454 bytes, Stack size 12 bytes, drivergpio.o(.text.MyGPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = MyGPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initPlato
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;My_USART_Config
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;configEncoder
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initServo
</UL>
<P><STRONG><a name="[4e]"></a>MyGPIO_Read</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, drivergpio.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="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LocaliserZero
</UL>
<P><STRONG><a name="[5f]"></a>MyGPIO_Reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, drivergpio.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="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Update_Motor_PWM
</UL>
<P><STRONG><a name="[5e]"></a>MyGPIO_Set</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, drivergpio.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="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Update_Motor_PWM
</UL>
<P><STRONG><a name="[66]"></a>MyTimer_PWM</STRONG> (Thumb, 1010 bytes, Stack size 16 bytes, pwm.o(.text.MyTimer_PWM))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = MyTimer_PWM
</UL>
<BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initPlato
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initServo
</UL>
<P><STRONG><a name="[4f]"></a>My_USART_Config</STRONG> (Thumb, 108 bytes, Stack size 24 bytes, myuart.o(.text.My_USART_Config))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = My_USART_Config &rArr; MyGPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_SetPriority
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_EnableIRQ
<LI><a href="#[50]">&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="[53]"></a>RecupAccelo</STRONG> (Thumb, 108 bytes, Stack size 24 bytes, accelerometre.o(.text.RecupAccelo))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = RecupAccelo
</UL>
<BR>[Calls]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Read
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Send
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Clear_NSS
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4c]"></a>Servo_Moteur</STRONG> (Thumb, 56 bytes, Stack size 24 bytes, servo.o(.text.Servo_Moteur))
<BR><BR>[Stack]<UL><LI>Max Depth = 44<LI>Call Chain = Servo_Moteur &rArr; Set_DutyCycle_PWM
</UL>
<BR>[Calls]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Set_DutyCycle_PWM
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LacheVoile
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[58]"></a>Set_DutyCycle_PWM</STRONG> (Thumb, 102 bytes, Stack size 20 bytes, pwm.o(.text.Set_DutyCycle_PWM))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = Set_DutyCycle_PWM
</UL>
<BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Servo_Moteur
</UL>
<P><STRONG><a name="[60]"></a>Set_DutyCycle_PWM_Plateau</STRONG> (Thumb, 124 bytes, Stack size 24 bytes, pwm.o(.text.Set_DutyCycle_PWM_Plateau))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = Set_DutyCycle_PWM_Plateau
</UL>
<BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Update_Motor_PWM
</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="#[59]">&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, 62 bytes, Stack size 8 bytes, horloge.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, 66 bytes, Stack size 8 bytes, horloge.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, 66 bytes, Stack size 8 bytes, horloge.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="[62]"></a>Timer_Init</STRONG> (Thumb, 230 bytes, Stack size 8 bytes, horloge.o(.text.Timer_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Timer_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initPlato
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;configEncoder
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initServo
</UL>
<P><STRONG><a name="[2f]"></a>USART1_IRQHandler</STRONG> (Thumb, 54 bytes, Stack size 16 bytes, myuart.o(.text.USART1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = USART1_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[69]"></a>USART_IT_Receive_Enable</STRONG> (Thumb, 18 bytes, Stack size 4 bytes, myuart.o(.text.USART_IT_Receive_Enable))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = USART_IT_Receive_Enable
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[5c]"></a>USART_Send_Char</STRONG> (Thumb, 36 bytes, Stack size 8 bytes, myuart.o(.text.USART_Send_Char))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = USART_Send_Char
</UL>
<BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_Send_String
</UL>
<P><STRONG><a name="[5b]"></a>USART_Send_String</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, myuart.o(.text.USART_Send_String))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = USART_Send_String &rArr; USART_Send_Char
</UL>
<BR>[Calls]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_Send_Char
</UL>
<BR>[Called By]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sendinfoADC
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[5d]"></a>Update_Motor_PWM</STRONG> (Thumb, 84 bytes, Stack size 24 bytes, plateau.o(.text.Update_Motor_PWM))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = Update_Motor_PWM &rArr; Set_DutyCycle_PWM_Plateau
</UL>
<BR>[Calls]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Set_DutyCycle_PWM_Plateau
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Reset
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Set
</UL>
<BR>[Called By]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pilotage
</UL>
<P><STRONG><a name="[6b]"></a>angleVent</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, girouette.o(.text.angleVent))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = angleVent
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[61]"></a>configEncoder</STRONG> (Thumb, 160 bytes, Stack size 24 bytes, girouette.o(.text.configEncoder))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = configEncoder &rArr; MyGPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Timer_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[68]"></a>initADC</STRONG> (Thumb, 136 bytes, Stack size 0 bytes, adc.o(.text.initADC))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[63]"></a>initAccelo</STRONG> (Thumb, 104 bytes, Stack size 16 bytes, accelerometre.o(.text.initAccelo))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = initAccelo &rArr; MySPI_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Send
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Clear_NSS
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[65]"></a>initPlato</STRONG> (Thumb, 106 bytes, Stack size 16 bytes, plateau.o(.text.initPlato))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = initPlato &rArr; MyTimer_PWM
</UL>
<BR>[Calls]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_PWM
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Timer_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[67]"></a>initServo</STRONG> (Thumb, 92 bytes, Stack size 16 bytes, servo.o(.text.initServo))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = initServo &rArr; MyTimer_PWM
</UL>
<BR>[Calls]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyTimer_PWM
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Timer_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[35]"></a>main</STRONG> (Thumb, 366 bytes, Stack size 80 bytes, principal.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 320<LI>Call Chain = main &rArr; sendinfoADC &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sendinfoADC
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LacheVoile
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RecupAccelo
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Servo_Moteur
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vent2voile
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;angleVent
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initAccelo
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_IT_Receive
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initPlato
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_Send_String
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_IT_Receive_Enable
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initADC
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;My_USART_Config
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LocaliserZero
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;configEncoder
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initServo
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[38]"></a>pilotage</STRONG> (Thumb, 26 bytes, Stack size 16 bytes, principal.o(.text.pilotage))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = pilotage &rArr; Update_Motor_PWM &rArr; Set_DutyCycle_PWM_Plateau
</UL>
<BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Update_Motor_PWM
</UL>
<BR>[Address Reference Count : 1]<UL><LI> principal.o(.text.main)
</UL>
<P><STRONG><a name="[6e]"></a>recupADC</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, adc.o(.text.recupADC))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = recupADC
</UL>
<BR>[Called By]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sendinfoADC
</UL>
<P><STRONG><a name="[6d]"></a>sendinfoADC</STRONG> (Thumb, 196 bytes, Stack size 152 bytes, adc.o(.text.sendinfoADC))
<BR><BR>[Stack]<UL><LI>Max Depth = 240<LI>Call Chain = sendinfoADC &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;snprintf
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;recupADC
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_Send_String
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6c]"></a>vent2voile</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, girouette.o(.text.vent2voile))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = vent2voile
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[54]"></a>MySPI_Clear_NSS</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Clear_NSS))
<BR><BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RecupAccelo
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initAccelo
</UL>
<P><STRONG><a name="[64]"></a>MySPI_Init</STRONG> (Thumb, 480 bytes, Stack size 4 bytes, myspi.o(i.MySPI_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = MySPI_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
</UL>
<BR>[Called By]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initAccelo
</UL>
<P><STRONG><a name="[56]"></a>MySPI_Read</STRONG> (Thumb, 70 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Read))
<BR><BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RecupAccelo
</UL>
<P><STRONG><a name="[55]"></a>MySPI_Send</STRONG> (Thumb, 68 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Send))
<BR><BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RecupAccelo
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initAccelo
</UL>
<P><STRONG><a name="[57]"></a>MySPI_Set_NSS</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Set_NSS))
<BR><BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Init
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RecupAccelo
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initAccelo
</UL>
<P><STRONG><a name="[70]"></a>__0snprintf</STRONG> (Thumb, 48 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[83]"></a>__1snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
<P><STRONG><a name="[84]"></a>__2snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
<P><STRONG><a name="[85]"></a>__c89snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
<P><STRONG><a name="[6f]"></a>snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = snprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sendinfoADC
</UL>
<P><STRONG><a name="[86]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[87]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[88]"></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="[51]"></a>__NVIC_EnableIRQ</STRONG> (Thumb, 48 bytes, Stack size 4 bytes, myuart.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="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;My_USART_Config
</UL>
<P><STRONG><a name="[52]"></a>__NVIC_SetPriority</STRONG> (Thumb, 66 bytes, Stack size 8 bytes, myuart.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="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;My_USART_Config
</UL>
<P><STRONG><a name="[59]"></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="#[5a]">&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="[5a]"></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="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<P><STRONG><a name="[72]"></a>_fp_digits</STRONG> (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
</UL>
<BR>[Called By]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[71]"></a>_printf_core</STRONG> (Thumb, 1744 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0snprintf
</UL>
<P><STRONG><a name="[75]"></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="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[74]"></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="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[39]"></a>_snputc</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, printfa.o(i._snputc))
<BR>[Address Reference Count : 1]<UL><LI> printfa.o(i.__0snprintf)
</UL><P>
<H3>
Undefined Global Symbols
</H3><HR></body></html>

20
Objects/Projet0.lnp Normal file
View file

@ -0,0 +1,20 @@
--cpu Cortex-M3
".\objects\principal.o"
".\objects\accelerometre.o"
".\objects\girouette.o"
".\objects\servo.o"
".\objects\adc.o"
".\objects\drivergpio.o"
".\objects\horloge.o"
".\objects\i2c.o"
".\objects\mygpio.o"
".\objects\myuart.o"
".\objects\plateau.o"
".\objects\pwm.o"
".\objects\rtc.o"
".\Lib_Com_Periph_2022.lib"
".\objects\startup_stm32f10x_md.o"
".\objects\system_stm32f10x.o"
--library_type=microlib --ro-base 0x08000000 --entry 0x08000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors --strict --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
--info sizes --info totals --info unused --info veneers
--list ".\Listings\Projet0.map" -o .\Objects\Projet0.axf

108
Objects/Projet0_Reel.dep Normal file
View file

@ -0,0 +1,108 @@
Dependencies for Project 'Projet0', Target 'Reel': (DO NOT MODIFY !)
CompilerVersion: 6230000::V6.23::ARMCLANG
F (.\Application\principal.c)(0x69428927)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/principal.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\Horloge.h)(0x69428212)
I (Services\Include\Accelerometre.h)(0x69428212)
I (Services\Include\Girouette.h)(0x69428212)
I (Services\Include\Servo.h)(0x69428212)
I (Pilotes\Include\MyUart.h)(0x69428212)
I (Pilotes\Include\Plateau.h)(0x69428212)
I (Pilotes\Include\I2C.h)(0x69428212)
I (Pilotes\Include\RTC.h)(0x69428212)
I (Pilotes\Include\ADC.h)(0x69428212)
F (.\Services\Source\Accelerometre.c)(0x69428213)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/accelerometre.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\Horloge.h)(0x69428212)
I (Pilotes\Include\MySPI.h)(0x69428212)
I (Services\Include\Accelerometre.h)(0x69428212)
I (Services\Include\Servo.h)(0x69428212)
F (.\Services\Source\Girouette.c)(0x69428213)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/girouette.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\Horloge.h)(0x69428212)
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
I (Services\Include\Girouette.h)(0x69428212)
I (Pilotes\Include\PWM.h)(0x69428212)
F (.\Services\Source\Servo.c)(0x69428213)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/servo.o -MMD)
I (Services\Include\Servo.h)(0x69428212)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
I (Pilotes\Include\PWM.h)(0x69428212)
I (Pilotes\Include\Horloge.h)(0x69428212)
F (.\Pilotes\Source\ADC.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/adc.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\ADC.h)(0x69428212)
I (Pilotes\Include\MyUart.h)(0x69428212)
F (.\Pilotes\Source\DriverGPIO.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/drivergpio.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
F (.\Pilotes\Source\Horloge.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/horloge.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\Horloge.h)(0x69428212)
F (.\Pilotes\Source\I2C.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/i2c.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\I2C.h)(0x69428212)
F (.\Pilotes\Source\MYGPIO.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/mygpio.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\MYGPIO.h)(0x69428212)
F (.\Pilotes\Source\MyUart.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/myuart.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
F (.\Pilotes\Source\Plateau.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/plateau.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\PWM.h)(0x69428212)
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
I (Pilotes\Include\Horloge.h)(0x69428212)
F (.\Pilotes\Source\PWM.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/pwm.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
I (Pilotes\Include\PWM.h)(0x69428212)
F (.\Pilotes\Source\RTC.c)(0x694285E6)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/rtc.o -MMD)
I (Pilotes\Include\RTC.h)(0x69428212)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
F (.\Lib_Com_Periph_2022.lib)(0x69428212)()
F (RTE/Device/STM32F103RB/RTE_Device.h)(0x69428212)()
F (RTE/Device/STM32F103RB/startup_stm32f10x_md.s)(0x69428212)(--target=arm-arm-none-eabi -mcpu=cortex-m3 -masm=auto -Wa,armasm,--diag_suppress=A1950W -c -gdwarf-4 -Wa,armasm,--pd,"__MICROLIB SETA 1" -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -Wa,armasm,--pd,"__UVISION_VERSION SETA 542" -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)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source -I./RTE/Device/STM32F103RB -I./RTE/_Reel -IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include -D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_ -o ./objects/system_stm32f10x.o -MMD)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
I (RTE\_Reel\RTE_Components.h)(0x69428223)
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)

7
Objects/accelerometre.d Normal file
View file

@ -0,0 +1,7 @@
./objects/accelerometre.o: Services\Source\Accelerometre.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\Horloge.h Pilotes\Include\MySPI.h \
Services\Include\Accelerometre.h Services\Include\Servo.h

BIN
Objects/accelerometre.o Normal file

Binary file not shown.

6
Objects/adc.d Normal file
View file

@ -0,0 +1,6 @@
./objects/adc.o: Pilotes\Source\ADC.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\ADC.h Pilotes\Include\MyUart.h

BIN
Objects/adc.o Normal file

Binary file not shown.

6
Objects/drivergpio.d Normal file
View file

@ -0,0 +1,6 @@
./objects/drivergpio.o: Pilotes\Source\DriverGPIO.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\DriverGPIO.h

BIN
Objects/drivergpio.o Normal file

Binary file not shown.

7
Objects/girouette.d Normal file
View file

@ -0,0 +1,7 @@
./objects/girouette.o: Services\Source\Girouette.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\Horloge.h Pilotes\Include\DriverGPIO.h \
Services\Include\Girouette.h Pilotes\Include\PWM.h

BIN
Objects/girouette.o Normal file

Binary file not shown.

6
Objects/horloge.d Normal file
View file

@ -0,0 +1,6 @@
./objects/horloge.o: Pilotes\Source\Horloge.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\Horloge.h

BIN
Objects/horloge.o Normal file

Binary file not shown.

6
Objects/i2c.d Normal file
View file

@ -0,0 +1,6 @@
./objects/i2c.o: Pilotes\Source\I2C.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\I2C.h

BIN
Objects/i2c.o Normal file

Binary file not shown.

6
Objects/mygpio.d Normal file
View file

@ -0,0 +1,6 @@
./objects/mygpio.o: Pilotes\Source\MYGPIO.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\MYGPIO.h

BIN
Objects/mygpio.o Normal file

Binary file not shown.

6
Objects/myuart.d Normal file
View file

@ -0,0 +1,6 @@
./objects/myuart.o: Pilotes\Source\MyUart.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\DriverGPIO.h

BIN
Objects/myuart.o Normal file

Binary file not shown.

7
Objects/plateau.d Normal file
View file

@ -0,0 +1,7 @@
./objects/plateau.o: Pilotes\Source\Plateau.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\PWM.h Pilotes\Include\DriverGPIO.h \
Pilotes\Include\Horloge.h

BIN
Objects/plateau.o Normal file

Binary file not shown.

9
Objects/principal.d Normal file
View file

@ -0,0 +1,9 @@
./objects/principal.o: Application\principal.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\Horloge.h Services\Include\Accelerometre.h \
Services\Include\Girouette.h Services\Include\Servo.h \
Pilotes\Include\MyUart.h Pilotes\Include\Plateau.h \
Pilotes\Include\I2C.h Pilotes\Include\RTC.h Pilotes\Include\ADC.h

BIN
Objects/principal.o Normal file

Binary file not shown.

6
Objects/pwm.d Normal file
View file

@ -0,0 +1,6 @@
./objects/pwm.o: Pilotes\Source\PWM.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\PWM.h

BIN
Objects/pwm.o Normal file

Binary file not shown.

5
Objects/rtc.d Normal file
View file

@ -0,0 +1,5 @@
./objects/rtc.o: Pilotes\Source\RTC.c Pilotes\Include\RTC.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h

BIN
Objects/rtc.o Normal file

Binary file not shown.

7
Objects/servo.d Normal file
View file

@ -0,0 +1,7 @@
./objects/servo.o: Services\Source\Servo.c Services\Include\Servo.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
Pilotes\Include\DriverGPIO.h Pilotes\Include\PWM.h \
Pilotes\Include\Horloge.h

BIN
Objects/servo.o Normal file

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,5 @@
./objects/system_stm32f10x.o: RTE\Device\STM32F103RB\system_stm32f10x.c \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Reel\RTE_Components.h \
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h

BIN
Objects/system_stm32f10x.o Normal file

Binary file not shown.

8
Pilotes/Include/ADC.h Executable file
View file

@ -0,0 +1,8 @@
#include <stm32f10x.h>
#include <stdint.h>
#define GPIO_ANALOG_INPUT 0
void initADC();
int recupADC(void);
void sendinfoADC();

19
Pilotes/Include/DriverGPIO.h Executable file
View file

@ -0,0 +1,19 @@
#ifndef DRIVERGPIO_H_
#define DRIVERGPIO_H_
#include "stm32f10x.h"
#define In_Floating 0x4
#define In_PullDown 0x8
#define In_PullUp 0x8
#define In_Analog 0x0
#define Out_Ppull 0x3
#define Out_OD 0x7
#define AltOut_Ppull 0xB
#define AltOut_OD 0xF
extern void MyGPIO_Init(GPIO_TypeDef * GPIO, char pin, char conf );
extern int MyGPIO_Read(GPIO_TypeDef * GPIO, char GPIO_Pin); // renvoie 0 ou autre chose different de 0
extern void MyGPIO_Set(GPIO_TypeDef * GPIO, char GPIO_Pin);
extern void MyGPIO_Reset(GPIO_TypeDef * GPIO, char GPIO_Pin);
extern void MyGPIO_Toggle(GPIO_TypeDef * GPIO, char GPIO_Pin);
void MYGPIO_PinOff (GPIO_TypeDef *GPIO , char GPIO_Pin);
void MYGPIO_PinOn (GPIO_TypeDef *GPIO , char GPIO_Pin);
#endif

16
Pilotes/Include/Horloge.h Executable file
View file

@ -0,0 +1,16 @@
#include <stm32f10x.h>
#define PSC_VAL 624
#define ARR_VAL 0xE0FF
//DUTY CYCLE
#define DUTYC 70 //Chiffre entre 0 et 100, où 100 est 100% duty cycle
//#define POWERMODE 1 // 1 vaut powermode 1, 0 vaut powermode 2 (Powermode pour le config de dutycycle)
//Powermode 1 reste sur la bonne polarité: cad. si DUTY_CYCLE vaut 60 alors le signal reste HIGH pour 60% du periode, inverse pour pwmd2
//Timer
void Timer_Init(TIM_TypeDef *Timer, unsigned short Autoreload, unsigned short Prescaler);
void MyTimer_ActiveIT(TIM_TypeDef * Timer, char Prio, void(*Interrupt_fonc)(void));
void TIM2_IRQHandler(void);
//PWM
void MyTimer_PWM(TIM_TypeDef * Timer , int Channel);
int Set_DutyCycle_PWM(TIM_TypeDef *Timer, int Channel, int DutyC);

2
Pilotes/Include/I2C.h Executable file
View file

@ -0,0 +1,2 @@
#include <stm32f10x.h>
void initI2C();

38
Pilotes/Include/MYGPIO.h Executable file
View file

@ -0,0 +1,38 @@
//Definitions
//INTERNE
#define LED_PIN_INTERNE (5) // 5 pour le LED de Arduino
#define BUTTON_GPIO_INTERNE (GPIOA) //GPIOA pour l'Arduion
#define LED_GPIO_INTERNE (GPIOA) //GPIOA pour Arduino
#define BUTTON_PIN_INTERNE (13) //13 pour Arduino
//EXTERNE
#define LED_PIN_EXTERNE (8) // 8 pour la porte PB8
#define BUTTON_GPIO_EXTERNE (GPIOB) //GPIOB pour externe
#define LED_GPIO_EXTERNE (GPIOB) //GPIOB pour Externe
#define BUTTON_PIN_EXTERNE (9) //9 pour bouton poussoir
//STATIQUES
#define GPIO_OUTPUT_PPULL_MODE (2) //Mis en GP output 2MHz en mode PP
#define GPIO_INPUT_PUPD_MODE (8) //Pour mettre à Pull up/down
#define GPIO_INPUT_FLOATING_MODE (4)
//si on est sur l'arduino ou sur le led externe
#define INTERNE 1 // 1 c'est vrai, 0 faux
//FONCTIONS
void initGPIO_Interne(void);
int boutonAppuye_Interne(void);
void allumerDEL_Interne(void);
void eteindreDEL_Interne(void);
void commuterDEL_Interne(void);
void allume_bit_Interne(void);
void initGPIO_Externe(void);
int boutonAppuye_Externe(void);
void allumerDEL_Externe(void);
void eteindreDEL_Externe(void);
void commuterDEL_Externe(void);
void allume_bit_Externe(void);

229
Pilotes/Include/MyI2C.h Executable file
View file

@ -0,0 +1,229 @@
#ifndef _I2C_
#define _I2C_
#include "stm32f10x.h"
/*************************************************************************************
===================== By Periph team INSA GEI 2022 ===========================
*************************************************************************************/
/*
*************************************************************************************
===================== I2C les IO STM32F103 =================================
*************************************************************************************
Les IO sont pris en charge par la lib, pas besoin de faire les configurations Alt OD.
**I2C1**
SCL PB6
SDA PB7
**I2C2**
SCL PB10
SDA PB11
*************************************************************************************
==================== Fondamentaux I2C ==========================================
*************************************************************************************
- Bus synchrone Low speed (<100kHz) ou high speed (=400kHz), Ici Low speed 100kHz.
- Transfert octet par octet, poids fort en premier, avec aquittement pour chaque octet
- Deux lignes SDA et SCL (horloge) en open drain, repos '1'
- bit "normal" = SDA stable lors du pulse SCL (ie durant l'état haut de SCL, SDA est stable)
- bit Start/Stop/Restart = SDA non stable lorsque SCL vaut '1' (violation règle précédente)
* Start : front descendant de SDA lorsque SCL vaut '1'
* Stop : front montant de SDA lorsque SCL = '1'
* Restart = Start en cours de trame (typiquement pour changer Write/read).
- uC en Mode Master uniquement (c'est notre choix) : c'est le uC qui est maître de l'horloge SCL.
- Le Slave a une @ 7 bits. On ajoute un bit LSB qui est /WR (donc 0 pour écriture, 1 pour lecture)
- Une adresse s'écrit donc |a6 a5 a4 a3 a2 a1 a0 /WR| ce qui donne 8 bits. Elle indique une future
lecture ou écriture.
On parle d'@ 7 bits en regroupant |a6 a5 a4 a3 a2 a1 a0|
On parle d'@ 8 bits en regroupant |a6 a5 a4 a3 a2 a1 a0 /WR| (donc une @ écriture, une @ lecture)
NB : préférer le concept @7bits...c'est plus clair.
- On peut lire ou écrire une ou plusieurs données à la suite. C'est lors de l'envoie de l'adresse Slave
par le Master que le sens à venir pour les datas est indiqué.
- En écriture,
* les Ack sont faits par le slave après chaque octet envoyé par le master (Ack = mise à 0 le bit 9).
- En lecture,
* dès que le l@ slave est transmise (/RW = 1), et le Ack réalisé, le slave positionne le bit 7
du prochain octet à lire sur SDA par anticipation ,
* le master enchaîne ses pulses (9), lors du pulse 9 (le dernier) c'est le master qui acquite.
* Après chaque acquitement, le Slave amorce le prochain octet en positionnant son bit 7 sur SDA
* Après le dernier octet, le Master génère un stop.
* Pour pouvoir générer le stop, le Master doit piloter SDA, or ce n'est pas possible puisque
le Slave positionne le futur bit 7 ... Pour régler ce problème :
lors du dernier transfert, le Master N'acquitte PAS (NACK). Ainsi le Slave ne
propose plus le bit 7 du prochain octet sur SDA et libère SDA. Le Master peut alors clôturer la
communication avec un Stop.
======= Echange typique avec un Slave ================================================================
- Une lecture ou écriture se fait vers un Slave et à partir d'une adresse mémoire donnée (pointeur interne).
Ce pointeur est automatiquement incrémenté dans le slave lors des accès écriture ou lecture.
- Ecriture de N octets , trame complète (@ = adresse slave, pt = valeur de chargement du pointeur interne)
|Start Cond |@6|@5|@4|@3|@2|@1|@0| Wr =0 |Slave ACK|
|pt7|pt6|pt5|pt4|pt3|pt2|pt1|pt0|Slave ACK|
|d7|d6|d5|d4|d3|d2|d1|d0|Slave ACK| (data 1)
.....
|d7|d6|d5|d4|d3|d2|d1|d0|Salve ACK|Stop Cond| (data N)
- Lecture de N octets à partir d'une adresse de pointeur donnée
|Start Cond |@6|@5|@4|@3|@2|@1|@0| Wr =0 |Slave ACK|
|pt7|pt6|pt5|pt4|pt3|pt2|pt1|pt0|Slave ACK|
|ReStart Cond |@6|@5|@4|@3|@2|@1|@0| Wr =1 |Slave ACK| (NB: restart nécessaire pour changer écriture / lecture)
|d7|d6|d5|d4|d3|d2|d1|d0|Master ACK| (data 1)
.....
|d7|d6|d5|d4|d3|d2|d1|d0|Master ACK| (data N-1)
|d7|d6|d5|d4|d3|d2|d1|d0|Master NACK|Stop Cond| (data N)
*************************************************************************************
==================== La lib I2C ==========================================
*************************************************************************************
3 fonctions essentielles :
MyI2C_Init
MyI2C_PutString
MyI2C_GetString
1 fonction spéciale : MyI2C_Get_Error
Les fonctions Put/Get string fonctionnent sur le principe classique décrit précédemment
(Slave@, Pter @, Data...).
La fonction init prend parmi ses paramètres le nom d'une fct callback d'erreur.
En fait, le driver gère en IT les erreurs possibles I2C. La fonction MyI2C_Get_Error permet de
recevoir un code erreur.
Il est conseillé d'utiliser ce callback. Si on tombe dedans, c'est qu'une erreur s'est produite.
Si le code erreur est "inconnu", souvent c'est qu'il y a un soucis à l'adressage slave:
Vérifier alors la connectique physique SDA/SCL ainsi que l'alimentation du slave ou tout simplement
l'@ slave !
==========================================================================================*/
/*=========================================================================================
GESTION ERREURS
========================================================================================= */
typedef enum
{
OK,
BusError, //
AckFail, // Pas,d'ack
TimeOut, // SCL est resté plus de 25ms à l'état bas
UnknownError // IT erreur déclenchée mais pas de flag explicite ...
} MyI2C_Err_Enum;
/**
* @brief Retourne les erreurs I2C
* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral.
* @retval Type d'erreur rencontrée , voir MyI2C_Err_Enum
*/
MyI2C_Err_Enum MyI2C_Get_Error(I2C_TypeDef * I2Cx);
/*=========================================================================================
INITIALISATION I2C
========================================================================================= */
/**
* @brief Initialise l'interface I2C (1 ou 2)
* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral.
* @param char IT_Prio_I2CErr 0 à 15 (utilisé en cas d'erreur, IT courte et non bloquante
* @param *ITErr_function : callback à utiliser pour sortir d'un plantage transmission
* @retval None
* @Example MyI2C_Init(I2C1, 2,My_CallbackErr);
*/
void MyI2C_Init(I2C_TypeDef * I2Cx, char IT_Prio_I2CErr, void (*ITErr_function) (void));
/*=========================================================================================
EMISSION I2C : PutString
========================================================================================= */
// Structure de données pour l'émission ou la réception I2C :
typedef struct
{
char SlaveAdress7bits; // l'adresse I2C du slave device
char * Ptr_Data; // l'adresse du début de tableau char à recevoir/émettre (tableau en RAM uC)
char Nb_Data; // le nbre d'octets à envoyer / recevoir
}
MyI2C_RecSendData_Typedef;
/**
* @brief|Start Cond |@6|@5|@4|@3|@2|@1|@0| Wr =0 |Slave ACK|
|pt7|pt6|pt5|pt4|pt3|pt2|pt1|pt0|Slave ACK|
|d7|d6|d5|d4|d3|d2|d1|d0|Slave ACK| (data 1)
.....
|d7|d6|d5|d4|d3|d2|d1|d0|Salve ACK|Stop Cond| (data N)
* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral.
* @param PteurAdress = adresse de démarrage écriture à l'interieur du slave I2C
* @param DataToSend, adresse de la structure qui contient les informations à transmettre
voir définition MyI2C_RecSendData_Typedef
* @retval None
* @Example MyI2C_PutString(I2C1,0xAA, &MyI2C_SendTimeData);
* Ecrit dans le slave câblé sur I2C1 à partir de l'@ mémoire interne Slave 0xAA
*/
void MyI2C_PutString(I2C_TypeDef * I2Cx, char PteurAdress, MyI2C_RecSendData_Typedef * DataToSend);
/*=========================================================================================
Réception I2C : GetString
========================================================================================= */
/**
* @brief |Start Cond |@6|@5|@4|@3|@2|@1|@0| Wr =0 |Slave ACK|
|pt7|pt6|pt5|pt4|pt3|pt2|pt1|pt0|Slave ACK|
|ReStart Cond |@6|@5|@4|@3|@2|@1|@0| Wr =1 |Slave ACK|
|d7|d6|d5|d4|d3|d2|d1|d0|Master ACK| (data 1)
.....
|d7|d6|d5|d4|d3|d2|d1|d0|Master NACK|Stop Cond| (data N)
* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral.
* @param PteurAdress = adresse de démarrage lecture à l'interieur du slave I2C
* @param DataToSend, adresse de la structure qui contient les informations nécessaires à la
réception des données voir définition MyI2C_RecSendData_Typedef
* @retval None
* @Example MyI2C_GetString(I2C1,0xAA, &MyI2C_RecevievedTimeData);
Lit dans le slave câblé sur I2C1 à partir de l'@ mémoire interne Slave 0xAA
*/
void MyI2C_GetString(I2C_TypeDef * I2Cx, char PteurAdress, MyI2C_RecSendData_Typedef * DataToReceive);
#endif

129
Pilotes/Include/MySPI.h Executable file
View file

@ -0,0 +1,129 @@
#ifndef INC_MYSPI_H_
#define INC_MYSPI_H_
#include "stm32f10x.h"
/*************************************************************************************
===================== By Periph team INSA GEI 2022 ===========================
*************************************************************************************/
/*
*************************************************************************************
===================== I2C les IO STM32F103 =================================
*************************************************************************************
Les IO sont pris en charge par la lib, pas besoin de faire les configurations
Sur la Nucléo , le SPI1 est perturbé par la LED2 (PA5), mais doit pouvoir subir les front SCK qd même (LED clignote vite..)
le SPI2 n'est pas utilisable car pin non connectées par défaut (sauf à modifier les SB). En fait la Nucléo fait un choix entre SPI1
et SPI2 par soudage jumper (SB).
-> Utiliser SPI1 avec la carte Nucléo
* **IO SPI 1**
SPI1_NSS PA4
SPI1_SCK PA5
SPI1_MISO PA6
SPI1_MOSI PA7
**IO SPI 2**
SPI2_NSS PB12
SPI2_SCK PB13
SPI2_MISO PB14
SPI2_MOSI PB15
*************************************************************************************
==================== Fondamentaux SPI ==========================================
*************************************************************************************
- Bus Synchrone, 4 fils (même si on peut l'utiliser en 3 fils)
- Transfert à l'octet
- Protocole entre un Master (contrôle SCK) et un Slave
- SCK permet de synchroniser les bits de chaque octet. Il se configure par :
* son niveau de repos : ici niveau '1'
* le front actif de synchronisation pour chaque bit : ici front montant (front up durant bit stable)
- /CS ou /NSS active le slave sur l'état bas
- MOSI : Master Out Slave In (donc data circulant du Master vers le Slave, donc écriture dans le Slave)
- MISO : Master In Slave Out (donc data circulant du Slave vers le Master, donc lecture du Slave)
Bien que la lib propose une fonction d'écriture et de lecture :
* une écriture s'accompagne obligatoirement d'une lecture (bidon)
* une lecture s'accompagne obligatoirement d'une écriture (bidon)
La gestion /CS = /NSS se fait "à la main". On peut alors lire toute une série d'octets
en laissant /CS à l'état bas pendant toute la durée de circulation des octets.
*************************************************************************************
==================== La lib SPI ==========================================
*************************************************************************************
fonctions essentielles :
MySPI_Init
MySPI_Send
MySPI_Read
MySPI_Set_NSS
MySPI_Clear_NSS
==========================================================================================*/
/*=========================================================================================
INITIALISATION SPI
========================================================================================= */
/**
* @brief Configure le SPI spécifié : 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
* @param SPI_TypeDef * SPI : SPI1 ou SPI2
*/
void MySPI_Init(SPI_TypeDef * SPI);
/**
* @brief Envoie un octet (/CS non géré, à faire logiciellement)
Plus en détail, émission de l'octet souhaité sur MOSI
Lecture en même temps d'un octet poubelle sur MISO (non exploité)
* @param : char ByteToSend : l'octet à envoyer
*/
void MySPI_Send(char ByteToSend);
/**
* @brief Reçoit un octet (/CS non géré, à faire logiciellement)
Plus en détail, émission d'un octet bidon sur MOSI (0x00)
pour élaborer les 8 fronts sur SCK et donc piloter le slave en lecture
qui répond sur MISO
* @param : none
* @retval : l'octet lu.
*/
char MySPI_Read(void);
/**
* @brief Positionne /CS = /NSS à '1'. A utiliser pour borner les octets à transmettre/recevoir
* @param : none
*/
void MySPI_Set_NSS(void);
/**
* @brief Positionne /CS = /NSS à '0'. A utiliser pour borner les octets à transmettre/recevoir
* @param :none
*/
void MySPI_Clear_NSS(void);
#endif

8
Pilotes/Include/MyUart.h Executable file
View file

@ -0,0 +1,8 @@
#include "stm32f10x.h"
void My_USART_Config(USART_TypeDef* , uint32_t );
void USART_Send_Char(USART_TypeDef* , char );
void USART_Send_String(USART_TypeDef*, char*);
void USART_IT_Receive_Enable(USART_TypeDef*);
void Init_IT_Receive(void (*Receive_IT_function) (int));

10
Pilotes/Include/PWM.h Executable file
View file

@ -0,0 +1,10 @@
#ifndef PWM_H_
#define PWM_H_
#include "stm32f10x.h"
//Variables
#define POWERMODE 2 // 1 vaut powermode 1, 0 vaut powermode 2 (Powermode pour le config de dutycycle)
// Config
extern void MyTimer_PWM(TIM_TypeDef * Timer , int Channel);
extern int Set_DutyCycle_PWM(TIM_TypeDef *Timer, int Channel, int DutyC);
int Set_DutyCycle_PWM_Plateau(TIM_TypeDef *Timer, int Channel, int DutyC);
#endif

4
Pilotes/Include/Plateau.h Executable file
View file

@ -0,0 +1,4 @@
#include "stm32f10x.h"
void initPlato(TIM_TypeDef * Timer, int Channel);
void Update_Motor_PWM(int Consigne, TIM_TypeDef * Timer, int Channel);

8
Pilotes/Include/RTC.h Executable file
View file

@ -0,0 +1,8 @@
#ifndef RTC_H_
#define RTC_H_
#include <stm32f10x.h>
void initRTC();
int getTime();
#endif // RTC_H_

56
Pilotes/Source/ADC.c Executable file
View file

@ -0,0 +1,56 @@
#include <stm32f10x.h>
#include <ADC.h>
#include <MyUart.h>
#include <stdint.h>
#include <stdio.h>
//Pont diviseur du tension, coeff. = 1/13
//Alors 13V -> 12V*1/13 = 0.92V
//Tension pile donné sur GPIOA.2
void initADC(){
//Initialisation de ADC
RCC->APB2ENR |= (0x1<<10); //Initialisation du clock interne du ADC2
RCC->APB2ENR |= (0x1<<2); //GPIOA clk enable
ADC2->CR2 |= (0x1); // ON/OFF ADC2
//Init de la broche PA2 en mode analog input
GPIOA->CRL &= ~(0x00000F00);
ADC2->CR2 |= (0x1<<20); //External trigger enable
ADC2->CR2 |= (0b111<<17); //SWSTART
ADC2->CR2 |= (0x1<<1); //Continous conversion
ADC2->SQR3 = 2;
//Essai de faire un nouveau Threshold/Seuil
ADC2->CR1 |= (0x1<<23); //Watchdog enable pour mettre un threshold HIGH
ADC2->HTR &= ~(0x0FFF);
//########################MAHOUT AIDEZ NOUS############################æ
//ADC2->HTR |= 0x0475; //Changement du threshold (0.92V/3.3V)*4096
//ADC2->HTR |= 0x0BBB; //Faut demander le prof pour ce HIGH THRESHOLD
ADC2->CR2 |= (0x1); //ON ADC2
}
int recupADC(){
int data;
data = ADC2->DR;
return data;
}
void sendinfoADC(){
int valu = recupADC();
char meld[60];
char meld2[50];
int test = valu*3.3/4096;
test = test*13*100/12;
int tension = (13*valu)/ADC2->HTR;
int p2 = (13*valu)/0x0FFF;
snprintf(meld, sizeof(meld),"Pourcentage de la pile : riktig: %d next %d next %d \r\n", tension, test, p2);
snprintf(meld2, sizeof(meld2),"Tension de la pile : %dV\r\n", tension);
USART_Send_String(USART1, meld2);
}

92
Pilotes/Source/DriverGPIO.c Executable file
View file

@ -0,0 +1,92 @@
#include <stm32f10x.h>
#include "DriverGPIO.h"
// Constantes
#define In_Floating 0x4
#define In_PullDown 0x8
#define In_PullUp 0x8
#define In_Analog 0x0
#define Out_Ppull 0x3
#define Out_OD 0x7
#define AltOut_Ppull 0xB
#define AltOut_OD 0xF
void MyGPIO_Init(GPIO_TypeDef * GPIO, char pin, char conf) {
int shift_pin;
//Start clock for relevant GPIO
if(GPIO == GPIOA) {
RCC -> APB2ENR |= RCC_APB2ENR_IOPAEN;
}
else if(GPIO == GPIOB) {
RCC -> APB2ENR |= RCC_APB2ENR_IOPBEN;
}
else if(GPIO == GPIOC) {
RCC -> APB2ENR |= RCC_APB2ENR_IOPCEN;
}
else if(GPIO == GPIOD) {
RCC -> APB2ENR |= RCC_APB2ENR_IOPDEN;
}
if(pin < 8) {//CRL zone
shift_pin = pin*4;
GPIO -> CRL &= ~(0xF << shift_pin);
//PullUp and PullDown have the same conf number, so we need to change the ODR to diferenciate them both
if(conf == In_PullUp) {
GPIO -> CRL |= ( In_PullUp << shift_pin);
GPIO -> ODR |= (1<<pin);
}
else if(conf == In_PullDown) {
GPIO -> CRL |= ( In_PullDown << shift_pin);
GPIO -> ODR &= ~(1<<pin);
}
else {
GPIO -> CRL |= ( conf << shift_pin);
}
}
else {//CRH zone
shift_pin = (pin-8)*4;
GPIO -> CRH &= ~(0xF << shift_pin);
if(conf == In_PullUp) {
GPIO -> CRH |= ( In_PullUp << shift_pin);
GPIO -> ODR |= (1<<pin);
}
else if(conf == In_PullDown) {
GPIO -> CRH |= ( In_PullDown << shift_pin);
GPIO -> ODR &= ~(1<<pin);
}
else {
GPIO -> CRH |= ( conf << shift_pin);
}
}
}
int MyGPIO_Read(GPIO_TypeDef * GPIO, char GPIO_Pin) {
return(GPIO -> IDR & (1 << GPIO_Pin));
}
void MyGPIO_Set(GPIO_TypeDef * GPIO, char GPIO_Pin) {
GPIO -> BSRR = (1<<GPIO_Pin);//1 on set zone
}
void MyGPIO_Reset(GPIO_TypeDef * GPIO, char GPIO_Pin) {
GPIO -> BSRR = (1<<(GPIO_Pin+16));//1 on reset zone
}
void MYGPIO_PinOn (GPIO_TypeDef *GPIO , char GPIO_Pin){
GPIO->ODR |= (1<<GPIO_Pin);
};
void MYGPIO_PinOff (GPIO_TypeDef *GPIO , char GPIO_Pin){
GPIO->ODR &= ~(1<<GPIO_Pin);
};
void MyGPIO_Toggle(GPIO_TypeDef * GPIO, char GPIO_Pin) {
GPIO -> ODR = GPIO -> ODR ^ (0x1 << GPIO_Pin);
}

91
Pilotes/Source/Horloge.c Executable file
View file

@ -0,0 +1,91 @@
#include <stm32f10x.h>
#include "Horloge.h"
static void (*TIM2_Appel)(void) = 0;
static void (*TIM3_Appel)(void) = 0;
static void (*TIM4_Appel)(void) = 0;
void Timer_Init(TIM_TypeDef *Timer, unsigned short Autoreload, unsigned short Prescaler) {
if (Timer == TIM1) {
// On ne l'utilise JAMAIS!!
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
}
else if (Timer == TIM2) {
TIM2->CR1 |= TIM_CR1_CEN;
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
}
else if (Timer == TIM3) {
TIM3->CR1 |= TIM_CR1_CEN;
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
}
else if (Timer == TIM4) {
TIM3->CR1 |= TIM_CR1_CEN;
RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;
}
Timer->ARR |= Autoreload;
Timer->PSC |= Prescaler;
Timer->EGR |= TIM_EGR_UG;
}
void MyTimer_ActiveIT(TIM_TypeDef * Timer, char Prio, void(*Interrupt_fonc)(void)) { //On veut créer une fonction qui envoie un signal au cas où il y a debordement, avec une prioritaire, 0 plus importante 15 moins importante
if (Timer == TIM2) {
TIM2_Appel = Interrupt_fonc;
NVIC_EnableIRQ(TIM2_IRQn);
NVIC_SetPriority(TIM2_IRQn, Prio);
TIM2->DIER |= TIM_DIER_UIE; //Le registre DIER(Interrupt Enable Register) est mis au bit Update Interrupt, qui se commute lors d'un overflow
TIM2->CR1 |= TIM_CR1_CEN; //Clock Enable
}
else if (Timer == TIM3) {
TIM3_Appel = Interrupt_fonc;
NVIC_EnableIRQ(TIM3_IRQn);
NVIC_SetPriority(TIM2_IRQn, Prio);
TIM3->DIER |= TIM_DIER_UIE;
TIM3->CR1 |= TIM_CR1_CEN;
}
else if (Timer == TIM4) {
TIM4_Appel = Interrupt_fonc;
NVIC_EnableIRQ(TIM4_IRQn);
NVIC_SetPriority(TIM4_IRQn, Prio);
TIM4->DIER |= TIM_DIER_UIE;
TIM4->CR1 |= TIM_CR1_CEN;
}
else if (Timer == TIM1) {
// On n'utilise pas TIM1
}
else {
// L'horloge n'existe pas
}
}
//La fonction TIM2_IRQHandler existe déjà dans le processeur, on l'a juste redifint, tel qu'à chaque overflow on met un bit 1 dans GPIOA_ODR
void TIM2_IRQHandler(void) { //On redefinit le IRQHandler qui est déjà ecrit dans le code source
if (TIM2->SR & TIM_SR_UIF) { //On met le bit de overflow à un dès qu'on a overflow
TIM2->SR &= ~TIM_SR_UIF; //Remise à zero
if (TIM2_Appel){TIM2_Appel();}
}
}
//La fonction TIM3_IRQHandler existe déjà dans le processeur, on l'a juste redifint, tel qu'à chaque overflow on met un bit 1 dans GPIOA_ODR
void TIM3_IRQHandler(void) { //On redefinit le IRQHandler qui est déjà ecrit dans le code source
if (TIM3->SR & TIM_SR_UIF) { //On met le bit de overflow à un dès qu'on a overflow
TIM3->SR &= ~TIM_SR_UIF; //Remise à zero
if (TIM3_Appel){TIM3_Appel();}
}
}
//La fonction TIM4_IRQHandler existe déjà dans le processeur, on l'a juste redifint, tel qu'à chaque overflow on met un bit 1 dans GPIOA_ODR
void TIM4_IRQHandler(void) { //On redefinit le IRQHandler qui est déjà ecrit dans le code source
if (TIM4->SR & TIM_SR_UIF) { //On met le bit de overflow à un dès qu'on a overflow
TIM4->SR &= ~TIM_SR_UIF; //Remise à zero
if (TIM4_Appel){TIM4_Appel();}
}
}

9
Pilotes/Source/I2C.c Executable file
View file

@ -0,0 +1,9 @@
#include <stm32f10x.h>
#include "I2C.h"
void initI2C() {
RCC -> APB1ENR |= 0x1 << 21; // Enable clock
I2C1 -> CR1 |= 0x1 << 0; // Peripheral enable
I2C1 -> CR1 &= ~(0x1 << 1); // I2C mode
}

95
Pilotes/Source/MYGPIO.c Executable file
View file

@ -0,0 +1,95 @@
#include <stdlib.h>
#include <stm32f10x.h>
#include "MYGPIO.h"
//FONCTIONS POUR LE DEL INTERNE
void initGPIO_Interne(void) {
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) ;
//Start
//CRL pour les 8 premiers portes, CRH pour les 8 dernières portes
if (LED_PIN_INTERNE < 8) {
LED_GPIO_INTERNE->CRL &= ~(0xF << (LED_PIN_INTERNE*4));
LED_GPIO_INTERNE->CRL |= GPIO_OUTPUT_PPULL_MODE<<(LED_PIN_INTERNE*4) ; // On met tous les Pins de broche A à ANalog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
}
else {
LED_GPIO_INTERNE->CRH &= ~(0xF <<((LED_PIN_INTERNE-8)*4));
LED_GPIO_INTERNE->CRH |= GPIO_OUTPUT_PPULL_MODE<<((LED_PIN_INTERNE-8)*4);
}
if (BUTTON_PIN_INTERNE < 8) {
BUTTON_GPIO_INTERNE->CRL &= ~(0xF << (BUTTON_PIN_INTERNE*4));
BUTTON_GPIO_INTERNE->CRL |= GPIO_INPUT_FLOATING_MODE<<(BUTTON_PIN_INTERNE*4) ; // On met tous les Pins de broche A à ANalog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
}
else {
BUTTON_GPIO_INTERNE->CRH &= ~(0xF <<((BUTTON_PIN_INTERNE-8)*4));
BUTTON_GPIO_INTERNE->CRH |= GPIO_INPUT_FLOATING_MODE<<((BUTTON_PIN_INTERNE-8)*4);
}
}
int boutonAppuye_Interne(void) {
return BUTTON_GPIO_INTERNE->IDR &(1<<BUTTON_PIN_INTERNE);
}
void allumerDEL_Interne(void) {
LED_GPIO_INTERNE->ODR |= (0x01 << LED_PIN_INTERNE) ; //On essaie de mettre en position PA5 de GPIOC_ODR un 1 comme ca allume le LED GREEN
}
void eteindreDEL_Interne(void) { // Allumer un LED externe, PB8/D15 OUTPUT, Bouton Poussoir PB9/D14
LED_GPIO_INTERNE->ODR &= ~(0x01 << LED_PIN_EXTERNE) ; //On essaie de mettre en position PA5 de GPIOC_ODR un 0 comme ca eteint le LED GREEN
}
void commuterDEL_Interne(void) {
LED_GPIO_INTERNE->ODR ^= (0x01 << LED_PIN_INTERNE);
}
//FONCTIONS POUR LE DEL EXTERNE
void initGPIO_Externe(void) {
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) ;
// CRL pour les 8 premiers portes, CRH pour les 8 dernières portes
if (LED_PIN_EXTERNE < 8) {
LED_GPIO_EXTERNE->CRL &= ~(0xF << (LED_PIN_EXTERNE*4));
LED_GPIO_EXTERNE->CRL |= GPIO_OUTPUT_PPULL_MODE<<(LED_PIN_EXTERNE*4) ; // On met tous les Pins de broche A à ANalog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
}
else {
LED_GPIO_EXTERNE->CRH &= ~(0xF <<((LED_PIN_EXTERNE-8)*4));
LED_GPIO_EXTERNE->CRH |= GPIO_OUTPUT_PPULL_MODE<<((LED_PIN_EXTERNE-8)*4);
}
if (BUTTON_PIN_EXTERNE < 8) {
BUTTON_GPIO_EXTERNE->CRL &= ~(0xF << (BUTTON_PIN_EXTERNE*4));
BUTTON_GPIO_EXTERNE->CRL |= GPIO_INPUT_FLOATING_MODE<<(BUTTON_PIN_EXTERNE*4) ; // On met tous les Pins de broche A à ANalog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
}
else {
BUTTON_GPIO_EXTERNE->CRH &= ~(0xF <<((BUTTON_PIN_EXTERNE-8)*4));
BUTTON_GPIO_EXTERNE->CRH |= GPIO_INPUT_FLOATING_MODE<<((BUTTON_PIN_EXTERNE-8)*4);
}
}
int boutonAppuye_Externe(void) {
return BUTTON_GPIO_EXTERNE->IDR &(1<<BUTTON_PIN_EXTERNE);
}
void allumerDEL_Externe(void) { // On essaie de mettre en position PA5 de GPIOC_ODR un 1 comme ca allume le LED GREEN
LED_GPIO_EXTERNE->ODR |= (0x01 << LED_PIN_EXTERNE) ;
}
void eteindreDEL_Externe(void) { // Allumer un LED externe, PB8/D15 OUTPUT, Bouton Poussoir PB9/D14
LED_GPIO_EXTERNE->ODR &= ~(0x01 << LED_PIN_EXTERNE) ; // On essaie de mettre en position PA5 de GPIOC_ODR un 0 comme ca eteint le LED GREEN
}
void commuterDEL_Externe(void) {
LED_GPIO_EXTERNE->ODR ^= (0x01 << LED_PIN_EXTERNE);
}

55
Pilotes/Source/MyUart.c Executable file
View file

@ -0,0 +1,55 @@
#include <stm32f10x.h>
#include "DriverGPIO.h"
void My_USART_Config(USART_TypeDef* USARTx, uint32_t baudrate) { //QUE POUR USART_CR1_RE
// Configuration PA9 (Tx) en Alternate Function Push-Pull
MyGPIO_Init(GPIOA, 9 , AltOut_Ppull);
// Configuration PA10 (Rx) en Input Floating
MyGPIO_Init(GPIOA, 10 , In_Floating);
NVIC_EnableIRQ(USART1_IRQn);
NVIC_SetPriority(USART1_IRQn, 3<<4);
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
USARTx->CR1 |= USART_CR1_UE;
USARTx->BRR = baudrate;
USARTx->CR1 |= USART_CR1_TE;
USARTx->CR1 |= USART_CR1_RE;
};
void USART_Send_Char(USART_TypeDef* USARTx, char car) {
while ((USARTx->SR & USART_SR_TXE)==0){}
USARTx->DR = car;
};
void USART_Send_String(USART_TypeDef *USARTx, char *pString) {
while (*pString != '\0') {
USART_Send_Char(USARTx, *pString);
pString++;
}
};
void (*pFnc_Receive)(char);
void USART_IT_Receive_Enable(USART_TypeDef* USARTx) {
USARTx->CR1 |= USART_CR1_RXNEIE;
};
void Init_IT_Receive(void (*Receive_IT_function) (char)) {
pFnc_Receive = Receive_IT_function;
};
void USART1_IRQHandler(void) {
signed char commande = USART1->DR;
if (pFnc_Receive != 0) {
pFnc_Receive(commande);
}
};

112
Pilotes/Source/PWM.c Executable file
View file

@ -0,0 +1,112 @@
#include "stm32f10x.h"
#include "PWM.h"
void MyTimer_PWM(TIM_TypeDef * Timer , int Channel){
int pwrmd;
#if POWERMODE //Powermode 1
pwrmd = 0b110;
#else
pwrmd = 0b111; //Powermode 2
#endif
if (Channel == 1){
Timer->CCMR1 &= ~(0b111<<4); //On clear les trois bits qui sont de pwm
Timer->CCMR1 |= (pwrmd<<4); //On affecte le powermode au bits de lecture pour le µ-controlleur
Timer->CCMR1 |= TIM_CCMR1_OC1PE; //Update preload, il n'affecte pas le valeur avant que la prochaine cycle
Timer->CCER = TIM_CCER_CC1E; //Enable le pin voulu basculer
}
else if (Channel == 2){
Timer->CCMR1 &= ~(0b111<<12); //Le TIMx_CCMR1 configure deux channels, de bit [6:4] CH1, [14:12] CH2 (OC2M = Output Channel 2 )
Timer->CCMR1 |= (pwrmd<<12);
Timer->CCMR1 |= TIM_CCMR1_OC2PE;
Timer->CCER |= TIM_CCER_CC2E;
}
else if (Channel == 3){
Timer->CCMR1 &= ~(0b111<<4);
Timer->CCMR2 |= (pwrmd<<4);
Timer->CCMR2 |= TIM_CCMR2_OC3PE;
Timer->CCER |= TIM_CCER_CC3E;
}
else if (Channel == 4){
Timer->CCMR1 &= ~(0b111<<12);
Timer->CCMR2 |= (pwrmd<<12);
Timer->CCMR2 |= TIM_CCMR2_OC4PE;
Timer->CCER |= TIM_CCER_CC4E;
}
//En dessous d'ici, on a l'aide du plus gentil chat que je connais
// Enable auto-reload preload -- //Ensures that your initial configuration — PWM mode, duty cycle, period — actually takes effect before the timer starts counting.
Timer->CR1 |= TIM_CR1_ARPE;
// Force update event to load ARR and CCR values immediately
Timer->EGR |= TIM_EGR_UG;
// Start the timer
Timer->CR1 |= TIM_CR1_CEN;
switch (Channel) {
case 1:
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<0*4); GPIOA->CRH |= (0xA<<0*4); TIM1->BDTR |= 1<<15; }
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<0*4); GPIOA->CRL |= (0xA<<0*4);}
if (Timer == TIM3){GPIOA->CRL &= ~(0xF<<6*4); GPIOA->CRL |= (0xA<<6*4);}
if (Timer == TIM4){GPIOB->CRL &= ~(0xF<<5*4); GPIOB->CRL |= (0xA<<5*4);}
break;
case 2:
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4); TIM1->BDTR |= 1<<15;}
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4);}
if (Timer == TIM3){GPIOA->CRL &= ~(0xF<<7*4); GPIOA->CRL |= (0xA<<7*4);}
if (Timer == TIM4){GPIOB->CRL &= ~(0xF<<7*4); GPIOB->CRL |= (0xA<<7*4);}
break;
case 3:
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<2*4); GPIOA->CRH |= (0xA<<2*4); TIM1->BDTR |= 1<<15;}
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<2*4); GPIOA->CRL |= (0xA<<2*4);}
if (Timer == TIM3){GPIOB->CRL &= ~(0xF<<0*4); GPIOB->CRL |= (0xA<<0*4);}
if (Timer == TIM4){GPIOB->CRH &= ~(0xF<<0*4); GPIOB->CRH |= (0xA<<0*4);}
break;
case 4:
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<3*4); GPIOA->CRH |= (0xA<<3*4); TIM1->BDTR |= 1<<15;}
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<3*4); GPIOA->CRL |= (0xA<<3*4);}
if (Timer == TIM3){GPIOB->CRL &= ~(0xF<<1*4); GPIOB->CRL |= (0xA<<1*4);}
if (Timer == TIM4){GPIOB->CRH &= ~(0xF<<1*4); GPIOB->CRH |= (0xA<<1*4);}
}
}
//Une fonction qui met le bon PWM voulu
int Set_DutyCycle_PWM(TIM_TypeDef *Timer, int Channel, int DutyC){
int CCR_VAL = (Timer -> ARR + 1) * DutyC / 100;
switch (Channel){
case 1: Timer->CCR1 = CCR_VAL;
break;
case 2: Timer->CCR2 = CCR_VAL;
break;
case 3: Timer->CCR3 = CCR_VAL;
break;
case 4: Timer->CCR4 = CCR_VAL;
break;
default: break;
}
return 0;
Timer->EGR |= TIM_EGR_UG;
}
// NOuvelle Set_D
int Set_DutyCycle_PWM_Plateau(TIM_TypeDef *Timer, int Channel, int DutyC){
int CCR_VAL = (Timer->ARR + 1) * DutyC / 100;
switch (Channel){
case 1:
Timer->CCR1 = CCR_VAL;
break;
case 2:
Timer->CCR2 = CCR_VAL;
break;
case 3:
Timer->CCR3 = CCR_VAL;
break;
case 4:
Timer->CCR4 = CCR_VAL;
break;
default:
return -1; // channel invalide
}
Timer->EGR |= TIM_EGR_UG; // update event
return 0;
}

35
Pilotes/Source/Plateau.c Executable file
View file

@ -0,0 +1,35 @@
#include "stm32f10x.h"
#include "PWM.h"
#include "DriverGPIO.h"
#include "Horloge.h"
void initPlato(TIM_TypeDef * Timer, int Channel) { // Config du moteur servo
MyGPIO_Init(GPIOB, 5, AltOut_Ppull); //config pin de direction 0 ou 1
if (Timer == TIM3) {
Timer_Init(TIM3, 159, 17); // Pour obtenir fréq de 20kHZ
if (Channel == 3) {
MyGPIO_Init(GPIOB, 0, AltOut_Ppull); // Outut push pull alternate, config pin de consigne entre -100 et 100
MyTimer_PWM(TIM3, 3); //TIM3 CH3
}
else {
//printf("Ce pilote n'existe pas");
}
}
else {
//printf("Ce pilote n'existe pas");
}
}
void Update_Motor_PWM(int Consigne, TIM_TypeDef * Timer, int Channel) {
int duty_cycle;
if (Consigne>=0) {
MyGPIO_Set(GPIOB, 5);
duty_cycle = Consigne;
}
if (Consigne<0){
MyGPIO_Reset(GPIOB,5);
duty_cycle = -Consigne;
}
Set_DutyCycle_PWM_Plateau(Timer, Channel, duty_cycle);
}

13
Pilotes/Source/RTC.c Executable file
View file

@ -0,0 +1,13 @@
#include "RTC.h"
void initRTC() {
RTC -> PRLL = 0x7FFF; // Obtenir un période de 1 seconde
RTC -> PRLH = 0xFFFF; // Le plus grand possible
}
int getTime() {
return(RTC -> PRLH);
}

3664
Projet0.uvguix Normal file

File diff suppressed because one or more lines are too long

258
ProjetVoilier/ProjetVoilier.uvoptx → Projet0.uvoptx Normal file → Executable file
View file

@ -125,7 +125,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=638,234,1284,907,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=1333,301,1754,706,0)(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=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(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=638,191,1284,864,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=777,459,1198,864,0)(121=1115,459,1536,864,0)(122=1115,197,1536,602,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=87,170,681,864,0)(132=-1,-1,-1,-1,0)(133=937,170,1531,864,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)(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>
@ -149,6 +149,40 @@
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>angleVentVar,0x0A</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>angleVoileVar,0x0A</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>moy,0x0A</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>Val_lim</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>commande,0x0A</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
<Ww>
<count>0</count>
<WinNumber>2</WinNumber>
<ItemText>angleVoileVar</ItemText>
</Ww>
</WatchWindow2>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -209,7 +243,7 @@
<CLKADS>8000000</CLKADS>
<OPTTT>
<gFlags>1</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<BeepAtEnd>0</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunAbUc>0</RunAbUc>
@ -305,7 +339,7 @@
<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=638,234,1284,907,0)(110=1199,192,1419,652,0)(111=1025,230,1245,690,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=835,180,1256,607,0)(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=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</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=638,234,1284,907,0)(110=1085,167,1305,627,0)(111=1025,230,1245,690,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=835,180,1256,607,0)(121=1311,520,1732,947,1)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=1162,203,1756,954,1)(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>
@ -318,7 +352,52 @@
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>38</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134221140</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>U:\git\BE_VOILIER\Application\principal.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\ProjetVide\../../BE_VOILIER/Application/principal.c\38</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>19</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134221104</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>U:\git\BE_VOILIER\Application\principal.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\ProjetVide\../../BE_VOILIER/Application/principal.c\19</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>dutyCycle</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>CCR_VAL</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -339,7 +418,7 @@
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aLa>1</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
@ -361,6 +440,13 @@
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<LogicAnalyzers>
<Wi>
<IntNumber>0</IntNumber>
<FirstString>((PORTB &amp; 0x00000100) &gt;&gt; 8 &amp; 0x100) &gt;&gt; 8</FirstString>
<SecondString>FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028504F5254422026203078303030303031303029203E3E2038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F1300000000000000000000000000000000000000200F0008</SecondString>
</Wi>
</LogicAnalyzers>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>1</EnableFlashSeq>
@ -393,18 +479,174 @@
<Group>
<GroupName>Services</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Services\Source\Accelerometre.c</PathWithFileName>
<FilenameWithoutPath>Accelerometre.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Services\Source\Girouette.c</PathWithFileName>
<FilenameWithoutPath>Girouette.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Services\Source\Servo.c</PathWithFileName>
<FilenameWithoutPath>Servo.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\ADC.c</PathWithFileName>
<FilenameWithoutPath>ADC.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\DriverGPIO.c</PathWithFileName>
<FilenameWithoutPath>DriverGPIO.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\Horloge.c</PathWithFileName>
<FilenameWithoutPath>Horloge.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\I2C.c</PathWithFileName>
<FilenameWithoutPath>I2C.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\MYGPIO.c</PathWithFileName>
<FilenameWithoutPath>MYGPIO.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\MyUart.c</PathWithFileName>
<FilenameWithoutPath>MyUart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\Plateau.c</PathWithFileName>
<FilenameWithoutPath>Plateau.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\PWM.c</PathWithFileName>
<FilenameWithoutPath>PWM.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Pilotes\Source\RTC.c</PathWithFileName>
<FilenameWithoutPath>RTC.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>14</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Lib_Com_Periph_2022.lib</PathWithFileName>
<FilenameWithoutPath>Lib_Com_Periph_2022.lib</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -417,7 +659,7 @@
<Group>
<GroupName>::Device</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>

158
ProjetVoilier/ProjetVoilier.uvprojx → Projet0.uvprojx Normal file → Executable file
View file

@ -49,7 +49,7 @@
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\Objects\</OutputDirectory>
<OutputName>Projet3FISA</OutputName>
<OutputName>Projet0</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
@ -134,11 +134,11 @@
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>-1</DriverSelection>
<DriverSelection>4096</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3></Flash3>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp>
@ -190,7 +190,7 @@
<hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<useUlib>1</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<nSecure>0</nSecure>
@ -340,7 +340,7 @@
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<IncludePath>.\Pilotes\Include;.\Services\Include;.;.\Services\Source;.\Pilotes\Source</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -393,9 +393,78 @@
</Group>
<Group>
<GroupName>Services</GroupName>
<Files>
<File>
<FileName>Accelerometre.c</FileName>
<FileType>1</FileType>
<FilePath>.\Services\Source\Accelerometre.c</FilePath>
</File>
<File>
<FileName>Girouette.c</FileName>
<FileType>1</FileType>
<FilePath>.\Services\Source\Girouette.c</FilePath>
</File>
<File>
<FileName>Servo.c</FileName>
<FileType>1</FileType>
<FilePath>.\Services\Source\Servo.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<Files>
<File>
<FileName>ADC.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\ADC.c</FilePath>
</File>
<File>
<FileName>DriverGPIO.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\DriverGPIO.c</FilePath>
</File>
<File>
<FileName>Horloge.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\Horloge.c</FilePath>
</File>
<File>
<FileName>I2C.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\I2C.c</FilePath>
</File>
<File>
<FileName>MYGPIO.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\MYGPIO.c</FilePath>
</File>
<File>
<FileName>MyUart.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\MyUart.c</FilePath>
</File>
<File>
<FileName>Plateau.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\Plateau.c</FilePath>
</File>
<File>
<FileName>PWM.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\PWM.c</FilePath>
</File>
<File>
<FileName>RTC.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\RTC.c</FilePath>
</File>
<File>
<FileName>Lib_Com_Periph_2022.lib</FileName>
<FileType>4</FileType>
<FilePath>.\Lib_Com_Periph_2022.lib</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
@ -409,7 +478,7 @@
<TargetName>Simulation</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>6220000::V6.22::ARMCLANG</pCCUsed>
<pCCUsed>6230000::V6.23::ARMCLANG</pCCUsed>
<uAC6>1</uAC6>
<TargetOption>
<TargetCommonOption>
@ -558,7 +627,7 @@
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>1</AdsALst>
<AdsALst>0</AdsALst>
<AdsACrf>1</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
@ -739,7 +808,7 @@
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<IncludePath>.\Include;.\Pilotes\Include;.\Services\Include;.;.\Services\Source;.\Pilotes\Source</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -792,9 +861,78 @@
</Group>
<Group>
<GroupName>Services</GroupName>
<Files>
<File>
<FileName>Accelerometre.c</FileName>
<FileType>1</FileType>
<FilePath>.\Services\Source\Accelerometre.c</FilePath>
</File>
<File>
<FileName>Girouette.c</FileName>
<FileType>1</FileType>
<FilePath>.\Services\Source\Girouette.c</FilePath>
</File>
<File>
<FileName>Servo.c</FileName>
<FileType>1</FileType>
<FilePath>.\Services\Source\Servo.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<Files>
<File>
<FileName>ADC.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\ADC.c</FilePath>
</File>
<File>
<FileName>DriverGPIO.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\DriverGPIO.c</FilePath>
</File>
<File>
<FileName>Horloge.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\Horloge.c</FilePath>
</File>
<File>
<FileName>I2C.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\I2C.c</FilePath>
</File>
<File>
<FileName>MYGPIO.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\MYGPIO.c</FilePath>
</File>
<File>
<FileName>MyUart.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\MyUart.c</FilePath>
</File>
<File>
<FileName>Plateau.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\Plateau.c</FilePath>
</File>
<File>
<FileName>PWM.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\PWM.c</FilePath>
</File>
<File>
<FileName>RTC.c</FileName>
<FileType>1</FileType>
<FilePath>.\Pilotes\Source\RTC.c</FilePath>
</File>
<File>
<FileName>Lib_Com_Periph_2022.lib</FileName>
<FileType>4</FileType>
<FilePath>.\Lib_Com_Periph_2022.lib</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
@ -834,7 +972,7 @@
<targetInfo name="Simulation"/>
</targetInfos>
</file>
<file attr="config" category="source" condition="STM32F1xx MD ARMCC" name="Device\Source\ARM\startup_stm32f10x_md.s" version="1.0.0">
<file attr="config" category="source" condition="STM32F1xx MD ARMCC" name="Device\Source\ARM\startup_stm32f10x_md.s" version="1.0.1">
<instance index="0">RTE\Device\STM32F103RB\startup_stm32f10x_md.s</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="https://www.keil.com/pack/" vendor="Keil" version="2.4.1"/>
@ -843,7 +981,7 @@
<targetInfo name="Simulation"/>
</targetInfos>
</file>
<file attr="config" category="source" name="Device\Source\system_stm32f10x.c" version="1.0.0">
<file attr="config" category="source" name="Device\Source\system_stm32f10x.c" version="1.0.1">
<instance index="0">RTE\Device\STM32F103RB\system_stm32f10x.c</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="https://www.keil.com/pack/" vendor="Keil" version="2.4.1"/>

View file

@ -1,11 +0,0 @@
#include "stm32f10x.h"
int main ( void )
{
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) ;
while (1)
{
}
}

View file

@ -1,426 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
<SchemaVersion>1.0</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Extensions>
<cExt>*.c</cExt>
<aExt>*.s*; *.src; *.a*</aExt>
<oExt>*.obj; *.o</oExt>
<lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp; *.cc; *.cxx</CppX>
<nMigrate>0</nMigrate>
</Extensions>
<DaveTm>
<dwLowDateTime>0</dwLowDateTime>
<dwHighDateTime>0</dwHighDateTime>
</DaveTm>
<Target>
<TargetName>Reel</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<CLKADS>8000000</CLKADS>
<OPTTT>
<gFlags>1</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunAbUc>0</RunAbUc>
</OPTTT>
<OPTHX>
<HexSelection>1</HexSelection>
<FlashByte>65535</FlashByte>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
</OPTHX>
<OPTLEX>
<PageWidth>79</PageWidth>
<PageLength>66</PageLength>
<TabStop>8</TabStop>
<ListingPath>.\Listings\</ListingPath>
</OPTLEX>
<ListingPage>
<CreateCListing>1</CreateCListing>
<CreateAListing>1</CreateAListing>
<CreateLListing>1</CreateLListing>
<CreateIListing>0</CreateIListing>
<AsmCond>1</AsmCond>
<AsmSymb>1</AsmSymb>
<AsmXref>0</AsmXref>
<CCond>1</CCond>
<CCode>0</CCode>
<CListInc>0</CListInc>
<CSymb>0</CSymb>
<LinkerCodeListing>0</LinkerCodeListing>
</ListingPage>
<OPTXL>
<LMap>1</LMap>
<LComments>1</LComments>
<LGenerateSymbols>1</LGenerateSymbols>
<LLibSym>1</LLibSym>
<LLines>1</LLines>
<LLocSym>1</LLocSym>
<LPubSym>1</LPubSym>
<LXref>0</LXref>
<LExpSel>0</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
<sRwatch>1</sRwatch>
<sRmem>1</sRmem>
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>1</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
<tRfunc>0</tRfunc>
<tRbox>1</tRbox>
<tRtrace>1</tRtrace>
<sRSysVw>1</sRSysVw>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgPa></sDlgPa>
<sIfile>.\simu.ini</sIfile>
<tDll></tDll>
<tDllPa></tDllPa>
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile>.\reel.ini</tIfile>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<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=638,234,1284,907,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=1333,301,1754,706,0)(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=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(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>ARMDBGFLAGS</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name>(105=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U066EFF323535474B43174430 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 -WK0-R0</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
<AscS1>0</AscS1>
<AscS2>0</AscS2>
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
<StkLoc>0</StkLoc>
<TrcWin>0</TrcWin>
<newCpu>0</newCpu>
<uProt>0</uProt>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
</DebugDescription>
</TargetOption>
</Target>
<Target>
<TargetName>Simulation</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<CLKADS>8000000</CLKADS>
<OPTTT>
<gFlags>1</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunAbUc>0</RunAbUc>
</OPTTT>
<OPTHX>
<HexSelection>1</HexSelection>
<FlashByte>65535</FlashByte>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
</OPTHX>
<OPTLEX>
<PageWidth>79</PageWidth>
<PageLength>66</PageLength>
<TabStop>8</TabStop>
<ListingPath>.\Listings\</ListingPath>
</OPTLEX>
<ListingPage>
<CreateCListing>1</CreateCListing>
<CreateAListing>1</CreateAListing>
<CreateLListing>1</CreateLListing>
<CreateIListing>0</CreateIListing>
<AsmCond>1</AsmCond>
<AsmSymb>1</AsmSymb>
<AsmXref>0</AsmXref>
<CCond>1</CCond>
<CCode>0</CCode>
<CListInc>0</CListInc>
<CSymb>0</CSymb>
<LinkerCodeListing>0</LinkerCodeListing>
</ListingPage>
<OPTXL>
<LMap>1</LMap>
<LComments>1</LComments>
<LGenerateSymbols>1</LGenerateSymbols>
<LLibSym>1</LLibSym>
<LLines>1</LLines>
<LLocSym>1</LLocSym>
<LPubSym>1</LPubSym>
<LXref>0</LXref>
<LExpSel>0</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>1</uSim>
<uTrg>0</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
<sRwatch>1</sRwatch>
<sRmem>1</sRmem>
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>1</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
<tRfunc>0</tRfunc>
<tRbox>1</tRbox>
<tRtrace>1</tRtrace>
<sRSysVw>1</sRSysVw>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgPa></sDlgPa>
<sIfile>.\simu.ini</sIfile>
<tDll></tDll>
<tDllPa></tDllPa>
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile>.\simu.ini</tIfile>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<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=638,234,1284,907,0)(110=1199,192,1419,652,0)(111=1025,230,1245,690,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=835,180,1256,607,0)(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=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name>-T0</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
<AscS1>0</AscS1>
<AscS2>0</AscS2>
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
<StkLoc>0</StkLoc>
<TrcWin>0</TrcWin>
<newCpu>0</newCpu>
<uProt>0</uProt>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>1</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
</DebugDescription>
</TargetOption>
</Target>
<Group>
<GroupName>Application</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>1</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Application\principal.c</PathWithFileName>
<FilenameWithoutPath>principal.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>Services</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>
</Group>
<Group>
<GroupName>::Device</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>
</Group>
</ProjectOpt>

View file

@ -1,868 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
<SchemaVersion>2.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>Reel</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>6230000::V6.23::ARMCLANG</pCCUsed>
<uAC6>1</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>STM32F103RB</Device>
<Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.4.1</PackID>
<PackURL>https://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</FlashDriverDll>
<DeviceId>4231</DeviceId>
<RegisterFile>$$Device:STM32F103RB$Device\Include\stm32f10x.h</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F103RB$SVD\STM32F103xx.svd</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<RegisterFilePath></RegisterFilePath>
<DBRegisterFilePath></DBRegisterFilePath>
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
<ButtonStop>0</ButtonStop>
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\Objects\</OutputDirectory>
<OutputName>Projet3FISA</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
<ListingPath>.\Listings\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopA1X>0</nStopA1X>
<nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>0</GenerateAssemblyFile>
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments></SimDllArguments>
<SimDlgDll>DARMSTM.DLL</SimDlgDll>
<SimDlgDllArguments>-pSTM32F103RB</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments></TargetDllArguments>
<TargetDlgDll>TARMSTM.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pSTM32F103RB</TargetDlgDllArguments>
</DllOption>
<DebugOption>
<OPTHX>
<HexSelection>1</HexSelection>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
</DebugOption>
<Utilities>
<Flash1>
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>-1</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3></Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp>
<pFcArmRoot></pFcArmRoot>
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
<GenerateListings>0</GenerateListings>
<asHll>1</asHll>
<asAsm>1</asAsm>
<asMacX>1</asMacX>
<asSyms>1</asSyms>
<asFals>1</asFals>
<asDbgD>1</asDbgD>
<asForm>1</asForm>
<ldLst>0</ldLst>
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>1</AdsALst>
<AdsACrf>1</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
<AdsLLst>1</AdsLLst>
<AdsLmap>1</AdsLmap>
<AdsLcgr>1</AdsLcgr>
<AdsLsym>1</AdsLsym>
<AdsLszi>1</AdsLszi>
<AdsLtoi>1</AdsLtoi>
<AdsLsun>1</AdsLsun>
<AdsLven>1</AdsLven>
<AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M3"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
<hadIROM>1</hadIROM>
<hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<nSecure>0</nSecure>
<RoSelD>3</RoSelD>
<RwSelD>3</RwSelD>
<CodeSel>0</CodeSel>
<OptFeed>0</OptFeed>
<NoZi1>0</NoZi1>
<NoZi2>0</NoZi2>
<NoZi3>0</NoZi3>
<NoZi4>0</NoZi4>
<NoZi5>0</NoZi5>
<Ro1Chk>0</Ro1Chk>
<Ro2Chk>0</Ro2Chk>
<Ro3Chk>0</Ro3Chk>
<Ir1Chk>1</Ir1Chk>
<Ir2Chk>0</Ir2Chk>
<Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk>
<Im1Chk>1</Im1Chk>
<Im2Chk>0</Im2Chk>
<OnChipMemories>
<Ocm1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm1>
<Ocm2>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm2>
<Ocm3>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm3>
<Ocm4>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm4>
<Ocm5>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm5>
<Ocm6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm6>
<IRAM>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x5000</Size>
</IRAM>
<IROM>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x20000</Size>
</IROM>
<XRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRAM>
<OCR_RVCT1>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT1>
<OCR_RVCT2>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT2>
<OCR_RVCT3>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT3>
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x20000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT5>
<OCR_RVCT6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT6>
<OCR_RVCT7>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT7>
<OCR_RVCT8>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT8>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x5000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>1</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<wLevel>2</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO>
<v6Lang>0</v6Lang>
<v6LangP>3</v6LangP>
<vShortEn>1</vShortEn>
<vShortWch>1</vShortWch>
<v6Lto>0</v6Lto>
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>1</interw>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<thumb>0</thumb>
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<ClangAsOpt>1</ClangAsOpt>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Aads>
<LDads>
<umfTarg>0</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
<RepFail>1</RepFail>
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<pXoBase></pXoBase>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc></Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Application</GroupName>
<Files>
<File>
<FileName>principal.c</FileName>
<FileType>1</FileType>
<FilePath>.\Application\principal.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Services</GroupName>
</Group>
<Group>
<GroupName>Drivers</GroupName>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
<Group>
<GroupName>::Device</GroupName>
</Group>
</Groups>
</Target>
<Target>
<TargetName>Simulation</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>6220000::V6.22::ARMCLANG</pCCUsed>
<uAC6>1</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>STM32F103RB</Device>
<Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.4.1</PackID>
<PackURL>https://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</FlashDriverDll>
<DeviceId>4231</DeviceId>
<RegisterFile>$$Device:STM32F103RB$Device\Include\stm32f10x.h</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F103RB$SVD\STM32F103xx.svd</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<RegisterFilePath></RegisterFilePath>
<DBRegisterFilePath></DBRegisterFilePath>
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
<ButtonStop>0</ButtonStop>
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\Objects\</OutputDirectory>
<OutputName>ProjetVide</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
<ListingPath>.\Listings\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopA1X>0</nStopA1X>
<nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>0</GenerateAssemblyFile>
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments></SimDllArguments>
<SimDlgDll>DARMSTM.DLL</SimDlgDll>
<SimDlgDllArguments>-pSTM32F103RB</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments></TargetDllArguments>
<TargetDlgDll>TARMSTM.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pSTM32F103RB</TargetDlgDllArguments>
</DllOption>
<DebugOption>
<OPTHX>
<HexSelection>1</HexSelection>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
</DebugOption>
<Utilities>
<Flash1>
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>-1</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3></Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp>
<pFcArmRoot></pFcArmRoot>
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
<GenerateListings>0</GenerateListings>
<asHll>1</asHll>
<asAsm>1</asAsm>
<asMacX>1</asMacX>
<asSyms>1</asSyms>
<asFals>1</asFals>
<asDbgD>1</asDbgD>
<asForm>1</asForm>
<ldLst>0</ldLst>
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>1</AdsALst>
<AdsACrf>1</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
<AdsLLst>1</AdsLLst>
<AdsLmap>1</AdsLmap>
<AdsLcgr>1</AdsLcgr>
<AdsLsym>1</AdsLsym>
<AdsLszi>1</AdsLszi>
<AdsLtoi>1</AdsLtoi>
<AdsLsun>1</AdsLsun>
<AdsLven>1</AdsLven>
<AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M3"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
<hadIROM>1</hadIROM>
<hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<nSecure>0</nSecure>
<RoSelD>3</RoSelD>
<RwSelD>3</RwSelD>
<CodeSel>0</CodeSel>
<OptFeed>0</OptFeed>
<NoZi1>0</NoZi1>
<NoZi2>0</NoZi2>
<NoZi3>0</NoZi3>
<NoZi4>0</NoZi4>
<NoZi5>0</NoZi5>
<Ro1Chk>0</Ro1Chk>
<Ro2Chk>0</Ro2Chk>
<Ro3Chk>0</Ro3Chk>
<Ir1Chk>1</Ir1Chk>
<Ir2Chk>0</Ir2Chk>
<Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk>
<Im1Chk>1</Im1Chk>
<Im2Chk>0</Im2Chk>
<OnChipMemories>
<Ocm1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm1>
<Ocm2>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm2>
<Ocm3>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm3>
<Ocm4>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm4>
<Ocm5>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm5>
<Ocm6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm6>
<IRAM>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x5000</Size>
</IRAM>
<IROM>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x20000</Size>
</IROM>
<XRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRAM>
<OCR_RVCT1>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT1>
<OCR_RVCT2>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT2>
<OCR_RVCT3>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT3>
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x20000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT5>
<OCR_RVCT6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT6>
<OCR_RVCT7>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT7>
<OCR_RVCT8>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT8>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x5000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>1</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<wLevel>2</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO>
<v6Lang>0</v6Lang>
<v6LangP>3</v6LangP>
<vShortEn>1</vShortEn>
<vShortWch>1</vShortWch>
<v6Lto>0</v6Lto>
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>1</interw>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<thumb>0</thumb>
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<ClangAsOpt>1</ClangAsOpt>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Aads>
<LDads>
<umfTarg>0</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
<RepFail>1</RepFail>
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<pXoBase></pXoBase>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc></Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Application</GroupName>
<Files>
<File>
<FileName>principal.c</FileName>
<FileType>1</FileType>
<FilePath>.\Application\principal.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Services</GroupName>
</Group>
<Group>
<GroupName>Drivers</GroupName>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
<Group>
<GroupName>::Device</GroupName>
</Group>
</Groups>
</Target>
</Targets>
<RTE>
<apis/>
<components>
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="6.1.0" condition="ARMv6_7_8-M Device">
<package name="CMSIS" schemaVersion="1.7.36" url="https://www.keil.com/pack/" vendor="ARM" version="6.1.0"/>
<targetInfos>
<targetInfo name="Reel"/>
<targetInfo name="Simulation"/>
</targetInfos>
</component>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS">
<package name="STM32F1xx_DFP" schemaVersion="1.4.0" url="http://www.keil.com/pack/" vendor="Keil" version="2.3.0"/>
<targetInfos>
<targetInfo name="Reel"/>
<targetInfo name="Simulation"/>
</targetInfos>
</component>
</components>
<files>
<file attr="config" category="header" name="RTE_Driver\Config\RTE_Device.h" version="1.1.2">
<instance index="0">RTE\Device\STM32F103RB\RTE_Device.h</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="https://www.keil.com/pack/" vendor="Keil" version="2.4.1"/>
<targetInfos>
<targetInfo name="Reel"/>
<targetInfo name="Simulation"/>
</targetInfos>
</file>
<file attr="config" category="source" condition="STM32F1xx MD ARMCC" name="Device\Source\ARM\startup_stm32f10x_md.s" version="1.0.0">
<instance index="0">RTE\Device\STM32F103RB\startup_stm32f10x_md.s</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="https://www.keil.com/pack/" vendor="Keil" version="2.4.1"/>
<targetInfos>
<targetInfo name="Reel"/>
<targetInfo name="Simulation"/>
</targetInfos>
</file>
<file attr="config" category="source" name="Device\Source\system_stm32f10x.c" version="1.0.0">
<instance index="0">RTE\Device\STM32F103RB\system_stm32f10x.c</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="https://www.keil.com/pack/" vendor="Keil" version="2.4.1"/>
<targetInfos>
<targetInfo name="Reel"/>
<targetInfo name="Simulation"/>
</targetInfos>
</file>
</files>
</RTE>
<LayerInfo>
<Layers>
<Layer>
<LayName>Projet3FISA</LayName>
<LayPrjMark>1</LayPrjMark>
<LayTitle>ProjetVide</LayTitle>
</Layer>
</Layers>
</LayerInfo>
</Project>

View file

@ -1,11 +0,0 @@
#include "stm32f10x.h"
int main ( void )
{
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) ;
while (1)
{
}
}

View file

@ -1 +0,0 @@
OSC = 8000000

View file

@ -1 +0,0 @@
OSC = 8000000

View file

@ -1,70 +0,0 @@
# µcontroleurs 4AE-SE 2025
Bienvenue dans le projet voilier en µcontroleurs 4AE-SE 2025.
Velkommen til seilbåtprosjektet i µkontrollere 4AE-SE 2025.
Bem vindo ao projeto veleiro de µcontroladores 4AE-SE 2025.
Welkom bij het microcontroller zeilbootproject 4AE-SE 2025.
License : CC-BY-NC-SA 4.0
## Les groupes et résponsabilités sont :
>>Nicolas et Jarno : Envoi de UART et PWM dans la bonne fréquence (canal), pour relier le voilier (3.5?) à l'ecran. (3.7)
Ils utilisent les broches PA9 (D8) et PA10 (D2) pour l'USART.
>>Aleksander et Brage : Acceleromètre par I2C (3.2). La chûte du voilier envoie la commande de faire lâcher les voiles.
Ils utilisent les broches PA4, PA5, PA6 et PA7 pour l'acceleromètre.
>>Oskar et Tiago : Controler les voiles (3.4) avec les données de la girouette (3.1)
Ils utilisent les broches PA0, PA1 et PA8 pour la girouette et les broches PB8 pour controler les voiles.
>>En commun : Géstion de la pile avec l'ADC (3.6) et clock interne avec CMOS. (3.3)
# GIT dans le terminal
## Comment initialiser son GIT :
>> init git
>> git config --global user.email "[USER]@insa-toulouse.fr"
>> git config --global user.name "[NOM]"
>> git config --global credential.helper manager (Si Windows)
>> git remote add origin https://git.etud.insa-toulouse.fr/johnse/BE_VOILIER.git
## Comment PULL :
>> git pull
>> git switch [BRANCHE]
## Comment PUSH :
>> git add [NOMDUFICHIER]
>> git commit -m "[COMMENTAIRE]"
>> git push -u origin [BRANCHE]
# Inspiration
<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fc2.staticflickr.com%2F6%2F5229%2F5681377563_4d4e274d51_b.jpg&f=1&nofb=1&ipt=cbe9495133b91e29c85ebc218df03cb9e58fc50148b045a8933418eb060146ad" alt="Le voilier Sørlandet au large des côtes canadiennes">
Le voilier Sørlandet au large des côtes canadiennes

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,36 @@
// File: STM32F101_102_103_105_107.dbgconf
// Version: 1.0.0
// Note: refer to STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx Reference manual (RM0008)
// STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx datasheets
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU configuration register (DBGMCU_CR)
// <i> Reserved bits must be kept at reset value
// <o.30> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
// <o.29> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
// <o.28> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
// <o.27> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
// <o.26> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
// <o.25> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
// <o.21> DBG_CAN2_STOP <i> Debug CAN2 stopped when core is halted
// <o.20> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
// <o.19> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
// <o.18> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
// <o.17> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
// <o.16> DBG_I2C2_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.15> DBG_I2C1_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.14> DBG_CAN1_STOP <i> Debug CAN1 stopped when Core is halted
// <o.13> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
// <o.12> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
// <o.11> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
// <o.10> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
// <o.9> DBG_WWDG_STOP <i> Debug window watchdog stopped when core is halted
// <o.8> DBG_IWDG_STOP <i> Debug independent watchdog stopped when core is halted
// <o.2> DBG_STANDBY <i> Debug standby mode
// <o.1> DBG_STOP <i> Debug stop mode
// <o.0> DBG_SLEEP <i> Debug sleep mode
// </h>
DbgMCU_CR = 0x00000007;
// <<< end of configuration section >>>

View file

@ -0,0 +1,36 @@
// File: STM32F101_102_103_105_107.dbgconf
// Version: 1.0.0
// Note: refer to STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx Reference manual (RM0008)
// STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx datasheets
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU configuration register (DBGMCU_CR)
// <i> Reserved bits must be kept at reset value
// <o.30> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
// <o.29> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
// <o.28> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
// <o.27> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
// <o.26> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
// <o.25> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
// <o.21> DBG_CAN2_STOP <i> Debug CAN2 stopped when core is halted
// <o.20> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
// <o.19> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
// <o.18> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
// <o.17> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
// <o.16> DBG_I2C2_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.15> DBG_I2C1_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.14> DBG_CAN1_STOP <i> Debug CAN1 stopped when Core is halted
// <o.13> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
// <o.12> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
// <o.11> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
// <o.10> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
// <o.9> DBG_WWDG_STOP <i> Debug window watchdog stopped when core is halted
// <o.8> DBG_IWDG_STOP <i> Debug independent watchdog stopped when core is halted
// <o.2> DBG_STANDBY <i> Debug standby mode
// <o.1> DBG_STOP <i> Debug stop mode
// <o.0> DBG_SLEEP <i> Debug sleep mode
// </h>
DbgMCU_CR = 0x00000007;
// <<< end of configuration section >>>

View file

@ -0,0 +1,308 @@
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name : startup_stm32f10x_md.s
;* Author : MCD Application Team
;* Version : V3.5.1
;* Date : 08-September-2021
;* Description : STM32F10x Medium Density Devices vector table for MDK-ARM
;* toolchain.
;* This module performs:
;* - Set the initial SP
;* - Set the initial PC == Reset_Handler
;* - Set the vector table entries with the exceptions ISR address
;* - Configure the clock system
;* - Branches to __main in the C library (which eventually
;* calls main()).
;* After Reset the CortexM3 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>
;*******************************************************************************
;*
;* Copyright (c) 2011 STMicroelectronics.
;* All rights reserved.
;*
;* This software is licensed under terms that can be found in the LICENSE file
;* in the root directory of this software component.
;* If no LICENSE file comes with this software, it is provided AS-IS.
;
;*******************************************************************************
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Stack_Size EQU 0x00000400
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x00000200
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
PRESERVE8
THUMB
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
; External Interrupts
DCD WWDG_IRQHandler ; Window Watchdog
DCD PVD_IRQHandler ; PVD through EXTI Line detect
DCD TAMPER_IRQHandler ; Tamper
DCD RTC_IRQHandler ; RTC
DCD FLASH_IRQHandler ; Flash
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line 0
DCD EXTI1_IRQHandler ; EXTI Line 1
DCD EXTI2_IRQHandler ; EXTI Line 2
DCD EXTI3_IRQHandler ; EXTI Line 3
DCD EXTI4_IRQHandler ; EXTI Line 4
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
DCD ADC1_2_IRQHandler ; ADC1_2
DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
DCD TIM1_BRK_IRQHandler ; TIM1 Break
DCD TIM1_UP_IRQHandler ; TIM1 Update
DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line
DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
__Vectors_End
__Vectors_Size EQU __Vectors_End - __Vectors
AREA |.text|, CODE, READONLY
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
; Dummy Exception Handlers (infinite loops which can be modified)
NMI_Handler PROC
EXPORT NMI_Handler [WEAK]
B .
ENDP
HardFault_Handler\
PROC
EXPORT HardFault_Handler [WEAK]
B .
ENDP
MemManage_Handler\
PROC
EXPORT MemManage_Handler [WEAK]
B .
ENDP
BusFault_Handler\
PROC
EXPORT BusFault_Handler [WEAK]
B .
ENDP
UsageFault_Handler\
PROC
EXPORT UsageFault_Handler [WEAK]
B .
ENDP
SVC_Handler PROC
EXPORT SVC_Handler [WEAK]
B .
ENDP
DebugMon_Handler\
PROC
EXPORT DebugMon_Handler [WEAK]
B .
ENDP
PendSV_Handler PROC
EXPORT PendSV_Handler [WEAK]
B .
ENDP
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Default_Handler PROC
EXPORT WWDG_IRQHandler [WEAK]
EXPORT PVD_IRQHandler [WEAK]
EXPORT TAMPER_IRQHandler [WEAK]
EXPORT RTC_IRQHandler [WEAK]
EXPORT FLASH_IRQHandler [WEAK]
EXPORT RCC_IRQHandler [WEAK]
EXPORT EXTI0_IRQHandler [WEAK]
EXPORT EXTI1_IRQHandler [WEAK]
EXPORT EXTI2_IRQHandler [WEAK]
EXPORT EXTI3_IRQHandler [WEAK]
EXPORT EXTI4_IRQHandler [WEAK]
EXPORT DMA1_Channel1_IRQHandler [WEAK]
EXPORT DMA1_Channel2_IRQHandler [WEAK]
EXPORT DMA1_Channel3_IRQHandler [WEAK]
EXPORT DMA1_Channel4_IRQHandler [WEAK]
EXPORT DMA1_Channel5_IRQHandler [WEAK]
EXPORT DMA1_Channel6_IRQHandler [WEAK]
EXPORT DMA1_Channel7_IRQHandler [WEAK]
EXPORT ADC1_2_IRQHandler [WEAK]
EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK]
EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK]
EXPORT CAN1_RX1_IRQHandler [WEAK]
EXPORT CAN1_SCE_IRQHandler [WEAK]
EXPORT EXTI9_5_IRQHandler [WEAK]
EXPORT TIM1_BRK_IRQHandler [WEAK]
EXPORT TIM1_UP_IRQHandler [WEAK]
EXPORT TIM1_TRG_COM_IRQHandler [WEAK]
EXPORT TIM1_CC_IRQHandler [WEAK]
EXPORT TIM2_IRQHandler [WEAK]
EXPORT TIM3_IRQHandler [WEAK]
EXPORT TIM4_IRQHandler [WEAK]
EXPORT I2C1_EV_IRQHandler [WEAK]
EXPORT I2C1_ER_IRQHandler [WEAK]
EXPORT I2C2_EV_IRQHandler [WEAK]
EXPORT I2C2_ER_IRQHandler [WEAK]
EXPORT SPI1_IRQHandler [WEAK]
EXPORT SPI2_IRQHandler [WEAK]
EXPORT USART1_IRQHandler [WEAK]
EXPORT USART2_IRQHandler [WEAK]
EXPORT USART3_IRQHandler [WEAK]
EXPORT EXTI15_10_IRQHandler [WEAK]
EXPORT RTCAlarm_IRQHandler [WEAK]
EXPORT USBWakeUp_IRQHandler [WEAK]
WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
USB_HP_CAN1_TX_IRQHandler
USB_LP_CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_IRQHandler
TIM1_UP_IRQHandler
TIM1_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
USBWakeUp_IRQHandler
B .
ENDP
ALIGN
;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
IF :DEF:__MICROLIB
EXPORT __initial_sp
EXPORT __heap_base
EXPORT __heap_limit
ELSE
IMPORT __use_two_region_memory
EXPORT __user_initial_stackheap
__user_initial_stackheap
LDR R0, = Heap_Mem
LDR R1, =(Stack_Mem + Stack_Size)
LDR R2, = (Heap_Mem + Heap_Size)
LDR R3, = Stack_Mem
BX LR
ALIGN
ENDIF
END

View file

@ -0,0 +1,308 @@
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name : startup_stm32f10x_md.s
;* Author : MCD Application Team
;* Version : V3.5.1
;* Date : 08-September-2021
;* Description : STM32F10x Medium Density Devices vector table for MDK-ARM
;* toolchain.
;* This module performs:
;* - Set the initial SP
;* - Set the initial PC == Reset_Handler
;* - Set the vector table entries with the exceptions ISR address
;* - Configure the clock system
;* - Branches to __main in the C library (which eventually
;* calls main()).
;* After Reset the CortexM3 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>
;*******************************************************************************
;*
;* Copyright (c) 2011 STMicroelectronics.
;* All rights reserved.
;*
;* This software is licensed under terms that can be found in the LICENSE file
;* in the root directory of this software component.
;* If no LICENSE file comes with this software, it is provided AS-IS.
;
;*******************************************************************************
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Stack_Size EQU 0x00000400
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x00000200
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
PRESERVE8
THUMB
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
; External Interrupts
DCD WWDG_IRQHandler ; Window Watchdog
DCD PVD_IRQHandler ; PVD through EXTI Line detect
DCD TAMPER_IRQHandler ; Tamper
DCD RTC_IRQHandler ; RTC
DCD FLASH_IRQHandler ; Flash
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line 0
DCD EXTI1_IRQHandler ; EXTI Line 1
DCD EXTI2_IRQHandler ; EXTI Line 2
DCD EXTI3_IRQHandler ; EXTI Line 3
DCD EXTI4_IRQHandler ; EXTI Line 4
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
DCD ADC1_2_IRQHandler ; ADC1_2
DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
DCD TIM1_BRK_IRQHandler ; TIM1 Break
DCD TIM1_UP_IRQHandler ; TIM1 Update
DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line
DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
__Vectors_End
__Vectors_Size EQU __Vectors_End - __Vectors
AREA |.text|, CODE, READONLY
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
; Dummy Exception Handlers (infinite loops which can be modified)
NMI_Handler PROC
EXPORT NMI_Handler [WEAK]
B .
ENDP
HardFault_Handler\
PROC
EXPORT HardFault_Handler [WEAK]
B .
ENDP
MemManage_Handler\
PROC
EXPORT MemManage_Handler [WEAK]
B .
ENDP
BusFault_Handler\
PROC
EXPORT BusFault_Handler [WEAK]
B .
ENDP
UsageFault_Handler\
PROC
EXPORT UsageFault_Handler [WEAK]
B .
ENDP
SVC_Handler PROC
EXPORT SVC_Handler [WEAK]
B .
ENDP
DebugMon_Handler\
PROC
EXPORT DebugMon_Handler [WEAK]
B .
ENDP
PendSV_Handler PROC
EXPORT PendSV_Handler [WEAK]
B .
ENDP
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Default_Handler PROC
EXPORT WWDG_IRQHandler [WEAK]
EXPORT PVD_IRQHandler [WEAK]
EXPORT TAMPER_IRQHandler [WEAK]
EXPORT RTC_IRQHandler [WEAK]
EXPORT FLASH_IRQHandler [WEAK]
EXPORT RCC_IRQHandler [WEAK]
EXPORT EXTI0_IRQHandler [WEAK]
EXPORT EXTI1_IRQHandler [WEAK]
EXPORT EXTI2_IRQHandler [WEAK]
EXPORT EXTI3_IRQHandler [WEAK]
EXPORT EXTI4_IRQHandler [WEAK]
EXPORT DMA1_Channel1_IRQHandler [WEAK]
EXPORT DMA1_Channel2_IRQHandler [WEAK]
EXPORT DMA1_Channel3_IRQHandler [WEAK]
EXPORT DMA1_Channel4_IRQHandler [WEAK]
EXPORT DMA1_Channel5_IRQHandler [WEAK]
EXPORT DMA1_Channel6_IRQHandler [WEAK]
EXPORT DMA1_Channel7_IRQHandler [WEAK]
EXPORT ADC1_2_IRQHandler [WEAK]
EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK]
EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK]
EXPORT CAN1_RX1_IRQHandler [WEAK]
EXPORT CAN1_SCE_IRQHandler [WEAK]
EXPORT EXTI9_5_IRQHandler [WEAK]
EXPORT TIM1_BRK_IRQHandler [WEAK]
EXPORT TIM1_UP_IRQHandler [WEAK]
EXPORT TIM1_TRG_COM_IRQHandler [WEAK]
EXPORT TIM1_CC_IRQHandler [WEAK]
EXPORT TIM2_IRQHandler [WEAK]
EXPORT TIM3_IRQHandler [WEAK]
EXPORT TIM4_IRQHandler [WEAK]
EXPORT I2C1_EV_IRQHandler [WEAK]
EXPORT I2C1_ER_IRQHandler [WEAK]
EXPORT I2C2_EV_IRQHandler [WEAK]
EXPORT I2C2_ER_IRQHandler [WEAK]
EXPORT SPI1_IRQHandler [WEAK]
EXPORT SPI2_IRQHandler [WEAK]
EXPORT USART1_IRQHandler [WEAK]
EXPORT USART2_IRQHandler [WEAK]
EXPORT USART3_IRQHandler [WEAK]
EXPORT EXTI15_10_IRQHandler [WEAK]
EXPORT RTCAlarm_IRQHandler [WEAK]
EXPORT USBWakeUp_IRQHandler [WEAK]
WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
USB_HP_CAN1_TX_IRQHandler
USB_LP_CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_IRQHandler
TIM1_UP_IRQHandler
TIM1_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
USBWakeUp_IRQHandler
B .
ENDP
ALIGN
;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
IF :DEF:__MICROLIB
EXPORT __initial_sp
EXPORT __heap_base
EXPORT __heap_limit
ELSE
IMPORT __use_two_region_memory
EXPORT __user_initial_stackheap
__user_initial_stackheap
LDR R0, = Heap_Mem
LDR R1, =(Stack_Mem + Stack_Size)
LDR R2, = (Heap_Mem + Heap_Size)
LDR R3, = Stack_Mem
BX LR
ALIGN
ENDIF
END

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

20
RTE/_Reel/RTE_Components.h Executable file
View file

@ -0,0 +1,20 @@
/*
* UVISION generated file: DO NOT EDIT!
* Generated by: uVision version 5.42.0.0
*
* Project: 'Projet0'
* Target: 'Reel'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "stm32f10x.h"
#endif /* RTE_COMPONENTS_H */

View file

@ -0,0 +1,20 @@
/*
* UVISION generated file: DO NOT EDIT!
* Generated by: uVision version 5.42.0.0
*
* Project: 'Projet0'
* Target: 'Simulation'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "stm32f10x.h"
#endif /* RTE_COMPONENTS_H */

View file

@ -0,0 +1,21 @@
#ifndef ACC_H
#define ACC_H
#include <stm32f10x.h>
#include <stdint.h>
#define LONGUEUR_MOY 10
#define ANGLE_LIMITE 60 // Angle ou les voiles seront lachés, SE MODIFIE
//uint16_t moyenne[LONGUEUR_MOY];
//uint32_t sum;
//uint16_t i;
//volatile uint32_t moy; // Volatile pour pouvoir le regarder dans Keil µVision
void initAccelo(void);
void initLacheur(void);
uint16_t * RecupAccelo(void);
void LacheVoile(int AngelLim, uint16_t moyennen);
//uint16_t moyenneGlissante();
//int actualiserTableau(int i );
#endif

8
Services/Include/Girouette.h Executable file
View file

@ -0,0 +1,8 @@
#ifndef _GIROUETTE_H
#define _GIROUETTE_H
#include "stm32f10x.h"
extern void configEncoder(TIM_TypeDef * Timer);
extern int angleVent (TIM_TypeDef * Timer);
extern int vent2voile(int angle);
extern void LocaliserZero(void);
#endif

7
Services/Include/Servo.h Executable file
View file

@ -0,0 +1,7 @@
#ifndef SERVO_H_
#define SERVO_H_
#include <stm32f10x.h>
void Servo_Moteur(int angle, TIM_TypeDef * Timer, int Channel);
extern void initServo(TIM_TypeDef * Timer, int Channel);
#endif // SERVO_H_

74
Services/Source/Accelerometre.c Executable file
View file

@ -0,0 +1,74 @@
#include <stm32f10x.h>
#include "Horloge.h"
#include "stdlib.h"
#include "MySPI.h"
#include "stdint.h"
#include "Accelerometre.h"
#include "Servo.h"
void initAccelo(void) {
MySPI_Init(SPI1);
// Power_CTL register = 0x2D ? write 0x08 (MEASURE = 1)
MySPI_Clear_NSS();
MySPI_Send(0x31); // DATA_FORMAT
MySPI_Send(0b00001101); // Justify met le MSB à gauche et b0 et b1 donne une resolution de +-2g
MySPI_Set_NSS();
MySPI_Clear_NSS();
MySPI_Send(0x2D & 0x3F); // Écriture de l'adresse (pas de bit de read!)
MySPI_Send(0x08); // Affectation du bit MEASURE
MySPI_Set_NSS();
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // Activation de l'horloge Utiliser une service pour cela peut-être ???
for (volatile int i = 0; i < 10000; i++); // small delay
}
uint16_t * RecupAccelo(void) { // Recuperation des donnees de l'accelerometre
static uint16_t Messie[3];
uint8_t buf[6];
MySPI_Clear_NSS();
// Lecture multi-octet à partir de 0x32 (X0, X1, Y0, Y1, Z0 et Z1)
MySPI_Send(0x80 | 0x40 | 0x32); // On envoie RW MB A5 ... A0 pour recuperer les données
for (int i = 0; i < 6; i++) {buf[i] = (uint8_t)MySPI_Read();} // Lecture des 6 registres en séquenciel
MySPI_Set_NSS();
// Conversion des données récupérés en uint16_t
Messie[0] = (uint16_t)(buf[1] << 8 | buf[0]); // X
Messie[1] = (uint16_t)(buf[3] << 8 | buf[2]); // Y
Messie[2] = (uint16_t)(buf[5] << 8 | buf[4]); // Z
return Messie;
}
void initLacheur(void) {
GPIOB->CRH &= ~(0xF << (0 * 4));
GPIOB->CRH |= (0xA << (0 * 4)); //On met GPIOB.8 en mode output 2Mhz, alternate pp
Timer_Init(TIM4, 0xFFFF, 22);
}
void LacheVoile(int AngelLim, uint16_t moyennen) {
volatile uint16_t Val_lim = 0x1E20 - 60*AngelLim;
if (moyennen<Val_lim){
Servo_Moteur(0, TIM4, 3); // PB7 (TIM4Ch3)
}
}
//int actualiserTableau(int i) {
// moyenne[i] = RecupAccelo()[2]; // Récuperation et ajout de la valeur plus récente dans le tableau dans la position i
// i++;
// if (i >= LONGUEUR_MOY) {i = 0;} // Géstion de la position i dans le tableau pour la moyenne glissante
// return i;
//}
//uint16_t moyenneGlissante() {
// sum = 0;
// for (int j = 0; j < LONGUEUR_MOY; j++){sum += moyenne[j];} moy = sum / LONGUEUR_MOY; // Calcul de la moyenne glissante
// return(moy);
// }
// À faire : Gestion par interruption

62
Services/Source/Girouette.c Executable file
View file

@ -0,0 +1,62 @@
#include "stm32f10x.h"
#include "Horloge.h"
#include "DriverGPIO.h"
#include "Girouette.h"
#include "PWM.h"
#include <stdlib.h> // Pour abs()
#define POSITIONS (360*4) //0x5A0
void configEncoder(TIM_TypeDef * Timer) {
// Timer
Timer_Init(Timer, 0, 0);
// Settings
Timer -> CCMR1 |= TIM_CCMR1_CC1S; // TI1FP1 mapped on TI1
Timer -> CCMR1 |= TIM_CCMR1_CC2S; // TI1FP2 mapped on TI2
Timer -> CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); // TI1FP1 output non-inverted
Timer -> CCMR1 &= ~(TIM_CCMR1_IC1F); // Input capture 1 filter, no filter
Timer -> CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); // TI1FP2 output non-inverted
Timer -> CCMR2 &= ~(TIM_CCMR1_IC2F); // Input capture 2 filter, no filter
Timer -> SMCR &= ~TIM_SMCR_SMS; // Reset SMS-bits
Timer -> SMCR |= TIM_SMCR_SMS_0 | TIM_SMCR_SMS_1;// SMS = "011"
Timer -> CR1 |= TIM_CR1_CEN; // Enable counter
Timer -> ARR = 0x5A0; // Setting ARR as 1440
// GPIO
MyGPIO_Init(GPIOA,0,In_Floating ); // GPIOA pin 0 in mode floating TIM2_CH1
MyGPIO_Init(GPIOA,1,In_Floating ); // GPIOA pin 1 in mode floating TIM2_CH2
MyGPIO_Init(GPIOA,8,In_PullDown ); // GPIOA pin 8 in mode floating Index
}
int angleVent(TIM_TypeDef * Timer) { // Returner l'angle du vent
int angle =(((Timer -> CNT*360)/POSITIONS ));
if (angle > 180){
angle = 360 - angle; // Pour que l'angle soit entre 0 et 180
}
return(angle);
}
int vent2voile(int angle) { // Conversion angle vent à angle voile
if(angle < 45){
return 0;// Les voiles restent immobiles
}
else{
return(2*(angle-45)/3); // Augmentation linéaire
}
}
void LocaliserZero(void) { // Localisation de z
int Z_trouve = 0;
while (Z_trouve != 1){
if(MyGPIO_Read(GPIOA,8)){ // Index
TIM2 -> CNT = 0x0; // Remet angle à zero
Z_trouve = 1;
}
}
}

29
Services/Source/Servo.c Executable file
View file

@ -0,0 +1,29 @@
#include "Servo.h"
#include "DriverGPIO.h"
#include "PWM.h"
#include "Horloge.h"
void Servo_Moteur(int angle, TIM_TypeDef * Timer, int Channel) { // Controle du moteur
int dutyCycle = (5* angle + 5*90)/90; // 5-10 % Duty Cycle
Set_DutyCycle_PWM(Timer, Channel, dutyCycle);
}
void initServo(TIM_TypeDef * Timer, int Channel) { // Config du moteur servo
if (Timer == TIM4) {
Timer_Init(TIM4, 0xFFFF, 22); // Pour obtenir un période de 20 ms
if (Channel == 3){
MyGPIO_Init(GPIOB, 8, AltOut_Ppull); // Output push pull alternate
MyTimer_PWM(TIM4, 3); // TIM4 CH3 pour PB8
}
else{
//printf("Ce pilote n'existe pas");
}
}
else{
//printf("Ce pilote n'existe pas");
}
}

0
ProjetVide/reel.ini → reel.ini Normal file → Executable file
View file

0
ProjetVide/simu.ini → simu.ini Normal file → Executable file
View file