Ajout du Driver_IMU, pour la gestion de l'accéléromètre.

Les fichiers Driver_SPI sont des versions personnelles non fonctionelle de la gestion du SPI.
C'est la bibliothèque MySPI qui est utilisée dans le projet.

Ajout de commentaires dans tous les fichiers driver en format doxygen.
This commit is contained in:
Manon Sanchez 2023-04-05 16:39:01 +02:00
parent 26e44a6d5b
commit c930991ccb
38 changed files with 1589 additions and 625 deletions

View file

@ -47,17 +47,20 @@ void driver_adc_1_init (char Prio, void (*IT_function)(void))
ADC1_2_fx = IT_function;
}
/* Fonction de lancement*/
void driver_adc_1_launch_read (void)
{
//Lancement de la conversion
ADC1->CR2 |= ADC_CR2_SWSTART;
}
/*Lecture de la converstion*/
uint16_t driver_adc_1_read (void)
{
//Retour de la conversion
return ADC1->DR &~ ((0x0F) << 12);
}
void ADC1_2_IRQHandler(void)
{
//On abaisse le flag pour la prochaine lecture

View file

@ -2,8 +2,33 @@
#define DRIVER_ADC_H
#include "stm32f10x.h"
/**
*************************************************************************************************
* @brief Activation et configuration de l'ADC1.
* @param -> char Prio: défini la priorité de l'interruption pour le flag EOC
-> void (*IT_function)(void) : pointeur de fonction qui sera appelé dans l'interruption
* @Note -> Fonction à lancer systématiquement avant daller plus en détail
*************************************************************************************************
*/
void driver_adc_1_init (char Prio, void (*IT_function)(void));
/**
*************************************************************************************************
* @brief Fonction pour lancer la convertion
* @param -> none
* @Note ->
*************************************************************************************************
*/
void driver_adc_1_launch_read (void);
/**
*************************************************************************************************
* @brief Fonction pour lire la valeur convertie
* @param -> none
* @return -> retour de la valeur convertie
* @Note ->
*************************************************************************************************
*/
uint16_t driver_adc_1_read (void);
#endif

View file

@ -1,6 +1,7 @@
#include "Driver_GPIO.h"
#include "stm32f10x.h"
#include "stdio.h"
/* GPIO init function */
void MyGPIO_Init ( MyGPIO_Struct_TypeDef * GPIOStructPtr )
{
@ -45,21 +46,25 @@ void MyGPIO_Init ( MyGPIO_Struct_TypeDef * GPIOStructPtr )
GPIOStructPtr->GPIO->ODR |= 0x1<<(GPIOStructPtr->GPIO_Pin);
}
}
/* Read of the state of the GPIO */
int MyGPIO_Read ( GPIO_TypeDef * GPIO , char GPIO_Pin )
{
return ((GPIO->IDR & (0x1<<GPIO_Pin))>>GPIO_Pin);
}
/* Set the state of the GPIO */
void MyGPIO_Set (GPIO_TypeDef * GPIO , char GPIO_Pin)
{
GPIO->ODR |= 0x1<<GPIO_Pin;
}
/* Reset the state of the GPIO */
void MyGPIO_Reset (GPIO_TypeDef * GPIO , char GPIO_Pin)
{
GPIO->ODR &= ~(0x1<<GPIO_Pin);
}
/* Toogle the state of the GPIO */
void MyGPIO_Toggle ( GPIO_TypeDef * GPIO , char GPIO_Pin )
{

View file

@ -17,9 +17,48 @@ typedef struct
#define AltOut_Ppull 0xA
#define AltOut_OD 0xE
void MyGPIO_Init ( MyGPIO_Struct_TypeDef * GPIOStructPtr ) ;
int MyGPIO_Read ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ; // renvoie 0 ou autre chose different de 0
void MyGPIO_Set ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
void MyGPIO_Reset ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
/**
*************************************************************************************************
* @brief Fonction d'initialisation pour les GPIO
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le pin, le port et la conf du GPIO
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Init ( MyGPIO_Struct_TypeDef * GPIOStructPtr );
/**
*************************************************************************************************
* @brief Fonction pour lire l'état de la GPIO
* @param : Paramètre sous forme dune structure (son adresse) qui défini le pin et le port
* @return : Renvoie 0 ou autre chose différent de 0
*************************************************************************************************
*/
int MyGPIO_Read ( GPIO_TypeDef * GPIO , char GPIO_Pin );
/**
*************************************************************************************************
* @brief Fonction pour set le pin voulu
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le pin et le port
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Set ( GPIO_TypeDef * GPIO , char GPIO_Pin );
/**
*************************************************************************************************
* @brief Fonction pour reset le pin voulu
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le pin et le port
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Reset ( GPIO_TypeDef * GPIO , char GPIO_Pin );
/**
*************************************************************************************************
* @brief Fonction pour toogle le pin voulu
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le pin et le port
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Toggle ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
#endif

57
driver/Driver_IMU.c Normal file
View file

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

26
driver/Driver_IMU.h Normal file
View file

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

44
driver/Driver_SPI.c Normal file
View file

@ -0,0 +1,44 @@
#include "stm32f10x.h"
#include "stdio.h"
#include "Driver_SPI.h"
void driver_spi_1_init(char Prio, void (*IT_function)(void))
{
/*Activation de la clock*/
RCC->APB2ENR = RCC_APB2ENR_SPI1EN;
/*Select the freq*/
SPI1->CR1 |= SPI_CR1_BR_1; //5Mhz max -> fPCLK = 36Mhz -> 010: fPCLK/8
/*Select Master mode*/
SPI1->CR1 |= SPI_CR1_MSTR;
/*Software slave management*/
SPI1->CR1 |= SPI_CR1_SSM;
/*Clock Phase Selection*/
SPI1->CR1 |= SPI_CR1_CPHA;
/*Clock Polarity Selection*/
SPI1->CR1 |= SPI_CR1_CPOL;
/*Mode 16bits - 16-bit data frame format*/
//SPI1->CR1 |= SPI_CR1_DFF;
/*Activation de l'interruption*/
SPI1->CR2 |= SPI_CR2_RXNEIE;
NVIC_EnableIRQ(SPI_IRQn);
NVIC_SetPriority(ADC1_2_IRQn, Prio);
/*Vider le buffer d'emission/réception 0xFFFF*/
SPI1->DR = SPI_DR_DR;
/*Enable SPI*/
SPI1->CR1 |= SPI_CR1_SPE;
}
void driver_spi_1_write(uint16_t data_write)
{
SPI1->DR = data_write;
/*Active la sélection du SLAVE*/
SPI1->CR1 |= SPI_CR1_SSI;
}
uint16_t driver_spi_1_read()
{
//Abaissage automatique du flag RxNE
return SPI1->DR;
}

5
driver/Driver_SPI.h Normal file
View file

@ -0,0 +1,5 @@
#ifndef DRIVER_SPI_H
#define DRIVER_SPI_H
#include "stm32f10x.h"
#endif

View file

@ -1,6 +1,7 @@
#include "Driver_Timer.h"
#include "stm32f10x.h"
#include "stdio.h"
/* Timer init function */
void MyTimer_Base_Init(MyTimer_Struct_TypeDef * Timer)
{
@ -26,12 +27,13 @@ void MyTimer_Base_Init(MyTimer_Struct_TypeDef * Timer)
Timer->Timer->ARR = Timer->ARR;
}
/* Start function */
void MyTimer_Start(TIM_TypeDef * Timer)
{
Timer->CR1 |=1<<0 ;// TIM_CR1_CEN
}
/* Stop function*/
void MyTimer_Stop(TIM_TypeDef * Timer)
{
Timer->CR1 &=~(1<<0) ;// TIM_CR1_CEN
@ -42,11 +44,11 @@ void Bug (void)
{
while(1);
}
void (*TIM2_fx) (void) = &Bug;
void (*TIM3_fx) (void) = &Bug;
void (*TIM4_fx) (void) = &Bug;
/* Interrupt function */
void MyTimer_ActiveIT (TIM_TypeDef * Timer, char Prio, void (*IT_function)(void))
{
Timer->DIER |= TIM_DIER_UIE;

View file

@ -12,37 +12,50 @@ typedef struct
/**
*************************************************************************************************
* @brief
* @param -> Paramètre sous forme dune structure (son adresse) contenant les informations de base
* @brief Initialisation du timer
* @param -> Paramètre sous forme dune structure (son adresse) contenant les informations du timer
* @Note -> Fonction à lancer systématiquement avant daller plus en détail dans les conf plus fines (PWM, codeur inc...)
*************************************************************************************************
*/
void MyTimer_Base_Init(MyTimer_Struct_TypeDef * Timer);
/*#define MyTimer_Base_Start(Timer) ...
#define MyTimer_Base_Stop(Timer) ...
/**
*************************************************************************************************
* @brief Fonction pour lancer le timer voulu
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le numéro du timer
* @Note ->
*************************************************************************************************
*/
void MyTimer_Start(TIM_TypeDef * Timer) ;
void MyTimer_Stop(TIM_TypeDef * Timer) ;
/**
*************************************************************************************************
* @brief Fonction pour arrêter le timer voulu
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le numéro du timer
* @Note
*************************************************************************************************
*/
void MyTimer_Stop(TIM_TypeDef * Timer) ;
/**
**************************************************************************************************
* @brief
* @param : -TIM_TypeDef * Timer : Timer concerne
- char Prio: de 0 a 15
* @Note : La fonction MyTimer_Base_Init doit avoir ete lancee au prealable
* @brief Active une interruption utilisant un timer
* @param : -TIM_TypeDef * Timer : Timer concerné
* - char Prio: de 0 a 15
* @Note : La fonction MyTimer_Base_Init doit avoir é lancée au prealable
**************************************************************************************************
*/
void MyTimer_ActiveIT (TIM_TypeDef * Timer, char Prio, void (*IT_function)(void));
/**
* @brief
* @param
*************************************************************************************************
* @brief Fonction pour le timer du PWM
* @param : -TIM_TypeDef * Timer : Timer concerné
* - char Channel : channel du PWM concerné
* @Note Active le channel spécifié sur Timer le timer spécifié
* la gestion de la configuration I/O nest pas faite dans cette fonction
* ni le réglage de la période de la PWM (ARR, PSC)
*************************************************************************************************
*/
void MyTimer_PWM(TIM_TypeDef * Timer, char Channel);

Binary file not shown.

229
driver/MyI2C.h Normal 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
driver/MySPI.h Normal 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

View file

@ -4,6 +4,10 @@ Component: ARM Compiler 5.06 update 7 (build 960) Tool: armlink [4d3601]
Section Cross References
main.o(i.main) refers to imu.o(i.source_IMU_init) for source_IMU_init
main.o(i.main) refers to imu.o(i.source_IMU_read) for source_IMU_read
main.o(i.toto) refers to driver_adc.o(i.driver_adc_1_read) for driver_adc_1_read
main.o(i.toto) refers to main.o(.data) for val
driver_timer.o(i.MyTimer_ActiveIT) refers to driver_timer.o(i.__NVIC_EnableIRQ) for __NVIC_EnableIRQ
driver_timer.o(i.MyTimer_ActiveIT) refers to driver_timer.o(i.__NVIC_SetPriority) for __NVIC_SetPriority
driver_timer.o(i.MyTimer_ActiveIT) refers to driver_timer.o(.data) for TIM2_fx
@ -11,11 +15,24 @@ Section Cross References
driver_timer.o(i.TIM3_IRQHandler) refers to driver_timer.o(.data) for TIM3_fx
driver_timer.o(i.TIM4_IRQHandler) refers to driver_timer.o(.data) for TIM4_fx
driver_timer.o(.data) refers to driver_timer.o(i.Bug) for Bug
driver_adc.o(i.ADC1_2_IRQHandler) refers to driver_adc.o(.data) for ADC1_2_fx
driver_adc.o(i.driver_adc_1_init) refers to driver_adc.o(.data) for ADC1_2_fx
driver_adc.o(.data) refers to driver_adc.o(i.erreur) for erreur
imu.o(i.source_IMU_init) refers to myspi.o(i.MySPI_Init) for MySPI_Init
imu.o(i.source_IMU_init) refers to imu.o(i.source_IMU_write_register) for source_IMU_write_register
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Send) for MySPI_Send
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Read) for MySPI_Read
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
imu.o(i.source_IMU_write_register) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
imu.o(i.source_IMU_write_register) refers to myspi.o(i.MySPI_Send) for MySPI_Send
imu.o(i.source_IMU_write_register) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
startup_stm32f10x_md.o(STACK) refers (Special) to heapauxi.o(.text) for __use_two_region_memory
startup_stm32f10x_md.o(HEAP) refers (Special) to heapauxi.o(.text) for __use_two_region_memory
startup_stm32f10x_md.o(RESET) refers (Special) to heapauxi.o(.text) for __use_two_region_memory
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 driver_adc.o(i.ADC1_2_IRQHandler) for ADC1_2_IRQHandler
startup_stm32f10x_md.o(RESET) refers to driver_timer.o(i.TIM2_IRQHandler) for TIM2_IRQHandler
startup_stm32f10x_md.o(RESET) refers to driver_timer.o(i.TIM3_IRQHandler) for TIM3_IRQHandler
startup_stm32f10x_md.o(RESET) refers to driver_timer.o(i.TIM4_IRQHandler) for TIM4_IRQHandler
@ -27,6 +44,12 @@ Section Cross References
system_stm32f10x.o(i.SetSysClock) refers to system_stm32f10x.o(i.SetSysClockTo72) for SetSysClockTo72
system_stm32f10x.o(i.SystemCoreClockUpdate) refers to system_stm32f10x.o(.data) for SystemCoreClock
system_stm32f10x.o(i.SystemInit) refers to system_stm32f10x.o(i.SetSysClock) for SetSysClock
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
__main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for __rt_entry_li
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for __rt_entry_main
@ -135,6 +158,8 @@ Removing Unused input sections from the image.
Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes).
Removing main.o(.rrx_text), (6 bytes).
Removing main.o(i.toto), (16 bytes).
Removing main.o(.data), (2 bytes).
Removing driver_gpio.o(.rev16_text), (4 bytes).
Removing driver_gpio.o(.revsh_text), (4 bytes).
Removing driver_gpio.o(.rrx_text), (6 bytes).
@ -152,13 +177,26 @@ Removing Unused input sections from the image.
Removing driver_timer.o(i.MyTimer_Stop), (10 bytes).
Removing driver_timer.o(i.__NVIC_EnableIRQ), (34 bytes).
Removing driver_timer.o(i.__NVIC_SetPriority), (40 bytes).
Removing driver_adc.o(.rev16_text), (4 bytes).
Removing driver_adc.o(.revsh_text), (4 bytes).
Removing driver_adc.o(.rrx_text), (6 bytes).
Removing driver_adc.o(i.driver_adc_1_init), (244 bytes).
Removing driver_adc.o(i.driver_adc_1_launch_read), (20 bytes).
Removing driver_adc.o(i.driver_adc_1_read), (16 bytes).
Removing imu.o(.rev16_text), (4 bytes).
Removing imu.o(.revsh_text), (4 bytes).
Removing imu.o(.rrx_text), (6 bytes).
Removing imu.o(.constdata), (3 bytes).
Removing system_stm32f10x.o(.rev16_text), (4 bytes).
Removing system_stm32f10x.o(.revsh_text), (4 bytes).
Removing system_stm32f10x.o(.rrx_text), (6 bytes).
Removing system_stm32f10x.o(i.SystemCoreClockUpdate), (164 bytes).
Removing system_stm32f10x.o(.data), (20 bytes).
Removing myspi.o(.rev16_text), (4 bytes).
Removing myspi.o(.revsh_text), (4 bytes).
Removing myspi.o(.rrx_text), (6 bytes).
25 unused section(s) (total 876 bytes) removed from the image.
40 unused section(s) (total 1219 bytes) removed from the image.
==============================================================================
@ -168,17 +206,17 @@ Image Symbol Table
Symbol Name Value Ov Type Size Object(Section)
../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE
../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE
../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE
../clib/angel/scatter.s 0x00000000 Number 0 __scatter.o ABSOLUTE
../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE
@ -189,37 +227,43 @@ Image Symbol Table
../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE
../clib/angel/sysapp.c 0x00000000 Number 0 sys_exit.o ABSOLUTE
../clib/angel/sysapp.c 0x00000000 Number 0 sys_wrch.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE
../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE
../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE
../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE
../fplib/fpinit.s 0x00000000 Number 0 fpinit.o ABSOLUTE
..\\driver\\Driver_ADC.c 0x00000000 Number 0 driver_adc.o ABSOLUTE
..\\driver\\Driver_GPIO.c 0x00000000 Number 0 driver_gpio.o ABSOLUTE
..\\driver\\Driver_Timer.c 0x00000000 Number 0 driver_timer.o ABSOLUTE
..\\driver\\IMU.c 0x00000000 Number 0 imu.o ABSOLUTE
..\driver\Driver_ADC.c 0x00000000 Number 0 driver_adc.o ABSOLUTE
..\driver\Driver_GPIO.c 0x00000000 Number 0 driver_gpio.o ABSOLUTE
..\driver\Driver_Timer.c 0x00000000 Number 0 driver_timer.o ABSOLUTE
..\driver\IMU.c 0x00000000 Number 0 imu.o ABSOLUTE
MyDrivers\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
MyDrivers\\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
RTE\Device\STM32F103RB\startup_stm32f10x_md.s 0x00000000 Number 0 startup_stm32f10x_md.o ABSOLUTE
RTE\Device\STM32F103RB\system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE
RTE\\Device\\STM32F103RB\\system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE
@ -281,23 +325,35 @@ Image Symbol Table
.text 0x08000234 Section 0 sys_exit.o(.text)
.text 0x08000240 Section 2 use_no_semi.o(.text)
.text 0x08000242 Section 0 indicate_semi.o(.text)
i.Bug 0x08000242 Section 0 driver_timer.o(i.Bug)
i.SetSysClock 0x08000246 Section 0 system_stm32f10x.o(i.SetSysClock)
SetSysClock 0x08000247 Thumb Code 8 system_stm32f10x.o(i.SetSysClock)
i.SetSysClockTo72 0x08000250 Section 0 system_stm32f10x.o(i.SetSysClockTo72)
SetSysClockTo72 0x08000251 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72)
i.SystemInit 0x08000330 Section 0 system_stm32f10x.o(i.SystemInit)
i.TIM2_IRQHandler 0x08000390 Section 0 driver_timer.o(i.TIM2_IRQHandler)
i.TIM3_IRQHandler 0x080003b0 Section 0 driver_timer.o(i.TIM3_IRQHandler)
i.TIM4_IRQHandler 0x080003d0 Section 0 driver_timer.o(i.TIM4_IRQHandler)
i.main 0x080003f0 Section 0 main.o(i.main)
i.ADC1_2_IRQHandler 0x08000244 Section 0 driver_adc.o(i.ADC1_2_IRQHandler)
i.Bug 0x08000264 Section 0 driver_timer.o(i.Bug)
i.MySPI_Clear_NSS 0x08000268 Section 0 myspi.o(i.MySPI_Clear_NSS)
i.MySPI_Init 0x08000298 Section 0 myspi.o(i.MySPI_Init)
i.MySPI_Read 0x0800048c Section 0 myspi.o(i.MySPI_Read)
i.MySPI_Send 0x080004e0 Section 0 myspi.o(i.MySPI_Send)
i.MySPI_Set_NSS 0x08000530 Section 0 myspi.o(i.MySPI_Set_NSS)
i.SetSysClock 0x0800055c Section 0 system_stm32f10x.o(i.SetSysClock)
SetSysClock 0x0800055d Thumb Code 8 system_stm32f10x.o(i.SetSysClock)
i.SetSysClockTo72 0x08000564 Section 0 system_stm32f10x.o(i.SetSysClockTo72)
SetSysClockTo72 0x08000565 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72)
i.SystemInit 0x08000644 Section 0 system_stm32f10x.o(i.SystemInit)
i.TIM2_IRQHandler 0x080006a4 Section 0 driver_timer.o(i.TIM2_IRQHandler)
i.TIM3_IRQHandler 0x080006c4 Section 0 driver_timer.o(i.TIM3_IRQHandler)
i.TIM4_IRQHandler 0x080006e4 Section 0 driver_timer.o(i.TIM4_IRQHandler)
i.erreur 0x08000704 Section 0 driver_adc.o(i.erreur)
i.main 0x08000708 Section 0 main.o(i.main)
i.source_IMU_init 0x08000720 Section 0 imu.o(i.source_IMU_init)
i.source_IMU_read 0x08000748 Section 0 imu.o(i.source_IMU_read)
i.source_IMU_write_register 0x08000778 Section 0 imu.o(i.source_IMU_write_register)
.data 0x20000000 Section 12 driver_timer.o(.data)
.bss 0x2000000c Section 96 libspace.o(.bss)
HEAP 0x20000070 Section 512 startup_stm32f10x_md.o(HEAP)
Heap_Mem 0x20000070 Data 512 startup_stm32f10x_md.o(HEAP)
STACK 0x20000270 Section 1024 startup_stm32f10x_md.o(STACK)
Stack_Mem 0x20000270 Data 1024 startup_stm32f10x_md.o(STACK)
__initial_sp 0x20000670 Data 0 startup_stm32f10x_md.o(STACK)
.data 0x2000000c Section 4 driver_adc.o(.data)
.data 0x20000010 Section 4 myspi.o(.data)
.bss 0x20000014 Section 96 libspace.o(.bss)
HEAP 0x20000078 Section 512 startup_stm32f10x_md.o(HEAP)
Heap_Mem 0x20000078 Data 512 startup_stm32f10x_md.o(HEAP)
STACK 0x20000278 Section 1024 startup_stm32f10x_md.o(STACK)
Stack_Mem 0x20000278 Data 1024 startup_stm32f10x_md.o(STACK)
__initial_sp 0x20000678 Data 0 startup_stm32f10x_md.o(STACK)
Global Symbols
@ -396,7 +452,6 @@ Image Symbol Table
DebugMon_Handler 0x0800019d Thumb Code 2 startup_stm32f10x_md.o(.text)
PendSV_Handler 0x0800019f Thumb Code 2 startup_stm32f10x_md.o(.text)
SysTick_Handler 0x080001a1 Thumb Code 2 startup_stm32f10x_md.o(.text)
ADC1_2_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_RX1_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_SCE_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel1_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text)
@ -448,20 +503,32 @@ Image Symbol Table
_sys_exit 0x08000235 Thumb Code 8 sys_exit.o(.text)
__I$use$semihosting 0x08000241 Thumb Code 0 use_no_semi.o(.text)
__use_no_semihosting_swi 0x08000241 Thumb Code 2 use_no_semi.o(.text)
Bug 0x08000243 Thumb Code 4 driver_timer.o(i.Bug)
__semihosting_library_function 0x08000243 Thumb Code 0 indicate_semi.o(.text)
SystemInit 0x08000331 Thumb Code 78 system_stm32f10x.o(i.SystemInit)
TIM2_IRQHandler 0x08000391 Thumb Code 26 driver_timer.o(i.TIM2_IRQHandler)
TIM3_IRQHandler 0x080003b1 Thumb Code 22 driver_timer.o(i.TIM3_IRQHandler)
TIM4_IRQHandler 0x080003d1 Thumb Code 22 driver_timer.o(i.TIM4_IRQHandler)
main 0x080003f1 Thumb Code 4 main.o(i.main)
Region$$Table$$Base 0x080003f4 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08000414 Number 0 anon$$obj.o(Region$$Table)
ADC1_2_IRQHandler 0x08000245 Thumb Code 22 driver_adc.o(i.ADC1_2_IRQHandler)
Bug 0x08000265 Thumb Code 4 driver_timer.o(i.Bug)
MySPI_Clear_NSS 0x08000269 Thumb Code 30 myspi.o(i.MySPI_Clear_NSS)
MySPI_Init 0x08000299 Thumb Code 480 myspi.o(i.MySPI_Init)
MySPI_Read 0x0800048d Thumb Code 70 myspi.o(i.MySPI_Read)
MySPI_Send 0x080004e1 Thumb Code 68 myspi.o(i.MySPI_Send)
MySPI_Set_NSS 0x08000531 Thumb Code 28 myspi.o(i.MySPI_Set_NSS)
SystemInit 0x08000645 Thumb Code 78 system_stm32f10x.o(i.SystemInit)
TIM2_IRQHandler 0x080006a5 Thumb Code 26 driver_timer.o(i.TIM2_IRQHandler)
TIM3_IRQHandler 0x080006c5 Thumb Code 22 driver_timer.o(i.TIM3_IRQHandler)
TIM4_IRQHandler 0x080006e5 Thumb Code 22 driver_timer.o(i.TIM4_IRQHandler)
erreur 0x08000705 Thumb Code 4 driver_adc.o(i.erreur)
main 0x08000709 Thumb Code 22 main.o(i.main)
source_IMU_init 0x08000721 Thumb Code 34 imu.o(i.source_IMU_init)
source_IMU_read 0x08000749 Thumb Code 48 imu.o(i.source_IMU_read)
source_IMU_write_register 0x08000779 Thumb Code 28 imu.o(i.source_IMU_write_register)
Region$$Table$$Base 0x08000794 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080007b4 Number 0 anon$$obj.o(Region$$Table)
TIM2_fx 0x20000000 Data 4 driver_timer.o(.data)
TIM3_fx 0x20000004 Data 4 driver_timer.o(.data)
TIM4_fx 0x20000008 Data 4 driver_timer.o(.data)
__libspace_start 0x2000000c Data 96 libspace.o(.bss)
__temporary_stack_top$libspace 0x2000006c Data 0 libspace.o(.bss)
ADC1_2_fx 0x2000000c Data 4 driver_adc.o(.data)
ActiveSPI 0x20000010 Data 4 myspi.o(.data)
__libspace_start 0x20000014 Data 96 libspace.o(.bss)
__temporary_stack_top$libspace 0x20000074 Data 0 libspace.o(.bss)
@ -471,97 +538,110 @@ Memory Map of the image
Image Entry point : 0x08000189
Load Region LR_1 (Base: 0x08000000, Size: 0x00000420, Max: 0xffffffff, ABSOLUTE)
Load Region LR_1 (Base: 0x08000000, Size: 0x000007c8, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000414, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000007b4, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000ec Data RO 197 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000008 Code RO 252 * !!!main c_w.l(__main.o)
0x080000f4 0x080000f4 0x00000034 Code RO 411 !!!scatter c_w.l(__scatter.o)
0x08000128 0x08000128 0x0000001a Code RO 413 !!handler_copy c_w.l(__scatter_copy.o)
0x08000000 0x08000000 0x000000ec Data RO 310 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000008 Code RO 382 * !!!main c_w.l(__main.o)
0x080000f4 0x080000f4 0x00000034 Code RO 541 !!!scatter c_w.l(__scatter.o)
0x08000128 0x08000128 0x0000001a Code RO 543 !!handler_copy c_w.l(__scatter_copy.o)
0x08000142 0x08000142 0x00000002 PAD
0x08000144 0x08000144 0x0000001c Code RO 415 !!handler_zi c_w.l(__scatter_zi.o)
0x08000160 0x08000160 0x00000002 Code RO 279 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o)
0x08000162 0x08000162 0x00000000 Code RO 286 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 288 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 291 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 293 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 295 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 298 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 300 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 302 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 304 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 306 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 308 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 310 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 312 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 314 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 316 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 318 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 322 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 324 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 326 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 328 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000002 Code RO 329 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o)
0x08000164 0x08000164 0x00000002 Code RO 349 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o)
0x08000166 0x08000166 0x00000000 Code RO 362 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 364 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 366 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 369 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 372 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 374 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 377 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000002 Code RO 378 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o)
0x08000168 0x08000168 0x00000000 Code RO 254 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o)
0x08000168 0x08000168 0x00000000 Code RO 256 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o)
0x08000168 0x08000168 0x00000006 Code RO 268 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o)
0x0800016e 0x0800016e 0x00000000 Code RO 258 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o)
0x0800016e 0x0800016e 0x00000004 Code RO 259 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000000 Code RO 261 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000008 Code RO 262 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o)
0x0800017a 0x0800017a 0x00000002 Code RO 283 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o)
0x0800017c 0x0800017c 0x00000000 Code RO 331 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o)
0x0800017c 0x0800017c 0x00000004 Code RO 332 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o)
0x08000180 0x08000180 0x00000006 Code RO 333 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o)
0x08000144 0x08000144 0x0000001c Code RO 545 !!handler_zi c_w.l(__scatter_zi.o)
0x08000160 0x08000160 0x00000002 Code RO 409 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o)
0x08000162 0x08000162 0x00000000 Code RO 416 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 418 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 421 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 423 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 425 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 428 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 430 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 432 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 434 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 436 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 438 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 440 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 442 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 444 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 446 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 448 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 452 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 454 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 456 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 458 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000002 Code RO 459 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o)
0x08000164 0x08000164 0x00000002 Code RO 479 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o)
0x08000166 0x08000166 0x00000000 Code RO 492 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 494 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 496 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 499 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 502 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 504 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 507 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000002 Code RO 508 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o)
0x08000168 0x08000168 0x00000000 Code RO 384 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o)
0x08000168 0x08000168 0x00000000 Code RO 386 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o)
0x08000168 0x08000168 0x00000006 Code RO 398 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o)
0x0800016e 0x0800016e 0x00000000 Code RO 388 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o)
0x0800016e 0x0800016e 0x00000004 Code RO 389 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000000 Code RO 391 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000008 Code RO 392 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o)
0x0800017a 0x0800017a 0x00000002 Code RO 413 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o)
0x0800017c 0x0800017c 0x00000000 Code RO 461 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o)
0x0800017c 0x0800017c 0x00000004 Code RO 462 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o)
0x08000180 0x08000180 0x00000006 Code RO 463 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o)
0x08000186 0x08000186 0x00000002 PAD
0x08000188 0x08000188 0x00000040 Code RO 198 * .text startup_stm32f10x_md.o
0x080001c8 0x080001c8 0x00000006 Code RO 250 .text c_w.l(heapauxi.o)
0x080001ce 0x080001ce 0x0000004a Code RO 270 .text c_w.l(sys_stackheap_outer.o)
0x08000218 0x08000218 0x00000012 Code RO 272 .text c_w.l(exit.o)
0x08000188 0x08000188 0x00000040 Code RO 311 * .text startup_stm32f10x_md.o
0x080001c8 0x080001c8 0x00000006 Code RO 380 .text c_w.l(heapauxi.o)
0x080001ce 0x080001ce 0x0000004a Code RO 400 .text c_w.l(sys_stackheap_outer.o)
0x08000218 0x08000218 0x00000012 Code RO 402 .text c_w.l(exit.o)
0x0800022a 0x0800022a 0x00000002 PAD
0x0800022c 0x0800022c 0x00000008 Code RO 280 .text c_w.l(libspace.o)
0x08000234 0x08000234 0x0000000c Code RO 341 .text c_w.l(sys_exit.o)
0x08000240 0x08000240 0x00000002 Code RO 352 .text c_w.l(use_no_semi.o)
0x08000242 0x08000242 0x00000000 Code RO 354 .text c_w.l(indicate_semi.o)
0x08000242 0x08000242 0x00000004 Code RO 115 i.Bug driver_timer.o
0x08000246 0x08000246 0x00000008 Code RO 205 i.SetSysClock system_stm32f10x.o
0x0800024e 0x0800024e 0x00000002 PAD
0x08000250 0x08000250 0x000000e0 Code RO 206 i.SetSysClockTo72 system_stm32f10x.o
0x08000330 0x08000330 0x00000060 Code RO 208 i.SystemInit system_stm32f10x.o
0x08000390 0x08000390 0x00000020 Code RO 120 i.TIM2_IRQHandler driver_timer.o
0x080003b0 0x080003b0 0x00000020 Code RO 121 i.TIM3_IRQHandler driver_timer.o
0x080003d0 0x080003d0 0x00000020 Code RO 122 i.TIM4_IRQHandler driver_timer.o
0x080003f0 0x080003f0 0x00000004 Code RO 4 i.main main.o
0x080003f4 0x080003f4 0x00000020 Data RO 409 Region$$Table anon$$obj.o
0x0800022c 0x0800022c 0x00000008 Code RO 410 .text c_w.l(libspace.o)
0x08000234 0x08000234 0x0000000c Code RO 471 .text c_w.l(sys_exit.o)
0x08000240 0x08000240 0x00000002 Code RO 482 .text c_w.l(use_no_semi.o)
0x08000242 0x08000242 0x00000000 Code RO 484 .text c_w.l(indicate_semi.o)
0x08000242 0x08000242 0x00000002 PAD
0x08000244 0x08000244 0x00000020 Code RO 214 i.ADC1_2_IRQHandler driver_adc.o
0x08000264 0x08000264 0x00000004 Code RO 131 i.Bug driver_timer.o
0x08000268 0x08000268 0x00000030 Code RO 364 i.MySPI_Clear_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x08000298 0x08000298 0x000001f4 Code RO 365 i.MySPI_Init Lib_Com_Periph_2022.lib(myspi.o)
0x0800048c 0x0800048c 0x00000054 Code RO 366 i.MySPI_Read Lib_Com_Periph_2022.lib(myspi.o)
0x080004e0 0x080004e0 0x00000050 Code RO 367 i.MySPI_Send Lib_Com_Periph_2022.lib(myspi.o)
0x08000530 0x08000530 0x0000002c Code RO 368 i.MySPI_Set_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x0800055c 0x0800055c 0x00000008 Code RO 318 i.SetSysClock system_stm32f10x.o
0x08000564 0x08000564 0x000000e0 Code RO 319 i.SetSysClockTo72 system_stm32f10x.o
0x08000644 0x08000644 0x00000060 Code RO 321 i.SystemInit system_stm32f10x.o
0x080006a4 0x080006a4 0x00000020 Code RO 136 i.TIM2_IRQHandler driver_timer.o
0x080006c4 0x080006c4 0x00000020 Code RO 137 i.TIM3_IRQHandler driver_timer.o
0x080006e4 0x080006e4 0x00000020 Code RO 138 i.TIM4_IRQHandler driver_timer.o
0x08000704 0x08000704 0x00000004 Code RO 218 i.erreur driver_adc.o
0x08000708 0x08000708 0x00000016 Code RO 4 i.main main.o
0x0800071e 0x0800071e 0x00000002 PAD
0x08000720 0x08000720 0x00000028 Code RO 269 i.source_IMU_init imu.o
0x08000748 0x08000748 0x00000030 Code RO 270 i.source_IMU_read imu.o
0x08000778 0x08000778 0x0000001c Code RO 271 i.source_IMU_write_register imu.o
0x08000794 0x08000794 0x00000020 Data RO 539 Region$$Table anon$$obj.o
Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x08000414, Size: 0x0000000c, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x080007b4, Size: 0x00000014, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08000414 0x0000000c Data RW 125 .data driver_timer.o
0x20000000 0x080007b4 0x0000000c Data RW 141 .data driver_timer.o
0x2000000c 0x080007c0 0x00000004 Data RW 219 .data driver_adc.o
0x20000010 0x080007c4 0x00000004 Data RW 369 .data Lib_Com_Periph_2022.lib(myspi.o)
Execution Region ER_ZI (Exec base: 0x2000000c, Load base: 0x08000420, Size: 0x00000664, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_ZI (Exec base: 0x20000014, Load base: 0x080007c8, Size: 0x00000664, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x2000000c - 0x00000060 Zero RW 281 .bss c_w.l(libspace.o)
0x2000006c 0x08000420 0x00000004 PAD
0x20000070 - 0x00000200 Zero RW 196 HEAP startup_stm32f10x_md.o
0x20000270 - 0x00000400 Zero RW 195 STACK startup_stm32f10x_md.o
0x20000014 - 0x00000060 Zero RW 411 .bss c_w.l(libspace.o)
0x20000074 0x080007c8 0x00000004 PAD
0x20000078 - 0x00000200 Zero RW 309 HEAP startup_stm32f10x_md.o
0x20000278 - 0x00000400 Zero RW 308 STACK startup_stm32f10x_md.o
==============================================================================
@ -571,13 +651,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
36 10 0 4 0 1529 driver_adc.o
100 26 0 12 0 2554 driver_timer.o
4 0 0 0 0 207215 main.o
116 6 0 0 0 1744 imu.o
22 0 0 0 0 207315 main.o
64 26 236 0 1536 828 startup_stm32f10x_md.o
328 28 0 0 0 2029 system_stm32f10x.o
----------------------------------------------------------------------
498 80 268 12 1536 212626 Object Totals
668 96 268 16 1536 215999 Object Totals
0 0 32 0 0 0 (incl. Generated)
2 0 0 0 0 0 (incl. Padding)
@ -585,6 +667,7 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name
756 80 0 4 0 348 myspi.o
8 0 0 0 0 68 __main.o
0 0 0 0 0 0 __rtentry.o
12 0 0 0 0 0 __rtentry2.o
@ -607,17 +690,18 @@ Image component sizes
2 0 0 0 0 68 use_no_semi.o
----------------------------------------------------------------------
278 16 0 0 100 584 Library Totals
6 0 0 0 4 0 (incl. Padding)
1036 96 0 4 100 932 Library Totals
8 0 0 0 4 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
272 16 0 0 96 584 c_w.l
----------------------------------------------------------------------
278 16 0 0 100 584 Library Totals
1036 96 0 4 100 932 Library Totals
----------------------------------------------------------------------
@ -626,15 +710,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
776 96 268 12 1636 212738 Grand Totals
776 96 268 12 1636 212738 ELF Image Totals
776 96 268 12 0 0 ROM Totals
1704 192 268 20 1636 216043 Grand Totals
1704 192 268 20 1636 216043 ELF Image Totals
1704 192 268 20 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 1044 ( 1.02kB)
Total RW Size (RW Data + ZI Data) 1648 ( 1.61kB)
Total ROM Size (Code + RO Data + RW Data) 1056 ( 1.03kB)
Total RO Size (Code + RO Data) 1972 ( 1.93kB)
Total RW Size (RW Data + ZI Data) 1656 ( 1.62kB)
Total ROM Size (Code + RO Data + RW Data) 1992 ( 1.95kB)
==============================================================================

View file

@ -4,8 +4,10 @@ Component: ARM Compiler 5.06 update 7 (build 960) Tool: armlink [4d3601]
Section Cross References
main.o(i.main) refers to driver_gpio.o(i.MyGPIO_Init) for MyGPIO_Init
main.o(i.main) refers to driver_gpio.o(i.MyGPIO_Set) for MyGPIO_Set
main.o(i.main) refers to imu.o(i.source_IMU_init) for source_IMU_init
main.o(i.main) refers to imu.o(i.source_IMU_read) for source_IMU_read
main.o(i.toto) refers to driver_adc.o(i.driver_adc_1_read) for driver_adc_1_read
main.o(i.toto) refers to main.o(.data) for val
driver_timer.o(i.MyTimer_ActiveIT) refers to driver_timer.o(i.__NVIC_EnableIRQ) for __NVIC_EnableIRQ
driver_timer.o(i.MyTimer_ActiveIT) refers to driver_timer.o(i.__NVIC_SetPriority) for __NVIC_SetPriority
driver_timer.o(i.MyTimer_ActiveIT) refers to driver_timer.o(.data) for TIM2_fx
@ -13,8 +15,21 @@ Section Cross References
driver_timer.o(i.TIM3_IRQHandler) refers to driver_timer.o(.data) for TIM3_fx
driver_timer.o(i.TIM4_IRQHandler) refers to driver_timer.o(.data) for TIM4_fx
driver_timer.o(.data) refers to driver_timer.o(i.Bug) for Bug
driver_adc.o(i.ADC1_2_IRQHandler) refers to driver_adc.o(.data) for ADC1_2_fx
driver_adc.o(i.driver_adc_1_init) refers to driver_adc.o(.data) for ADC1_2_fx
driver_adc.o(.data) refers to driver_adc.o(i.erreur) for erreur
imu.o(i.source_IMU_init) refers to myspi.o(i.MySPI_Init) for MySPI_Init
imu.o(i.source_IMU_init) refers to imu.o(i.source_IMU_write_register) for source_IMU_write_register
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Send) for MySPI_Send
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Read) for MySPI_Read
imu.o(i.source_IMU_read) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
imu.o(i.source_IMU_write_register) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
imu.o(i.source_IMU_write_register) refers to myspi.o(i.MySPI_Send) for MySPI_Send
imu.o(i.source_IMU_write_register) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
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 driver_adc.o(i.ADC1_2_IRQHandler) for ADC1_2_IRQHandler
startup_stm32f10x_md.o(RESET) refers to driver_timer.o(i.TIM2_IRQHandler) for TIM2_IRQHandler
startup_stm32f10x_md.o(RESET) refers to driver_timer.o(i.TIM3_IRQHandler) for TIM3_IRQHandler
startup_stm32f10x_md.o(RESET) refers to driver_timer.o(i.TIM4_IRQHandler) for TIM4_IRQHandler
@ -23,6 +38,12 @@ Section Cross References
system_stm32f10x.o(i.SetSysClock) refers to system_stm32f10x.o(i.SetSysClockTo72) for SetSysClockTo72
system_stm32f10x.o(i.SystemCoreClockUpdate) refers to system_stm32f10x.o(.data) for SystemCoreClock
system_stm32f10x.o(i.SystemInit) refers to system_stm32f10x.o(i.SetSysClock) for SetSysClock
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$$$$0000000F) for __rt_final_cpp
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$00000011) for __rt_final_exit
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry12b.o(.ARM.Collect$$$$0000000E) for __rt_lib_shutdown_fini
@ -48,11 +69,15 @@ Removing Unused input sections from the image.
Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes).
Removing main.o(.rrx_text), (6 bytes).
Removing main.o(i.toto), (16 bytes).
Removing main.o(.data), (2 bytes).
Removing driver_gpio.o(.rev16_text), (4 bytes).
Removing driver_gpio.o(.revsh_text), (4 bytes).
Removing driver_gpio.o(.rrx_text), (6 bytes).
Removing driver_gpio.o(i.MyGPIO_Init), (264 bytes).
Removing driver_gpio.o(i.MyGPIO_Read), (14 bytes).
Removing driver_gpio.o(i.MyGPIO_Reset), (12 bytes).
Removing driver_gpio.o(i.MyGPIO_Set), (12 bytes).
Removing driver_gpio.o(i.MyGPIO_Toggle), (12 bytes).
Removing driver_timer.o(.rev16_text), (4 bytes).
Removing driver_timer.o(.revsh_text), (4 bytes).
@ -66,17 +91,24 @@ Removing Unused input sections from the image.
Removing driver_adc.o(.rev16_text), (4 bytes).
Removing driver_adc.o(.revsh_text), (4 bytes).
Removing driver_adc.o(.rrx_text), (6 bytes).
Removing driver_adc.o(i.init_adc1), (132 bytes).
Removing driver_adc.o(i.launch_read_adc1), (20 bytes).
Removing driver_adc.o(i.read_adc1), (28 bytes).
Removing driver_adc.o(i.driver_adc_1_init), (244 bytes).
Removing driver_adc.o(i.driver_adc_1_launch_read), (20 bytes).
Removing driver_adc.o(i.driver_adc_1_read), (16 bytes).
Removing imu.o(.rev16_text), (4 bytes).
Removing imu.o(.revsh_text), (4 bytes).
Removing imu.o(.rrx_text), (6 bytes).
Removing imu.o(.constdata), (3 bytes).
Removing startup_stm32f10x_md.o(HEAP), (512 bytes).
Removing system_stm32f10x.o(.rev16_text), (4 bytes).
Removing system_stm32f10x.o(.revsh_text), (4 bytes).
Removing system_stm32f10x.o(.rrx_text), (6 bytes).
Removing system_stm32f10x.o(i.SystemCoreClockUpdate), (164 bytes).
Removing system_stm32f10x.o(.data), (20 bytes).
Removing myspi.o(.rev16_text), (4 bytes).
Removing myspi.o(.revsh_text), (4 bytes).
Removing myspi.o(.rrx_text), (6 bytes).
30 unused section(s) (total 1306 bytes) removed from the image.
41 unused section(s) (total 1731 bytes) removed from the image.
==============================================================================
@ -86,27 +118,31 @@ Image Symbol Table
Symbol Name Value Ov Type Size Object(Section)
../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.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 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 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.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 entry12b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
..\\driver\\Driver_ADC.c 0x00000000 Number 0 driver_adc.o ABSOLUTE
..\\driver\\Driver_GPIO.c 0x00000000 Number 0 driver_gpio.o ABSOLUTE
..\\driver\\Driver_Timer.c 0x00000000 Number 0 driver_timer.o ABSOLUTE
..\\driver\\IMU.c 0x00000000 Number 0 imu.o ABSOLUTE
..\driver\Driver_ADC.c 0x00000000 Number 0 driver_adc.o ABSOLUTE
..\driver\Driver_GPIO.c 0x00000000 Number 0 driver_gpio.o ABSOLUTE
..\driver\Driver_Timer.c 0x00000000 Number 0 driver_timer.o ABSOLUTE
..\driver\IMU.c 0x00000000 Number 0 imu.o ABSOLUTE
MyDrivers\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
MyDrivers\\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
RTE\Device\STM32F103RB\startup_stm32f10x_md.s 0x00000000 Number 0 startup_stm32f10x_md.o ABSOLUTE
RTE\Device\STM32F103RB\system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE
RTE\\Device\\STM32F103RB\\system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE
@ -129,23 +165,33 @@ Image Symbol Table
__lit__00000000 0x08000100 Data 4 entry2.o(.ARM.Collect$$$$00002712)
.text 0x08000104 Section 36 startup_stm32f10x_md.o(.text)
.text 0x08000128 Section 36 init.o(.text)
i.Bug 0x0800014c Section 0 driver_timer.o(i.Bug)
i.MyGPIO_Init 0x08000150 Section 0 driver_gpio.o(i.MyGPIO_Init)
i.MyGPIO_Set 0x08000258 Section 0 driver_gpio.o(i.MyGPIO_Set)
i.SetSysClock 0x08000264 Section 0 system_stm32f10x.o(i.SetSysClock)
SetSysClock 0x08000265 Thumb Code 8 system_stm32f10x.o(i.SetSysClock)
i.SetSysClockTo72 0x0800026c Section 0 system_stm32f10x.o(i.SetSysClockTo72)
SetSysClockTo72 0x0800026d Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72)
i.SystemInit 0x0800034c Section 0 system_stm32f10x.o(i.SystemInit)
i.TIM2_IRQHandler 0x080003ac Section 0 driver_timer.o(i.TIM2_IRQHandler)
i.TIM3_IRQHandler 0x080003cc Section 0 driver_timer.o(i.TIM3_IRQHandler)
i.TIM4_IRQHandler 0x080003ec Section 0 driver_timer.o(i.TIM4_IRQHandler)
i.__scatterload_copy 0x0800040c Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x0800041a Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x0800041c Section 14 handlers.o(i.__scatterload_zeroinit)
i.main 0x0800042c Section 0 main.o(i.main)
i.ADC1_2_IRQHandler 0x0800014c Section 0 driver_adc.o(i.ADC1_2_IRQHandler)
i.Bug 0x0800016c Section 0 driver_timer.o(i.Bug)
i.MySPI_Clear_NSS 0x08000170 Section 0 myspi.o(i.MySPI_Clear_NSS)
i.MySPI_Init 0x080001a0 Section 0 myspi.o(i.MySPI_Init)
i.MySPI_Read 0x08000394 Section 0 myspi.o(i.MySPI_Read)
i.MySPI_Send 0x080003e8 Section 0 myspi.o(i.MySPI_Send)
i.MySPI_Set_NSS 0x08000438 Section 0 myspi.o(i.MySPI_Set_NSS)
i.SetSysClock 0x08000464 Section 0 system_stm32f10x.o(i.SetSysClock)
SetSysClock 0x08000465 Thumb Code 8 system_stm32f10x.o(i.SetSysClock)
i.SetSysClockTo72 0x0800046c Section 0 system_stm32f10x.o(i.SetSysClockTo72)
SetSysClockTo72 0x0800046d Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72)
i.SystemInit 0x0800054c Section 0 system_stm32f10x.o(i.SystemInit)
i.TIM2_IRQHandler 0x080005ac Section 0 driver_timer.o(i.TIM2_IRQHandler)
i.TIM3_IRQHandler 0x080005cc Section 0 driver_timer.o(i.TIM3_IRQHandler)
i.TIM4_IRQHandler 0x080005ec Section 0 driver_timer.o(i.TIM4_IRQHandler)
i.__scatterload_copy 0x0800060c Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x0800061a Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x0800061c Section 14 handlers.o(i.__scatterload_zeroinit)
i.erreur 0x0800062a Section 0 driver_adc.o(i.erreur)
i.main 0x0800062e Section 0 main.o(i.main)
i.source_IMU_init 0x08000644 Section 0 imu.o(i.source_IMU_init)
i.source_IMU_read 0x0800066c Section 0 imu.o(i.source_IMU_read)
i.source_IMU_write_register 0x080006a0 Section 0 imu.o(i.source_IMU_write_register)
.data 0x20000000 Section 12 driver_timer.o(.data)
STACK 0x20000010 Section 1024 startup_stm32f10x_md.o(STACK)
.data 0x2000000c Section 4 driver_adc.o(.data)
.data 0x20000010 Section 4 myspi.o(.data)
STACK 0x20000018 Section 1024 startup_stm32f10x_md.o(STACK)
Global Symbols
@ -182,7 +228,6 @@ Image Symbol Table
DebugMon_Handler 0x08000119 Thumb Code 2 startup_stm32f10x_md.o(.text)
PendSV_Handler 0x0800011b Thumb Code 2 startup_stm32f10x_md.o(.text)
SysTick_Handler 0x0800011d Thumb Code 2 startup_stm32f10x_md.o(.text)
ADC1_2_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_RX1_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_SCE_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f10x_md.o(.text)
DMA1_Channel1_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f10x_md.o(.text)
@ -224,23 +269,33 @@ Image Symbol Table
WWDG_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f10x_md.o(.text)
__scatterload 0x08000129 Thumb Code 28 init.o(.text)
__scatterload_rt2 0x08000129 Thumb Code 0 init.o(.text)
Bug 0x0800014d Thumb Code 4 driver_timer.o(i.Bug)
MyGPIO_Init 0x08000151 Thumb Code 242 driver_gpio.o(i.MyGPIO_Init)
MyGPIO_Set 0x08000259 Thumb Code 12 driver_gpio.o(i.MyGPIO_Set)
SystemInit 0x0800034d Thumb Code 78 system_stm32f10x.o(i.SystemInit)
TIM2_IRQHandler 0x080003ad Thumb Code 26 driver_timer.o(i.TIM2_IRQHandler)
TIM3_IRQHandler 0x080003cd Thumb Code 22 driver_timer.o(i.TIM3_IRQHandler)
TIM4_IRQHandler 0x080003ed Thumb Code 22 driver_timer.o(i.TIM4_IRQHandler)
__scatterload_copy 0x0800040d Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x0800041b Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x0800041d Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
main 0x0800042d Thumb Code 38 main.o(i.main)
Region$$Table$$Base 0x08000458 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08000478 Number 0 anon$$obj.o(Region$$Table)
ADC1_2_IRQHandler 0x0800014d Thumb Code 22 driver_adc.o(i.ADC1_2_IRQHandler)
Bug 0x0800016d Thumb Code 4 driver_timer.o(i.Bug)
MySPI_Clear_NSS 0x08000171 Thumb Code 30 myspi.o(i.MySPI_Clear_NSS)
MySPI_Init 0x080001a1 Thumb Code 480 myspi.o(i.MySPI_Init)
MySPI_Read 0x08000395 Thumb Code 70 myspi.o(i.MySPI_Read)
MySPI_Send 0x080003e9 Thumb Code 68 myspi.o(i.MySPI_Send)
MySPI_Set_NSS 0x08000439 Thumb Code 28 myspi.o(i.MySPI_Set_NSS)
SystemInit 0x0800054d Thumb Code 78 system_stm32f10x.o(i.SystemInit)
TIM2_IRQHandler 0x080005ad Thumb Code 26 driver_timer.o(i.TIM2_IRQHandler)
TIM3_IRQHandler 0x080005cd Thumb Code 22 driver_timer.o(i.TIM3_IRQHandler)
TIM4_IRQHandler 0x080005ed Thumb Code 22 driver_timer.o(i.TIM4_IRQHandler)
__scatterload_copy 0x0800060d Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x0800061b Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x0800061d Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
erreur 0x0800062b Thumb Code 4 driver_adc.o(i.erreur)
main 0x0800062f Thumb Code 22 main.o(i.main)
source_IMU_init 0x08000645 Thumb Code 34 imu.o(i.source_IMU_init)
source_IMU_read 0x0800066d Thumb Code 52 imu.o(i.source_IMU_read)
source_IMU_write_register 0x080006a1 Thumb Code 28 imu.o(i.source_IMU_write_register)
Region$$Table$$Base 0x080006bc Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080006dc Number 0 anon$$obj.o(Region$$Table)
TIM2_fx 0x20000000 Data 4 driver_timer.o(.data)
TIM3_fx 0x20000004 Data 4 driver_timer.o(.data)
TIM4_fx 0x20000008 Data 4 driver_timer.o(.data)
__initial_sp 0x20000410 Data 0 startup_stm32f10x_md.o(STACK)
ADC1_2_fx 0x2000000c Data 4 driver_adc.o(.data)
ActiveSPI 0x20000010 Data 4 myspi.o(.data)
__initial_sp 0x20000418 Data 0 startup_stm32f10x_md.o(STACK)
@ -250,55 +305,64 @@ Memory Map of the image
Image Entry point : 0x08000105
Load Region LR_1 (Base: 0x08000000, Size: 0x00000484, Max: 0xffffffff, ABSOLUTE)
Load Region LR_1 (Base: 0x08000000, Size: 0x000006f0, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000478, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000006dc, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000ec Data RO 236 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000000 Code RO 287 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x080000ec 0x080000ec 0x00000004 Code RO 290 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x080000f0 0x080000f0 0x00000004 Code RO 293 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x080000f4 0x080000f4 0x00000000 Code RO 295 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x080000f4 0x080000f4 0x00000000 Code RO 297 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x080000f4 0x080000f4 0x00000008 Code RO 298 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x080000fc 0x080000fc 0x00000004 Code RO 305 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o)
0x08000100 0x08000100 0x00000000 Code RO 300 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o)
0x08000100 0x08000100 0x00000000 Code RO 302 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o)
0x08000100 0x08000100 0x00000004 Code RO 291 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000104 0x08000104 0x00000024 Code RO 237 * .text startup_stm32f10x_md.o
0x08000128 0x08000128 0x00000024 Code RO 306 .text mc_w.l(init.o)
0x0800014c 0x0800014c 0x00000004 Code RO 118 i.Bug driver_timer.o
0x08000150 0x08000150 0x00000108 Code RO 66 i.MyGPIO_Init driver_gpio.o
0x08000258 0x08000258 0x0000000c Code RO 69 i.MyGPIO_Set driver_gpio.o
0x08000264 0x08000264 0x00000008 Code RO 244 i.SetSysClock system_stm32f10x.o
0x0800026c 0x0800026c 0x000000e0 Code RO 245 i.SetSysClockTo72 system_stm32f10x.o
0x0800034c 0x0800034c 0x00000060 Code RO 247 i.SystemInit system_stm32f10x.o
0x080003ac 0x080003ac 0x00000020 Code RO 123 i.TIM2_IRQHandler driver_timer.o
0x080003cc 0x080003cc 0x00000020 Code RO 124 i.TIM3_IRQHandler driver_timer.o
0x080003ec 0x080003ec 0x00000020 Code RO 125 i.TIM4_IRQHandler driver_timer.o
0x0800040c 0x0800040c 0x0000000e Code RO 310 i.__scatterload_copy mc_w.l(handlers.o)
0x0800041a 0x0800041a 0x00000002 Code RO 311 i.__scatterload_null mc_w.l(handlers.o)
0x0800041c 0x0800041c 0x0000000e Code RO 312 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x0800042a 0x0800042a 0x00000002 PAD
0x0800042c 0x0800042c 0x0000002c Code RO 4 i.main main.o
0x08000458 0x08000458 0x00000020 Data RO 308 Region$$Table anon$$obj.o
0x08000000 0x08000000 0x000000ec Data RO 310 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000000 Code RO 378 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x080000ec 0x080000ec 0x00000004 Code RO 381 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x080000f0 0x080000f0 0x00000004 Code RO 384 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x080000f4 0x080000f4 0x00000000 Code RO 386 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x080000f4 0x080000f4 0x00000000 Code RO 388 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x080000f4 0x080000f4 0x00000008 Code RO 389 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x080000fc 0x080000fc 0x00000004 Code RO 396 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o)
0x08000100 0x08000100 0x00000000 Code RO 391 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o)
0x08000100 0x08000100 0x00000000 Code RO 393 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o)
0x08000100 0x08000100 0x00000004 Code RO 382 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000104 0x08000104 0x00000024 Code RO 311 * .text startup_stm32f10x_md.o
0x08000128 0x08000128 0x00000024 Code RO 397 .text mc_w.l(init.o)
0x0800014c 0x0800014c 0x00000020 Code RO 214 i.ADC1_2_IRQHandler driver_adc.o
0x0800016c 0x0800016c 0x00000004 Code RO 131 i.Bug driver_timer.o
0x08000170 0x08000170 0x00000030 Code RO 364 i.MySPI_Clear_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x080001a0 0x080001a0 0x000001f4 Code RO 365 i.MySPI_Init Lib_Com_Periph_2022.lib(myspi.o)
0x08000394 0x08000394 0x00000054 Code RO 366 i.MySPI_Read Lib_Com_Periph_2022.lib(myspi.o)
0x080003e8 0x080003e8 0x00000050 Code RO 367 i.MySPI_Send Lib_Com_Periph_2022.lib(myspi.o)
0x08000438 0x08000438 0x0000002c Code RO 368 i.MySPI_Set_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x08000464 0x08000464 0x00000008 Code RO 318 i.SetSysClock system_stm32f10x.o
0x0800046c 0x0800046c 0x000000e0 Code RO 319 i.SetSysClockTo72 system_stm32f10x.o
0x0800054c 0x0800054c 0x00000060 Code RO 321 i.SystemInit system_stm32f10x.o
0x080005ac 0x080005ac 0x00000020 Code RO 136 i.TIM2_IRQHandler driver_timer.o
0x080005cc 0x080005cc 0x00000020 Code RO 137 i.TIM3_IRQHandler driver_timer.o
0x080005ec 0x080005ec 0x00000020 Code RO 138 i.TIM4_IRQHandler driver_timer.o
0x0800060c 0x0800060c 0x0000000e Code RO 401 i.__scatterload_copy mc_w.l(handlers.o)
0x0800061a 0x0800061a 0x00000002 Code RO 402 i.__scatterload_null mc_w.l(handlers.o)
0x0800061c 0x0800061c 0x0000000e Code RO 403 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x0800062a 0x0800062a 0x00000004 Code RO 218 i.erreur driver_adc.o
0x0800062e 0x0800062e 0x00000016 Code RO 4 i.main main.o
0x08000644 0x08000644 0x00000028 Code RO 269 i.source_IMU_init imu.o
0x0800066c 0x0800066c 0x00000034 Code RO 270 i.source_IMU_read imu.o
0x080006a0 0x080006a0 0x0000001c Code RO 271 i.source_IMU_write_register imu.o
0x080006bc 0x080006bc 0x00000020 Data RO 399 Region$$Table anon$$obj.o
Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x08000478, Size: 0x0000000c, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x080006dc, Size: 0x00000014, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08000478 0x0000000c Data RW 128 .data driver_timer.o
0x20000000 0x080006dc 0x0000000c Data RW 141 .data driver_timer.o
0x2000000c 0x080006e8 0x00000004 Data RW 219 .data driver_adc.o
0x20000010 0x080006ec 0x00000004 Data RW 369 .data Lib_Com_Periph_2022.lib(myspi.o)
Execution Region ER_ZI (Exec base: 0x2000000c, Load base: 0x08000484, Size: 0x00000404, Max: 0xffffffff, ABSOLUTE)
Execution Region ER_ZI (Exec base: 0x20000014, Load base: 0x080006f0, Size: 0x00000404, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x2000000c 0x08000484 0x00000004 PAD
0x20000010 - 0x00000400 Zero RW 234 STACK startup_stm32f10x_md.o
0x20000014 0x080006f0 0x00000004 PAD
0x20000018 - 0x00000400 Zero RW 308 STACK startup_stm32f10x_md.o
==============================================================================
@ -308,21 +372,23 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
276 22 0 0 0 1507 driver_gpio.o
36 10 0 4 0 1529 driver_adc.o
100 26 0 12 0 2554 driver_timer.o
44 6 0 0 0 207855 main.o
120 6 0 0 0 1748 imu.o
22 0 0 0 0 207315 main.o
36 8 236 0 1024 824 startup_stm32f10x_md.o
328 28 0 0 0 2029 system_stm32f10x.o
----------------------------------------------------------------------
784 90 268 12 1028 214769 Object Totals
642 78 268 16 1024 215999 Object Totals
0 0 32 0 0 0 (incl. Generated)
0 0 0 0 4 0 (incl. Padding)
0 0 0 0 0 0 (incl. Padding)
----------------------------------------------------------------------
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
@ -336,17 +402,18 @@ Image component sizes
36 8 0 0 0 68 init.o
----------------------------------------------------------------------
92 16 0 0 0 68 Library Totals
2 0 0 0 0 0 (incl. Padding)
846 96 0 4 4 416 Library Totals
0 0 0 0 4 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
90 16 0 0 0 68 mc_w.l
----------------------------------------------------------------------
92 16 0 0 0 68 Library Totals
846 96 0 4 4 416 Library Totals
----------------------------------------------------------------------
@ -355,15 +422,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
876 106 268 12 1028 214573 Grand Totals
876 106 268 12 1028 214573 ELF Image Totals
876 106 268 12 0 0 ROM Totals
1488 174 268 20 1028 215839 Grand Totals
1488 174 268 20 1028 215839 ELF Image Totals
1488 174 268 20 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 1144 ( 1.12kB)
Total RW Size (RW Data + ZI Data) 1040 ( 1.02kB)
Total ROM Size (Code + RO Data + RW Data) 1156 ( 1.13kB)
Total RO Size (Code + RO Data) 1756 ( 1.71kB)
Total RW Size (RW Data + ZI Data) 1048 ( 1.02kB)
Total ROM Size (Code + RO Data + RW Data) 1776 ( 1.73kB)
==============================================================================

Binary file not shown.

Binary file not shown.

View file

@ -10,3 +10,5 @@
.\objects\main.o: ..\driver\Driver_GPIO.h
.\objects\main.o: ..\driver\Driver_Timer.h
.\objects\main.o: ..\driver\Driver_ADC.h
.\objects\main.o: ..\driver\MySPI.h
.\objects\main.o: ..\driver\IMU.h

Binary file not shown.

View file

@ -22,19 +22,27 @@ Dialog DLL: TARMSTM.DLL V1.66.0.0
<h2>Project:</h2>
U:\Documents\microcontroleur\Projet-Voilier-3\projet-voilier\projet-voilier.uvprojx
Project File Date: 03/22/2023
Project File Date: 04/04/2023
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'sim'
assembling startup_stm32f10x_md.s...
compiling main.c...
compiling Driver_ADC.c...
compiling system_stm32f10x.c...
compiling main.c...
src\main.c(10): warning: #550-D: variable "val" was set but never used
static uint16_t val;
src\main.c: 1 warning, 0 errors
compiling IMU.c...
..\driver\IMU.c(21): warning: #177-D: variable "i" was declared but never referenced
int i;
..\driver\IMU.c: 1 warning, 0 errors
compiling Driver_Timer.c...
compiling Driver_GPIO.c...
linking...
Program Size: Code=776 RO-data=268 RW-data=12 ZI-data=1636
".\Objects\projet-voilier.axf" - 0 Error(s), 0 Warning(s).
Program Size: Code=1704 RO-data=268 RW-data=20 ZI-data=1636
".\Objects\projet-voilier.axf" - 0 Error(s), 2 Warning(s).
<h2>Software Packages used:</h2>
@ -62,10 +70,10 @@ Package Vendor: Keil
* Component: Keil::Device:Startup:1.0.0
Source file: Device\Source\ARM\startup_stm32f10x_md.s
Source file: Device\Source\ARM\STM32F1xx_OPT.s
Include file: RTE_Driver\Config\RTE_Device.h
Source file: Device\Source\ARM\STM32F1xx_OPT.s
Source file: Device\Source\system_stm32f10x.c
Build Time Elapsed: 00:00:01
Build Time Elapsed: 00:00:02
</pre>
</body>
</html>

View file

@ -3,16 +3,16 @@
<title>Static Call Graph - [.\Objects\projet-voilier.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\projet-voilier.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Wed Mar 22 14:32:43 2023
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue Apr 04 15:13:02 2023
<BR><P>
<H3>Maximum Stack Usage = 28 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 40 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
SystemInit &rArr; SetSysClock &rArr; SetSysClockTo72
__rt_entry_main &rArr; main &rArr; source_IMU_read
<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[3d]">__user_initial_stackheap</a>
<LI><a href="#[3e]">__user_initial_stackheap</a>
</UL>
</UL>
<P>
@ -27,13 +27,13 @@ Mutually Recursive functions
<LI><a href="#[a]">DebugMon_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[a]">DebugMon_Handler</a><BR>
<LI><a href="#[b]">PendSV_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[b]">PendSV_Handler</a><BR>
<LI><a href="#[c]">SysTick_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c]">SysTick_Handler</a><BR>
<LI><a href="#[1f]">ADC1_2_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1f]">ADC1_2_IRQHandler</a><BR>
<LI><a href="#[22]">CAN1_RX1_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[22]">CAN1_RX1_IRQHandler</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[1f]">ADC1_2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[1f]">ADC1_2_IRQHandler</a> from driver_adc.o(i.ADC1_2_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[3a]">Bug</a> from driver_timer.o(i.Bug) referenced 3 times from driver_timer.o(.data)
<LI><a href="#[7]">BusFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[22]">CAN1_RX1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
@ -66,7 +66,7 @@ Function Pointers
<LI><a href="#[12]">RCC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[36]">RTCAlarm_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[10]">RTC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[3b]">Reset_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[3c]">Reset_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[30]">SPI1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[31]">SPI2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[9]">SVC_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
@ -88,148 +88,149 @@ Function Pointers
<LI><a href="#[21]">USB_LP_CAN1_RX0_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[8]">UsageFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[d]">WWDG_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[3c]">__main</a> from __main.o(!!!main) referenced from startup_stm32f10x_md.o(.text)
<LI><a href="#[3d]">__main</a> from __main.o(!!!main) referenced from startup_stm32f10x_md.o(.text)
<LI><a href="#[3b]">erreur</a> from driver_adc.o(i.erreur) referenced from driver_adc.o(.data)
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[3c]"></a>__main</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
<P><STRONG><a name="[3d]"></a>__main</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Calls]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[3e]"></a>__scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
<P><STRONG><a name="[3f]"></a>__scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
</UL>
<P><STRONG><a name="[40]"></a>__scatterload_rt2</STRONG> (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
<P><STRONG><a name="[41]"></a>__scatterload_rt2</STRONG> (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>
<P><STRONG><a name="[51]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[5a]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[52]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[5b]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[41]"></a>__scatterload_copy</STRONG> (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
<P><STRONG><a name="[42]"></a>__scatterload_copy</STRONG> (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
<BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL>
<P><STRONG><a name="[53]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[5c]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[45]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li
<P><STRONG><a name="[46]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li
</UL>
<P><STRONG><a name="[54]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[5d]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[55]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C))
<P><STRONG><a name="[5e]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C))
<P><STRONG><a name="[56]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[5f]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[57]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[60]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[58]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[61]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[59]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[62]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[5a]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[63]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[5b]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[64]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[5c]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[65]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[5d]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A))
<P><STRONG><a name="[66]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A))
<P><STRONG><a name="[5e]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011))
<P><STRONG><a name="[67]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011))
<P><STRONG><a name="[5f]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[68]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[60]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[69]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[61]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[6a]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[62]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[6b]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[63]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[6c]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[64]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[6d]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[65]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033))
<P><STRONG><a name="[6e]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033))
<P><STRONG><a name="[66]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[6f]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[67]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[70]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[68]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[71]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[4a]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls
<P><STRONG><a name="[4b]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls
</UL>
<P><STRONG><a name="[69]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[72]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[6a]"></a>__rt_lib_shutdown_fini_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[73]"></a>__rt_lib_shutdown_fini_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[6b]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009))
<P><STRONG><a name="[74]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009))
<P><STRONG><a name="[6c]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011))
<P><STRONG><a name="[75]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011))
<P><STRONG><a name="[6d]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012))
<P><STRONG><a name="[76]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012))
<P><STRONG><a name="[6e]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[77]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[6f]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006))
<P><STRONG><a name="[78]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006))
<P><STRONG><a name="[70]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E))
<P><STRONG><a name="[79]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E))
<P><STRONG><a name="[3f]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
<P><STRONG><a name="[40]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
</UL>
<P><STRONG><a name="[71]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[7a]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[42]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
<P><STRONG><a name="[43]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __rt_entry_sh &rArr; __user_setup_stackheap
</UL>
<BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
<BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[44]"></a>__rt_entry_li</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A))
<BR><BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
<P><STRONG><a name="[45]"></a>__rt_entry_li</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A))
<BR><BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
</UL>
<P><STRONG><a name="[72]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[7b]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[46]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __rt_entry_main &rArr; exit
<P><STRONG><a name="[47]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
<BR><BR>[Stack]<UL><LI>Max Depth = 40 + Unknown Stack Size
<LI>Call Chain = __rt_entry_main &rArr; main &rArr; source_IMU_read
</UL>
<BR>[Calls]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[73]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[7c]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[4e]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<P><STRONG><a name="[4f]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
</UL>
<P><STRONG><a name="[49]"></a>__rt_exit_ls</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003))
<BR><BR>[Calls]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown
<P><STRONG><a name="[4a]"></a>__rt_exit_ls</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003))
<BR><BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown
</UL>
<P><STRONG><a name="[74]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[7d]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[4b]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit
<P><STRONG><a name="[4c]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit
</UL>
<P><STRONG><a name="[3b]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<P><STRONG><a name="[3c]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<P><STRONG><a name="[4]"></a>NMI_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;NMI_Handler
@ -294,14 +295,11 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[1f]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[1f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADC1_2_IRQHandler
</UL>
<BR>[Called By]<UL><LI><a href="#[1f]">&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="[22]"></a>CAN1_RX1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[22]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN1_RX1_IRQHandler
</UL>
<BR>[Called By]<UL><LI><a href="#[22]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN1_RX1_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[23]"></a>CAN1_SCE_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
@ -418,60 +416,93 @@ Global Symbols
<P><STRONG><a name="[d]"></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="[3d]"></a>__user_initial_stackheap</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
<P><STRONG><a name="[3e]"></a>__user_initial_stackheap</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[75]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[7e]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[76]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[7f]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[77]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[80]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[43]"></a>__user_setup_stackheap</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
<P><STRONG><a name="[44]"></a>__user_setup_stackheap</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __user_setup_stackheap
</UL>
<BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_perproc_libspace
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_initial_stackheap
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_perproc_libspace
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_initial_stackheap
</UL>
<BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_sh
<BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_sh
</UL>
<P><STRONG><a name="[48]"></a>exit</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text))
<P><STRONG><a name="[49]"></a>exit</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = exit
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit
<BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit
</UL>
<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
<BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[78]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[81]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[4d]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
<P><STRONG><a name="[4e]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[79]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[82]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[4c]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit
<P><STRONG><a name="[4d]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit
</UL>
<P><STRONG><a name="[7a]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[83]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[7b]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[84]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[85]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[1f]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, driver_adc.o(i.ADC1_2_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ADC1_2_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[3a]"></a>Bug</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_timer.o(i.Bug))
<BR>[Address Reference Count : 1]<UL><LI> driver_timer.o(.data)
</UL>
<P><STRONG><a name="[7c]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[59]"></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="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[50]"></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="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
</UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_init
</UL>
<P><STRONG><a name="[58]"></a>MySPI_Read</STRONG> (Thumb, 70 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Read))
<BR><BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[57]"></a>MySPI_Send</STRONG> (Thumb, 68 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Send))
<BR><BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[51]"></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="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Init
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[38]"></a>SystemInit</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SystemInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = SystemInit &rArr; SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
<BR>[Calls]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
@ -490,25 +521,63 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[47]"></a>main</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, main.o(i.main))
<BR><BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
<P><STRONG><a name="[3b]"></a>erreur</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_adc.o(i.erreur))
<BR>[Address Reference Count : 1]<UL><LI> driver_adc.o(.data)
</UL>
<P><STRONG><a name="[48]"></a>main</STRONG> (Thumb, 22 bytes, Stack size 16 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = main &rArr; source_IMU_read
</UL>
<BR>[Calls]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_init
</UL>
<BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[54]"></a>source_IMU_init</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, imu.o(i.source_IMU_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = source_IMU_init &rArr; source_IMU_write_register
</UL>
<BR>[Calls]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Init
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
</UL>
<BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[55]"></a>source_IMU_read</STRONG> (Thumb, 48 bytes, Stack size 24 bytes, imu.o(i.source_IMU_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = source_IMU_read
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Send
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Read
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Clear_NSS
</UL>
<BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[56]"></a>source_IMU_write_register</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, imu.o(i.source_IMU_write_register))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = source_IMU_write_register
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Send
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Clear_NSS
</UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_init
</UL>
<P>
<H3>
Local Symbols
</H3>
<P><STRONG><a name="[4f]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SetSysClock))
<P><STRONG><a name="[52]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SetSysClock))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClockTo72
<BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClockTo72
</UL>
<BR>[Called By]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemInit
</UL>
<P><STRONG><a name="[50]"></a>SetSysClockTo72</STRONG> (Thumb, 214 bytes, Stack size 12 bytes, system_stm32f10x.o(i.SetSysClockTo72))
<P><STRONG><a name="[53]"></a>SetSysClockTo72</STRONG> (Thumb, 214 bytes, Stack size 12 bytes, system_stm32f10x.o(i.SetSysClockTo72))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = SetSysClockTo72
</UL>
<BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<P>
<H3>

View file

@ -2,6 +2,9 @@
".\objects\main.o"
".\objects\driver_gpio.o"
".\objects\driver_timer.o"
".\objects\driver_adc.o"
"..\driver\Lib_Com_Periph_2022.lib"
".\objects\imu.o"
".\objects\startup_stm32f10x_md.o"
".\objects\system_stm32f10x.o"
--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

View file

@ -22,20 +22,27 @@ Dialog DLL: TARMSTM.DLL V1.66.0.0
<h2>Project:</h2>
U:\Documents\microcontroleur\Projet-Voilier-3\projet-voilier\projet-voilier.uvprojx
Project File Date: 03/22/2023
Project File Date: 04/04/2023
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'reel'
assembling startup_stm32f10x_md.s...
compiling Driver_GPIO.c...
compiling Driver_ADC.c...
compiling system_stm32f10x.c...
compiling Driver_GPIO.c...
compiling main.c...
src\main.c(10): warning: #550-D: variable "val" was set but never used
static uint16_t val;
src\main.c: 1 warning, 0 errors
compiling Driver_Timer.c...
compiling IMU.c...
..\driver\IMU.c(21): warning: #177-D: variable "i" was declared but never referenced
int i;
..\driver\IMU.c: 1 warning, 0 errors
linking...
Program Size: Code=876 RO-data=268 RW-data=12 ZI-data=1028
".\Objects\projet-voilier_reel.axf" - 0 Error(s), 0 Warning(s).
Program Size: Code=1488 RO-data=268 RW-data=20 ZI-data=1028
".\Objects\projet-voilier_reel.axf" - 0 Error(s), 2 Warning(s).
<h2>Software Packages used:</h2>
@ -62,11 +69,11 @@ Package Vendor: Keil
* Component: ARM::CMSIS:CORE:5.4.0
* Component: Keil::Device:Startup:1.0.0
Include file: RTE_Driver\Config\RTE_Device.h
Source file: Device\Source\system_stm32f10x.c
Source file: Device\Source\ARM\startup_stm32f10x_md.s
Include file: RTE_Driver\Config\RTE_Device.h
Source file: Device\Source\ARM\STM32F1xx_OPT.s
Build Time Elapsed: 00:00:01
Source file: Device\Source\system_stm32f10x.c
Build Time Elapsed: 00:00:02
</pre>
</body>
</html>

View file

@ -1,6 +1,6 @@
Dependencies for Project 'projet-voilier', Target 'reel': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (.\src\main.c)(0x641B1ED7)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\main.o --omf_browse .\objects\main.crf --depend .\objects\main.d)
F (.\src\main.c)(0x642C2204)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\main.o --omf_browse .\objects\main.crf --depend .\objects\main.d)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_reel\RTE_Components.h)(0x641B02F1)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
@ -10,8 +10,10 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compil
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (..\driver\Driver_GPIO.h)(0x641864E8)
I (..\driver\Driver_Timer.h)(0x6419C780)
I (..\driver\Driver_ADC.h)(0x641B1EE6)
I (..\driver\Driver_Timer.h)(0x64269488)
I (..\driver\Driver_ADC.h)(0x6426958B)
I (..\driver\MySPI.h)(0x634E5AE0)
I (..\driver\IMU.h)(0x642C0AF7)
F (..\driver\Driver_GPIO.c)(0x64186DCB)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_gpio.o --omf_browse .\objects\driver_gpio.crf --depend .\objects\driver_gpio.d)
I (..\driver\Driver_GPIO.h)(0x641864E8)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
@ -24,8 +26,8 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5E8E9122)
F (..\driver\Driver_GPIO.h)(0x641864E8)()
F (..\driver\Driver_Timer.c)(0x6419C743)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_timer.o --omf_browse .\objects\driver_timer.crf --depend .\objects\driver_timer.d)
I (..\driver\Driver_Timer.h)(0x6419C780)
F (..\driver\Driver_Timer.c)(0x64269488)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_timer.o --omf_browse .\objects\driver_timer.crf --depend .\objects\driver_timer.d)
I (..\driver\Driver_Timer.h)(0x64269488)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_reel\RTE_Components.h)(0x641B02F1)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
@ -35,9 +37,8 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compil
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5E8E9122)
F (..\driver\Driver_Timer.h)(0x6419C780)()
F (..\driver\Driver_ADC.c)(0x641B1EBA)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_adc.o --omf_browse .\objects\driver_adc.crf --depend .\objects\driver_adc.d)
I (..\driver\Driver_ADC.h)(0x641B1EE6)
F (..\driver\Driver_Timer.h)(0x64269488)()
F (..\driver\Driver_ADC.c)(0x6426958B)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_adc.o --omf_browse .\objects\driver_adc.crf --depend .\objects\driver_adc.d)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_reel\RTE_Components.h)(0x641B02F1)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
@ -47,7 +48,21 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compil
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5E8E9122)
F (..\driver\Driver_ADC.h)(0x641B1EE6)()
I (..\driver\Driver_ADC.h)(0x6426958B)
F (..\driver\Driver_ADC.h)(0x6426958B)()
F (..\driver\Lib_Com_Periph_2022.lib)(0x634E68C6)()
F (..\driver\MySPI.h)(0x634E5AE0)()
F (..\driver\IMU.c)(0x642C23EC)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\imu.o --omf_browse .\objects\imu.crf --depend .\objects\imu.d)
I (..\driver\MySpi.h)(0x634E5AE0)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_reel\RTE_Components.h)(0x641B02F1)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E9122)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_version.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compiler.h)(0x5E835B22)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
F (..\driver\IMU.h)(0x642C0AF7)()
F (RTE\Device\STM32F103RB\RTE_Device.h)(0x59283406)()
F (RTE\Device\STM32F103RB\startup_stm32f10x_md.s)(0x58258CCC)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list .\listings\startup_stm32f10x_md.lst --xref -o .\objects\startup_stm32f10x_md.o --depend .\objects\startup_stm32f10x_md.d)
F (RTE\Device\STM32F103RB\system_stm32f10x.c)(0x58258CCC)(-c --cpu Cortex-M3 -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I .\src -I ..\driver -I.\RTE\Device\STM32F103RB -I.\RTE\_reel -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\system_stm32f10x.o --omf_browse .\objects\system_stm32f10x.crf --depend .\objects\system_stm32f10x.d)

View file

@ -3,11 +3,11 @@
<title>Static Call Graph - [.\Objects\projet-voilier_reel.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\projet-voilier_reel.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Wed Mar 22 16:29:44 2023
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue Apr 04 15:19:46 2023
<BR><P>
<H3>Maximum Stack Usage = 28 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 40 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
SystemInit &rArr; SetSysClock &rArr; SetSysClockTo72
main &rArr; source_IMU_read
<P>
<H3>
Mutually Recursive functions
@ -20,13 +20,13 @@ Mutually Recursive functions
<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>
<LI><a href="#[1f]">CAN1_RX1_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1f]">CAN1_RX1_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="#[1c]">ADC1_2_IRQHandler</a> from driver_adc.o(i.ADC1_2_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[38]">Bug</a> from driver_timer.o(i.Bug) referenced 3 times from driver_timer.o(.data)
<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)
@ -59,7 +59,7 @@ Function Pointers
<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="#[39]">Reset_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[3a]">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)
@ -82,6 +82,7 @@ Function Pointers
<LI><a href="#[5]">UsageFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[a]">WWDG_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
<LI><a href="#[37]">__main</a> from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f10x_md.o(.text)
<LI><a href="#[39]">erreur</a> from driver_adc.o(i.erreur) referenced from driver_adc.o(.data)
<LI><a href="#[35]">main</a> from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P>
@ -91,29 +92,29 @@ Global Symbols
<P><STRONG><a name="[37]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
<P><STRONG><a name="[41]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[48]"></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
<P><STRONG><a name="[3b]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[3c]"></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
<P><STRONG><a name="[3d]"></a>__main_after_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Called By]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[42]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[49]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[43]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[4a]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[44]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[4b]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[45]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<P><STRONG><a name="[4c]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<P><STRONG><a name="[46]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[4d]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[47]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[4e]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[39]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<P><STRONG><a name="[3a]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<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
@ -178,14 +179,11 @@ Global Symbols
</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><BR>[Calls]<UL><LI><a href="#[1f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN1_RX1_IRQHandler
</UL>
<BR>[Called By]<UL><LI><a href="#[1f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN1_RX1_IRQHandler
</UL>
<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))
@ -302,29 +300,54 @@ Global Symbols
<P><STRONG><a name="[a]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[3b]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main_after_scatterload
<P><STRONG><a name="[3c]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[3d]">&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
<BR>[Called By]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[48]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[4f]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[1c]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, driver_adc.o(i.ADC1_2_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ADC1_2_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[38]"></a>Bug</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_timer.o(i.Bug))
<BR>[Address Reference Count : 1]<UL><LI> driver_timer.o(.data)
</UL>
<P><STRONG><a name="[3f]"></a>MyGPIO_Init</STRONG> (Thumb, 242 bytes, Stack size 0 bytes, driver_gpio.o(i.MyGPIO_Init))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<P><STRONG><a name="[45]"></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="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[40]"></a>MyGPIO_Set</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, driver_gpio.o(i.MyGPIO_Set))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<P><STRONG><a name="[3e]"></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="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
</UL>
<BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_init
</UL>
<P><STRONG><a name="[47]"></a>MySPI_Read</STRONG> (Thumb, 70 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Read))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[46]"></a>MySPI_Send</STRONG> (Thumb, 68 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Send))
<BR><BR>[Called By]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[3f]"></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="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Init
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
</UL>
<P><STRONG><a name="[36]"></a>SystemInit</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SystemInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = SystemInit &rArr; SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
<BR>[Calls]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
@ -343,35 +366,68 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[49]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[50]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[4a]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[51]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[4b]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[52]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[35]"></a>main</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = main
<P><STRONG><a name="[39]"></a>erreur</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, driver_adc.o(i.erreur))
<BR>[Address Reference Count : 1]<UL><LI> driver_adc.o(.data)
</UL>
<BR>[Calls]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Set
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MyGPIO_Init
<P><STRONG><a name="[35]"></a>main</STRONG> (Thumb, 22 bytes, Stack size 16 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = main &rArr; source_IMU_read
</UL>
<BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_read
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_init
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL><P>
</UL>
<P><STRONG><a name="[42]"></a>source_IMU_init</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, imu.o(i.source_IMU_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = source_IMU_init &rArr; source_IMU_write_register
</UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Init
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_write_register
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[43]"></a>source_IMU_read</STRONG> (Thumb, 52 bytes, Stack size 24 bytes, imu.o(i.source_IMU_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = source_IMU_read
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Send
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Read
<LI><a href="#[45]">&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="[44]"></a>source_IMU_write_register</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, imu.o(i.source_IMU_write_register))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = source_IMU_write_register
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Set_NSS
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Send
<LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MySPI_Clear_NSS
</UL>
<BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;source_IMU_init
</UL>
<P>
<H3>
Local Symbols
</H3>
<P><STRONG><a name="[3d]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SetSysClock))
<P><STRONG><a name="[40]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SetSysClock))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClockTo72
<BR>[Calls]<UL><LI><a href="#[41]">&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="[3e]"></a>SetSysClockTo72</STRONG> (Thumb, 214 bytes, Stack size 12 bytes, system_stm32f10x.o(i.SetSysClockTo72))
<P><STRONG><a name="[41]"></a>SetSysClockTo72</STRONG> (Thumb, 214 bytes, Stack size 12 bytes, system_stm32f10x.o(i.SetSysClockTo72))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = SetSysClockTo72
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
<BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<P>
<H3>

View file

@ -3,6 +3,8 @@
".\objects\driver_gpio.o"
".\objects\driver_timer.o"
".\objects\driver_adc.o"
"..\driver\Lib_Com_Periph_2022.lib"
".\objects\imu.o"
".\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

View file

@ -1,6 +1,6 @@
Dependencies for Project 'projet-voilier', Target 'sim': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (.\src\main.c)(0x641B0376)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\main.o --omf_browse .\objects\main.crf --depend .\objects\main.d)
F (.\src\main.c)(0x642C2204)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\main.o --omf_browse .\objects\main.crf --depend .\objects\main.d)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_sim\RTE_Components.h)(0x641B00B4)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
@ -10,7 +10,10 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compil
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (..\driver\Driver_GPIO.h)(0x641864E8)
I (..\driver\Driver_Timer.h)(0x6419C780)
I (..\driver\Driver_Timer.h)(0x64269488)
I (..\driver\Driver_ADC.h)(0x6426958B)
I (..\driver\MySPI.h)(0x634E5AE0)
I (..\driver\IMU.h)(0x642C0AF7)
F (..\driver\Driver_GPIO.c)(0x64186DCB)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_gpio.o --omf_browse .\objects\driver_gpio.crf --depend .\objects\driver_gpio.d)
I (..\driver\Driver_GPIO.h)(0x641864E8)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
@ -23,8 +26,8 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5E8E9122)
F (..\driver\Driver_GPIO.h)(0x641864E8)()
F (..\driver\Driver_Timer.c)(0x6419C743)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_timer.o --omf_browse .\objects\driver_timer.crf --depend .\objects\driver_timer.d)
I (..\driver\Driver_Timer.h)(0x6419C780)
F (..\driver\Driver_Timer.c)(0x64269488)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_timer.o --omf_browse .\objects\driver_timer.crf --depend .\objects\driver_timer.d)
I (..\driver\Driver_Timer.h)(0x64269488)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_sim\RTE_Components.h)(0x641B00B4)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
@ -34,7 +37,32 @@ I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compil
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5E8E9122)
F (..\driver\Driver_Timer.h)(0x6419C780)()
F (..\driver\Driver_Timer.h)(0x64269488)()
F (..\driver\Driver_ADC.c)(0x6426958B)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\driver_adc.o --omf_browse .\objects\driver_adc.crf --depend .\objects\driver_adc.d)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_sim\RTE_Components.h)(0x641B00B4)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E9122)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_version.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compiler.h)(0x5E835B22)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5E8E9122)
I (..\driver\Driver_ADC.h)(0x6426958B)
F (..\driver\Driver_ADC.h)(0x6426958B)()
F (..\driver\Lib_Com_Periph_2022.lib)(0x634E68C6)()
F (..\driver\MySPI.h)(0x634E5AE0)()
F (..\driver\IMU.c)(0x642C21C5)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\imu.o --omf_browse .\objects\imu.crf --depend .\objects\imu.d)
I (..\driver\MySpi.h)(0x634E5AE0)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\stm32f10x.h)(0x58258CCC)
I (.\RTE\_sim\RTE_Components.h)(0x641B00B4)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\core_cm3.h)(0x5E8F2582)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E9122)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_version.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_compiler.h)(0x5E835B22)
I (C:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include\cmsis_armcc.h)(0x5E8F2582)
I (C:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include\system_stm32f10x.h)(0x58258CCC)
F (..\driver\IMU.h)(0x642C0AF7)()
F (RTE\Device\STM32F103RB\RTE_Device.h)(0x59283406)()
F (RTE\Device\STM32F103RB\startup_stm32f10x_md.s)(0x58258CCC)(--cpu Cortex-M3 --pd "__EVAL SETA 1" -g --apcs=interwork -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list .\listings\startup_stm32f10x_md.lst --xref -o .\objects\startup_stm32f10x_md.o --depend .\objects\startup_stm32f10x_md.d)
F (RTE\Device\STM32F103RB\system_stm32f10x.c)(0x58258CCC)(-c --cpu Cortex-M3 -D__EVAL -g -O0 --apcs=interwork --split_sections -I ..\driver -I .\src -I.\RTE\Device\STM32F103RB -I.\RTE\_sim -IC:\Programdata\Keil\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -IC:\Programdata\Keil\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o .\objects\system_stm32f10x.o --omf_browse .\objects\system_stm32f10x.crf --depend .\objects\system_stm32f10x.d)

File diff suppressed because one or more lines are too long

View file

@ -125,7 +125,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=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=75,104,496,531,0)(121=-1,-1,-1,-1,0)(122=75,104,496,531,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=1125,344,1728,1095,1)(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=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=75,104,496,531,0)(121=-1,-1,-1,-1,0)(122=75,104,496,531,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=41,406,368,764,1)(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=1222,193,1825,944,1)(151=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -142,9 +142,9 @@
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>23</LineNumber>
<LineNumber>41</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219356</Address>
<Address>134219538</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@ -153,39 +153,7 @@
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\src\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier\src/main.c\23</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>9</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219402</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\src\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier\src/main.c\9</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>62</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218310</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\driver\Driver_ADC.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier\../driver/Driver_ADC.c\62</Expression>
<Expression>\\projet_voilier\src/main.c\41</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
@ -194,7 +162,20 @@
<WinNumber>1</WinNumber>
<ItemText>val</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>values</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>values</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -351,7 +332,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=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=75,104,496,509,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=120,153,405,449,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=1048,459,1651,1093,1)(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=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=75,104,496,509,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=120,153,405,449,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=252,566,855,1200,0)(151=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -374,63 +355,27 @@
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>62</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218062</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\driver\Driver_ADC.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier_reel\../driver/Driver_ADC.c\62</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>27</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219156</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\src\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\projet_voilier_reel\src/main.c\27</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>64</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>..\driver\Driver_ADC.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>val</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>values</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>0x20000408</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -581,6 +526,54 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\driver\Lib_Com_Periph_2022.lib</PathWithFileName>
<FilenameWithoutPath>Lib_Com_Periph_2022.lib</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>9</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\driver\MySPI.h</PathWithFileName>
<FilenameWithoutPath>MySPI.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\driver\IMU.c</PathWithFileName>
<FilenameWithoutPath>IMU.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\driver\IMU.h</PathWithFileName>
<FilenameWithoutPath>IMU.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>

View file

@ -423,6 +423,26 @@
<FileType>5</FileType>
<FilePath>..\driver\Driver_ADC.h</FilePath>
</File>
<File>
<FileName>Lib_Com_Periph_2022.lib</FileName>
<FileType>4</FileType>
<FilePath>..\driver\Lib_Com_Periph_2022.lib</FilePath>
</File>
<File>
<FileName>MySPI.h</FileName>
<FileType>5</FileType>
<FilePath>..\driver\MySPI.h</FilePath>
</File>
<File>
<FileName>IMU.c</FileName>
<FileType>1</FileType>
<FilePath>..\driver\IMU.c</FilePath>
</File>
<File>
<FileName>IMU.h</FileName>
<FileType>5</FileType>
<FilePath>..\driver\IMU.h</FilePath>
</File>
</Files>
</Group>
<Group>
@ -850,6 +870,26 @@
<FileType>5</FileType>
<FilePath>..\driver\Driver_ADC.h</FilePath>
</File>
<File>
<FileName>Lib_Com_Periph_2022.lib</FileName>
<FileType>4</FileType>
<FilePath>..\driver\Lib_Com_Periph_2022.lib</FilePath>
</File>
<File>
<FileName>MySPI.h</FileName>
<FileType>5</FileType>
<FilePath>..\driver\MySPI.h</FilePath>
</File>
<File>
<FileName>IMU.c</FileName>
<FileType>1</FileType>
<FilePath>..\driver\IMU.c</FilePath>
</File>
<File>
<FileName>IMU.h</FileName>
<FileType>5</FileType>
<FilePath>..\driver\IMU.h</FilePath>
</File>
</Files>
</Group>
<Group>

View file

@ -2,6 +2,8 @@
#include "Driver_GPIO.h"
#include "Driver_Timer.h"
#include "Driver_ADC.h"
#include "MySPI.h"
#include "IMU.h"
void toto (void)
{
@ -10,6 +12,10 @@ void toto (void)
}
int main() {
char DATAX0 = 0x32;
unsigned char values[6];
/*
MyGPIO_Struct_TypeDef LED;
MyGPIO_Struct_TypeDef GPIO_ADC1;
@ -26,5 +32,12 @@ int main() {
driver_adc_1_init(0x01,&toto);
driver_adc_1_launch_read();
while(1);
*/
source_IMU_init();
while(1)
{
source_IMU_read(DATAX0, 6, values);
}
}