Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ee0077b722 | |||
| 137e61c2ca |
100 changed files with 1557 additions and 6034 deletions
|
|
@ -1,36 +0,0 @@
|
|||
// File: STM32F101_102_103_105_107.dbgconf
|
||||
// Version: 1.0.0
|
||||
// Note: refer to STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx Reference manual (RM0008)
|
||||
// STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx datasheets
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <h> Debug MCU configuration register (DBGMCU_CR)
|
||||
// <i> Reserved bits must be kept at reset value
|
||||
// <o.30> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
|
||||
// <o.29> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
|
||||
// <o.28> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
|
||||
// <o.27> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
|
||||
// <o.26> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
|
||||
// <o.25> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
|
||||
// <o.21> DBG_CAN2_STOP <i> Debug CAN2 stopped when core is halted
|
||||
// <o.20> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
|
||||
// <o.19> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
|
||||
// <o.18> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
|
||||
// <o.17> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
|
||||
// <o.16> DBG_I2C2_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
|
||||
// <o.15> DBG_I2C1_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
|
||||
// <o.14> DBG_CAN1_STOP <i> Debug CAN1 stopped when Core is halted
|
||||
// <o.13> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
|
||||
// <o.12> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
|
||||
// <o.11> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
|
||||
// <o.10> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
|
||||
// <o.9> DBG_WWDG_STOP <i> Debug window watchdog stopped when core is halted
|
||||
// <o.8> DBG_IWDG_STOP <i> Debug independent watchdog stopped when core is halted
|
||||
// <o.2> DBG_STANDBY <i> Debug standby mode
|
||||
// <o.1> DBG_STOP <i> Debug stop mode
|
||||
// <o.0> DBG_SLEEP <i> Debug sleep mode
|
||||
// </h>
|
||||
DbgMCU_CR = 0x00000007;
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
|
||||
|
||||
<component name="EventRecorderStub" version="1.0.0"/> <!--name and version of the component-->
|
||||
<events>
|
||||
</events>
|
||||
|
||||
</component_viewer>
|
||||
|
|
@ -1,892 +0,0 @@
|
|||
Component: Arm Compiler for Embedded 6.23 Tool: armlink [5f102400]
|
||||
|
||||
==============================================================================
|
||||
|
||||
Section Cross References
|
||||
|
||||
principal.o(.text.pilotage) refers to plateau.o(.text.Update_Motor_PWM) for Update_Motor_PWM
|
||||
principal.o(.ARM.exidx.text.pilotage) refers to principal.o(.text.pilotage) for [Anonymous Symbol]
|
||||
principal.o(.text.main) refers to servo.o(.text.initServo) for initServo
|
||||
principal.o(.text.main) refers to girouette.o(.text.configEncoder) for configEncoder
|
||||
principal.o(.text.main) refers to girouette.o(.text.LocaliserZero) for LocaliserZero
|
||||
principal.o(.text.main) refers to myuart.o(.text.My_USART_Config) for My_USART_Config
|
||||
principal.o(.text.main) refers to adc.o(.text.initADC) for initADC
|
||||
principal.o(.text.main) refers to myuart.o(.text.USART_IT_Receive_Enable) for USART_IT_Receive_Enable
|
||||
principal.o(.text.main) refers to principal.o(.rodata.str1.1) for .L.str
|
||||
principal.o(.text.main) refers to myuart.o(.text.USART_Send_String) for USART_Send_String
|
||||
principal.o(.text.main) refers to plateau.o(.text.initPlato) for initPlato
|
||||
principal.o(.text.main) refers to principal.o(.text.pilotage) for pilotage
|
||||
principal.o(.text.main) refers to myuart.o(.text.Init_IT_Receive) for Init_IT_Receive
|
||||
principal.o(.text.main) refers to accelerometre.o(.text.initAccelo) for initAccelo
|
||||
principal.o(.text.main) refers to girouette.o(.text.angleVent) for angleVent
|
||||
principal.o(.text.main) refers to principal.o(.bss.angleVentVar) for angleVentVar
|
||||
principal.o(.text.main) refers to girouette.o(.text.vent2voile) for vent2voile
|
||||
principal.o(.text.main) refers to principal.o(.bss.angleVoileVar) for angleVoileVar
|
||||
principal.o(.text.main) refers to servo.o(.text.Servo_Moteur) for Servo_Moteur
|
||||
principal.o(.text.main) refers to accelerometre.o(.text.RecupAccelo) for RecupAccelo
|
||||
principal.o(.text.main) refers to principal.o(.bss.moy) for moy
|
||||
principal.o(.text.main) refers to accelerometre.o(.text.LacheVoile) for LacheVoile
|
||||
principal.o(.text.main) refers to adc.o(.text.sendinfoADC) for sendinfoADC
|
||||
principal.o(.ARM.exidx.text.main) refers to principal.o(.text.main) for [Anonymous Symbol]
|
||||
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Init) for MySPI_Init
|
||||
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
|
||||
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Send) for MySPI_Send
|
||||
accelerometre.o(.text.initAccelo) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
|
||||
accelerometre.o(.ARM.exidx.text.initAccelo) refers to accelerometre.o(.text.initAccelo) for [Anonymous Symbol]
|
||||
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Clear_NSS) for MySPI_Clear_NSS
|
||||
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Send) for MySPI_Send
|
||||
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Read) for MySPI_Read
|
||||
accelerometre.o(.text.RecupAccelo) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
|
||||
accelerometre.o(.text.RecupAccelo) refers to accelerometre.o(.bss.RecupAccelo.Messie) for RecupAccelo.Messie
|
||||
accelerometre.o(.ARM.exidx.text.RecupAccelo) refers to accelerometre.o(.text.RecupAccelo) for [Anonymous Symbol]
|
||||
accelerometre.o(.text.initLacheur) refers to horloge.o(.text.Timer_Init) for Timer_Init
|
||||
accelerometre.o(.ARM.exidx.text.initLacheur) refers to accelerometre.o(.text.initLacheur) for [Anonymous Symbol]
|
||||
accelerometre.o(.text.LacheVoile) refers to servo.o(.text.Servo_Moteur) for Servo_Moteur
|
||||
accelerometre.o(.ARM.exidx.text.LacheVoile) refers to accelerometre.o(.text.LacheVoile) for [Anonymous Symbol]
|
||||
girouette.o(.text.configEncoder) refers to horloge.o(.text.Timer_Init) for Timer_Init
|
||||
girouette.o(.text.configEncoder) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
|
||||
girouette.o(.ARM.exidx.text.configEncoder) refers to girouette.o(.text.configEncoder) for [Anonymous Symbol]
|
||||
girouette.o(.ARM.exidx.text.angleVent) refers to girouette.o(.text.angleVent) for [Anonymous Symbol]
|
||||
girouette.o(.ARM.exidx.text.vent2voile) refers to girouette.o(.text.vent2voile) for [Anonymous Symbol]
|
||||
girouette.o(.text.LocaliserZero) refers to drivergpio.o(.text.MyGPIO_Read) for MyGPIO_Read
|
||||
girouette.o(.ARM.exidx.text.LocaliserZero) refers to girouette.o(.text.LocaliserZero) for [Anonymous Symbol]
|
||||
servo.o(.text.Servo_Moteur) refers to pwm.o(.text.Set_DutyCycle_PWM) for Set_DutyCycle_PWM
|
||||
servo.o(.ARM.exidx.text.Servo_Moteur) refers to servo.o(.text.Servo_Moteur) for [Anonymous Symbol]
|
||||
servo.o(.text.initServo) refers to horloge.o(.text.Timer_Init) for Timer_Init
|
||||
servo.o(.text.initServo) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
|
||||
servo.o(.text.initServo) refers to pwm.o(.text.MyTimer_PWM) for MyTimer_PWM
|
||||
servo.o(.ARM.exidx.text.initServo) refers to servo.o(.text.initServo) for [Anonymous Symbol]
|
||||
adc.o(.ARM.exidx.text.initADC) refers to adc.o(.text.initADC) for [Anonymous Symbol]
|
||||
adc.o(.ARM.exidx.text.recupADC) refers to adc.o(.text.recupADC) for [Anonymous Symbol]
|
||||
adc.o(.text.sendinfoADC) refers to adc.o(.text.recupADC) for recupADC
|
||||
adc.o(.text.sendinfoADC) refers to dflti.o(.text) for __aeabi_i2d
|
||||
adc.o(.text.sendinfoADC) refers to dmul.o(.text) for __aeabi_dmul
|
||||
adc.o(.text.sendinfoADC) refers to dfixi.o(.text) for __aeabi_d2iz
|
||||
adc.o(.text.sendinfoADC) refers to adc.o(.rodata.str1.1) for .L.str
|
||||
adc.o(.text.sendinfoADC) refers to printfa.o(i.__0snprintf) for snprintf
|
||||
adc.o(.text.sendinfoADC) refers to myuart.o(.text.USART_Send_String) for USART_Send_String
|
||||
adc.o(.ARM.exidx.text.sendinfoADC) refers to adc.o(.text.sendinfoADC) for [Anonymous Symbol]
|
||||
drivergpio.o(.ARM.exidx.text.MyGPIO_Init) refers to drivergpio.o(.text.MyGPIO_Init) for [Anonymous Symbol]
|
||||
drivergpio.o(.ARM.exidx.text.MyGPIO_Read) refers to drivergpio.o(.text.MyGPIO_Read) for [Anonymous Symbol]
|
||||
drivergpio.o(.ARM.exidx.text.MyGPIO_Set) refers to drivergpio.o(.text.MyGPIO_Set) for [Anonymous Symbol]
|
||||
drivergpio.o(.ARM.exidx.text.MyGPIO_Reset) refers to drivergpio.o(.text.MyGPIO_Reset) for [Anonymous Symbol]
|
||||
drivergpio.o(.ARM.exidx.text.MYGPIO_PinOn) refers to drivergpio.o(.text.MYGPIO_PinOn) for [Anonymous Symbol]
|
||||
drivergpio.o(.ARM.exidx.text.MYGPIO_PinOff) refers to drivergpio.o(.text.MYGPIO_PinOff) for [Anonymous Symbol]
|
||||
drivergpio.o(.ARM.exidx.text.MyGPIO_Toggle) refers to drivergpio.o(.text.MyGPIO_Toggle) for [Anonymous Symbol]
|
||||
horloge.o(.ARM.exidx.text.Timer_Init) refers to horloge.o(.text.Timer_Init) for [Anonymous Symbol]
|
||||
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.bss.TIM2_Appel) for TIM2_Appel
|
||||
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.text.__NVIC_EnableIRQ) for __NVIC_EnableIRQ
|
||||
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.text.__NVIC_SetPriority) for __NVIC_SetPriority
|
||||
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.bss.TIM3_Appel) for TIM3_Appel
|
||||
horloge.o(.text.MyTimer_ActiveIT) refers to horloge.o(.bss.TIM4_Appel) for TIM4_Appel
|
||||
horloge.o(.ARM.exidx.text.MyTimer_ActiveIT) refers to horloge.o(.text.MyTimer_ActiveIT) for [Anonymous Symbol]
|
||||
horloge.o(.ARM.exidx.text.__NVIC_EnableIRQ) refers to horloge.o(.text.__NVIC_EnableIRQ) for [Anonymous Symbol]
|
||||
horloge.o(.ARM.exidx.text.__NVIC_SetPriority) refers to horloge.o(.text.__NVIC_SetPriority) for [Anonymous Symbol]
|
||||
horloge.o(.text.TIM2_IRQHandler) refers to horloge.o(.bss.TIM2_Appel) for TIM2_Appel
|
||||
horloge.o(.ARM.exidx.text.TIM2_IRQHandler) refers to horloge.o(.text.TIM2_IRQHandler) for [Anonymous Symbol]
|
||||
horloge.o(.text.TIM3_IRQHandler) refers to horloge.o(.bss.TIM3_Appel) for TIM3_Appel
|
||||
horloge.o(.ARM.exidx.text.TIM3_IRQHandler) refers to horloge.o(.text.TIM3_IRQHandler) for [Anonymous Symbol]
|
||||
horloge.o(.text.TIM4_IRQHandler) refers to horloge.o(.bss.TIM4_Appel) for TIM4_Appel
|
||||
horloge.o(.ARM.exidx.text.TIM4_IRQHandler) refers to horloge.o(.text.TIM4_IRQHandler) for [Anonymous Symbol]
|
||||
i2c.o(.ARM.exidx.text.initI2C) refers to i2c.o(.text.initI2C) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.initGPIO_Interne) refers to mygpio.o(.text.initGPIO_Interne) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.boutonAppuye_Interne) refers to mygpio.o(.text.boutonAppuye_Interne) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.allumerDEL_Interne) refers to mygpio.o(.text.allumerDEL_Interne) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.eteindreDEL_Interne) refers to mygpio.o(.text.eteindreDEL_Interne) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.commuterDEL_Interne) refers to mygpio.o(.text.commuterDEL_Interne) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.initGPIO_Externe) refers to mygpio.o(.text.initGPIO_Externe) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.boutonAppuye_Externe) refers to mygpio.o(.text.boutonAppuye_Externe) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.allumerDEL_Externe) refers to mygpio.o(.text.allumerDEL_Externe) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.eteindreDEL_Externe) refers to mygpio.o(.text.eteindreDEL_Externe) for [Anonymous Symbol]
|
||||
mygpio.o(.ARM.exidx.text.commuterDEL_Externe) refers to mygpio.o(.text.commuterDEL_Externe) for [Anonymous Symbol]
|
||||
myuart.o(.text.My_USART_Config) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
|
||||
myuart.o(.text.My_USART_Config) refers to myuart.o(.text.__NVIC_EnableIRQ) for __NVIC_EnableIRQ
|
||||
myuart.o(.text.My_USART_Config) refers to myuart.o(.text.__NVIC_SetPriority) for __NVIC_SetPriority
|
||||
myuart.o(.ARM.exidx.text.My_USART_Config) refers to myuart.o(.text.My_USART_Config) for [Anonymous Symbol]
|
||||
myuart.o(.ARM.exidx.text.__NVIC_EnableIRQ) refers to myuart.o(.text.__NVIC_EnableIRQ) for [Anonymous Symbol]
|
||||
myuart.o(.ARM.exidx.text.__NVIC_SetPriority) refers to myuart.o(.text.__NVIC_SetPriority) for [Anonymous Symbol]
|
||||
myuart.o(.ARM.exidx.text.USART_Send_Char) refers to myuart.o(.text.USART_Send_Char) for [Anonymous Symbol]
|
||||
myuart.o(.text.USART_Send_String) refers to myuart.o(.text.USART_Send_Char) for USART_Send_Char
|
||||
myuart.o(.ARM.exidx.text.USART_Send_String) refers to myuart.o(.text.USART_Send_String) for [Anonymous Symbol]
|
||||
myuart.o(.ARM.exidx.text.USART_IT_Receive_Enable) refers to myuart.o(.text.USART_IT_Receive_Enable) for [Anonymous Symbol]
|
||||
myuart.o(.text.Init_IT_Receive) refers to myuart.o(.bss.pFnc_Receive) for pFnc_Receive
|
||||
myuart.o(.ARM.exidx.text.Init_IT_Receive) refers to myuart.o(.text.Init_IT_Receive) for [Anonymous Symbol]
|
||||
myuart.o(.text.USART1_IRQHandler) refers to myuart.o(.bss.pFnc_Receive) for pFnc_Receive
|
||||
myuart.o(.ARM.exidx.text.USART1_IRQHandler) refers to myuart.o(.text.USART1_IRQHandler) for [Anonymous Symbol]
|
||||
plateau.o(.text.initPlato) refers to drivergpio.o(.text.MyGPIO_Init) for MyGPIO_Init
|
||||
plateau.o(.text.initPlato) refers to horloge.o(.text.Timer_Init) for Timer_Init
|
||||
plateau.o(.text.initPlato) refers to pwm.o(.text.MyTimer_PWM) for MyTimer_PWM
|
||||
plateau.o(.ARM.exidx.text.initPlato) refers to plateau.o(.text.initPlato) for [Anonymous Symbol]
|
||||
plateau.o(.text.Update_Motor_PWM) refers to drivergpio.o(.text.MyGPIO_Set) for MyGPIO_Set
|
||||
plateau.o(.text.Update_Motor_PWM) refers to drivergpio.o(.text.MyGPIO_Reset) for MyGPIO_Reset
|
||||
plateau.o(.text.Update_Motor_PWM) refers to pwm.o(.text.Set_DutyCycle_PWM_Plateau) for Set_DutyCycle_PWM_Plateau
|
||||
plateau.o(.ARM.exidx.text.Update_Motor_PWM) refers to plateau.o(.text.Update_Motor_PWM) for [Anonymous Symbol]
|
||||
pwm.o(.ARM.exidx.text.MyTimer_PWM) refers to pwm.o(.text.MyTimer_PWM) for [Anonymous Symbol]
|
||||
pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM) refers to pwm.o(.text.Set_DutyCycle_PWM) for [Anonymous Symbol]
|
||||
pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM_Plateau) refers to pwm.o(.text.Set_DutyCycle_PWM_Plateau) for [Anonymous Symbol]
|
||||
rtc.o(.ARM.exidx.text.initRTC) refers to rtc.o(.text.initRTC) for [Anonymous Symbol]
|
||||
rtc.o(.ARM.exidx.text.getTime) refers to rtc.o(.text.getTime) for [Anonymous Symbol]
|
||||
startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(STACK) for __initial_sp
|
||||
startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(.text) for Reset_Handler
|
||||
startup_stm32f10x_md.o(RESET) refers to horloge.o(.text.TIM2_IRQHandler) for TIM2_IRQHandler
|
||||
startup_stm32f10x_md.o(RESET) refers to horloge.o(.text.TIM3_IRQHandler) for TIM3_IRQHandler
|
||||
startup_stm32f10x_md.o(RESET) refers to horloge.o(.text.TIM4_IRQHandler) for TIM4_IRQHandler
|
||||
startup_stm32f10x_md.o(RESET) refers to myuart.o(.text.USART1_IRQHandler) for USART1_IRQHandler
|
||||
startup_stm32f10x_md.o(.text) refers to system_stm32f10x.o(.text.SystemInit) for SystemInit
|
||||
startup_stm32f10x_md.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main
|
||||
system_stm32f10x.o(.text.SystemInit) refers to system_stm32f10x.o(.text.SetSysClock) for SetSysClock
|
||||
system_stm32f10x.o(.ARM.exidx.text.SystemInit) refers to system_stm32f10x.o(.text.SystemInit) for [Anonymous Symbol]
|
||||
system_stm32f10x.o(.text.SetSysClock) refers to system_stm32f10x.o(.text.SetSysClockTo72) for SetSysClockTo72
|
||||
system_stm32f10x.o(.ARM.exidx.text.SetSysClock) refers to system_stm32f10x.o(.text.SetSysClock) for [Anonymous Symbol]
|
||||
system_stm32f10x.o(.text.SystemCoreClockUpdate) refers to system_stm32f10x.o(.data.SystemCoreClock) for SystemCoreClock
|
||||
system_stm32f10x.o(.text.SystemCoreClockUpdate) refers to system_stm32f10x.o(.rodata.AHBPrescTable) for AHBPrescTable
|
||||
system_stm32f10x.o(.ARM.exidx.text.SystemCoreClockUpdate) refers to system_stm32f10x.o(.text.SystemCoreClockUpdate) for [Anonymous Symbol]
|
||||
system_stm32f10x.o(.ARM.exidx.text.SetSysClockTo72) refers to system_stm32f10x.o(.text.SetSysClockTo72) for [Anonymous Symbol]
|
||||
myspi.o(i.MySPI_Clear_NSS) refers to myspi.o(.data) for ActiveSPI
|
||||
myspi.o(i.MySPI_Init) refers to myspi.o(i.MySPI_Set_NSS) for MySPI_Set_NSS
|
||||
myspi.o(i.MySPI_Init) refers to myspi.o(.data) for ActiveSPI
|
||||
myspi.o(i.MySPI_Read) refers to myspi.o(.data) for ActiveSPI
|
||||
myspi.o(i.MySPI_Send) refers to myspi.o(.data) for ActiveSPI
|
||||
myspi.o(i.MySPI_Set_NSS) refers to myspi.o(.data) for ActiveSPI
|
||||
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000D) for __rt_final_cpp
|
||||
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$0000000F) for __rt_final_exit
|
||||
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock
|
||||
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init
|
||||
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry9a.o(.ARM.Collect$$$$0000000B) for _main_init
|
||||
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload
|
||||
entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk
|
||||
printfa.o(i.__0fprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0fprintf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0fprintf) refers to fputc.o(i.fputc) for fputc
|
||||
printfa.o(i.__0printf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0printf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0printf) refers to fputc.o(i.fputc) for fputc
|
||||
printfa.o(i.__0printf) refers to stdout.o(.data) for __stdout
|
||||
printfa.o(i.__0snprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0snprintf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0snprintf) refers to printfa.o(i._snputc) for _snputc
|
||||
printfa.o(i.__0sprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0sprintf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0sprintf) refers to printfa.o(i._sputc) for _sputc
|
||||
printfa.o(i.__0vfprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0vfprintf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0vfprintf) refers to fputc.o(i.fputc) for fputc
|
||||
printfa.o(i.__0vprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0vprintf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0vprintf) refers to fputc.o(i.fputc) for fputc
|
||||
printfa.o(i.__0vprintf) refers to stdout.o(.data) for __stdout
|
||||
printfa.o(i.__0vsnprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0vsnprintf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0vsnprintf) refers to printfa.o(i._snputc) for _snputc
|
||||
printfa.o(i.__0vsprintf) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i.__0vsprintf) refers to printfa.o(i._printf_core) for _printf_core
|
||||
printfa.o(i.__0vsprintf) refers to printfa.o(i._sputc) for _sputc
|
||||
printfa.o(i._fp_digits) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i._fp_digits) refers to dmul.o(.text) for __aeabi_dmul
|
||||
printfa.o(i._fp_digits) refers to ddiv.o(.text) for __aeabi_ddiv
|
||||
printfa.o(i._fp_digits) refers to cdrcmple.o(.text) for __aeabi_cdrcmple
|
||||
printfa.o(i._fp_digits) refers to dadd.o(.text) for __aeabi_dadd
|
||||
printfa.o(i._fp_digits) refers to dfixul.o(.text) for __aeabi_d2ulz
|
||||
printfa.o(i._fp_digits) refers to uldiv.o(.text) for __aeabi_uldivmod
|
||||
printfa.o(i._printf_core) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i._printf_core) refers to printfa.o(i._printf_pre_padding) for _printf_pre_padding
|
||||
printfa.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod
|
||||
printfa.o(i._printf_core) refers to printfa.o(i._printf_post_padding) for _printf_post_padding
|
||||
printfa.o(i._printf_core) refers to printfa.o(i._fp_digits) for _fp_digits
|
||||
printfa.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod
|
||||
printfa.o(i._printf_post_padding) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i._printf_pre_padding) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i._snputc) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
printfa.o(i._sputc) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
dmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
dmul.o(.text) refers to depilogue.o(.text) for _double_epilogue
|
||||
dflti.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
dflti.o(.text) refers to depilogue.o(.text) for _double_epilogue
|
||||
dfixi.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
dfixi.o(.text) refers to llushr.o(.text) for __aeabi_llsr
|
||||
entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000
|
||||
entry2.o(.ARM.Collect$$$$00002712) refers to startup_stm32f10x_md.o(STACK) for __initial_sp
|
||||
entry2.o(__vectab_stack_and_reset_area) refers to startup_stm32f10x_md.o(STACK) for __initial_sp
|
||||
entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main
|
||||
entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload
|
||||
entry9a.o(.ARM.Collect$$$$0000000B) refers to principal.o(.text.main) for main
|
||||
entry9b.o(.ARM.Collect$$$$0000000C) refers to principal.o(.text.main) for main
|
||||
fputc.o(i.fputc) refers (Special) to iusesemip.o(.text) for __I$use$semihosting$fputc
|
||||
fputc.o(i.fputc) refers (Special) to semi.o(.text) for __semihosting_library_function
|
||||
fputc_h.o(i._fputc$hlt) refers (Special) to iusesemip.o(.text) for __I$use$semihosting$fputc
|
||||
fputc_h.o(i._fputc$hlt) refers (Special) to semi.o(.text) for __semihosting_library_function
|
||||
uldiv.o(.text) refers to llushr.o(.text) for __aeabi_llsr
|
||||
uldiv.o(.text) refers to llshl.o(.text) for __aeabi_llsl
|
||||
depilogue.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
depilogue.o(.text) refers to llshl.o(.text) for __aeabi_llsl
|
||||
depilogue.o(.text) refers to llushr.o(.text) for __aeabi_llsr
|
||||
dadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
dadd.o(.text) refers to llshl.o(.text) for __aeabi_llsl
|
||||
dadd.o(.text) refers to llsshr.o(.text) for __aeabi_lasr
|
||||
dadd.o(.text) refers to depilogue.o(.text) for _double_epilogue
|
||||
ddiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
ddiv.o(.text) refers to depilogue.o(.text) for _double_round
|
||||
dfixul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
dfixul.o(.text) refers to llushr.o(.text) for __aeabi_llsr
|
||||
dfixul.o(.text) refers to llshl.o(.text) for __aeabi_llsl
|
||||
cdrcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
|
||||
init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
Removing Unused input sections from the image.
|
||||
|
||||
Removing principal.o(.text), (0 bytes).
|
||||
Removing principal.o(.ARM.exidx.text.pilotage), (8 bytes).
|
||||
Removing principal.o(.ARM.exidx.text.main), (8 bytes).
|
||||
Removing principal.o(.ARM.use_no_argv), (4 bytes).
|
||||
Removing accelerometre.o(.text), (0 bytes).
|
||||
Removing accelerometre.o(.ARM.exidx.text.initAccelo), (8 bytes).
|
||||
Removing accelerometre.o(.ARM.exidx.text.RecupAccelo), (8 bytes).
|
||||
Removing accelerometre.o(.text.initLacheur), (46 bytes).
|
||||
Removing accelerometre.o(.ARM.exidx.text.initLacheur), (8 bytes).
|
||||
Removing accelerometre.o(.ARM.exidx.text.LacheVoile), (8 bytes).
|
||||
Removing girouette.o(.text), (0 bytes).
|
||||
Removing girouette.o(.ARM.exidx.text.configEncoder), (8 bytes).
|
||||
Removing girouette.o(.ARM.exidx.text.angleVent), (8 bytes).
|
||||
Removing girouette.o(.ARM.exidx.text.vent2voile), (8 bytes).
|
||||
Removing girouette.o(.ARM.exidx.text.LocaliserZero), (8 bytes).
|
||||
Removing servo.o(.text), (0 bytes).
|
||||
Removing servo.o(.ARM.exidx.text.Servo_Moteur), (8 bytes).
|
||||
Removing servo.o(.ARM.exidx.text.initServo), (8 bytes).
|
||||
Removing adc.o(.text), (0 bytes).
|
||||
Removing adc.o(.ARM.exidx.text.initADC), (8 bytes).
|
||||
Removing adc.o(.ARM.exidx.text.recupADC), (8 bytes).
|
||||
Removing adc.o(.ARM.exidx.text.sendinfoADC), (8 bytes).
|
||||
Removing drivergpio.o(.text), (0 bytes).
|
||||
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Init), (8 bytes).
|
||||
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Read), (8 bytes).
|
||||
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Set), (8 bytes).
|
||||
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Reset), (8 bytes).
|
||||
Removing drivergpio.o(.text.MYGPIO_PinOn), (30 bytes).
|
||||
Removing drivergpio.o(.ARM.exidx.text.MYGPIO_PinOn), (8 bytes).
|
||||
Removing drivergpio.o(.text.MYGPIO_PinOff), (30 bytes).
|
||||
Removing drivergpio.o(.ARM.exidx.text.MYGPIO_PinOff), (8 bytes).
|
||||
Removing drivergpio.o(.text.MyGPIO_Toggle), (30 bytes).
|
||||
Removing drivergpio.o(.ARM.exidx.text.MyGPIO_Toggle), (8 bytes).
|
||||
Removing horloge.o(.text), (0 bytes).
|
||||
Removing horloge.o(.ARM.exidx.text.Timer_Init), (8 bytes).
|
||||
Removing horloge.o(.text.MyTimer_ActiveIT), (268 bytes).
|
||||
Removing horloge.o(.ARM.exidx.text.MyTimer_ActiveIT), (8 bytes).
|
||||
Removing horloge.o(.text.__NVIC_EnableIRQ), (48 bytes).
|
||||
Removing horloge.o(.ARM.exidx.text.__NVIC_EnableIRQ), (8 bytes).
|
||||
Removing horloge.o(.text.__NVIC_SetPriority), (66 bytes).
|
||||
Removing horloge.o(.ARM.exidx.text.__NVIC_SetPriority), (8 bytes).
|
||||
Removing horloge.o(.ARM.exidx.text.TIM2_IRQHandler), (8 bytes).
|
||||
Removing horloge.o(.ARM.exidx.text.TIM3_IRQHandler), (8 bytes).
|
||||
Removing horloge.o(.ARM.exidx.text.TIM4_IRQHandler), (8 bytes).
|
||||
Removing i2c.o(.text), (0 bytes).
|
||||
Removing i2c.o(.text.initI2C), (42 bytes).
|
||||
Removing i2c.o(.ARM.exidx.text.initI2C), (8 bytes).
|
||||
Removing mygpio.o(.text), (0 bytes).
|
||||
Removing mygpio.o(.text.initGPIO_Interne), (66 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.initGPIO_Interne), (8 bytes).
|
||||
Removing mygpio.o(.text.boutonAppuye_Interne), (16 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.boutonAppuye_Interne), (8 bytes).
|
||||
Removing mygpio.o(.text.allumerDEL_Interne), (18 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.allumerDEL_Interne), (8 bytes).
|
||||
Removing mygpio.o(.text.eteindreDEL_Interne), (18 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.eteindreDEL_Interne), (8 bytes).
|
||||
Removing mygpio.o(.text.commuterDEL_Interne), (18 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.commuterDEL_Interne), (8 bytes).
|
||||
Removing mygpio.o(.text.initGPIO_Externe), (58 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.initGPIO_Externe), (8 bytes).
|
||||
Removing mygpio.o(.text.boutonAppuye_Externe), (16 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.boutonAppuye_Externe), (8 bytes).
|
||||
Removing mygpio.o(.text.allumerDEL_Externe), (18 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.allumerDEL_Externe), (8 bytes).
|
||||
Removing mygpio.o(.text.eteindreDEL_Externe), (18 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.eteindreDEL_Externe), (8 bytes).
|
||||
Removing mygpio.o(.text.commuterDEL_Externe), (18 bytes).
|
||||
Removing mygpio.o(.ARM.exidx.text.commuterDEL_Externe), (8 bytes).
|
||||
Removing myuart.o(.text), (0 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.My_USART_Config), (8 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.__NVIC_EnableIRQ), (8 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.__NVIC_SetPriority), (8 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.USART_Send_Char), (8 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.USART_Send_String), (8 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.USART_IT_Receive_Enable), (8 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.Init_IT_Receive), (8 bytes).
|
||||
Removing myuart.o(.ARM.exidx.text.USART1_IRQHandler), (8 bytes).
|
||||
Removing plateau.o(.text), (0 bytes).
|
||||
Removing plateau.o(.ARM.exidx.text.initPlato), (8 bytes).
|
||||
Removing plateau.o(.ARM.exidx.text.Update_Motor_PWM), (8 bytes).
|
||||
Removing pwm.o(.text), (0 bytes).
|
||||
Removing pwm.o(.ARM.exidx.text.MyTimer_PWM), (8 bytes).
|
||||
Removing pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM), (8 bytes).
|
||||
Removing pwm.o(.ARM.exidx.text.Set_DutyCycle_PWM_Plateau), (8 bytes).
|
||||
Removing rtc.o(.text), (0 bytes).
|
||||
Removing rtc.o(.text.initRTC), (30 bytes).
|
||||
Removing rtc.o(.ARM.exidx.text.initRTC), (8 bytes).
|
||||
Removing rtc.o(.text.getTime), (12 bytes).
|
||||
Removing rtc.o(.ARM.exidx.text.getTime), (8 bytes).
|
||||
Removing startup_stm32f10x_md.o(HEAP), (512 bytes).
|
||||
Removing system_stm32f10x.o(.text), (0 bytes).
|
||||
Removing system_stm32f10x.o(.ARM.exidx.text.SystemInit), (8 bytes).
|
||||
Removing system_stm32f10x.o(.ARM.exidx.text.SetSysClock), (8 bytes).
|
||||
Removing system_stm32f10x.o(.text.SystemCoreClockUpdate), (290 bytes).
|
||||
Removing system_stm32f10x.o(.ARM.exidx.text.SystemCoreClockUpdate), (8 bytes).
|
||||
Removing system_stm32f10x.o(.ARM.exidx.text.SetSysClockTo72), (8 bytes).
|
||||
Removing system_stm32f10x.o(.data.SystemCoreClock), (4 bytes).
|
||||
Removing system_stm32f10x.o(.rodata.AHBPrescTable), (16 bytes).
|
||||
Removing myspi.o(.rev16_text), (4 bytes).
|
||||
Removing myspi.o(.revsh_text), (4 bytes).
|
||||
Removing myspi.o(.rrx_text), (6 bytes).
|
||||
|
||||
101 unused section(s) (total 2178 bytes) removed from the image.
|
||||
|
||||
==============================================================================
|
||||
|
||||
Image Symbol Table
|
||||
|
||||
Local Symbols
|
||||
|
||||
Symbol Name Value Ov Type Size Object(Section)
|
||||
|
||||
../clib/division.s 0x00000000 Number 0 aeabi_sdiv.o ABSOLUTE
|
||||
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
|
||||
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
|
||||
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
|
||||
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
|
||||
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
|
||||
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
|
||||
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
|
||||
../clib/microlib/stdio/fputc.c 0x00000000 Number 0 fputc.o ABSOLUTE
|
||||
../clib/microlib/stdio/fputc.c 0x00000000 Number 0 fputc_h.o ABSOLUTE
|
||||
../clib/microlib/stdio/semi.s 0x00000000 Number 0 semi.o ABSOLUTE
|
||||
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
|
||||
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
|
||||
../clib/microlib/stubs.s 0x00000000 Number 0 iusesemip.o ABSOLUTE
|
||||
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
|
||||
../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE
|
||||
../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE
|
||||
../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixi.o ABSOLUTE
|
||||
../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE
|
||||
../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE
|
||||
../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE
|
||||
ADC.c 0x00000000 Number 0 adc.o ABSOLUTE
|
||||
Accelerometre.c 0x00000000 Number 0 accelerometre.o ABSOLUTE
|
||||
DriverGPIO.c 0x00000000 Number 0 drivergpio.o ABSOLUTE
|
||||
Girouette.c 0x00000000 Number 0 girouette.o ABSOLUTE
|
||||
Horloge.c 0x00000000 Number 0 horloge.o ABSOLUTE
|
||||
I2C.c 0x00000000 Number 0 i2c.o ABSOLUTE
|
||||
MYGPIO.c 0x00000000 Number 0 mygpio.o ABSOLUTE
|
||||
MyDrivers\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
|
||||
MyDrivers\\MySPI.c 0x00000000 Number 0 myspi.o ABSOLUTE
|
||||
MyUart.c 0x00000000 Number 0 myuart.o ABSOLUTE
|
||||
PWM.c 0x00000000 Number 0 pwm.o ABSOLUTE
|
||||
Plateau.c 0x00000000 Number 0 plateau.o ABSOLUTE
|
||||
RTC.c 0x00000000 Number 0 rtc.o ABSOLUTE
|
||||
RTE/Device/STM32F103RB/startup_stm32f10x_md.s 0x00000000 Number 0 startup_stm32f10x_md.o ABSOLUTE
|
||||
Servo.c 0x00000000 Number 0 servo.o ABSOLUTE
|
||||
cdrcmple.s 0x00000000 Number 0 cdrcmple.o ABSOLUTE
|
||||
dc.s 0x00000000 Number 0 dc.o ABSOLUTE
|
||||
handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE
|
||||
init.s 0x00000000 Number 0 init.o ABSOLUTE
|
||||
principal.c 0x00000000 Number 0 principal.o ABSOLUTE
|
||||
system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE
|
||||
RESET 0x08000000 Section 236 startup_stm32f10x_md.o(RESET)
|
||||
.ARM.Collect$$$$00000000 0x080000ec Section 0 entry.o(.ARM.Collect$$$$00000000)
|
||||
.ARM.Collect$$$$00000001 0x080000ec Section 4 entry2.o(.ARM.Collect$$$$00000001)
|
||||
.ARM.Collect$$$$00000004 0x080000f0 Section 4 entry5.o(.ARM.Collect$$$$00000004)
|
||||
.ARM.Collect$$$$00000008 0x080000f4 Section 0 entry7b.o(.ARM.Collect$$$$00000008)
|
||||
.ARM.Collect$$$$0000000A 0x080000f4 Section 0 entry8b.o(.ARM.Collect$$$$0000000A)
|
||||
.ARM.Collect$$$$0000000B 0x080000f4 Section 8 entry9a.o(.ARM.Collect$$$$0000000B)
|
||||
__lit__00000000 0x080000fc Data 4 entry2.o(.ARM.Collect$$$$00002712)
|
||||
.ARM.Collect$$$$0000000D 0x080000fc Section 0 entry10a.o(.ARM.Collect$$$$0000000D)
|
||||
.ARM.Collect$$$$0000000F 0x080000fc Section 0 entry11a.o(.ARM.Collect$$$$0000000F)
|
||||
.ARM.Collect$$$$00002712 0x080000fc Section 4 entry2.o(.ARM.Collect$$$$00002712)
|
||||
.text 0x08000100 Section 36 startup_stm32f10x_md.o(.text)
|
||||
.text 0x08000124 Section 0 dmul.o(.text)
|
||||
.text 0x08000208 Section 0 dflti.o(.text)
|
||||
.text 0x0800022a Section 0 dfixi.o(.text)
|
||||
.text 0x08000268 Section 0 uidiv.o(.text)
|
||||
.text 0x08000294 Section 0 uldiv.o(.text)
|
||||
.text 0x080002f6 Section 0 llushr.o(.text)
|
||||
.text 0x08000316 Section 0 iusefp.o(.text)
|
||||
.text 0x08000316 Section 0 depilogue.o(.text)
|
||||
.text 0x080003d0 Section 0 dadd.o(.text)
|
||||
.text 0x0800051e Section 0 ddiv.o(.text)
|
||||
.text 0x080005fc Section 0 dfixul.o(.text)
|
||||
.text 0x0800062c Section 48 cdrcmple.o(.text)
|
||||
.text 0x0800065c Section 48 init.o(.text)
|
||||
.text 0x0800068c Section 0 llshl.o(.text)
|
||||
.text 0x080006aa Section 0 llsshr.o(.text)
|
||||
[Anonymous Symbol] 0x080006d0 Section 0 myuart.o(.text.Init_IT_Receive)
|
||||
[Anonymous Symbol] 0x080006e4 Section 0 accelerometre.o(.text.LacheVoile)
|
||||
[Anonymous Symbol] 0x08000724 Section 0 girouette.o(.text.LocaliserZero)
|
||||
[Anonymous Symbol] 0x08000760 Section 0 drivergpio.o(.text.MyGPIO_Init)
|
||||
[Anonymous Symbol] 0x08000928 Section 0 drivergpio.o(.text.MyGPIO_Read)
|
||||
[Anonymous Symbol] 0x08000944 Section 0 drivergpio.o(.text.MyGPIO_Reset)
|
||||
[Anonymous Symbol] 0x08000960 Section 0 drivergpio.o(.text.MyGPIO_Set)
|
||||
[Anonymous Symbol] 0x08000978 Section 0 pwm.o(.text.MyTimer_PWM)
|
||||
[Anonymous Symbol] 0x08000d6c Section 0 myuart.o(.text.My_USART_Config)
|
||||
[Anonymous Symbol] 0x08000dd8 Section 0 accelerometre.o(.text.RecupAccelo)
|
||||
[Anonymous Symbol] 0x08000e44 Section 0 servo.o(.text.Servo_Moteur)
|
||||
SetSysClock 0x08000e7d Thumb Code 8 system_stm32f10x.o(.text.SetSysClock)
|
||||
[Anonymous Symbol] 0x08000e7c Section 0 system_stm32f10x.o(.text.SetSysClock)
|
||||
SetSysClockTo72 0x08000e85 Thumb Code 290 system_stm32f10x.o(.text.SetSysClockTo72)
|
||||
[Anonymous Symbol] 0x08000e84 Section 0 system_stm32f10x.o(.text.SetSysClockTo72)
|
||||
[Anonymous Symbol] 0x08000fa8 Section 0 pwm.o(.text.Set_DutyCycle_PWM)
|
||||
[Anonymous Symbol] 0x08001010 Section 0 pwm.o(.text.Set_DutyCycle_PWM_Plateau)
|
||||
[Anonymous Symbol] 0x0800108c Section 0 system_stm32f10x.o(.text.SystemInit)
|
||||
[Anonymous Symbol] 0x080010f4 Section 0 horloge.o(.text.TIM2_IRQHandler)
|
||||
[Anonymous Symbol] 0x08001134 Section 0 horloge.o(.text.TIM3_IRQHandler)
|
||||
[Anonymous Symbol] 0x08001178 Section 0 horloge.o(.text.TIM4_IRQHandler)
|
||||
[Anonymous Symbol] 0x080011bc Section 0 horloge.o(.text.Timer_Init)
|
||||
[Anonymous Symbol] 0x080012a4 Section 0 myuart.o(.text.USART1_IRQHandler)
|
||||
[Anonymous Symbol] 0x080012dc Section 0 myuart.o(.text.USART_IT_Receive_Enable)
|
||||
[Anonymous Symbol] 0x080012f0 Section 0 myuart.o(.text.USART_Send_Char)
|
||||
[Anonymous Symbol] 0x08001314 Section 0 myuart.o(.text.USART_Send_String)
|
||||
[Anonymous Symbol] 0x0800133c Section 0 plateau.o(.text.Update_Motor_PWM)
|
||||
__NVIC_EnableIRQ 0x08001391 Thumb Code 48 myuart.o(.text.__NVIC_EnableIRQ)
|
||||
[Anonymous Symbol] 0x08001390 Section 0 myuart.o(.text.__NVIC_EnableIRQ)
|
||||
__NVIC_SetPriority 0x080013c1 Thumb Code 66 myuart.o(.text.__NVIC_SetPriority)
|
||||
[Anonymous Symbol] 0x080013c0 Section 0 myuart.o(.text.__NVIC_SetPriority)
|
||||
[Anonymous Symbol] 0x08001404 Section 0 girouette.o(.text.angleVent)
|
||||
[Anonymous Symbol] 0x0800143c Section 0 girouette.o(.text.configEncoder)
|
||||
[Anonymous Symbol] 0x080014dc Section 0 adc.o(.text.initADC)
|
||||
[Anonymous Symbol] 0x08001564 Section 0 accelerometre.o(.text.initAccelo)
|
||||
[Anonymous Symbol] 0x080015cc Section 0 plateau.o(.text.initPlato)
|
||||
[Anonymous Symbol] 0x08001638 Section 0 servo.o(.text.initServo)
|
||||
[Anonymous Symbol] 0x08001694 Section 0 principal.o(.text.main)
|
||||
[Anonymous Symbol] 0x08001804 Section 0 principal.o(.text.pilotage)
|
||||
[Anonymous Symbol] 0x08001820 Section 0 adc.o(.text.recupADC)
|
||||
[Anonymous Symbol] 0x08001834 Section 0 adc.o(.text.sendinfoADC)
|
||||
[Anonymous Symbol] 0x080018f8 Section 0 girouette.o(.text.vent2voile)
|
||||
i.MySPI_Clear_NSS 0x08001930 Section 0 myspi.o(i.MySPI_Clear_NSS)
|
||||
i.MySPI_Init 0x08001960 Section 0 myspi.o(i.MySPI_Init)
|
||||
i.MySPI_Read 0x08001b54 Section 0 myspi.o(i.MySPI_Read)
|
||||
i.MySPI_Send 0x08001ba8 Section 0 myspi.o(i.MySPI_Send)
|
||||
i.MySPI_Set_NSS 0x08001bf8 Section 0 myspi.o(i.MySPI_Set_NSS)
|
||||
i.__0snprintf 0x08001c24 Section 0 printfa.o(i.__0snprintf)
|
||||
i.__scatterload_copy 0x08001c58 Section 14 handlers.o(i.__scatterload_copy)
|
||||
i.__scatterload_null 0x08001c66 Section 2 handlers.o(i.__scatterload_null)
|
||||
i.__scatterload_zeroinit 0x08001c68 Section 14 handlers.o(i.__scatterload_zeroinit)
|
||||
_fp_digits 0x08001c79 Thumb Code 366 printfa.o(i._fp_digits)
|
||||
i._fp_digits 0x08001c78 Section 0 printfa.o(i._fp_digits)
|
||||
_printf_core 0x08001dfd Thumb Code 1744 printfa.o(i._printf_core)
|
||||
i._printf_core 0x08001dfc Section 0 printfa.o(i._printf_core)
|
||||
_printf_post_padding 0x080024d9 Thumb Code 36 printfa.o(i._printf_post_padding)
|
||||
i._printf_post_padding 0x080024d8 Section 0 printfa.o(i._printf_post_padding)
|
||||
_printf_pre_padding 0x080024fd Thumb Code 46 printfa.o(i._printf_pre_padding)
|
||||
i._printf_pre_padding 0x080024fc Section 0 printfa.o(i._printf_pre_padding)
|
||||
_snputc 0x0800252b Thumb Code 22 printfa.o(i._snputc)
|
||||
i._snputc 0x0800252a Section 0 printfa.o(i._snputc)
|
||||
.L.str 0x08002540 Data 17 principal.o(.rodata.str1.1)
|
||||
[Anonymous Symbol] 0x08002540 Section 0 principal.o(.rodata.str1.1)
|
||||
.L.str 0x08002551 Data 55 adc.o(.rodata.str1.1)
|
||||
[Anonymous Symbol] 0x08002551 Section 0 adc.o(.rodata.str1.1)
|
||||
.L.str.1 0x08002588 Data 27 adc.o(.rodata.str1.1)
|
||||
.data 0x20000000 Section 4 myspi.o(.data)
|
||||
RecupAccelo.Messie 0x20000008 Data 6 accelerometre.o(.bss.RecupAccelo.Messie)
|
||||
[Anonymous Symbol] 0x20000008 Section 0 accelerometre.o(.bss.RecupAccelo.Messie)
|
||||
TIM2_Appel 0x20000010 Data 4 horloge.o(.bss.TIM2_Appel)
|
||||
[Anonymous Symbol] 0x20000010 Section 0 horloge.o(.bss.TIM2_Appel)
|
||||
TIM3_Appel 0x20000014 Data 4 horloge.o(.bss.TIM3_Appel)
|
||||
[Anonymous Symbol] 0x20000014 Section 0 horloge.o(.bss.TIM3_Appel)
|
||||
TIM4_Appel 0x20000018 Data 4 horloge.o(.bss.TIM4_Appel)
|
||||
[Anonymous Symbol] 0x20000018 Section 0 horloge.o(.bss.TIM4_Appel)
|
||||
STACK 0x20000030 Section 1024 startup_stm32f10x_md.o(STACK)
|
||||
|
||||
Global Symbols
|
||||
|
||||
Symbol Name Value Ov Type Size Object(Section)
|
||||
|
||||
BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$~IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$ROPI$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE
|
||||
__cpp_initialize__aeabi_ - Undefined Weak Reference
|
||||
__cxa_finalize - Undefined Weak Reference
|
||||
__decompress - Undefined Weak Reference
|
||||
_clock_init - Undefined Weak Reference
|
||||
_microlib_exit - Undefined Weak Reference
|
||||
__Vectors_Size 0x000000ec Number 0 startup_stm32f10x_md.o ABSOLUTE
|
||||
__Vectors 0x08000000 Data 4 startup_stm32f10x_md.o(RESET)
|
||||
__Vectors_End 0x080000ec Data 0 startup_stm32f10x_md.o(RESET)
|
||||
__main 0x080000ed Thumb Code 0 entry.o(.ARM.Collect$$$$00000000)
|
||||
_main_stk 0x080000ed Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001)
|
||||
_main_scatterload 0x080000f1 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004)
|
||||
__main_after_scatterload 0x080000f5 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004)
|
||||
_main_clock 0x080000f5 Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008)
|
||||
_main_cpp_init 0x080000f5 Thumb Code 0 entry8b.o(.ARM.Collect$$$$0000000A)
|
||||
_main_init 0x080000f5 Thumb Code 0 entry9a.o(.ARM.Collect$$$$0000000B)
|
||||
__rt_final_cpp 0x080000fd Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000D)
|
||||
__rt_final_exit 0x080000fd Thumb Code 0 entry11a.o(.ARM.Collect$$$$0000000F)
|
||||
Reset_Handler 0x08000101 Thumb Code 8 startup_stm32f10x_md.o(.text)
|
||||
NMI_Handler 0x08000109 Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
HardFault_Handler 0x0800010b Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
MemManage_Handler 0x0800010d Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
BusFault_Handler 0x0800010f Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
UsageFault_Handler 0x08000111 Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
SVC_Handler 0x08000113 Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
DebugMon_Handler 0x08000115 Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
PendSV_Handler 0x08000117 Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
SysTick_Handler 0x08000119 Thumb Code 2 startup_stm32f10x_md.o(.text)
|
||||
ADC1_2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
CAN1_RX1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
CAN1_SCE_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
DMA1_Channel1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
DMA1_Channel2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
DMA1_Channel3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
DMA1_Channel4_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
DMA1_Channel5_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
DMA1_Channel6_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
DMA1_Channel7_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
EXTI0_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
EXTI15_10_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
EXTI1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
EXTI2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
EXTI3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
EXTI4_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
EXTI9_5_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
FLASH_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
I2C1_ER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
I2C1_EV_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
I2C2_ER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
I2C2_EV_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
PVD_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
RCC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
RTCAlarm_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
RTC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
SPI1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
SPI2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
TAMPER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
TIM1_BRK_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
TIM1_CC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
TIM1_TRG_COM_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
TIM1_UP_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
USART2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
USART3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
USBWakeUp_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
USB_HP_CAN1_TX_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
USB_LP_CAN1_RX0_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
WWDG_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f10x_md.o(.text)
|
||||
__aeabi_dmul 0x08000125 Thumb Code 228 dmul.o(.text)
|
||||
__aeabi_i2d 0x08000209 Thumb Code 34 dflti.o(.text)
|
||||
__aeabi_d2iz 0x0800022b Thumb Code 62 dfixi.o(.text)
|
||||
__aeabi_uidiv 0x08000269 Thumb Code 0 uidiv.o(.text)
|
||||
__aeabi_uidivmod 0x08000269 Thumb Code 44 uidiv.o(.text)
|
||||
__aeabi_uldivmod 0x08000295 Thumb Code 98 uldiv.o(.text)
|
||||
__aeabi_llsr 0x080002f7 Thumb Code 32 llushr.o(.text)
|
||||
_ll_ushift_r 0x080002f7 Thumb Code 0 llushr.o(.text)
|
||||
__I$use$fp 0x08000317 Thumb Code 0 iusefp.o(.text)
|
||||
_double_round 0x08000317 Thumb Code 30 depilogue.o(.text)
|
||||
_double_epilogue 0x08000335 Thumb Code 156 depilogue.o(.text)
|
||||
__aeabi_dadd 0x080003d1 Thumb Code 322 dadd.o(.text)
|
||||
__aeabi_dsub 0x08000513 Thumb Code 6 dadd.o(.text)
|
||||
__aeabi_drsub 0x08000519 Thumb Code 6 dadd.o(.text)
|
||||
__aeabi_ddiv 0x0800051f Thumb Code 222 ddiv.o(.text)
|
||||
__aeabi_d2ulz 0x080005fd Thumb Code 48 dfixul.o(.text)
|
||||
__aeabi_cdrcmple 0x0800062d Thumb Code 48 cdrcmple.o(.text)
|
||||
__scatterload 0x0800065d Thumb Code 38 init.o(.text)
|
||||
__scatterload_rt2 0x0800065d Thumb Code 0 init.o(.text)
|
||||
__aeabi_llsl 0x0800068d Thumb Code 30 llshl.o(.text)
|
||||
_ll_shift_l 0x0800068d Thumb Code 0 llshl.o(.text)
|
||||
__aeabi_lasr 0x080006ab Thumb Code 36 llsshr.o(.text)
|
||||
_ll_sshift_r 0x080006ab Thumb Code 0 llsshr.o(.text)
|
||||
Init_IT_Receive 0x080006d1 Thumb Code 20 myuart.o(.text.Init_IT_Receive)
|
||||
LacheVoile 0x080006e5 Thumb Code 64 accelerometre.o(.text.LacheVoile)
|
||||
LocaliserZero 0x08000725 Thumb Code 58 girouette.o(.text.LocaliserZero)
|
||||
MyGPIO_Init 0x08000761 Thumb Code 454 drivergpio.o(.text.MyGPIO_Init)
|
||||
MyGPIO_Read 0x08000929 Thumb Code 26 drivergpio.o(.text.MyGPIO_Read)
|
||||
MyGPIO_Reset 0x08000945 Thumb Code 28 drivergpio.o(.text.MyGPIO_Reset)
|
||||
MyGPIO_Set 0x08000961 Thumb Code 24 drivergpio.o(.text.MyGPIO_Set)
|
||||
MyTimer_PWM 0x08000979 Thumb Code 1010 pwm.o(.text.MyTimer_PWM)
|
||||
My_USART_Config 0x08000d6d Thumb Code 108 myuart.o(.text.My_USART_Config)
|
||||
RecupAccelo 0x08000dd9 Thumb Code 108 accelerometre.o(.text.RecupAccelo)
|
||||
Servo_Moteur 0x08000e45 Thumb Code 56 servo.o(.text.Servo_Moteur)
|
||||
Set_DutyCycle_PWM 0x08000fa9 Thumb Code 102 pwm.o(.text.Set_DutyCycle_PWM)
|
||||
Set_DutyCycle_PWM_Plateau 0x08001011 Thumb Code 124 pwm.o(.text.Set_DutyCycle_PWM_Plateau)
|
||||
SystemInit 0x0800108d Thumb Code 102 system_stm32f10x.o(.text.SystemInit)
|
||||
TIM2_IRQHandler 0x080010f5 Thumb Code 62 horloge.o(.text.TIM2_IRQHandler)
|
||||
TIM3_IRQHandler 0x08001135 Thumb Code 66 horloge.o(.text.TIM3_IRQHandler)
|
||||
TIM4_IRQHandler 0x08001179 Thumb Code 66 horloge.o(.text.TIM4_IRQHandler)
|
||||
Timer_Init 0x080011bd Thumb Code 230 horloge.o(.text.Timer_Init)
|
||||
USART1_IRQHandler 0x080012a5 Thumb Code 54 myuart.o(.text.USART1_IRQHandler)
|
||||
USART_IT_Receive_Enable 0x080012dd Thumb Code 18 myuart.o(.text.USART_IT_Receive_Enable)
|
||||
USART_Send_Char 0x080012f1 Thumb Code 36 myuart.o(.text.USART_Send_Char)
|
||||
USART_Send_String 0x08001315 Thumb Code 40 myuart.o(.text.USART_Send_String)
|
||||
Update_Motor_PWM 0x0800133d Thumb Code 84 plateau.o(.text.Update_Motor_PWM)
|
||||
angleVent 0x08001405 Thumb Code 54 girouette.o(.text.angleVent)
|
||||
configEncoder 0x0800143d Thumb Code 160 girouette.o(.text.configEncoder)
|
||||
initADC 0x080014dd Thumb Code 136 adc.o(.text.initADC)
|
||||
initAccelo 0x08001565 Thumb Code 104 accelerometre.o(.text.initAccelo)
|
||||
initPlato 0x080015cd Thumb Code 106 plateau.o(.text.initPlato)
|
||||
initServo 0x08001639 Thumb Code 92 servo.o(.text.initServo)
|
||||
main 0x08001695 Thumb Code 366 principal.o(.text.main)
|
||||
pilotage 0x08001805 Thumb Code 26 principal.o(.text.pilotage)
|
||||
recupADC 0x08001821 Thumb Code 20 adc.o(.text.recupADC)
|
||||
sendinfoADC 0x08001835 Thumb Code 196 adc.o(.text.sendinfoADC)
|
||||
vent2voile 0x080018f9 Thumb Code 54 girouette.o(.text.vent2voile)
|
||||
MySPI_Clear_NSS 0x08001931 Thumb Code 30 myspi.o(i.MySPI_Clear_NSS)
|
||||
MySPI_Init 0x08001961 Thumb Code 480 myspi.o(i.MySPI_Init)
|
||||
MySPI_Read 0x08001b55 Thumb Code 70 myspi.o(i.MySPI_Read)
|
||||
MySPI_Send 0x08001ba9 Thumb Code 68 myspi.o(i.MySPI_Send)
|
||||
MySPI_Set_NSS 0x08001bf9 Thumb Code 28 myspi.o(i.MySPI_Set_NSS)
|
||||
__0snprintf 0x08001c25 Thumb Code 48 printfa.o(i.__0snprintf)
|
||||
__1snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
|
||||
__2snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
|
||||
__c89snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
|
||||
snprintf 0x08001c25 Thumb Code 0 printfa.o(i.__0snprintf)
|
||||
__scatterload_copy 0x08001c59 Thumb Code 14 handlers.o(i.__scatterload_copy)
|
||||
__scatterload_null 0x08001c67 Thumb Code 2 handlers.o(i.__scatterload_null)
|
||||
__scatterload_zeroinit 0x08001c69 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
|
||||
Region$$Table$$Base 0x080025a4 Number 0 anon$$obj.o(Region$$Table)
|
||||
Region$$Table$$Limit 0x080025c4 Number 0 anon$$obj.o(Region$$Table)
|
||||
ActiveSPI 0x20000000 Data 4 myspi.o(.data)
|
||||
angleVentVar 0x2000001c Data 4 principal.o(.bss.angleVentVar)
|
||||
angleVoileVar 0x20000020 Data 4 principal.o(.bss.angleVoileVar)
|
||||
moy 0x20000024 Data 4 principal.o(.bss.moy)
|
||||
pFnc_Receive 0x20000028 Data 4 myuart.o(.bss.pFnc_Receive)
|
||||
__initial_sp 0x20000430 Data 0 startup_stm32f10x_md.o(STACK)
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
Memory Map of the image
|
||||
|
||||
Image Entry point : 0x08000101
|
||||
|
||||
Load Region LR_1 (Base: 0x08000000, Size: 0x000025c8, Max: 0xffffffff, ABSOLUTE)
|
||||
|
||||
Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000025c4, Max: 0xffffffff, ABSOLUTE)
|
||||
|
||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||
|
||||
0x08000000 0x08000000 0x000000ec Data RO 214 RESET startup_stm32f10x_md.o
|
||||
0x080000ec 0x080000ec 0x00000000 Code RO 255 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
|
||||
0x080000ec 0x080000ec 0x00000004 Code RO 292 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
|
||||
0x080000f0 0x080000f0 0x00000004 Code RO 295 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
|
||||
0x080000f4 0x080000f4 0x00000000 Code RO 297 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
|
||||
0x080000f4 0x080000f4 0x00000000 Code RO 299 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
|
||||
0x080000f4 0x080000f4 0x00000008 Code RO 300 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
|
||||
0x080000fc 0x080000fc 0x00000000 Code RO 302 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
|
||||
0x080000fc 0x080000fc 0x00000000 Code RO 304 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
|
||||
0x080000fc 0x080000fc 0x00000004 Code RO 293 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
|
||||
0x08000100 0x08000100 0x00000024 Code RO 215 * .text startup_stm32f10x_md.o
|
||||
0x08000124 0x08000124 0x000000e4 Code RO 286 .text mf_w.l(dmul.o)
|
||||
0x08000208 0x08000208 0x00000022 Code RO 288 .text mf_w.l(dflti.o)
|
||||
0x0800022a 0x0800022a 0x0000003e Code RO 290 .text mf_w.l(dfixi.o)
|
||||
0x08000268 0x08000268 0x0000002c Code RO 320 .text mc_w.l(uidiv.o)
|
||||
0x08000294 0x08000294 0x00000062 Code RO 322 .text mc_w.l(uldiv.o)
|
||||
0x080002f6 0x080002f6 0x00000020 Code RO 324 .text mc_w.l(llushr.o)
|
||||
0x08000316 0x08000316 0x00000000 Code RO 326 .text mc_w.l(iusefp.o)
|
||||
0x08000316 0x08000316 0x000000ba Code RO 327 .text mf_w.l(depilogue.o)
|
||||
0x080003d0 0x080003d0 0x0000014e Code RO 329 .text mf_w.l(dadd.o)
|
||||
0x0800051e 0x0800051e 0x000000de Code RO 331 .text mf_w.l(ddiv.o)
|
||||
0x080005fc 0x080005fc 0x00000030 Code RO 333 .text mf_w.l(dfixul.o)
|
||||
0x0800062c 0x0800062c 0x00000030 Code RO 335 .text mf_w.l(cdrcmple.o)
|
||||
0x0800065c 0x0800065c 0x00000030 Code RO 337 .text mc_w.l(init.o)
|
||||
0x0800068c 0x0800068c 0x0000001e Code RO 340 .text mc_w.l(llshl.o)
|
||||
0x080006aa 0x080006aa 0x00000024 Code RO 342 .text mc_w.l(llsshr.o)
|
||||
0x080006ce 0x080006ce 0x00000002 PAD
|
||||
0x080006d0 0x080006d0 0x00000014 Code RO 166 .text.Init_IT_Receive myuart.o
|
||||
0x080006e4 0x080006e4 0x00000040 Code RO 24 .text.LacheVoile accelerometre.o
|
||||
0x08000724 0x08000724 0x0000003a Code RO 40 .text.LocaliserZero girouette.o
|
||||
0x0800075e 0x0800075e 0x00000002 PAD
|
||||
0x08000760 0x08000760 0x000001c6 Code RO 74 .text.MyGPIO_Init drivergpio.o
|
||||
0x08000926 0x08000926 0x00000002 PAD
|
||||
0x08000928 0x08000928 0x0000001a Code RO 76 .text.MyGPIO_Read drivergpio.o
|
||||
0x08000942 0x08000942 0x00000002 PAD
|
||||
0x08000944 0x08000944 0x0000001c Code RO 80 .text.MyGPIO_Reset drivergpio.o
|
||||
0x08000960 0x08000960 0x00000018 Code RO 78 .text.MyGPIO_Set drivergpio.o
|
||||
0x08000978 0x08000978 0x000003f2 Code RO 189 .text.MyTimer_PWM pwm.o
|
||||
0x08000d6a 0x08000d6a 0x00000002 PAD
|
||||
0x08000d6c 0x08000d6c 0x0000006c Code RO 154 .text.My_USART_Config myuart.o
|
||||
0x08000dd8 0x08000dd8 0x0000006c Code RO 20 .text.RecupAccelo accelerometre.o
|
||||
0x08000e44 0x08000e44 0x00000038 Code RO 49 .text.Servo_Moteur servo.o
|
||||
0x08000e7c 0x08000e7c 0x00000008 Code RO 224 .text.SetSysClock system_stm32f10x.o
|
||||
0x08000e84 0x08000e84 0x00000122 Code RO 228 .text.SetSysClockTo72 system_stm32f10x.o
|
||||
0x08000fa6 0x08000fa6 0x00000002 PAD
|
||||
0x08000fa8 0x08000fa8 0x00000066 Code RO 191 .text.Set_DutyCycle_PWM pwm.o
|
||||
0x0800100e 0x0800100e 0x00000002 PAD
|
||||
0x08001010 0x08001010 0x0000007c Code RO 193 .text.Set_DutyCycle_PWM_Plateau pwm.o
|
||||
0x0800108c 0x0800108c 0x00000066 Code RO 222 .text.SystemInit system_stm32f10x.o
|
||||
0x080010f2 0x080010f2 0x00000002 PAD
|
||||
0x080010f4 0x080010f4 0x0000003e Code RO 103 .text.TIM2_IRQHandler horloge.o
|
||||
0x08001132 0x08001132 0x00000002 PAD
|
||||
0x08001134 0x08001134 0x00000042 Code RO 105 .text.TIM3_IRQHandler horloge.o
|
||||
0x08001176 0x08001176 0x00000002 PAD
|
||||
0x08001178 0x08001178 0x00000042 Code RO 107 .text.TIM4_IRQHandler horloge.o
|
||||
0x080011ba 0x080011ba 0x00000002 PAD
|
||||
0x080011bc 0x080011bc 0x000000e6 Code RO 95 .text.Timer_Init horloge.o
|
||||
0x080012a2 0x080012a2 0x00000002 PAD
|
||||
0x080012a4 0x080012a4 0x00000036 Code RO 168 .text.USART1_IRQHandler myuart.o
|
||||
0x080012da 0x080012da 0x00000002 PAD
|
||||
0x080012dc 0x080012dc 0x00000012 Code RO 164 .text.USART_IT_Receive_Enable myuart.o
|
||||
0x080012ee 0x080012ee 0x00000002 PAD
|
||||
0x080012f0 0x080012f0 0x00000024 Code RO 160 .text.USART_Send_Char myuart.o
|
||||
0x08001314 0x08001314 0x00000028 Code RO 162 .text.USART_Send_String myuart.o
|
||||
0x0800133c 0x0800133c 0x00000054 Code RO 180 .text.Update_Motor_PWM plateau.o
|
||||
0x08001390 0x08001390 0x00000030 Code RO 156 .text.__NVIC_EnableIRQ myuart.o
|
||||
0x080013c0 0x080013c0 0x00000042 Code RO 158 .text.__NVIC_SetPriority myuart.o
|
||||
0x08001402 0x08001402 0x00000002 PAD
|
||||
0x08001404 0x08001404 0x00000036 Code RO 36 .text.angleVent girouette.o
|
||||
0x0800143a 0x0800143a 0x00000002 PAD
|
||||
0x0800143c 0x0800143c 0x000000a0 Code RO 34 .text.configEncoder girouette.o
|
||||
0x080014dc 0x080014dc 0x00000088 Code RO 60 .text.initADC adc.o
|
||||
0x08001564 0x08001564 0x00000068 Code RO 18 .text.initAccelo accelerometre.o
|
||||
0x080015cc 0x080015cc 0x0000006a Code RO 178 .text.initPlato plateau.o
|
||||
0x08001636 0x08001636 0x00000002 PAD
|
||||
0x08001638 0x08001638 0x0000005c Code RO 51 .text.initServo servo.o
|
||||
0x08001694 0x08001694 0x0000016e Code RO 4 .text.main principal.o
|
||||
0x08001802 0x08001802 0x00000002 PAD
|
||||
0x08001804 0x08001804 0x0000001a Code RO 2 .text.pilotage principal.o
|
||||
0x0800181e 0x0800181e 0x00000002 PAD
|
||||
0x08001820 0x08001820 0x00000014 Code RO 62 .text.recupADC adc.o
|
||||
0x08001834 0x08001834 0x000000c4 Code RO 64 .text.sendinfoADC adc.o
|
||||
0x080018f8 0x080018f8 0x00000036 Code RO 38 .text.vent2voile girouette.o
|
||||
0x0800192e 0x0800192e 0x00000002 PAD
|
||||
0x08001930 0x08001930 0x00000030 Code RO 241 i.MySPI_Clear_NSS Lib_Com_Periph_2022.lib(myspi.o)
|
||||
0x08001960 0x08001960 0x000001f4 Code RO 242 i.MySPI_Init Lib_Com_Periph_2022.lib(myspi.o)
|
||||
0x08001b54 0x08001b54 0x00000054 Code RO 243 i.MySPI_Read Lib_Com_Periph_2022.lib(myspi.o)
|
||||
0x08001ba8 0x08001ba8 0x00000050 Code RO 244 i.MySPI_Send Lib_Com_Periph_2022.lib(myspi.o)
|
||||
0x08001bf8 0x08001bf8 0x0000002c Code RO 245 i.MySPI_Set_NSS Lib_Com_Periph_2022.lib(myspi.o)
|
||||
0x08001c24 0x08001c24 0x00000034 Code RO 260 i.__0snprintf mc_w.l(printfa.o)
|
||||
0x08001c58 0x08001c58 0x0000000e Code RO 347 i.__scatterload_copy mc_w.l(handlers.o)
|
||||
0x08001c66 0x08001c66 0x00000002 Code RO 348 i.__scatterload_null mc_w.l(handlers.o)
|
||||
0x08001c68 0x08001c68 0x0000000e Code RO 349 i.__scatterload_zeroinit mc_w.l(handlers.o)
|
||||
0x08001c76 0x08001c76 0x00000002 PAD
|
||||
0x08001c78 0x08001c78 0x00000184 Code RO 266 i._fp_digits mc_w.l(printfa.o)
|
||||
0x08001dfc 0x08001dfc 0x000006dc Code RO 267 i._printf_core mc_w.l(printfa.o)
|
||||
0x080024d8 0x080024d8 0x00000024 Code RO 268 i._printf_post_padding mc_w.l(printfa.o)
|
||||
0x080024fc 0x080024fc 0x0000002e Code RO 269 i._printf_pre_padding mc_w.l(printfa.o)
|
||||
0x0800252a 0x0800252a 0x00000016 Code RO 270 i._snputc mc_w.l(printfa.o)
|
||||
0x08002540 0x08002540 0x00000011 Data RO 6 .rodata.str1.1 principal.o
|
||||
0x08002551 0x08002551 0x00000052 Data RO 66 .rodata.str1.1 adc.o
|
||||
0x080025a3 0x080025a3 0x00000001 PAD
|
||||
0x080025a4 0x080025a4 0x00000020 Data RO 346 Region$$Table anon$$obj.o
|
||||
|
||||
|
||||
Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x080025c4, Size: 0x00000004, Max: 0xffffffff, ABSOLUTE)
|
||||
|
||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||
|
||||
0x20000000 0x080025c4 0x00000004 Data RW 246 .data Lib_Com_Periph_2022.lib(myspi.o)
|
||||
|
||||
|
||||
Execution Region ER_ZI (Exec base: 0x20000008, Load base: 0x080025c8, Size: 0x00000428, Max: 0xffffffff, ABSOLUTE)
|
||||
|
||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||
|
||||
0x20000008 - 0x00000006 Zero RW 26 .bss.RecupAccelo.Messie accelerometre.o
|
||||
0x2000000e 0x080025c8 0x00000002 PAD
|
||||
0x20000010 - 0x00000004 Zero RW 109 .bss.TIM2_Appel horloge.o
|
||||
0x20000014 - 0x00000004 Zero RW 110 .bss.TIM3_Appel horloge.o
|
||||
0x20000018 - 0x00000004 Zero RW 111 .bss.TIM4_Appel horloge.o
|
||||
0x2000001c - 0x00000004 Zero RW 7 .bss.angleVentVar principal.o
|
||||
0x20000020 - 0x00000004 Zero RW 8 .bss.angleVoileVar principal.o
|
||||
0x20000024 - 0x00000004 Zero RW 9 .bss.moy principal.o
|
||||
0x20000028 - 0x00000004 Zero RW 170 .bss.pFnc_Receive myuart.o
|
||||
0x2000002c 0x080025c8 0x00000004 PAD
|
||||
0x20000030 - 0x00000400 Zero RW 212 STACK startup_stm32f10x_md.o
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
Image component sizes
|
||||
|
||||
|
||||
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
|
||||
|
||||
276 0 0 0 6 3114 accelerometre.o
|
||||
352 0 82 0 0 2438 adc.o
|
||||
532 0 0 0 0 2325 drivergpio.o
|
||||
326 0 0 0 0 2374 girouette.o
|
||||
424 0 0 0 12 5304 horloge.o
|
||||
390 0 0 0 4 4845 myuart.o
|
||||
190 0 0 0 0 2120 plateau.o
|
||||
392 0 17 0 12 2757 principal.o
|
||||
1236 16 0 0 0 3013 pwm.o
|
||||
148 0 0 0 0 2070 servo.o
|
||||
36 8 236 0 1024 840 startup_stm32f10x_md.o
|
||||
400 0 0 0 0 3012 system_stm32f10x.o
|
||||
|
||||
----------------------------------------------------------------------
|
||||
4740 24 368 0 1064 34212 Object Totals
|
||||
0 0 32 0 0 0 (incl. Generated)
|
||||
38 0 1 0 6 0 (incl. Padding)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name
|
||||
|
||||
756 80 0 4 0 348 myspi.o
|
||||
0 0 0 0 0 0 entry.o
|
||||
0 0 0 0 0 0 entry10a.o
|
||||
0 0 0 0 0 0 entry11a.o
|
||||
8 4 0 0 0 0 entry2.o
|
||||
4 0 0 0 0 0 entry5.o
|
||||
0 0 0 0 0 0 entry7b.o
|
||||
0 0 0 0 0 0 entry8b.o
|
||||
8 4 0 0 0 0 entry9a.o
|
||||
30 0 0 0 0 0 handlers.o
|
||||
48 10 0 0 0 68 init.o
|
||||
0 0 0 0 0 0 iusefp.o
|
||||
30 0 0 0 0 68 llshl.o
|
||||
36 0 0 0 0 68 llsshr.o
|
||||
32 0 0 0 0 68 llushr.o
|
||||
2300 84 0 0 0 524 printfa.o
|
||||
44 0 0 0 0 80 uidiv.o
|
||||
98 0 0 0 0 92 uldiv.o
|
||||
48 0 0 0 0 68 cdrcmple.o
|
||||
334 0 0 0 0 148 dadd.o
|
||||
222 0 0 0 0 100 ddiv.o
|
||||
186 0 0 0 0 176 depilogue.o
|
||||
62 0 0 0 0 80 dfixi.o
|
||||
48 0 0 0 0 68 dfixul.o
|
||||
34 0 0 0 0 76 dflti.o
|
||||
228 0 0 0 0 96 dmul.o
|
||||
|
||||
----------------------------------------------------------------------
|
||||
4560 182 0 4 0 2128 Library Totals
|
||||
4 0 0 0 0 0 (incl. Padding)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Code (inc. data) RO Data RW Data ZI Data Debug Library Name
|
||||
|
||||
756 80 0 4 0 348 Lib_Com_Periph_2022.lib
|
||||
2638 102 0 0 0 968 mc_w.l
|
||||
1162 0 0 0 0 812 mf_w.l
|
||||
|
||||
----------------------------------------------------------------------
|
||||
4560 182 0 4 0 2128 Library Totals
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
==============================================================================
|
||||
|
||||
|
||||
Code (inc. data) RO Data RW Data ZI Data Debug
|
||||
|
||||
9300 206 368 4 1064 35200 Grand Totals
|
||||
9300 206 368 4 1064 35200 ELF Image Totals
|
||||
9300 206 368 4 0 0 ROM Totals
|
||||
|
||||
==============================================================================
|
||||
|
||||
Total RO Size (Code + RO Data) 9668 ( 9.44kB)
|
||||
Total RW Size (RW Data + ZI Data) 1068 ( 1.04kB)
|
||||
Total ROM Size (Code + RO Data + RW Data) 9672 ( 9.45kB)
|
||||
|
||||
==============================================================================
|
||||
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[EXTDLL]
|
||||
Count=0
|
||||
Binary file not shown.
|
|
@ -1,84 +0,0 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>µVision Build Log</h1>
|
||||
<h2>Tool Versions:</h2>
|
||||
IDE-Version: µVision V5.42.0.0
|
||||
Copyright (C) 2025 ARM Ltd and ARM Germany GmbH. All rights reserved.
|
||||
License Information: Brage Johnsen
|
||||
INSA
|
||||
User-based license: Keil MDK Community (non-commercial free of charge)
|
||||
Valid until: Jun 1 2033. Cached until: Dec 22 2025
|
||||
|
||||
Tool Versions:
|
||||
Toolchain: Keil MDK Community (non-commercial free of charge Version: 5.42.0.0
|
||||
Toolchain Path: C:\Users\Brage\AppData\Local\Keil_v5\ARM\ARMCLANG\Bin
|
||||
C Compiler: ArmClang.exe V6.23
|
||||
Assembler: Armasm.exe V6.23
|
||||
Linker/Locator: ArmLink.exe V6.23
|
||||
Library Manager: ArmAr.exe V6.23
|
||||
Hex Converter: FromElf.exe V6.23
|
||||
CPU DLL: SARMCM3.DLL V5.42.0.0
|
||||
Dialog DLL: DARMSTM.DLL V1.69.1.0
|
||||
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.3.0.0
|
||||
Dialog DLL: TARMSTM.DLL V1.67.1.0
|
||||
|
||||
<h2>Project:</h2>
|
||||
C:\Users\Brage\Documents\INSA\4ANNEE\MC\BE_VOILIER\Projet0.uvprojx
|
||||
Project File Date: 12/17/2025
|
||||
|
||||
<h2>Output:</h2>
|
||||
*** Using Compiler 'V6.23', folder: 'C:\Users\Brage\AppData\Local\Keil_v5\ARM\ARMCLANG\Bin'
|
||||
Rebuild target 'Reel'
|
||||
compiling principal.c...
|
||||
compiling I2C.c...
|
||||
compiling PWM.c...
|
||||
compiling RTC.c...
|
||||
compiling Accelerometre.c...
|
||||
compiling DriverGPIO.c...
|
||||
compiling Horloge.c...
|
||||
compiling Plateau.c...
|
||||
compiling ADC.c...
|
||||
assembling startup_stm32f10x_md.s...
|
||||
compiling MyUart.c...
|
||||
compiling system_stm32f10x.c...
|
||||
compiling Servo.c...
|
||||
compiling Girouette.c...
|
||||
compiling MYGPIO.c...
|
||||
linking...
|
||||
Program Size: Code=9300 RO-data=368 RW-data=4 ZI-data=1064
|
||||
".\Objects\Projet0.axf" - 0 Error(s), 0 Warning(s).
|
||||
|
||||
<h2>Software Packages used:</h2>
|
||||
|
||||
Package Vendor: ARM
|
||||
https://www.keil.com/pack/ARM.CMSIS.6.1.0.pack
|
||||
ARM::CMSIS@6.1.0
|
||||
CMSIS (Common Microcontroller Software Interface Standard)
|
||||
* Component: CORE Version: 6.1.0
|
||||
|
||||
Package Vendor: Keil
|
||||
https://www.keil.com/pack/Keil.STM32F1xx_DFP.2.4.1.pack
|
||||
Keil::STM32F1xx_DFP@2.4.1
|
||||
STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
|
||||
* Component: Startup Version: 1.0.0
|
||||
|
||||
<h2>Collection of Component include folders:</h2>
|
||||
./RTE/Device/STM32F103RB
|
||||
./RTE/_Reel
|
||||
C:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
|
||||
C:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
|
||||
|
||||
<h2>Collection of Component Files used:</h2>
|
||||
|
||||
* Component: ARM::CMSIS:CORE@6.1.0
|
||||
|
||||
* Component: Keil::Device:Startup@1.0.0
|
||||
Include file: RTE_Driver/Config/RTE_Device.h
|
||||
Source file: Device/Source/ARM/startup_stm32f10x_md.s
|
||||
Source file: Device/Source/system_stm32f10x.c
|
||||
Source file: Device/Source/ARM/STM32F1xx_OPT.s
|
||||
Build Time Elapsed: 00:00:01
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,812 +0,0 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html><head>
|
||||
<title>Static Call Graph - [.\Objects\Projet0.axf]</title></head>
|
||||
<body><HR>
|
||||
<H1>Static Call Graph for image .\Objects\Projet0.axf</H1><HR>
|
||||
<BR><P>#<CALLGRAPH># ARM Linker, 6230001: Last Updated: Wed Dec 17 11:42:48 2025
|
||||
<BR><P>
|
||||
<H3>Maximum Stack Usage = 320 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
|
||||
Call chain for Maximum Stack Depth:</H3>
|
||||
main ⇒ sendinfoADC ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
|
||||
<P>
|
||||
<H3>
|
||||
Mutually Recursive functions
|
||||
</H3> <LI><a href="#[1]">NMI_Handler</a> ⇒ <a href="#[1]">NMI_Handler</a><BR>
|
||||
<LI><a href="#[2]">HardFault_Handler</a> ⇒ <a href="#[2]">HardFault_Handler</a><BR>
|
||||
<LI><a href="#[3]">MemManage_Handler</a> ⇒ <a href="#[3]">MemManage_Handler</a><BR>
|
||||
<LI><a href="#[4]">BusFault_Handler</a> ⇒ <a href="#[4]">BusFault_Handler</a><BR>
|
||||
<LI><a href="#[5]">UsageFault_Handler</a> ⇒ <a href="#[5]">UsageFault_Handler</a><BR>
|
||||
<LI><a href="#[6]">SVC_Handler</a> ⇒ <a href="#[6]">SVC_Handler</a><BR>
|
||||
<LI><a href="#[7]">DebugMon_Handler</a> ⇒ <a href="#[7]">DebugMon_Handler</a><BR>
|
||||
<LI><a href="#[8]">PendSV_Handler</a> ⇒ <a href="#[8]">PendSV_Handler</a><BR>
|
||||
<LI><a href="#[9]">SysTick_Handler</a> ⇒ <a href="#[9]">SysTick_Handler</a><BR>
|
||||
<LI><a href="#[1c]">ADC1_2_IRQHandler</a> ⇒ <a href="#[1c]">ADC1_2_IRQHandler</a><BR>
|
||||
</UL>
|
||||
<P>
|
||||
<H3>
|
||||
Function Pointers
|
||||
</H3><UL>
|
||||
<LI><a href="#[1c]">ADC1_2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[4]">BusFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[1f]">CAN1_RX1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[20]">CAN1_SCE_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[15]">DMA1_Channel1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[16]">DMA1_Channel2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[17]">DMA1_Channel3_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[18]">DMA1_Channel4_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[19]">DMA1_Channel5_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[1a]">DMA1_Channel6_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[1b]">DMA1_Channel7_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[7]">DebugMon_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[10]">EXTI0_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[32]">EXTI15_10_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[11]">EXTI1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[12]">EXTI2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[13]">EXTI3_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[14]">EXTI4_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[21]">EXTI9_5_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[e]">FLASH_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[2]">HardFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[2a]">I2C1_ER_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[29]">I2C1_EV_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[2c]">I2C2_ER_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[2b]">I2C2_EV_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[3]">MemManage_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[1]">NMI_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[b]">PVD_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[8]">PendSV_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[f]">RCC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[33]">RTCAlarm_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[d]">RTC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[0]">Reset_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[2d]">SPI1_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[2e]">SPI2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[6]">SVC_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[9]">SysTick_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[36]">SystemInit</a> from system_stm32f10x.o(.text.SystemInit) referenced from startup_stm32f10x_md.o(.text)
|
||||
<LI><a href="#[c]">TAMPER_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[22]">TIM1_BRK_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[25]">TIM1_CC_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[24]">TIM1_TRG_COM_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[23]">TIM1_UP_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[26]">TIM2_IRQHandler</a> from horloge.o(.text.TIM2_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[27]">TIM3_IRQHandler</a> from horloge.o(.text.TIM3_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[28]">TIM4_IRQHandler</a> from horloge.o(.text.TIM4_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[2f]">USART1_IRQHandler</a> from myuart.o(.text.USART1_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[30]">USART2_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[31]">USART3_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[34]">USBWakeUp_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[1d]">USB_HP_CAN1_TX_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[1e]">USB_LP_CAN1_RX0_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[5]">UsageFault_Handler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[a]">WWDG_IRQHandler</a> from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
|
||||
<LI><a href="#[37]">__main</a> from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f10x_md.o(.text)
|
||||
<LI><a href="#[39]">_snputc</a> from printfa.o(i._snputc) referenced from printfa.o(i.__0snprintf)
|
||||
<LI><a href="#[35]">main</a> from principal.o(.text.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
|
||||
<LI><a href="#[38]">pilotage</a> from principal.o(.text.pilotage) referenced 2 times from principal.o(.text.main)
|
||||
</UL>
|
||||
<P>
|
||||
<H3>
|
||||
Global Symbols
|
||||
</H3>
|
||||
<P><STRONG><a name="[37]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
|
||||
</UL>
|
||||
<P><STRONG><a name="[77]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
|
||||
|
||||
<P><STRONG><a name="[3a]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[3b]">>></a> __scatterload
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[4a]"></a>__main_after_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[3b]">>></a> __scatterload
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[78]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
|
||||
|
||||
<P><STRONG><a name="[79]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
|
||||
|
||||
<P><STRONG><a name="[7a]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
|
||||
|
||||
<P><STRONG><a name="[7b]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
|
||||
|
||||
<P><STRONG><a name="[7c]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
|
||||
|
||||
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[1]"></a>NMI_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[1]">>></a> NMI_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[1]">>></a> NMI_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[2]"></a>HardFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[2]">>></a> HardFault_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[2]">>></a> HardFault_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[3]"></a>MemManage_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[3]">>></a> MemManage_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[3]">>></a> MemManage_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[4]"></a>BusFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[4]">>></a> BusFault_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[4]">>></a> BusFault_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[5]"></a>UsageFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[5]">>></a> UsageFault_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[5]">>></a> UsageFault_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[6]"></a>SVC_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[6]">>></a> SVC_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[6]">>></a> SVC_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[7]"></a>DebugMon_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[7]">>></a> DebugMon_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[7]">>></a> DebugMon_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[8]"></a>PendSV_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[8]">>></a> PendSV_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[8]">>></a> PendSV_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[9]"></a>SysTick_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[9]">>></a> SysTick_Handler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[9]">>></a> SysTick_Handler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[1c]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[1c]">>></a> ADC1_2_IRQHandler
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[1c]">>></a> ADC1_2_IRQHandler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[1f]"></a>CAN1_RX1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[20]"></a>CAN1_SCE_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[15]"></a>DMA1_Channel1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[16]"></a>DMA1_Channel2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[17]"></a>DMA1_Channel3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[18]"></a>DMA1_Channel4_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[19]"></a>DMA1_Channel5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[1a]"></a>DMA1_Channel6_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[1b]"></a>DMA1_Channel7_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[10]"></a>EXTI0_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[32]"></a>EXTI15_10_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[11]"></a>EXTI1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[12]"></a>EXTI2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[13]"></a>EXTI3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[14]"></a>EXTI4_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[21]"></a>EXTI9_5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[e]"></a>FLASH_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[2a]"></a>I2C1_ER_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[29]"></a>I2C1_EV_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[2c]"></a>I2C2_ER_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[2b]"></a>I2C2_EV_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[b]"></a>PVD_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[f]"></a>RCC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[33]"></a>RTCAlarm_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[d]"></a>RTC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[2d]"></a>SPI1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[2e]"></a>SPI2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[c]"></a>TAMPER_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[22]"></a>TIM1_BRK_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[25]"></a>TIM1_CC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[24]"></a>TIM1_TRG_COM_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[23]"></a>TIM1_UP_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[30]"></a>USART2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[31]"></a>USART3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[34]"></a>USBWakeUp_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[1d]"></a>USB_HP_CAN1_TX_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[1e]"></a>USB_LP_CAN1_RX0_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[a]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[3c]"></a>__aeabi_dmul</STRONG> (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[3d]">>></a> _double_epilogue
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[72]">>></a> _fp_digits
|
||||
<LI><a href="#[6d]">>></a> sendinfoADC
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[3e]"></a>__aeabi_i2d</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = __aeabi_i2d ⇒ _double_epilogue ⇒ _double_round
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[3d]">>></a> _double_epilogue
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[6d]">>></a> sendinfoADC
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[3f]"></a>__aeabi_d2iz</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, dfixi.o(.text))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_d2iz
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[40]">>></a> __aeabi_llsr
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[6d]">>></a> sendinfoADC
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[7d]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[76]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[71]">>></a> _printf_core
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[41]"></a>__aeabi_uldivmod</STRONG> (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[42]">>></a> __aeabi_llsl
|
||||
<LI><a href="#[40]">>></a> __aeabi_llsr
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[71]">>></a> _printf_core
|
||||
<LI><a href="#[72]">>></a> _fp_digits
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[40]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[41]">>></a> __aeabi_uldivmod
|
||||
<LI><a href="#[3d]">>></a> _double_epilogue
|
||||
<LI><a href="#[49]">>></a> __aeabi_d2ulz
|
||||
<LI><a href="#[3f]">>></a> __aeabi_d2iz
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[7e]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[7f]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, iusefp.o(.text), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[43]"></a>_double_round</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = _double_round
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[3d]">>></a> _double_epilogue
|
||||
<LI><a href="#[48]">>></a> __aeabi_ddiv
|
||||
<LI><a href="#[44]">>></a> __aeabi_dadd
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[3d]"></a>_double_epilogue</STRONG> (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = _double_epilogue ⇒ _double_round
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[42]">>></a> __aeabi_llsl
|
||||
<LI><a href="#[43]">>></a> _double_round
|
||||
<LI><a href="#[40]">>></a> __aeabi_llsr
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[44]">>></a> __aeabi_dadd
|
||||
<LI><a href="#[3c]">>></a> __aeabi_dmul
|
||||
<LI><a href="#[3e]">>></a> __aeabi_i2d
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[44]"></a>__aeabi_dadd</STRONG> (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[45]">>></a> __aeabi_lasr
|
||||
<LI><a href="#[42]">>></a> __aeabi_llsl
|
||||
<LI><a href="#[43]">>></a> _double_round
|
||||
<LI><a href="#[3d]">>></a> _double_epilogue
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[47]">>></a> __aeabi_drsub
|
||||
<LI><a href="#[46]">>></a> __aeabi_dsub
|
||||
<LI><a href="#[72]">>></a> _fp_digits
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[46]"></a>__aeabi_dsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[44]">>></a> __aeabi_dadd
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[47]"></a>__aeabi_drsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[44]">>></a> __aeabi_dadd
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[48]"></a>__aeabi_ddiv</STRONG> (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[43]">>></a> _double_round
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[72]">>></a> _fp_digits
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[49]"></a>__aeabi_d2ulz</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[42]">>></a> __aeabi_llsl
|
||||
<LI><a href="#[40]">>></a> __aeabi_llsr
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[72]">>></a> _fp_digits
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[73]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[72]">>></a> _fp_digits
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[3b]"></a>__scatterload</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, init.o(.text))
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[4a]">>></a> __main_after_scatterload
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[3a]">>></a> _main_scatterload
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[80]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[42]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[41]">>></a> __aeabi_uldivmod
|
||||
<LI><a href="#[3d]">>></a> _double_epilogue
|
||||
<LI><a href="#[44]">>></a> __aeabi_dadd
|
||||
<LI><a href="#[49]">>></a> __aeabi_d2ulz
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[81]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[45]"></a>__aeabi_lasr</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[44]">>></a> __aeabi_dadd
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[82]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[6a]"></a>Init_IT_Receive</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, myuart.o(.text.Init_IT_Receive))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = Init_IT_Receive
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[4b]"></a>LacheVoile</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, accelerometre.o(.text.LacheVoile))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = LacheVoile ⇒ Servo_Moteur ⇒ Set_DutyCycle_PWM
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[4c]">>></a> Servo_Moteur
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[4d]"></a>LocaliserZero</STRONG> (Thumb, 58 bytes, Stack size 16 bytes, girouette.o(.text.LocaliserZero))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = LocaliserZero ⇒ MyGPIO_Read
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[4e]">>></a> MyGPIO_Read
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[50]"></a>MyGPIO_Init</STRONG> (Thumb, 454 bytes, Stack size 12 bytes, drivergpio.o(.text.MyGPIO_Init))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = MyGPIO_Init
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[65]">>></a> initPlato
|
||||
<LI><a href="#[4f]">>></a> My_USART_Config
|
||||
<LI><a href="#[61]">>></a> configEncoder
|
||||
<LI><a href="#[67]">>></a> initServo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[4e]"></a>MyGPIO_Read</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, drivergpio.o(.text.MyGPIO_Read))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Read
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[4d]">>></a> LocaliserZero
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[5f]"></a>MyGPIO_Reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, drivergpio.o(.text.MyGPIO_Reset))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Reset
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[5d]">>></a> Update_Motor_PWM
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[5e]"></a>MyGPIO_Set</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, drivergpio.o(.text.MyGPIO_Set))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = MyGPIO_Set
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[5d]">>></a> Update_Motor_PWM
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[66]"></a>MyTimer_PWM</STRONG> (Thumb, 1010 bytes, Stack size 16 bytes, pwm.o(.text.MyTimer_PWM))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = MyTimer_PWM
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[65]">>></a> initPlato
|
||||
<LI><a href="#[67]">>></a> initServo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[4f]"></a>My_USART_Config</STRONG> (Thumb, 108 bytes, Stack size 24 bytes, myuart.o(.text.My_USART_Config))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = My_USART_Config ⇒ MyGPIO_Init
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[52]">>></a> __NVIC_SetPriority
|
||||
<LI><a href="#[51]">>></a> __NVIC_EnableIRQ
|
||||
<LI><a href="#[50]">>></a> MyGPIO_Init
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[53]"></a>RecupAccelo</STRONG> (Thumb, 108 bytes, Stack size 24 bytes, accelerometre.o(.text.RecupAccelo))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = RecupAccelo
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[56]">>></a> MySPI_Read
|
||||
<LI><a href="#[57]">>></a> MySPI_Set_NSS
|
||||
<LI><a href="#[55]">>></a> MySPI_Send
|
||||
<LI><a href="#[54]">>></a> MySPI_Clear_NSS
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[4c]"></a>Servo_Moteur</STRONG> (Thumb, 56 bytes, Stack size 24 bytes, servo.o(.text.Servo_Moteur))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 44<LI>Call Chain = Servo_Moteur ⇒ Set_DutyCycle_PWM
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[58]">>></a> Set_DutyCycle_PWM
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[4b]">>></a> LacheVoile
|
||||
<LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[58]"></a>Set_DutyCycle_PWM</STRONG> (Thumb, 102 bytes, Stack size 20 bytes, pwm.o(.text.Set_DutyCycle_PWM))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = Set_DutyCycle_PWM
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[4c]">>></a> Servo_Moteur
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[60]"></a>Set_DutyCycle_PWM_Plateau</STRONG> (Thumb, 124 bytes, Stack size 24 bytes, pwm.o(.text.Set_DutyCycle_PWM_Plateau))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = Set_DutyCycle_PWM_Plateau
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[5d]">>></a> Update_Motor_PWM
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[36]"></a>SystemInit</STRONG> (Thumb, 102 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SystemInit))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = SystemInit ⇒ SetSysClock ⇒ SetSysClockTo72
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[59]">>></a> SetSysClock
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
|
||||
</UL>
|
||||
<P><STRONG><a name="[26]"></a>TIM2_IRQHandler</STRONG> (Thumb, 62 bytes, Stack size 8 bytes, horloge.o(.text.TIM2_IRQHandler))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TIM2_IRQHandler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[27]"></a>TIM3_IRQHandler</STRONG> (Thumb, 66 bytes, Stack size 8 bytes, horloge.o(.text.TIM3_IRQHandler))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TIM3_IRQHandler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[28]"></a>TIM4_IRQHandler</STRONG> (Thumb, 66 bytes, Stack size 8 bytes, horloge.o(.text.TIM4_IRQHandler))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TIM4_IRQHandler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[62]"></a>Timer_Init</STRONG> (Thumb, 230 bytes, Stack size 8 bytes, horloge.o(.text.Timer_Init))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Timer_Init
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[65]">>></a> initPlato
|
||||
<LI><a href="#[61]">>></a> configEncoder
|
||||
<LI><a href="#[67]">>></a> initServo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[2f]"></a>USART1_IRQHandler</STRONG> (Thumb, 54 bytes, Stack size 16 bytes, myuart.o(.text.USART1_IRQHandler))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = USART1_IRQHandler
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
|
||||
</UL>
|
||||
<P><STRONG><a name="[69]"></a>USART_IT_Receive_Enable</STRONG> (Thumb, 18 bytes, Stack size 4 bytes, myuart.o(.text.USART_IT_Receive_Enable))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = USART_IT_Receive_Enable
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[5c]"></a>USART_Send_Char</STRONG> (Thumb, 36 bytes, Stack size 8 bytes, myuart.o(.text.USART_Send_Char))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = USART_Send_Char
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[5b]">>></a> USART_Send_String
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[5b]"></a>USART_Send_String</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, myuart.o(.text.USART_Send_String))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = USART_Send_String ⇒ USART_Send_Char
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[5c]">>></a> USART_Send_Char
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[6d]">>></a> sendinfoADC
|
||||
<LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[5d]"></a>Update_Motor_PWM</STRONG> (Thumb, 84 bytes, Stack size 24 bytes, plateau.o(.text.Update_Motor_PWM))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = Update_Motor_PWM ⇒ Set_DutyCycle_PWM_Plateau
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[60]">>></a> Set_DutyCycle_PWM_Plateau
|
||||
<LI><a href="#[5f]">>></a> MyGPIO_Reset
|
||||
<LI><a href="#[5e]">>></a> MyGPIO_Set
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[38]">>></a> pilotage
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[6b]"></a>angleVent</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, girouette.o(.text.angleVent))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = angleVent
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[61]"></a>configEncoder</STRONG> (Thumb, 160 bytes, Stack size 24 bytes, girouette.o(.text.configEncoder))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = configEncoder ⇒ MyGPIO_Init
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[50]">>></a> MyGPIO_Init
|
||||
<LI><a href="#[62]">>></a> Timer_Init
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[68]"></a>initADC</STRONG> (Thumb, 136 bytes, Stack size 0 bytes, adc.o(.text.initADC))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[63]"></a>initAccelo</STRONG> (Thumb, 104 bytes, Stack size 16 bytes, accelerometre.o(.text.initAccelo))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = initAccelo ⇒ MySPI_Init
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[57]">>></a> MySPI_Set_NSS
|
||||
<LI><a href="#[55]">>></a> MySPI_Send
|
||||
<LI><a href="#[54]">>></a> MySPI_Clear_NSS
|
||||
<LI><a href="#[64]">>></a> MySPI_Init
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[65]"></a>initPlato</STRONG> (Thumb, 106 bytes, Stack size 16 bytes, plateau.o(.text.initPlato))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = initPlato ⇒ MyTimer_PWM
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[66]">>></a> MyTimer_PWM
|
||||
<LI><a href="#[50]">>></a> MyGPIO_Init
|
||||
<LI><a href="#[62]">>></a> Timer_Init
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[67]"></a>initServo</STRONG> (Thumb, 92 bytes, Stack size 16 bytes, servo.o(.text.initServo))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = initServo ⇒ MyTimer_PWM
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[66]">>></a> MyTimer_PWM
|
||||
<LI><a href="#[50]">>></a> MyGPIO_Init
|
||||
<LI><a href="#[62]">>></a> Timer_Init
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[35]"></a>main</STRONG> (Thumb, 366 bytes, Stack size 80 bytes, principal.o(.text.main))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 320<LI>Call Chain = main ⇒ sendinfoADC ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[6d]">>></a> sendinfoADC
|
||||
<LI><a href="#[4b]">>></a> LacheVoile
|
||||
<LI><a href="#[53]">>></a> RecupAccelo
|
||||
<LI><a href="#[4c]">>></a> Servo_Moteur
|
||||
<LI><a href="#[6c]">>></a> vent2voile
|
||||
<LI><a href="#[6b]">>></a> angleVent
|
||||
<LI><a href="#[63]">>></a> initAccelo
|
||||
<LI><a href="#[6a]">>></a> Init_IT_Receive
|
||||
<LI><a href="#[65]">>></a> initPlato
|
||||
<LI><a href="#[5b]">>></a> USART_Send_String
|
||||
<LI><a href="#[69]">>></a> USART_IT_Receive_Enable
|
||||
<LI><a href="#[68]">>></a> initADC
|
||||
<LI><a href="#[4f]">>></a> My_USART_Config
|
||||
<LI><a href="#[4d]">>></a> LocaliserZero
|
||||
<LI><a href="#[61]">>></a> configEncoder
|
||||
<LI><a href="#[67]">>></a> initServo
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
|
||||
</UL>
|
||||
<P><STRONG><a name="[38]"></a>pilotage</STRONG> (Thumb, 26 bytes, Stack size 16 bytes, principal.o(.text.pilotage))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = pilotage ⇒ Update_Motor_PWM ⇒ Set_DutyCycle_PWM_Plateau
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[5d]">>></a> Update_Motor_PWM
|
||||
</UL>
|
||||
<BR>[Address Reference Count : 1]<UL><LI> principal.o(.text.main)
|
||||
</UL>
|
||||
<P><STRONG><a name="[6e]"></a>recupADC</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, adc.o(.text.recupADC))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = recupADC
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[6d]">>></a> sendinfoADC
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[6d]"></a>sendinfoADC</STRONG> (Thumb, 196 bytes, Stack size 152 bytes, adc.o(.text.sendinfoADC))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 240<LI>Call Chain = sendinfoADC ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[6f]">>></a> snprintf
|
||||
<LI><a href="#[3f]">>></a> __aeabi_d2iz
|
||||
<LI><a href="#[3c]">>></a> __aeabi_dmul
|
||||
<LI><a href="#[3e]">>></a> __aeabi_i2d
|
||||
<LI><a href="#[6e]">>></a> recupADC
|
||||
<LI><a href="#[5b]">>></a> USART_Send_String
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[6c]"></a>vent2voile</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, girouette.o(.text.vent2voile))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = vent2voile
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[35]">>></a> main
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[54]"></a>MySPI_Clear_NSS</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Clear_NSS))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[53]">>></a> RecupAccelo
|
||||
<LI><a href="#[63]">>></a> initAccelo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[64]"></a>MySPI_Init</STRONG> (Thumb, 480 bytes, Stack size 4 bytes, myspi.o(i.MySPI_Init))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = MySPI_Init
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[57]">>></a> MySPI_Set_NSS
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[63]">>></a> initAccelo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[56]"></a>MySPI_Read</STRONG> (Thumb, 70 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Read))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[53]">>></a> RecupAccelo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[55]"></a>MySPI_Send</STRONG> (Thumb, 68 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Send))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[53]">>></a> RecupAccelo
|
||||
<LI><a href="#[63]">>></a> initAccelo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[57]"></a>MySPI_Set_NSS</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, myspi.o(i.MySPI_Set_NSS))
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[64]">>></a> MySPI_Init
|
||||
<LI><a href="#[53]">>></a> RecupAccelo
|
||||
<LI><a href="#[63]">>></a> initAccelo
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[70]"></a>__0snprintf</STRONG> (Thumb, 48 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[71]">>></a> _printf_core
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[83]"></a>__1snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[84]"></a>__2snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[85]"></a>__c89snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[6f]"></a>snprintf</STRONG> (Thumb, 0 bytes, Stack size 40 bytes, printfa.o(i.__0snprintf))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = snprintf
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[6d]">>></a> sendinfoADC
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[86]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[87]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
|
||||
|
||||
<P><STRONG><a name="[88]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
|
||||
<P>
|
||||
<H3>
|
||||
Local Symbols
|
||||
</H3>
|
||||
<P><STRONG><a name="[51]"></a>__NVIC_EnableIRQ</STRONG> (Thumb, 48 bytes, Stack size 4 bytes, myuart.o(.text.__NVIC_EnableIRQ))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = __NVIC_EnableIRQ
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[4f]">>></a> My_USART_Config
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[52]"></a>__NVIC_SetPriority</STRONG> (Thumb, 66 bytes, Stack size 8 bytes, myuart.o(.text.__NVIC_SetPriority))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __NVIC_SetPriority
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[4f]">>></a> My_USART_Config
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[59]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SetSysClock))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SetSysClock ⇒ SetSysClockTo72
|
||||
</UL>
|
||||
<BR>[Calls]<UL><LI><a href="#[5a]">>></a> SetSysClockTo72
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[36]">>></a> SystemInit
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[5a]"></a>SetSysClockTo72</STRONG> (Thumb, 290 bytes, Stack size 16 bytes, system_stm32f10x.o(.text.SetSysClockTo72))
|
||||
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = SetSysClockTo72
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[59]">>></a> SetSysClock
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[72]"></a>_fp_digits</STRONG> (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[41]">>></a> __aeabi_uldivmod
|
||||
<LI><a href="#[48]">>></a> __aeabi_ddiv
|
||||
<LI><a href="#[44]">>></a> __aeabi_dadd
|
||||
<LI><a href="#[49]">>></a> __aeabi_d2ulz
|
||||
<LI><a href="#[73]">>></a> __aeabi_cdrcmple
|
||||
<LI><a href="#[3c]">>></a> __aeabi_dmul
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[71]">>></a> _printf_core
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[71]"></a>_printf_core</STRONG> (Thumb, 1744 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
|
||||
<BR><BR>[Calls]<UL><LI><a href="#[41]">>></a> __aeabi_uldivmod
|
||||
<LI><a href="#[76]">>></a> __aeabi_uidivmod
|
||||
<LI><a href="#[74]">>></a> _printf_pre_padding
|
||||
<LI><a href="#[75]">>></a> _printf_post_padding
|
||||
<LI><a href="#[72]">>></a> _fp_digits
|
||||
</UL>
|
||||
<BR>[Called By]<UL><LI><a href="#[70]">>></a> __0snprintf
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[75]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[71]">>></a> _printf_core
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[74]"></a>_printf_pre_padding</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED)
|
||||
<BR><BR>[Called By]<UL><LI><a href="#[71]">>></a> _printf_core
|
||||
</UL>
|
||||
|
||||
<P><STRONG><a name="[39]"></a>_snputc</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, printfa.o(i._snputc))
|
||||
<BR>[Address Reference Count : 1]<UL><LI> printfa.o(i.__0snprintf)
|
||||
</UL><P>
|
||||
<H3>
|
||||
Undefined Global Symbols
|
||||
</H3><HR></body></html>
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
--cpu Cortex-M3
|
||||
".\objects\principal.o"
|
||||
".\objects\accelerometre.o"
|
||||
".\objects\girouette.o"
|
||||
".\objects\servo.o"
|
||||
".\objects\adc.o"
|
||||
".\objects\drivergpio.o"
|
||||
".\objects\horloge.o"
|
||||
".\objects\i2c.o"
|
||||
".\objects\mygpio.o"
|
||||
".\objects\myuart.o"
|
||||
".\objects\plateau.o"
|
||||
".\objects\pwm.o"
|
||||
".\objects\rtc.o"
|
||||
".\Lib_Com_Periph_2022.lib"
|
||||
".\objects\startup_stm32f10x_md.o"
|
||||
".\objects\system_stm32f10x.o"
|
||||
--library_type=microlib --ro-base 0x08000000 --entry 0x08000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors --strict --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
|
||||
--info sizes --info totals --info unused --info veneers
|
||||
--list ".\Listings\Projet0.map" -o .\Objects\Projet0.axf
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
Dependencies for Project 'Projet0', Target 'Reel': (DO NOT MODIFY !)
|
||||
CompilerVersion: 6230000::V6.23::ARMCLANG
|
||||
F (.\Application\principal.c)(0x69428927)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/principal.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\Horloge.h)(0x69428212)
|
||||
I (Services\Include\Accelerometre.h)(0x69428212)
|
||||
I (Services\Include\Girouette.h)(0x69428212)
|
||||
I (Services\Include\Servo.h)(0x69428212)
|
||||
I (Pilotes\Include\MyUart.h)(0x69428212)
|
||||
I (Pilotes\Include\Plateau.h)(0x69428212)
|
||||
I (Pilotes\Include\I2C.h)(0x69428212)
|
||||
I (Pilotes\Include\RTC.h)(0x69428212)
|
||||
I (Pilotes\Include\ADC.h)(0x69428212)
|
||||
F (.\Services\Source\Accelerometre.c)(0x69428213)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/accelerometre.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\Horloge.h)(0x69428212)
|
||||
I (Pilotes\Include\MySPI.h)(0x69428212)
|
||||
I (Services\Include\Accelerometre.h)(0x69428212)
|
||||
I (Services\Include\Servo.h)(0x69428212)
|
||||
F (.\Services\Source\Girouette.c)(0x69428213)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/girouette.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\Horloge.h)(0x69428212)
|
||||
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
|
||||
I (Services\Include\Girouette.h)(0x69428212)
|
||||
I (Pilotes\Include\PWM.h)(0x69428212)
|
||||
F (.\Services\Source\Servo.c)(0x69428213)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/servo.o -MMD)
|
||||
I (Services\Include\Servo.h)(0x69428212)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
|
||||
I (Pilotes\Include\PWM.h)(0x69428212)
|
||||
I (Pilotes\Include\Horloge.h)(0x69428212)
|
||||
F (.\Pilotes\Source\ADC.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/adc.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\ADC.h)(0x69428212)
|
||||
I (Pilotes\Include\MyUart.h)(0x69428212)
|
||||
F (.\Pilotes\Source\DriverGPIO.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/drivergpio.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
|
||||
F (.\Pilotes\Source\Horloge.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/horloge.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\Horloge.h)(0x69428212)
|
||||
F (.\Pilotes\Source\I2C.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/i2c.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\I2C.h)(0x69428212)
|
||||
F (.\Pilotes\Source\MYGPIO.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/mygpio.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\MYGPIO.h)(0x69428212)
|
||||
F (.\Pilotes\Source\MyUart.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/myuart.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
|
||||
F (.\Pilotes\Source\Plateau.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/plateau.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\PWM.h)(0x69428212)
|
||||
I (Pilotes\Include\DriverGPIO.h)(0x69428212)
|
||||
I (Pilotes\Include\Horloge.h)(0x69428212)
|
||||
F (.\Pilotes\Source\PWM.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/pwm.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
I (Pilotes\Include\PWM.h)(0x69428212)
|
||||
F (.\Pilotes\Source\RTC.c)(0x694285E6)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/rtc.o -MMD)
|
||||
I (Pilotes\Include\RTC.h)(0x69428212)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
F (.\Lib_Com_Periph_2022.lib)(0x69428212)()
|
||||
F (RTE/Device/STM32F103RB/RTE_Device.h)(0x69428212)()
|
||||
F (RTE/Device/STM32F103RB/startup_stm32f10x_md.s)(0x69428212)(--target=arm-arm-none-eabi -mcpu=cortex-m3 -masm=auto -Wa,armasm,--diag_suppress=A1950W -c
-gdwarf-4 -Wa,armasm,--pd,"__MICROLIB SETA 1"
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-Wa,armasm,--pd,"__UVISION_VERSION SETA 542" -Wa,armasm,--pd,"STM32F10X_MD SETA 1" -Wa,armasm,--pd,"_RTE_ SETA 1"
-o ./objects/startup_stm32f10x_md.o)
|
||||
F (RTE/Device/STM32F103RB/system_stm32f10x.c)(0x69428212)(-xc --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-D__MICROLIB -gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./Pilotes/Include -I ./Services/Include -I . -I ./Services/Source -I ./Pilotes/Source
-I./RTE/Device/STM32F103RB
-I./RTE/_Reel
-IC:/Users/Brage/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/Brage/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
-o ./objects/system_stm32f10x.o -MMD)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h)(0x67AE2C12)
|
||||
I (RTE\_Reel\RTE_Components.h)(0x69428223)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h)(0x664C3AF8)
|
||||
I (C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h)(0x67AE2C12)
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
./objects/accelerometre.o: Services\Source\Accelerometre.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\Horloge.h Pilotes\Include\MySPI.h \
|
||||
Services\Include\Accelerometre.h Services\Include\Servo.h
|
||||
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
|||
./objects/adc.o: Pilotes\Source\ADC.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\ADC.h Pilotes\Include\MyUart.h
|
||||
BIN
Objects/adc.o
BIN
Objects/adc.o
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
|||
./objects/drivergpio.o: Pilotes\Source\DriverGPIO.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\DriverGPIO.h
|
||||
Binary file not shown.
|
|
@ -1,7 +0,0 @@
|
|||
./objects/girouette.o: Services\Source\Girouette.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\Horloge.h Pilotes\Include\DriverGPIO.h \
|
||||
Services\Include\Girouette.h Pilotes\Include\PWM.h
|
||||
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
|||
./objects/horloge.o: Pilotes\Source\Horloge.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\Horloge.h
|
||||
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
|||
./objects/i2c.o: Pilotes\Source\I2C.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\I2C.h
|
||||
BIN
Objects/i2c.o
BIN
Objects/i2c.o
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
|||
./objects/mygpio.o: Pilotes\Source\MYGPIO.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\MYGPIO.h
|
||||
BIN
Objects/mygpio.o
BIN
Objects/mygpio.o
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
|||
./objects/myuart.o: Pilotes\Source\MyUart.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\DriverGPIO.h
|
||||
BIN
Objects/myuart.o
BIN
Objects/myuart.o
Binary file not shown.
|
|
@ -1,7 +0,0 @@
|
|||
./objects/plateau.o: Pilotes\Source\Plateau.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\PWM.h Pilotes\Include\DriverGPIO.h \
|
||||
Pilotes\Include\Horloge.h
|
||||
Binary file not shown.
|
|
@ -1,9 +0,0 @@
|
|||
./objects/principal.o: Application\principal.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\Horloge.h Services\Include\Accelerometre.h \
|
||||
Services\Include\Girouette.h Services\Include\Servo.h \
|
||||
Pilotes\Include\MyUart.h Pilotes\Include\Plateau.h \
|
||||
Pilotes\Include\I2C.h Pilotes\Include\RTC.h Pilotes\Include\ADC.h
|
||||
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
|||
./objects/pwm.o: Pilotes\Source\PWM.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\PWM.h
|
||||
BIN
Objects/pwm.o
BIN
Objects/pwm.o
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
|||
./objects/rtc.o: Pilotes\Source\RTC.c Pilotes\Include\RTC.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h
|
||||
BIN
Objects/rtc.o
BIN
Objects/rtc.o
Binary file not shown.
|
|
@ -1,7 +0,0 @@
|
|||
./objects/servo.o: Services\Source\Servo.c Services\Include\Servo.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
|
||||
Pilotes\Include\DriverGPIO.h Pilotes\Include\PWM.h \
|
||||
Pilotes\Include\Horloge.h
|
||||
BIN
Objects/servo.o
BIN
Objects/servo.o
Binary file not shown.
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
|||
./objects/system_stm32f10x.o: RTE\Device\STM32F103RB\system_stm32f10x.c \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
|
||||
RTE\_Reel\RTE_Components.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
|
||||
C:\Users\Brage\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h
|
||||
Binary file not shown.
3664
Projet0.uvguix
3664
Projet0.uvguix
File diff suppressed because one or more lines are too long
|
|
@ -1,76 +1,89 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <stdio.h>
|
||||
#include "Horloge.h"
|
||||
#include "Accelerometre.h"
|
||||
#include "Girouette.h"
|
||||
#include "Servo.h"
|
||||
#include "MyUart.h"
|
||||
#include "Plateau.h"
|
||||
#include "I2C.h"
|
||||
#include "RTC.h"
|
||||
#include "ADC.h"
|
||||
|
||||
//Variables
|
||||
int angleVentVar;
|
||||
int angleVoileVar;
|
||||
volatile uint32_t moy;
|
||||
|
||||
void pilotage(volatile int commande) {
|
||||
Update_Motor_PWM(commande,TIM3,3);
|
||||
};
|
||||
|
||||
int main (void) {
|
||||
// ---- Setup ------
|
||||
// Servo.c
|
||||
initServo(TIM4, 3);
|
||||
|
||||
// Giroutte.c
|
||||
configEncoder(TIM2);
|
||||
LocaliserZero();
|
||||
|
||||
// Test de lecture ADC
|
||||
My_USART_Config(USART1, 7500);
|
||||
initADC();
|
||||
|
||||
// Init moyenne glissante
|
||||
int i = 0;
|
||||
uint32_t moyenne[LONGUEUR_MOY];
|
||||
for (int p = 0; p<LONGUEUR_MOY; p++){moyenne[p]=0xFFFF;}
|
||||
uint32_t sum;
|
||||
|
||||
//init Uart
|
||||
My_USART_Config(USART1, 7500); //call with baudrate which is one over this value times clock frequency
|
||||
USART_IT_Receive_Enable(USART1);
|
||||
USART_Send_String(USART1,"bonjour bateau\r\n");
|
||||
|
||||
// Init plateau
|
||||
initPlato(TIM3,3);
|
||||
Init_IT_Receive(pilotage);
|
||||
|
||||
|
||||
// Init lacheurVoile
|
||||
initAccelo();
|
||||
initServo(TIM4, 3);
|
||||
|
||||
//Init RTC
|
||||
//initRTC();
|
||||
//getTime();
|
||||
|
||||
// ----- Opération -----
|
||||
while(1){
|
||||
// Girouette
|
||||
angleVentVar = angleVent(TIM2); // Récupérer l'angle de girouette
|
||||
angleVoileVar = vent2voile(angleVentVar); // Transformer l'angle de girouette au l'angle des voiles souhaités
|
||||
Servo_Moteur(angleVoileVar, TIM4, 3); // Faire bouger le moteur servo
|
||||
|
||||
// Acceleromètre
|
||||
moyenne[i] = RecupAccelo()[2]; // Récuperation et ajout de la valeur plus récente dans le tableau dans la position i
|
||||
i++; if (i >= LONGUEUR_MOY) {i = 0;} // Géstion de la position i dans le tableau pour la moyenne glissante
|
||||
sum = 0; for (int j = 0; j < LONGUEUR_MOY; j++){sum += moyenne[j];} moy = sum / LONGUEUR_MOY; // Calcul de la moyenne glissante
|
||||
LacheVoile(ANGLE_LIMITE, (uint16_t) moy); // Lache la voile si le bateau dépasse l'angle limite
|
||||
|
||||
// ADC
|
||||
sendinfoADC();
|
||||
}
|
||||
}
|
||||
|
||||
#include <stm32f10x.h>
|
||||
#include <stdio.h> // Pour afficher
|
||||
#include "Horloge.h"
|
||||
#include "Accelerometre.h"
|
||||
#include "Girouette.h"
|
||||
#include "Servo.h"
|
||||
#include "MyUart.h"
|
||||
#include "Plateau.h"
|
||||
#include "I2C.h"
|
||||
#include "RTC.h"
|
||||
|
||||
|
||||
void pilotage(int commande) {
|
||||
Update_Motor_PWM(commande,TIM3,3);
|
||||
};
|
||||
|
||||
|
||||
//#define ANGLE_LIMITE 0x0E38
|
||||
|
||||
//Variables
|
||||
int angleVentVar;
|
||||
int angleVoileVar;
|
||||
|
||||
uint16_t * Melding;
|
||||
volatile uint16_t X;
|
||||
volatile uint16_t Y;
|
||||
volatile uint16_t Z;
|
||||
volatile uint32_t moy;
|
||||
//volatile uint16_t Angle_lim = 0x1500;
|
||||
|
||||
//volatile uint16_t Angle_lim = 0x1E20 - 60*ANGLE;
|
||||
|
||||
|
||||
int main (void) {
|
||||
// ---- Setup ------
|
||||
// Servo.c
|
||||
initServo(TIM4, 3);
|
||||
// Giroutte.c
|
||||
configEncoder(TIM2);
|
||||
|
||||
/*
|
||||
//Test de lecture ADC
|
||||
My_USART_Config(USART1, 7500);
|
||||
initADC();
|
||||
while(1){
|
||||
sendinfoADC();
|
||||
}
|
||||
*/
|
||||
|
||||
// Init moyenne glissante
|
||||
int i = 0;
|
||||
uint32_t moyenne[LONGUEUR_MOY];
|
||||
for (int p = 0; p<LONGUEUR_MOY; p++){moyenne[p]=0xFFFF;}
|
||||
|
||||
//init Uart
|
||||
My_USART_Config(USART1, 7500); //call with baudrate which is one over this value times clock frequency
|
||||
USART_IT_Receive_Enable(USART1);
|
||||
Init_IT_Receive(pilotage);
|
||||
USART_Send_String(USART1,"bonjour bateau\r\n");
|
||||
|
||||
|
||||
|
||||
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
|
||||
// Init lacheurVoile
|
||||
initAccelo();
|
||||
initServo(TIM4, 3);
|
||||
|
||||
// Trouver l'index
|
||||
LocaliserZero();
|
||||
int sum;
|
||||
|
||||
while(1){
|
||||
// Girouette
|
||||
angleVentVar = angleVent(TIM2); // Récupérer l'angle de girouette
|
||||
angleVoileVar = vent2voile(angleVentVar); // Transformer l'angle de girouette au l'angle des voiles souhaités
|
||||
Servo_Moteur(angleVoileVar, TIM4, 3); // Faire bouger le moteur servo
|
||||
|
||||
// Acceleromètre
|
||||
moyenne[i] = RecupAccelo()[2]; // Récuperation et ajout de la valeur plus récente dans le tableau dans la position i
|
||||
i++; if (i >= LONGUEUR_MOY) {i = 0;} // Géstion de la position i dans le tableau pour la moyenne glissante
|
||||
sum = 0; for (int j = 0; j < LONGUEUR_MOY; j++){sum += moyenne[j];} moy = sum / LONGUEUR_MOY; // Calcul de la moyenne glissante
|
||||
LacheVoile(ANGLE_LIMITE, (uint16_t) moy); // Lache la voile si le bateau dépasse l'angle limite
|
||||
|
||||
LacheVoile(50, (uint16_t)moy);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
140
ProjetInitial/Pilotes/Source/PWM.c
Executable file
140
ProjetInitial/Pilotes/Source/PWM.c
Executable file
|
|
@ -0,0 +1,140 @@
|
|||
#include "stm32f10x.h"
|
||||
#include "Horloge.h"
|
||||
#include "DriverGPIO.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void My_PWM_Channel_Config(TIM_TypeDef* Timer , char channel){
|
||||
switch (channel) {
|
||||
case 1:
|
||||
// Configuration de CC1
|
||||
Timer->CCMR1 &= ~TIM_CCMR1_CC1S; // Output
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; // Mode PWM 1 (0b110)
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC1PE; // Preload Enable
|
||||
Timer->CCR1 = 0;
|
||||
Timer->CCER |= TIM_CCER_CC1E; // Output Enable
|
||||
break; // <<-- AJOUTER LE BREAK
|
||||
|
||||
case 2:
|
||||
// Configuration de CC2 (vos registres dans le code initial étaient incohérents)
|
||||
Timer->CCMR1 &= ~TIM_CCMR1_CC2S; // Output
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1; // Mode PWM 1 (0b110)
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC2PE; // Preload Enable
|
||||
Timer->CCR2 = 0;
|
||||
Timer->CCER |= TIM_CCER_CC2E; // Output Enable
|
||||
break;}
|
||||
|
||||
Timer->CR1 |= TIM_CR1_ARPE; // Auto-Reload Preload
|
||||
Timer->BDTR |= TIM_BDTR_MOE; // Main Output Enable (pour les timers avancés TIM1/8)
|
||||
Timer->EGR |= TIM_EGR_UG;
|
||||
Timer->CR1 |= TIM_CR1_CEN;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
void MyTimer_PWM(TIM_TypeDef * Timer , int Channel){
|
||||
int pwrmd;
|
||||
#if POWERMODE //Powermode 1
|
||||
pwrmd = 0b110;
|
||||
#else
|
||||
pwrmd = 0b110; //Powermode 2
|
||||
#endif
|
||||
|
||||
if (Channel == 1){
|
||||
Timer->CCMR1 &= ~(0b111<<4); //On clear les trois bits qui sont de pwm
|
||||
Timer->CCMR1 |= (pwrmd<<4); //On affecte le powermode au bits de lecture pour le µ-controlleur
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC1PE; //Update preload, il n'affecte pas le valeur avant que la prochaine cycle
|
||||
Timer->CCER = TIM_CCER_CC1E; //Enable le pin voulu basculer
|
||||
}
|
||||
else if (Channel == 2){
|
||||
Timer->CCMR1 &= ~(0b111<<12); //Le TIMx_CCMR1 configure deux channels, de bit [6:4] CH1, [14:12] CH2 (OC2M = Output Channel 2 )
|
||||
Timer->CCMR1 |= (pwrmd<<12);
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC2PE;
|
||||
Timer->CCER |= TIM_CCER_CC2E;
|
||||
}
|
||||
else if (Channel == 3){
|
||||
Timer->CCMR1 &= ~(0b111<<4);
|
||||
Timer->CCMR2 |= (pwrmd<<4);
|
||||
Timer->CCMR2 |= TIM_CCMR2_OC3PE;
|
||||
Timer->CCER |= TIM_CCER_CC3E;
|
||||
}
|
||||
else if (Channel == 4){
|
||||
Timer->CCMR1 &= ~(0b111<<12);
|
||||
Timer->CCMR2 |= (pwrmd<<12);
|
||||
Timer->CCMR2 |= TIM_CCMR2_OC4PE;
|
||||
Timer->CCER |= TIM_CCER_CC4E;
|
||||
}
|
||||
|
||||
//En dessous d'ici, on a l'aide du plus gentil chat que je connais
|
||||
// Enable auto-reload preload -- //Ensures that your initial configuration — PWM mode, duty cycle, period — actually takes effect before the timer starts counting.
|
||||
Timer->CR1 |= TIM_CR1_ARPE;
|
||||
// Force update event to load ARR and CCR values immediately
|
||||
Timer->EGR |= TIM_EGR_UG;
|
||||
// Start the timer
|
||||
Timer->CR1 |= TIM_CR1_CEN;
|
||||
|
||||
switch (Channel) {
|
||||
case 1:
|
||||
if (Timer == TIM1){GPIOA->CRH &=
|
||||
~(0xF<<0*4); GPIOA->CRH |= (0xA<<0*4); TIM1->BDTR |= 1<<15; }
|
||||
if (Timer == TIM2){GPIOA->CRL &=
|
||||
~(0xF<<0*4); GPIOA->CRL |= (0xA<<0*4);}
|
||||
if (Timer == TIM3){GPIOA->CRL &=
|
||||
~(0xF<<6*4); GPIOA->CRL |= (0xA<<6*4);}
|
||||
if (Timer == TIM4){GPIOB->CRL &=
|
||||
~(0xF<<5*4); GPIOB->CRL |= (0xA<<5*4);}
|
||||
break;
|
||||
case 2:
|
||||
if (Timer == TIM1){GPIOA->CRH &=
|
||||
~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &=
|
||||
~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4);}
|
||||
if (Timer == TIM3){GPIOA->CRL &=
|
||||
~(0xF<<7*4); GPIOA->CRL |= (0xA<<7*4);}
|
||||
if (Timer == TIM4){GPIOB->CRL &=
|
||||
~(0xF<<7*4); GPIOB->CRL |= (0xA<<7*4);}
|
||||
break;
|
||||
case 3:
|
||||
if (Timer == TIM1){GPIOA->CRH &=
|
||||
~(0xF<<2*4); GPIOA->CRH |= (0xA<<2*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &=
|
||||
~(0xF<<2*4); GPIOA->CRL |= (0xA<<2*4);}
|
||||
if (Timer == TIM3){GPIOB->CRL &=
|
||||
~(0xF<<0*4); GPIOB->CRL |= (0xA<<0*4);}
|
||||
if (Timer == TIM4){GPIOB->CRH &=
|
||||
~(0xF<<0*4); GPIOB->CRH |= (0xA<<0*4);}
|
||||
break;
|
||||
case 4:
|
||||
if (Timer == TIM1){GPIOA->CRH &=
|
||||
~(0xF<<3*4); GPIOA->CRH |= (0xA<<3*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &=
|
||||
~(0xF<<3*4); GPIOA->CRL |= (0xA<<3*4);}
|
||||
if (Timer == TIM3){GPIOB->CRL &=
|
||||
~(0xF<<1*4); GPIOB->CRL |= (0xA<<1*4);}
|
||||
if (Timer == TIM4){GPIOB->CRH &=
|
||||
~(0xF<<1*4); GPIOB->CRH |= (0xA<<1*4);}
|
||||
|
||||
}
|
||||
}
|
||||
int Set_DutyCycle_PWM(TIM_TypeDef *Timer, int Channel, int DutyC){
|
||||
int CCR_VAL = (Timer->ARR + 1) * DutyC / 100;
|
||||
switch (Channel){
|
||||
case 1:
|
||||
Timer->CCR1 = CCR_VAL;
|
||||
break;
|
||||
case 2:
|
||||
Timer->CCR2 = CCR_VAL;
|
||||
break;
|
||||
case 3:
|
||||
|
||||
Timer->CCR3 = CCR_VAL;
|
||||
break;
|
||||
case 4:
|
||||
Timer->CCR4 = CCR_VAL;
|
||||
break;
|
||||
default:
|
||||
return -1; // channel invalide
|
||||
}
|
||||
Timer->EGR |= TIM_EGR_UG; // update event
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=638,191,1284,864,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=777,459,1198,864,0)(121=1115,459,1536,864,0)(122=1115,197,1536,602,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=87,170,681,864,0)(132=-1,-1,-1,-1,0)(133=937,170,1531,864,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=638,234,1284,907,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=777,701,1198,1106,0)(121=1276,605,1697,1010,0)(122=1419,197,1840,602,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=87,413,681,1107,0)(132=-1,-1,-1,-1,0)(133=937,506,1531,1200,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
|
|
@ -170,11 +170,6 @@
|
|||
<WinNumber>1</WinNumber>
|
||||
<ItemText>Val_lim</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>4</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>commande,0x0A</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<WatchWindow2>
|
||||
<Ww>
|
||||
|
|
@ -203,7 +198,7 @@
|
|||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>0</aLa>
|
||||
<aLa>1</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
|
|
@ -490,8 +485,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Services\Source\Accelerometre.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Accelerometre.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\src\Servo.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Servo.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -514,8 +509,20 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Services\Source\Servo.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Servo.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\Services\Source\Accelerometre.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Accelerometre.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\MyUart.c</PathWithFileName>
|
||||
<FilenameWithoutPath>MyUart.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -527,18 +534,6 @@
|
|||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\ADC.c</PathWithFileName>
|
||||
<FilenameWithoutPath>ADC.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
|
|
@ -546,8 +541,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\DriverGPIO.c</PathWithFileName>
|
||||
<FilenameWithoutPath>DriverGPIO.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\src\ADC.c</PathWithFileName>
|
||||
<FilenameWithoutPath>ADC.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -558,8 +553,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\Horloge.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Horloge.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\src\DriverGPIO.c</PathWithFileName>
|
||||
<FilenameWithoutPath>DriverGPIO.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -570,8 +565,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\I2C.c</PathWithFileName>
|
||||
<FilenameWithoutPath>I2C.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\src\Horloge.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Horloge.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -582,7 +577,7 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\MYGPIO.c</PathWithFileName>
|
||||
<PathWithFileName>.\src\MYGPIO.c</PathWithFileName>
|
||||
<FilenameWithoutPath>MYGPIO.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
|
|
@ -594,8 +589,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\MyUart.c</PathWithFileName>
|
||||
<FilenameWithoutPath>MyUart.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\src\MyTimer.c</PathWithFileName>
|
||||
<FilenameWithoutPath>MyTimer.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -606,8 +601,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\Plateau.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Plateau.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\src\PWM.c</PathWithFileName>
|
||||
<FilenameWithoutPath>PWM.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -618,8 +613,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\PWM.c</PathWithFileName>
|
||||
<FilenameWithoutPath>PWM.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\src\Timer.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Timer.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
|
@ -630,19 +625,27 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Pilotes\Source\RTC.c</PathWithFileName>
|
||||
<FilenameWithoutPath>RTC.c</FilenameWithoutPath>
|
||||
<PathWithFileName>.\Pilotes\Source\Plateau.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Plateau.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>New Group</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>4</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Lib_Com_Periph_2022.lib</PathWithFileName>
|
||||
<PathWithFileName>..\..\BE_VOILIER\Objects\Lib_Com_Periph_2022.lib</PathWithFileName>
|
||||
<FilenameWithoutPath>Lib_Com_Periph_2022.lib</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
|
|
@ -340,7 +340,7 @@
|
|||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>.\Pilotes\Include;.\Services\Include;.;.\Services\Source;.\Pilotes\Source</IncludePath>
|
||||
<IncludePath>.\Include;.\Pilotes\Include;.\Services\Include;.;.\Services\Source;.\Pilotes\Source</IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
|
|
@ -395,9 +395,9 @@
|
|||
<GroupName>Services</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>Accelerometre.c</FileName>
|
||||
<FileName>Servo.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Services\Source\Accelerometre.c</FilePath>
|
||||
<FilePath>.\src\Servo.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Girouette.c</FileName>
|
||||
|
|
@ -405,9 +405,14 @@
|
|||
<FilePath>.\Services\Source\Girouette.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Servo.c</FileName>
|
||||
<FileName>Accelerometre.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Services\Source\Servo.c</FilePath>
|
||||
<FilePath>.\Services\Source\Accelerometre.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MyUart.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\MyUart.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
|
@ -417,52 +422,121 @@
|
|||
<File>
|
||||
<FileName>ADC.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\ADC.c</FilePath>
|
||||
<FilePath>.\src\ADC.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>DriverGPIO.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\DriverGPIO.c</FilePath>
|
||||
<FilePath>.\src\DriverGPIO.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Horloge.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\Horloge.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>I2C.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\I2C.c</FilePath>
|
||||
<FilePath>.\src\Horloge.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MYGPIO.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\MYGPIO.c</FilePath>
|
||||
<FilePath>.\src\MYGPIO.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MyUart.c</FileName>
|
||||
<FileName>MyTimer.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\MyUart.c</FilePath>
|
||||
<FilePath>.\src\MyTimer.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>PWM.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\src\PWM.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Timer.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\src\Timer.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Plateau.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\Plateau.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>PWM.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\PWM.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>RTC.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\RTC.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>New Group</GroupName>
|
||||
<GroupOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>0</UseCPPCompiler>
|
||||
<RVCTCodeConst>0</RVCTCodeConst>
|
||||
<RVCTZI>0</RVCTZI>
|
||||
<RVCTOtherData>0</RVCTOtherData>
|
||||
<ModuleSelection>0</ModuleSelection>
|
||||
<IncludeInBuild>2</IncludeInBuild>
|
||||
<AlwaysBuild>2</AlwaysBuild>
|
||||
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<GroupArmAds>
|
||||
<Cads>
|
||||
<interw>2</interw>
|
||||
<Optim>0</Optim>
|
||||
<oTime>2</oTime>
|
||||
<SplitLS>2</SplitLS>
|
||||
<OneElfS>2</OneElfS>
|
||||
<Strict>2</Strict>
|
||||
<EnumInt>2</EnumInt>
|
||||
<PlainCh>2</PlainCh>
|
||||
<Ropi>2</Ropi>
|
||||
<Rwpi>2</Rwpi>
|
||||
<wLevel>0</wLevel>
|
||||
<uThumb>2</uThumb>
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<uC99>2</uC99>
|
||||
<uGnu>2</uGnu>
|
||||
<useXO>2</useXO>
|
||||
<v6Lang>0</v6Lang>
|
||||
<v6LangP>0</v6LangP>
|
||||
<vShortEn>2</vShortEn>
|
||||
<vShortWch>2</vShortWch>
|
||||
<v6Lto>2</v6Lto>
|
||||
<v6WtE>2</v6WtE>
|
||||
<v6Rtti>2</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
<interw>2</interw>
|
||||
<Ropi>2</Ropi>
|
||||
<Rwpi>2</Rwpi>
|
||||
<thumb>2</thumb>
|
||||
<SplitLS>2</SplitLS>
|
||||
<SwStkChk>2</SwStkChk>
|
||||
<NoWarn>2</NoWarn>
|
||||
<uSurpInc>2</uSurpInc>
|
||||
<useXO>2</useXO>
|
||||
<ClangAsOpt>0</ClangAsOpt>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>.\Objects</IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
</GroupArmAds>
|
||||
</GroupOption>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>Lib_Com_Periph_2022.lib</FileName>
|
||||
<FileType>4</FileType>
|
||||
<FilePath>.\Lib_Com_Periph_2022.lib</FilePath>
|
||||
<FilePath>..\..\BE_VOILIER\Objects\Lib_Com_Periph_2022.lib</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
|
@ -863,9 +937,9 @@
|
|||
<GroupName>Services</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>Accelerometre.c</FileName>
|
||||
<FileName>Servo.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Services\Source\Accelerometre.c</FilePath>
|
||||
<FilePath>.\src\Servo.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Girouette.c</FileName>
|
||||
|
|
@ -873,9 +947,14 @@
|
|||
<FilePath>.\Services\Source\Girouette.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Servo.c</FileName>
|
||||
<FileName>Accelerometre.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Services\Source\Servo.c</FilePath>
|
||||
<FilePath>.\Services\Source\Accelerometre.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MyUart.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\MyUart.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
|
@ -885,52 +964,52 @@
|
|||
<File>
|
||||
<FileName>ADC.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\ADC.c</FilePath>
|
||||
<FilePath>.\src\ADC.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>DriverGPIO.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\DriverGPIO.c</FilePath>
|
||||
<FilePath>.\src\DriverGPIO.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Horloge.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\Horloge.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>I2C.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\I2C.c</FilePath>
|
||||
<FilePath>.\src\Horloge.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MYGPIO.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\MYGPIO.c</FilePath>
|
||||
<FilePath>.\src\MYGPIO.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MyUart.c</FileName>
|
||||
<FileName>MyTimer.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\MyUart.c</FilePath>
|
||||
<FilePath>.\src\MyTimer.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>PWM.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\src\PWM.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Timer.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\src\Timer.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Plateau.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\Plateau.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>PWM.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\PWM.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>RTC.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Pilotes\Source\RTC.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>New Group</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>Lib_Com_Periph_2022.lib</FileName>
|
||||
<FileType>4</FileType>
|
||||
<FilePath>.\Lib_Com_Periph_2022.lib</FilePath>
|
||||
<FilePath>..\..\BE_VOILIER\Objects\Lib_Com_Periph_2022.lib</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include "DriverGPIO.h"
|
||||
#include "Girouette.h"
|
||||
#include "PWM.h"
|
||||
#include "Servo.h"
|
||||
|
||||
#include <stdlib.h> // Pour abs()
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#include "RTC.h"
|
||||
|
||||
|
||||
void initRTC() {
|
||||
initRTC() {
|
||||
RTC -> PRLL = 0x7FFF; // Obtenir un période de 1 seconde
|
||||
RTC -> PRLH = 0xFFFF; // Le plus grand possible
|
||||
}
|
||||
8
ProjetInitial/include/ADC.h
Executable file
8
ProjetInitial/include/ADC.h
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define GPIO_ANALOG_INPUT 0
|
||||
|
||||
void initADC();
|
||||
int recupADC(void);
|
||||
void sendinfoADC();
|
||||
17
ProjetInitial/include/DriverGPIO.h
Executable file
17
ProjetInitial/include/DriverGPIO.h
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef DRIVERGPIO_H_
|
||||
#define DRIVERGPIO_H_
|
||||
#include "stm32f10x.h"
|
||||
#define In_Floating 0x4
|
||||
#define In_PullDown 0x8
|
||||
#define In_PullUp 0x8
|
||||
#define In_Analog 0x0
|
||||
#define Out_Ppull 0x3
|
||||
#define Out_OD 0x7
|
||||
#define AltOut_Ppull 0xB
|
||||
#define AltOut_OD 0xF
|
||||
extern void MyGPIO_Init(GPIO_TypeDef * GPIO, char pin, char conf );
|
||||
extern int MyGPIO_Read(GPIO_TypeDef * GPIO, char GPIO_Pin); // renvoie 0 ou autre chose different de 0
|
||||
extern void MyGPIO_Set(GPIO_TypeDef * GPIO, char GPIO_Pin);
|
||||
extern void MyGPIO_Reset(GPIO_TypeDef * GPIO, char GPIO_Pin);
|
||||
extern void MyGPIO_Toggle(GPIO_TypeDef * GPIO, char GPIO_Pin);
|
||||
#endif
|
||||
12
ProjetInitial/include/Horloge.h
Executable file
12
ProjetInitial/include/Horloge.h
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
#include <stm32f10x.h>
|
||||
#define PSC_VAL 624
|
||||
#define ARR_VAL 0xE0FF
|
||||
|
||||
//DUTY CYCLE
|
||||
#define DUTYC 70 //Chiffre entre 0 et 100, où 100 est 100% duty cycle
|
||||
#define POWERMODETIMER 1 // 1 vaut powermode 1, 0 vaut powermode 2 (Powermode pour le config de dutycycle)
|
||||
//Powermode 1 reste sur la bonne polarité: cad. si DUTY_CYCLE vaut 60 alors le signal reste HIGH pour 60% du periode, inverse pour pwmd2
|
||||
//Timer
|
||||
void Timer_Init(TIM_TypeDef *Timer, unsigned short Autoreload, unsigned short Prescaler);
|
||||
void MyTimer_ActiveIT(TIM_TypeDef * Timer, char Prio, void(*Interrupt_fonc)(void));
|
||||
void TIM2_IRQHandler(void);
|
||||
38
ProjetInitial/include/MYGPIO.h
Executable file
38
ProjetInitial/include/MYGPIO.h
Executable file
|
|
@ -0,0 +1,38 @@
|
|||
//Definitions
|
||||
|
||||
//INTERNE
|
||||
#define LED_PIN_INTERNE (5) // 5 pour le LED de Arduino
|
||||
#define BUTTON_GPIO_INTERNE (GPIOA) //GPIOA pour l'Arduion
|
||||
#define LED_GPIO_INTERNE (GPIOA) //GPIOA pour Arduino
|
||||
#define BUTTON_PIN_INTERNE (13) //13 pour Arduino
|
||||
|
||||
//EXTERNE
|
||||
#define LED_PIN_EXTERNE (8) // 8 pour la porte PB8
|
||||
#define BUTTON_GPIO_EXTERNE (GPIOB) //GPIOB pour externe
|
||||
#define LED_GPIO_EXTERNE (GPIOB) //GPIOB pour Externe
|
||||
#define BUTTON_PIN_EXTERNE (9) //9 pour bouton poussoir
|
||||
|
||||
//STATIQUES
|
||||
#define GPIO_OUTPUT_PPULL_MODE (2) //Mis en GP output 2MHz en mode PP
|
||||
#define GPIO_INPUT_PUPD_MODE (8) //Pour mettre à Pull up/down
|
||||
#define GPIO_INPUT_FLOATING_MODE (4)
|
||||
|
||||
//si on est sur l'arduino ou sur le led externe
|
||||
#define INTERNE 1 // 1 c'est vrai, 0 faux
|
||||
|
||||
//FONCTIONS
|
||||
void initGPIO_Interne(void);
|
||||
int boutonAppuye_Interne(void);
|
||||
void allumerDEL_Interne(void);
|
||||
void eteindreDEL_Interne(void);
|
||||
void commuterDEL_Interne(void);
|
||||
void allume_bit_Interne(void);
|
||||
|
||||
void initGPIO_Externe(void);
|
||||
int boutonAppuye_Externe(void);
|
||||
void allumerDEL_Externe(void);
|
||||
void eteindreDEL_Externe(void);
|
||||
void commuterDEL_Externe(void);
|
||||
void allume_bit_Externe(void);
|
||||
|
||||
|
||||
229
ProjetInitial/include/MyI2C.h
Executable file
229
ProjetInitial/include/MyI2C.h
Executable 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
ProjetInitial/include/MySPI.h
Executable file
129
ProjetInitial/include/MySPI.h
Executable 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
|
||||
12
ProjetInitial/include/MyTimer.h
Executable file
12
ProjetInitial/include/MyTimer.h
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
#include "stm32f10x.h"
|
||||
|
||||
//TIMERS start
|
||||
#define MyTimer_Base_Start(Timer) (Timer->CR1 |= TIM_CR1_CEN)
|
||||
#define MyTimer_Base_Stop(Timer) (Timer -> CR1 =(0x0))
|
||||
// IT
|
||||
extern volatile int g_tick_count; // Declara que a variável existe em outro arquivo
|
||||
void Test(void);
|
||||
void ConfigureIT();
|
||||
// PWM
|
||||
void ConfigurePWM();
|
||||
void ConfigureTimers();
|
||||
10
ProjetInitial/include/PWM.h
Executable file
10
ProjetInitial/include/PWM.h
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
#ifndef PWM_H_
|
||||
#define PWM_H_
|
||||
#include <stm32f10x.h>
|
||||
//Variables
|
||||
#define POWERMODE 2 // 1 vaut powermode 1, 0 vaut powermode 2 (Powermode pour le config de dutycycle)
|
||||
// Config
|
||||
extern void MyTimer_PWM(TIM_TypeDef * Timer , int Channel);
|
||||
extern int Set_DutyCycle_PWM(TIM_TypeDef *Timer, int Channel, int DutyC);
|
||||
int Set_DutyCycle_PWM_Plateau(TIM_TypeDef *Timer, int Channel, int DutyC);
|
||||
#endif
|
||||
7
ProjetInitial/include/Servo.h
Executable file
7
ProjetInitial/include/Servo.h
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef SERVO_H_
|
||||
#define SERVO_H_
|
||||
#include <stm32f10x.h>
|
||||
void Servo_Moteur(int angle, TIM_TypeDef * Timer, int Channel);
|
||||
extern void initServo(TIM_TypeDef * Timer, int Channel);
|
||||
|
||||
#endif // SERVO_H_
|
||||
8
ProjetInitial/include/Timer.h
Executable file
8
ProjetInitial/include/Timer.h
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef TIMER_H_
|
||||
#define TIMER_H_
|
||||
#include <stm32f10x.h>
|
||||
// Config de timer
|
||||
extern void MyTimer_Base_Init(TIM_TypeDef *Timer , unsigned short ValARR , unsigned short ValPSC );
|
||||
// Enable timers
|
||||
void EnableTimer(TIM_TypeDef *Timer);
|
||||
#endif
|
||||
56
ProjetInitial/src/ADC.c
Executable file
56
ProjetInitial/src/ADC.c
Executable file
|
|
@ -0,0 +1,56 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <ADC.h>
|
||||
#include <MyUart.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
//Pont diviseur du tension, coeff. = 1/13
|
||||
//Alors 13V -> 12V*1/13 = 0.92V
|
||||
|
||||
//Tension pile donné sur GPIOA.2
|
||||
void initADC(){
|
||||
//Initialisation de ADC
|
||||
|
||||
RCC->APB2ENR |= (0x1<<10); //Initialisation du clock interne du ADC2
|
||||
RCC->APB2ENR |= (0x1<<2); //GPIOA clk enable
|
||||
ADC2->CR2 |= (0x1); // ON/OFF ADC2
|
||||
|
||||
//Init de la broche PA2 en mode analog input
|
||||
GPIOA->CRL &= ~(0x00000F00);
|
||||
|
||||
ADC2->CR2 |= (0x1<<20); //External trigger enable
|
||||
ADC2->CR2 |= (0b111<<17); //SWSTART
|
||||
ADC2->CR2 |= (0x1<<1); //Continous conversion
|
||||
ADC2->SQR3 = 2;
|
||||
|
||||
//Essai de faire un nouveau Threshold/Seuil
|
||||
ADC2->CR1 |= (0x1<<23); //Watchdog enable pour mettre un threshold HIGH
|
||||
ADC2->HTR &= ~(0x0FFF);
|
||||
|
||||
//########################MAHOUT AIDEZ NOUS############################æ
|
||||
//ADC2->HTR |= 0x0475; //Changement du threshold (0.92V/3.3V)*4096
|
||||
//ADC2->HTR |= 0x0BBB; //Faut demander le prof pour ce HIGH THRESHOLD
|
||||
ADC2->CR2 |= (0x1); //ON ADC2
|
||||
}
|
||||
|
||||
int recupADC(){
|
||||
int data;
|
||||
data = ADC2->DR;
|
||||
return data;
|
||||
}
|
||||
|
||||
void sendinfoADC(){
|
||||
int valu = recupADC();
|
||||
char meld[60];
|
||||
char meld2[50];
|
||||
|
||||
int test = valu*3.3/4096;
|
||||
test = test*13*100/12;
|
||||
int tension = (13*valu)/ADC2->HTR;
|
||||
int p2 = (13*valu)/0x0FFF;
|
||||
snprintf(meld, sizeof(meld),"Pourcentage de la pile : riktig: %d next %d next %d \r\n", tension, test, p2);
|
||||
snprintf(meld2, sizeof(meld2),"Tension de la pile : %dV\r\n", tension);
|
||||
|
||||
USART_Send_String(USART1, meld2);
|
||||
}
|
||||
|
||||
187
ProjetInitial/src/Accelerometre.c
Executable file
187
ProjetInitial/src/Accelerometre.c
Executable file
|
|
@ -0,0 +1,187 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <Horloge.h>
|
||||
#include <MYGPIO.h>
|
||||
#include <stdlib.h>
|
||||
#include <MySPI.h>
|
||||
#include <stdint.h>
|
||||
#include <Accelerometre.h>
|
||||
#include <stdio.h>
|
||||
#include <Timer.h>
|
||||
#include <Servo.h>
|
||||
|
||||
//Pin GPIOA_9 et GPIOA_10 sont pris par USART
|
||||
|
||||
/*
|
||||
I2C SDA IN/OUT
|
||||
I2C SCL OUT
|
||||
*/
|
||||
|
||||
//il faut recuperer le data qui sort
|
||||
|
||||
/*
|
||||
SPI1_NSS PA4 - Utilisé
|
||||
NSS = 0 -> slave active
|
||||
NSS = 1 -> slave inactive
|
||||
|
||||
SPI1_SCK PA5
|
||||
SPI1_MISO PA6
|
||||
SPI1_MOSI PA7
|
||||
|
||||
TIM3 CH3 PB0
|
||||
|
||||
0x32 50 DATAX0 R 00000000 X-Axis Data 0
|
||||
0x33 51 DATAX1 R 00000000 X-Axis Data 1
|
||||
0x34 52 DATAY0 R 00000000 Y-Axis Data 0
|
||||
0x35 53 DATAY1 R 00000000 Y-Axis Data 1
|
||||
0x36 54 DATAZ0 R 00000000 Z-Axis Data 0
|
||||
0x37 55 DATAZ1 R 00000000 Z-Axis Data 1
|
||||
|
||||
*/
|
||||
|
||||
|
||||
void initAccelo(void)
|
||||
{
|
||||
MySPI_Init(SPI1);
|
||||
|
||||
// Power_CTL register = 0x2D ? write 0x08 (MEASURE = 1)
|
||||
MySPI_Clear_NSS();
|
||||
MySPI_Send(0x31);
|
||||
MySPI_Send(0b00001101); //Justify met MSB à gauche et b0 et b1 donne resolution en +-2g
|
||||
MySPI_Set_NSS();
|
||||
|
||||
MySPI_Clear_NSS();
|
||||
MySPI_Send(0x2D & 0x3F); // write address (no read bit!)
|
||||
MySPI_Send(0x08); // set MEASURE bit
|
||||
MySPI_Set_NSS();
|
||||
|
||||
for (volatile int i = 0; i < 10000; i++); // small delay
|
||||
}
|
||||
|
||||
// send bits, les bits inclus en char envoyés: RW MB A5 A4 A3 A2 A1 A0
|
||||
//RW: R = 1 et W = 0
|
||||
//MB à 1 veut measurement et MB à 0 Standby
|
||||
uint16_t * RecupAccelo(void){ //Renvoie 48 bits en forme des chars
|
||||
static uint16_t Messias[3];
|
||||
|
||||
//On lit X0
|
||||
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
||||
MySPI_Send(0x80|0x00|0x32); //Lecture de X0 et MB à 1 pour garder les valeurs 0b11110010: (R/W|MB|Adress)
|
||||
//Faktisk dritsmart det katten gjør, setter MB=1 som sier multiple byte read, så leser den alle 6 bytes samtidig istedenfor en og en
|
||||
uint16_t X0 = MySPI_Read();
|
||||
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
||||
|
||||
//On lit X1
|
||||
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
||||
MySPI_Send(0x80|0x00|0x33); //Lecture de X1
|
||||
Messias[0] = X0 | (MySPI_Read() << 8);
|
||||
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
||||
|
||||
//On lit Y0
|
||||
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
||||
MySPI_Send(0x80|0x00|0x34); //Lecture de Y0
|
||||
uint16_t Y0 = MySPI_Read();
|
||||
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
||||
|
||||
//On lit Y1
|
||||
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
||||
MySPI_Send(0x80|0x00|0x35); //Lecture de Y1
|
||||
Messias[1] = Y0 | (MySPI_Read() << 8);
|
||||
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
||||
|
||||
//On lit Z0
|
||||
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
||||
MySPI_Send(0x80|0x00|0x36); //Lecture de Z0
|
||||
uint16_t Z0 = MySPI_Read();
|
||||
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
||||
|
||||
//On lit Z1
|
||||
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
||||
MySPI_Send(0x80|0x00|0x37); //Lecture de Z1
|
||||
Messias[2] = Z0 | (MySPI_Read() << 8);
|
||||
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
||||
|
||||
return Messias;
|
||||
}
|
||||
|
||||
|
||||
uint16_t * KattRecupAccelo(void) //Beaucoup plus smart
|
||||
{
|
||||
static uint16_t Messias[3];
|
||||
uint8_t buf[6];
|
||||
// Multi-byte read from 0x32 (X0..Z1)
|
||||
MySPI_Clear_NSS();
|
||||
// Send READ + MB + address
|
||||
MySPI_Send(0x80 | 0x40 | 0x32); // 0xF2
|
||||
// Read 6 sequential registers
|
||||
for (int i = 0; i < 6; i++) {
|
||||
buf[i] = (uint8_t)MySPI_Read();
|
||||
}
|
||||
MySPI_Set_NSS();
|
||||
// Convert little-endian to 16-bit signed values
|
||||
Messias[0] = (uint16_t)(buf[1] << 8 | buf[0]); // X
|
||||
Messias[1] = (uint16_t)(buf[3] << 8 | buf[2]); // Y
|
||||
Messias[2] = (uint16_t)(buf[5] << 8 | buf[4]); // Z
|
||||
|
||||
return Messias;
|
||||
}
|
||||
|
||||
void initLacheur(void){
|
||||
GPIOB->CRH &= ~(0xF << (0 * 4));
|
||||
GPIOB->CRH |= (0xA << (0 * 4)); //On met GPIOB.8 en mode output 2Mhz, alternate pp
|
||||
#if OSKAR
|
||||
EnableTimer(TIM4);
|
||||
MyTimer_Base_Init(TIM4, 0xFFFF, 22);
|
||||
#else
|
||||
Timer_Init(TIM4, 20000 - 1, 71); //Claire m'a aidé
|
||||
#endif
|
||||
}
|
||||
|
||||
//Recuperer le DATA en X, Z, Y
|
||||
#if MODEAVANCEE
|
||||
//volatile uint16_t Angle_lim = 0x1E20 - 60*ANGLE; //#define ANGLE_LIMITE 0x0E38
|
||||
#else
|
||||
volatile uint16_t Anngle_lim = 0x1500;
|
||||
#endif
|
||||
/*
|
||||
void LacheVoile(uint16_t voile_moy){
|
||||
if (voile_moy<=Anngle_lim){// exatement à 40 degrés, on lache le 40%. 0xFF*(40deg/90deg)
|
||||
//Le PWM du moteur est gère par PB7
|
||||
MyTimer_PWM(TIM4, 3); //TIM4 CH3 pour PB8
|
||||
Set_DutyCycle_PWM(TIM4, 3, 5); //On met Duty cycle à 2% et il reste autour de 90 deg
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
void LacheVoileNew(){
|
||||
// exatement à 40 degrés, on lache le 40%. 0xFF*(40deg/90deg)
|
||||
//Le PWM du moteur est gère par PB7
|
||||
|
||||
Servo_Moteur(0, TIM4, 3);
|
||||
}
|
||||
|
||||
void LacheVoileSmart(int AngelLim, uint16_t moyennen){
|
||||
volatile uint16_t Val_lim = 0x1E20 - 60*AngelLim;
|
||||
// exatement à 40 degrés, on lache le 40%. 0xFF*(40deg/90deg)
|
||||
//Le PWM du moteur est gère par PB7
|
||||
if (moyennen<Val_lim){
|
||||
Servo_Moteur(0, TIM4, 3);
|
||||
}
|
||||
}
|
||||
|
||||
//Gestion de l'interruption
|
||||
/*
|
||||
|
||||
void MyTimer_ActiveIT(TIM_TypeDef * Timer, char Prio, void(*Interrupt_fonc)(void)){ //On veut créer une fonction qui envoie un signal au cas où il y a debordement, avec une prioritaire, 0 plus importante 15 moins importante
|
||||
if (Timer == TIM2){
|
||||
|
||||
TIM2_Appel = Interrupt_fonc;
|
||||
|
||||
NVIC_EnableIRQ(TIM2_IRQn);
|
||||
NVIC_SetPriority(TIM2_IRQn, Prio);
|
||||
TIM2->DIER |= TIM_DIER_UIE; //Le registre DIER(Interrupt Enable Register) est mis au bit Update Interrupt, qui se commute lors d'un overflow
|
||||
TIM2->CR1 |= TIM_CR1_CEN; //Clock Enable
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
74
ProjetInitial/src/DriverGPIO.c
Executable file
74
ProjetInitial/src/DriverGPIO.c
Executable file
|
|
@ -0,0 +1,74 @@
|
|||
#include "stm32f10x.h"
|
||||
#include "DriverGPIO.h"
|
||||
#define In_Floating 0x4
|
||||
#define In_PullDown 0x8
|
||||
#define In_PullUp 0x8
|
||||
#define In_Analog 0x0
|
||||
#define Out_Ppull 0x3
|
||||
#define Out_OD 0x7
|
||||
#define AltOut_Ppull 0xB
|
||||
#define AltOut_OD 0xF
|
||||
|
||||
void MyGPIO_Init(GPIO_TypeDef * GPIO, char pin, char conf ){
|
||||
int shift_pin;
|
||||
//Start clock for relevant GPIO
|
||||
if(GPIO == GPIOA){
|
||||
RCC -> APB2ENR |= RCC_APB2ENR_IOPAEN;
|
||||
}
|
||||
else if(GPIO == GPIOB){
|
||||
RCC -> APB2ENR |= RCC_APB2ENR_IOPBEN;
|
||||
}
|
||||
else if(GPIO == GPIOC){
|
||||
RCC -> APB2ENR |= RCC_APB2ENR_IOPCEN;
|
||||
}
|
||||
else if(GPIO == GPIOD){
|
||||
RCC -> APB2ENR |= RCC_APB2ENR_IOPDEN;
|
||||
}
|
||||
if(pin < 8){//CRL zone
|
||||
shift_pin = pin*4;
|
||||
GPIO -> CRL &= ~(0xF << shift_pin);
|
||||
//PullUp and PullDown have the same conf number, so we need to change the ODR to diferenciate them both
|
||||
if(conf == In_PullUp){
|
||||
GPIO -> CRL |= ( In_PullUp << shift_pin);
|
||||
GPIO -> ODR |= (1<<pin);
|
||||
}
|
||||
else if(conf == In_PullDown){
|
||||
GPIO -> CRL |= ( In_PullDown << shift_pin);
|
||||
GPIO -> ODR &= ~(1<<pin);
|
||||
}
|
||||
else{
|
||||
GPIO -> CRL |= ( conf << shift_pin);
|
||||
}
|
||||
}
|
||||
else{//CRH zone
|
||||
shift_pin = (pin-8)*4;
|
||||
GPIO -> CRH &= ~(0xF << shift_pin);
|
||||
if(conf == In_PullUp){
|
||||
GPIO -> CRH |= ( In_PullUp << shift_pin);
|
||||
GPIO -> ODR |= (1<<pin);
|
||||
}
|
||||
else if(conf == In_PullDown){
|
||||
GPIO -> CRH |= ( In_PullDown << shift_pin);
|
||||
GPIO -> ODR &= ~(1<<pin);
|
||||
}
|
||||
else{
|
||||
GPIO -> CRH |= ( conf << shift_pin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int MyGPIO_Read(GPIO_TypeDef * GPIO, char GPIO_Pin){
|
||||
return(GPIO -> IDR & (1 << GPIO_Pin));
|
||||
}
|
||||
|
||||
void MyGPIO_Set(GPIO_TypeDef * GPIO, char GPIO_Pin){
|
||||
GPIO -> BSRR = (1<<GPIO_Pin);//1 on set zone
|
||||
}
|
||||
|
||||
void MyGPIO_Reset(GPIO_TypeDef * GPIO, char GPIO_Pin){
|
||||
GPIO -> BSRR = (1<<(GPIO_Pin+16));//1 on reset zone
|
||||
}
|
||||
|
||||
void MyGPIO_Toggle(GPIO_TypeDef * GPIO, char GPIO_Pin){
|
||||
GPIO -> ODR = GPIO -> ODR ^ (0x1 << GPIO_Pin);
|
||||
}
|
||||
48
ProjetInitial/src/Horloge.c
Executable file
48
ProjetInitial/src/Horloge.c
Executable file
|
|
@ -0,0 +1,48 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <stdio.h>
|
||||
#include <Horloge.h>
|
||||
|
||||
|
||||
//Il faut trouver le signal
|
||||
//On est à Timer 2
|
||||
|
||||
static void (*TIM2_Appel)(void) = 0;
|
||||
|
||||
void Timer_Init(TIM_TypeDef *Timer, unsigned short Autoreload, unsigned short Prescaler){
|
||||
if (Timer == TIM1) {
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; //L'horloge est enabléd
|
||||
} else if (Timer == TIM2) {
|
||||
TIM2->CR1 |= TIM_CR1_CEN; //On enable l'horloge interne
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
|
||||
} else if (Timer == TIM3) {
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
|
||||
} else if (Timer == TIM4) {
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;
|
||||
}
|
||||
Timer->ARR |= Autoreload;
|
||||
Timer->PSC |= Prescaler;
|
||||
}
|
||||
|
||||
//La fonction TIM2_IRQHandler s'utilise dans le processeur, on l'a juste redifint, tel qu'à chaque overflow on met un bit 1 dans GPIOA_ODR
|
||||
void TIM2_IRQHandler(void) { //On redefinit le IRQHandler qui est déjà ecrit dans le code source
|
||||
if (TIM2->SR & TIM_SR_UIF) { //On met le bit de overflow à un dès qu'on a overflow
|
||||
TIM2->SR &= ~TIM_SR_UIF; //Remise à zero
|
||||
|
||||
if (TIM2_Appel){TIM2_Appel();}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MyTimer_ActiveIT(TIM_TypeDef * Timer, char Prio, void(*Interrupt_fonc)(void)){ //On veut créer une fonction qui envoie un signal au cas où il y a debordement, avec une prioritaire, 0 plus importante 15 moins importante
|
||||
if (Timer == TIM2){
|
||||
|
||||
TIM2_Appel = Interrupt_fonc;
|
||||
|
||||
NVIC_EnableIRQ(TIM2_IRQn);
|
||||
NVIC_SetPriority(TIM2_IRQn, Prio);
|
||||
TIM2->DIER |= TIM_DIER_UIE; //Le registre DIER(Interrupt Enable Register) est mis au bit Update Interrupt, qui se commute lors d'un overflow
|
||||
TIM2->CR1 |= TIM_CR1_CEN; //Clock Enable
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
97
ProjetInitial/src/MYGPIO.c
Executable file
97
ProjetInitial/src/MYGPIO.c
Executable file
|
|
@ -0,0 +1,97 @@
|
|||
#include <stdlib.h>
|
||||
#include <stm32f10x.h>
|
||||
#include <MYGPIO.h>
|
||||
|
||||
|
||||
//FONCTIONS POUR LE DEL INTERNE
|
||||
|
||||
void initGPIO_Interne(void){
|
||||
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) ;
|
||||
|
||||
//Start
|
||||
//CRL pour les 8 premiers portes, CRH pour les 8 dernières portes
|
||||
if (LED_PIN_INTERNE < 8){
|
||||
LED_GPIO_INTERNE->CRL &= ~(0xF << (LED_PIN_INTERNE*4));
|
||||
LED_GPIO_INTERNE->CRL |= GPIO_OUTPUT_PPULL_MODE<<(LED_PIN_INTERNE*4) ; // On met tous les Pins de broche A à Analog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
|
||||
}
|
||||
else{
|
||||
LED_GPIO_INTERNE->CRH &= ~(0xF <<((LED_PIN_INTERNE-8)*4));
|
||||
LED_GPIO_INTERNE->CRH |= GPIO_OUTPUT_PPULL_MODE<<((LED_PIN_INTERNE-8)*4);
|
||||
}
|
||||
|
||||
if (BUTTON_PIN_INTERNE < 8){
|
||||
BUTTON_GPIO_INTERNE->CRL &= ~(0xF << (BUTTON_PIN_INTERNE*4));
|
||||
BUTTON_GPIO_INTERNE->CRL |= GPIO_INPUT_FLOATING_MODE<<(BUTTON_PIN_INTERNE*4) ; // On met tous les Pins de broche A à ANalog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
|
||||
}
|
||||
else{
|
||||
BUTTON_GPIO_INTERNE->CRH &= ~(0xF <<((BUTTON_PIN_INTERNE-8)*4));
|
||||
BUTTON_GPIO_INTERNE->CRH |= GPIO_INPUT_FLOATING_MODE<<((BUTTON_PIN_INTERNE-8)*4);
|
||||
}
|
||||
}
|
||||
|
||||
int boutonAppuye_Interne(void){
|
||||
return BUTTON_GPIO_INTERNE->IDR &(1<<BUTTON_PIN_INTERNE);
|
||||
}
|
||||
|
||||
void allumerDEL_Interne(void){
|
||||
LED_GPIO_INTERNE->ODR |= (0x01 << LED_PIN_INTERNE) ; //On essaie de mettre en position PA5 de GPIOC_ODR un 1 comme ca allume le LED GREEN
|
||||
}
|
||||
|
||||
void eteindreDEL_Interne(void){
|
||||
LED_GPIO_INTERNE->ODR &= ~(0x01 << LED_PIN_EXTERNE) ; //On essaie de mettre en position PA5 de GPIOC_ODR un 0 comme ca eteint le LED GREEN
|
||||
//ALlumer un LED externe, PB8/D15 OUTPUT, Bouton Poussoir PB9/D14
|
||||
}
|
||||
|
||||
void commuterDEL_Interne(void){
|
||||
LED_GPIO_INTERNE->ODR ^= (0x01 << LED_PIN_INTERNE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//FONCTIONS POUR LE DEL EXTERNE
|
||||
|
||||
void initGPIO_Externe(void){
|
||||
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) ;
|
||||
|
||||
//Start
|
||||
//CRL pour les 8 premiers portes, CRH pour les 8 dernières portes
|
||||
if (LED_PIN_EXTERNE < 8){
|
||||
LED_GPIO_EXTERNE->CRL &= ~(0xF << (LED_PIN_EXTERNE*4));
|
||||
LED_GPIO_EXTERNE->CRL |= GPIO_OUTPUT_PPULL_MODE<<(LED_PIN_EXTERNE*4) ; // On met tous les Pins de broche A à ANalog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
|
||||
}
|
||||
else{
|
||||
LED_GPIO_EXTERNE->CRH &= ~(0xF <<((LED_PIN_EXTERNE-8)*4));
|
||||
LED_GPIO_EXTERNE->CRH |= GPIO_OUTPUT_PPULL_MODE<<((LED_PIN_EXTERNE-8)*4);
|
||||
}
|
||||
|
||||
if (BUTTON_PIN_EXTERNE < 8){
|
||||
BUTTON_GPIO_EXTERNE->CRL &= ~(0xF << (BUTTON_PIN_EXTERNE*4));
|
||||
BUTTON_GPIO_EXTERNE->CRL |= GPIO_INPUT_FLOATING_MODE<<(BUTTON_PIN_EXTERNE*4) ; // On met tous les Pins de broche A à ANalog Input sauf broche PA.5 qui correspond au LED GREEN: Output 2MHz et GP output push-pull
|
||||
}
|
||||
else{
|
||||
BUTTON_GPIO_EXTERNE->CRH &= ~(0xF <<((BUTTON_PIN_EXTERNE-8)*4));
|
||||
BUTTON_GPIO_EXTERNE->CRH |= GPIO_INPUT_FLOATING_MODE<<((BUTTON_PIN_EXTERNE-8)*4);
|
||||
}
|
||||
}
|
||||
|
||||
int boutonAppuye_Externe(void){
|
||||
return BUTTON_GPIO_EXTERNE->IDR &(1<<BUTTON_PIN_EXTERNE);
|
||||
}
|
||||
|
||||
void allumerDEL_Externe(void){
|
||||
LED_GPIO_EXTERNE->ODR |= (0x01 << LED_PIN_EXTERNE) ;
|
||||
} //On essaie de mettre en position PA5 de GPIOC_ODR un 1 comme ca allume le LED GREEN
|
||||
|
||||
|
||||
void eteindreDEL_Externe(void){
|
||||
LED_GPIO_EXTERNE->ODR &= ~(0x01 << LED_PIN_EXTERNE) ; //On essaie de mettre en position PA5 de GPIOC_ODR un 0 comme ca eteint le LED GREEN
|
||||
//ALlumer un LED externe, PB8/D15 OUTPUT, Bouton Poussoir PB9/D14
|
||||
}
|
||||
|
||||
void commuterDEL_Externe(void){
|
||||
LED_GPIO_EXTERNE->ODR ^= (0x01 << LED_PIN_EXTERNE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
54
ProjetInitial/src/MyTimer.c
Executable file
54
ProjetInitial/src/MyTimer.c
Executable file
|
|
@ -0,0 +1,54 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <Timer.h>
|
||||
#include <MyTimer.h>
|
||||
#include <PWM.h>
|
||||
#include <DriverGPIO.h>
|
||||
#include <Horloge.h>
|
||||
|
||||
// Constantes
|
||||
#define ARR_TIM1 0xFFAD
|
||||
#define PSC_TIM1 0xFF
|
||||
#define ARR_TIM2 0xFFAD
|
||||
#define PSC_TIM2 0x0225
|
||||
#define ARR_TIM3 0x2CF
|
||||
#define PSC_TIM3 0x0
|
||||
|
||||
// Variables
|
||||
volatile int g_tick_count;
|
||||
|
||||
|
||||
void Test(void) {
|
||||
// Signal
|
||||
g_tick_count++;
|
||||
MyGPIO_Toggle(GPIOA, 8);
|
||||
}
|
||||
|
||||
// LES COMMENTAIRES SONT POUR ACTIVER DES TIMERS QUE L'ON UTILISE PAS POUR LE MOMENT
|
||||
void ConfigureTimers() {
|
||||
// Config ARR & PSC
|
||||
//MyTimer_Base_Init(TIM2, ARR_TIM2, PSC_TIM2);
|
||||
//MyTimer_Base_Init(TIM1, ARR_TIM1, PSC_TIM1);
|
||||
//MyTimer_Base_Init(TIM3, ARR_TIM2, PSC_TIM2);
|
||||
//Timer_Init(TIM1, ARR_TIM1, PSC_TIM1);
|
||||
Timer_Init(TIM2, 0, 0);
|
||||
Timer_Init(TIM8, 0, 0);
|
||||
|
||||
// Enable timer clock
|
||||
//EnableTimer(TIM1);
|
||||
//EnableTimer(TIM2);
|
||||
//EnableTimer(TIM3);
|
||||
}
|
||||
|
||||
|
||||
void ConfigureIT() { // Activate general interuption with a function and priority
|
||||
//MyTimer_ActiveIT(TIM2, 4, Test); //start interruption with priority 4
|
||||
//MyTimer_ActiveIT(TIM1, 4, Test); //start interruption with priority 4
|
||||
MyTimer_ActiveIT(TIM3, 4, Test); //start interruption with priority 4
|
||||
}
|
||||
|
||||
|
||||
void ConfigurePWM() { // Set dutycycle with timer
|
||||
MyTimer_PWM(TIM8, 2); // Utiliser timer1 avec channel 1
|
||||
//MyTimer_Set_DutyCycle(TIM1, 1, 20.0);
|
||||
}
|
||||
|
||||
|
|
@ -1,112 +1,109 @@
|
|||
#include "stm32f10x.h"
|
||||
#include "PWM.h"
|
||||
|
||||
void MyTimer_PWM(TIM_TypeDef * Timer , int Channel){
|
||||
int pwrmd;
|
||||
#if POWERMODE //Powermode 1
|
||||
pwrmd = 0b110;
|
||||
#else
|
||||
pwrmd = 0b111; //Powermode 2
|
||||
#endif
|
||||
|
||||
if (Channel == 1){
|
||||
Timer->CCMR1 &= ~(0b111<<4); //On clear les trois bits qui sont de pwm
|
||||
Timer->CCMR1 |= (pwrmd<<4); //On affecte le powermode au bits de lecture pour le µ-controlleur
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC1PE; //Update preload, il n'affecte pas le valeur avant que la prochaine cycle
|
||||
Timer->CCER = TIM_CCER_CC1E; //Enable le pin voulu basculer
|
||||
}
|
||||
else if (Channel == 2){
|
||||
Timer->CCMR1 &= ~(0b111<<12); //Le TIMx_CCMR1 configure deux channels, de bit [6:4] CH1, [14:12] CH2 (OC2M = Output Channel 2 )
|
||||
Timer->CCMR1 |= (pwrmd<<12);
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC2PE;
|
||||
Timer->CCER |= TIM_CCER_CC2E;
|
||||
}
|
||||
else if (Channel == 3){
|
||||
Timer->CCMR1 &= ~(0b111<<4);
|
||||
Timer->CCMR2 |= (pwrmd<<4);
|
||||
Timer->CCMR2 |= TIM_CCMR2_OC3PE;
|
||||
Timer->CCER |= TIM_CCER_CC3E;
|
||||
}
|
||||
else if (Channel == 4){
|
||||
Timer->CCMR1 &= ~(0b111<<12);
|
||||
Timer->CCMR2 |= (pwrmd<<12);
|
||||
Timer->CCMR2 |= TIM_CCMR2_OC4PE;
|
||||
Timer->CCER |= TIM_CCER_CC4E;
|
||||
}
|
||||
|
||||
//En dessous d'ici, on a l'aide du plus gentil chat que je connais
|
||||
// Enable auto-reload preload -- //Ensures that your initial configuration — PWM mode, duty cycle, period — actually takes effect before the timer starts counting.
|
||||
Timer->CR1 |= TIM_CR1_ARPE;
|
||||
// Force update event to load ARR and CCR values immediately
|
||||
Timer->EGR |= TIM_EGR_UG;
|
||||
// Start the timer
|
||||
Timer->CR1 |= TIM_CR1_CEN;
|
||||
|
||||
switch (Channel) {
|
||||
case 1:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<0*4); GPIOA->CRH |= (0xA<<0*4); TIM1->BDTR |= 1<<15; }
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<0*4); GPIOA->CRL |= (0xA<<0*4);}
|
||||
if (Timer == TIM3){GPIOA->CRL &= ~(0xF<<6*4); GPIOA->CRL |= (0xA<<6*4);}
|
||||
if (Timer == TIM4){GPIOB->CRL &= ~(0xF<<5*4); GPIOB->CRL |= (0xA<<5*4);}
|
||||
break;
|
||||
case 2:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4);}
|
||||
if (Timer == TIM3){GPIOA->CRL &= ~(0xF<<7*4); GPIOA->CRL |= (0xA<<7*4);}
|
||||
if (Timer == TIM4){GPIOB->CRL &= ~(0xF<<7*4); GPIOB->CRL |= (0xA<<7*4);}
|
||||
break;
|
||||
case 3:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<2*4); GPIOA->CRH |= (0xA<<2*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<2*4); GPIOA->CRL |= (0xA<<2*4);}
|
||||
if (Timer == TIM3){GPIOB->CRL &= ~(0xF<<0*4); GPIOB->CRL |= (0xA<<0*4);}
|
||||
if (Timer == TIM4){GPIOB->CRH &= ~(0xF<<0*4); GPIOB->CRH |= (0xA<<0*4);}
|
||||
break;
|
||||
case 4:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<3*4); GPIOA->CRH |= (0xA<<3*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<3*4); GPIOA->CRL |= (0xA<<3*4);}
|
||||
if (Timer == TIM3){GPIOB->CRL &= ~(0xF<<1*4); GPIOB->CRL |= (0xA<<1*4);}
|
||||
if (Timer == TIM4){GPIOB->CRH &= ~(0xF<<1*4); GPIOB->CRH |= (0xA<<1*4);}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Une fonction qui met le bon PWM voulu
|
||||
int Set_DutyCycle_PWM(TIM_TypeDef *Timer, int Channel, int DutyC){
|
||||
int CCR_VAL = (Timer -> ARR + 1) * DutyC / 100;
|
||||
switch (Channel){
|
||||
case 1: Timer->CCR1 = CCR_VAL;
|
||||
break;
|
||||
case 2: Timer->CCR2 = CCR_VAL;
|
||||
break;
|
||||
case 3: Timer->CCR3 = CCR_VAL;
|
||||
break;
|
||||
case 4: Timer->CCR4 = CCR_VAL;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
Timer->EGR |= TIM_EGR_UG;
|
||||
}
|
||||
|
||||
// NOuvelle Set_D
|
||||
int Set_DutyCycle_PWM_Plateau(TIM_TypeDef *Timer, int Channel, int DutyC){
|
||||
int CCR_VAL = (Timer->ARR + 1) * DutyC / 100;
|
||||
switch (Channel){
|
||||
case 1:
|
||||
Timer->CCR1 = CCR_VAL;
|
||||
break;
|
||||
case 2:
|
||||
Timer->CCR2 = CCR_VAL;
|
||||
break;
|
||||
case 3:
|
||||
Timer->CCR3 = CCR_VAL;
|
||||
break;
|
||||
case 4:
|
||||
Timer->CCR4 = CCR_VAL;
|
||||
break;
|
||||
default:
|
||||
return -1; // channel invalide
|
||||
}
|
||||
Timer->EGR |= TIM_EGR_UG; // update event
|
||||
return 0;
|
||||
}
|
||||
#include "stm32f10x.h"
|
||||
#include "PWM.h"
|
||||
|
||||
void MyTimer_PWM(TIM_TypeDef * Timer , int Channel){
|
||||
int pwrmd;
|
||||
#if POWERMODE //Powermode 1
|
||||
pwrmd = 0b110;
|
||||
#else
|
||||
pwrmd = 0b111; //Powermode 2
|
||||
#endif
|
||||
|
||||
if (Channel == 1){
|
||||
Timer->CCMR1 &= ~(0b111<<4); //On clear les trois bits qui sont de pwm
|
||||
Timer->CCMR1 |= (pwrmd<<4); //On affecte le powermode au bits de lecture pour le µ-controlleur
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC1PE; //Update preload, il n'affecte pas le valeur avant que la prochaine cycle
|
||||
Timer->CCER = TIM_CCER_CC1E; //Enable le pin voulu basculer
|
||||
}
|
||||
else if (Channel == 2){
|
||||
Timer->CCMR1 &= ~(0b111<<12); //Le TIMx_CCMR1 configure deux channels, de bit [6:4] CH1, [14:12] CH2 (OC2M = Output Channel 2 )
|
||||
Timer->CCMR1 |= (pwrmd<<12);
|
||||
Timer->CCMR1 |= TIM_CCMR1_OC2PE;
|
||||
Timer->CCER |= TIM_CCER_CC2E;
|
||||
}
|
||||
else if (Channel == 3){
|
||||
Timer->CCMR1 &= ~(0b111<<4);
|
||||
Timer->CCMR2 |= (pwrmd<<4);
|
||||
Timer->CCMR2 |= TIM_CCMR2_OC3PE;
|
||||
Timer->CCER |= TIM_CCER_CC3E;
|
||||
}
|
||||
else if (Channel == 4){
|
||||
Timer->CCMR1 &= ~(0b111<<12);
|
||||
Timer->CCMR2 |= (pwrmd<<12);
|
||||
Timer->CCMR2 |= TIM_CCMR2_OC4PE;
|
||||
Timer->CCER |= TIM_CCER_CC4E;
|
||||
}
|
||||
|
||||
//En dessous d'ici, on a l'aide du plus gentil chat que je connais
|
||||
// Enable auto-reload preload -- //Ensures that your initial configuration — PWM mode, duty cycle, period — actually takes effect before the timer starts counting.
|
||||
Timer->CR1 |= TIM_CR1_ARPE;
|
||||
// Force update event to load ARR and CCR values immediately
|
||||
Timer->EGR |= TIM_EGR_UG;
|
||||
// Start the timer
|
||||
Timer->CR1 |= TIM_CR1_CEN;
|
||||
|
||||
switch (Channel) {
|
||||
case 1:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<0*4); GPIOA->CRH |= (0xA<<0*4); TIM1->BDTR |= 1<<15; }
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<0*4); GPIOA->CRL |= (0xA<<0*4);}
|
||||
if (Timer == TIM3){GPIOA->CRL &= ~(0xF<<6*4); GPIOA->CRL |= (0xA<<6*4);}
|
||||
if (Timer == TIM4){GPIOB->CRL &= ~(0xF<<5*4); GPIOB->CRL |= (0xA<<5*4);}
|
||||
break;
|
||||
case 2:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<1*4); GPIOA->CRL |= (0xA<<1*4);}
|
||||
if (Timer == TIM3){GPIOA->CRL &= ~(0xF<<7*4); GPIOA->CRL |= (0xA<<7*4);}
|
||||
if (Timer == TIM4){GPIOB->CRL &= ~(0xF<<7*4); GPIOB->CRL |= (0xA<<7*4);}
|
||||
break;
|
||||
case 3:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<2*4); GPIOA->CRH |= (0xA<<2*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<2*4); GPIOA->CRL |= (0xA<<2*4);}
|
||||
if (Timer == TIM3){GPIOB->CRL &= ~(0xF<<0*4); GPIOB->CRL |= (0xA<<0*4);}
|
||||
if (Timer == TIM4){GPIOB->CRH &= ~(0xF<<0*4); GPIOB->CRH |= (0xA<<0*4);}
|
||||
break;
|
||||
case 4:
|
||||
if (Timer == TIM1){GPIOA->CRH &= ~(0xF<<3*4); GPIOA->CRH |= (0xA<<3*4); TIM1->BDTR |= 1<<15;}
|
||||
if (Timer == TIM2){GPIOA->CRL &= ~(0xF<<3*4); GPIOA->CRL |= (0xA<<3*4);}
|
||||
if (Timer == TIM3){GPIOB->CRL &= ~(0xF<<1*4); GPIOB->CRL |= (0xA<<1*4);}
|
||||
if (Timer == TIM4){GPIOB->CRH &= ~(0xF<<1*4); GPIOB->CRH |= (0xA<<1*4);}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Une fonction qui met le bon PWM voulu
|
||||
int Set_DutyCycle_PWM(TIM_TypeDef *Timer, int Channel, int DutyC){
|
||||
int CCR_VAL = (Timer -> ARR + 1) * DutyC / 100;
|
||||
switch (Channel){
|
||||
case 1: Timer->CCR1 = CCR_VAL;
|
||||
case 2: Timer->CCR2 = CCR_VAL;
|
||||
case 3: Timer->CCR3 = CCR_VAL;
|
||||
case 4: Timer->CCR4 = CCR_VAL;
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
Timer->EGR |= TIM_EGR_UG;
|
||||
}
|
||||
|
||||
// NOuvelle Set_D
|
||||
int Set_DutyCycle_PWM_Plateau(TIM_TypeDef *Timer, int Channel, int DutyC){
|
||||
int CCR_VAL = (Timer->ARR + 1) * DutyC / 100;
|
||||
switch (Channel){
|
||||
case 1:
|
||||
Timer->CCR1 = CCR_VAL;
|
||||
break;
|
||||
case 2:
|
||||
Timer->CCR2 = CCR_VAL;
|
||||
break;
|
||||
case 3:
|
||||
|
||||
Timer->CCR3 = CCR_VAL;
|
||||
break;
|
||||
case 4:
|
||||
Timer->CCR4 = CCR_VAL;
|
||||
break;
|
||||
default:
|
||||
return -1; // channel invalide
|
||||
}
|
||||
Timer->EGR |= TIM_EGR_UG; // update event
|
||||
return 0;
|
||||
}
|
||||
29
ProjetInitial/src/Servo.c
Executable file
29
ProjetInitial/src/Servo.c
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
#include <Servo.h>
|
||||
#include <DriverGPIO.h>
|
||||
#include <PWM.h>
|
||||
#include <Timer.h>
|
||||
|
||||
void Servo_Moteur(int angle, TIM_TypeDef * Timer, int Channel){ // Controle du moteur
|
||||
int dutyCycle = (5* angle + 5*90)/90; // 5-10 % Duty Cycle
|
||||
Set_DutyCycle_PWM(Timer, Channel, dutyCycle);
|
||||
}
|
||||
|
||||
void initServo(TIM_TypeDef * Timer, int Channel){ // Config du moteur servo
|
||||
if (Timer == TIM4) {
|
||||
EnableTimer(TIM4);
|
||||
//MyTimer_Base_Init(TIM4, 20000 - 1, 71);
|
||||
MyTimer_Base_Init(TIM4, 0xFFFF, 22); // Pour obtenir un période de 20 ms
|
||||
|
||||
if (Channel == 3){
|
||||
MyGPIO_Init(GPIOB, 8, AltOut_Ppull); // Outut push pull alternate
|
||||
MyTimer_PWM(TIM4, 3); //TIM4 CH3 pour PB8
|
||||
}
|
||||
else{
|
||||
//printf("Cet pilôte n'existe pas");
|
||||
}
|
||||
}
|
||||
else{
|
||||
//printf("Cet pilôte n'existe pas");
|
||||
}
|
||||
}
|
||||
|
||||
27
ProjetInitial/src/Timer.c
Executable file
27
ProjetInitial/src/Timer.c
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <Timer.h>
|
||||
|
||||
void MyTimer_Base_Init( TIM_TypeDef * Timer , unsigned short ValARR , unsigned short ValPSC ) { // Configuration du timer
|
||||
Timer -> PSC=(ValPSC);
|
||||
Timer-> ARR = (ValARR);
|
||||
Timer->EGR |= TIM_EGR_UG;
|
||||
};
|
||||
|
||||
|
||||
|
||||
void EnableTimer(TIM_TypeDef *Timer){
|
||||
if(Timer == TIM2){
|
||||
RCC -> APB1ENR |= RCC_APB1ENR_TIM2EN;
|
||||
}
|
||||
else if(Timer == TIM3){
|
||||
RCC -> APB1ENR |= RCC_APB1ENR_TIM3EN;
|
||||
}
|
||||
else if(Timer == TIM4){
|
||||
RCC -> APB1ENR |= RCC_APB1ENR_TIM4EN;
|
||||
}
|
||||
else if(Timer == TIM1){
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
|
||||
}
|
||||
else{
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
// File: STM32F101_102_103_105_107.dbgconf
|
||||
// Version: 1.0.0
|
||||
// Note: refer to STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx Reference manual (RM0008)
|
||||
// STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx datasheets
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <h> Debug MCU configuration register (DBGMCU_CR)
|
||||
// <i> Reserved bits must be kept at reset value
|
||||
// <o.30> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
|
||||
// <o.29> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
|
||||
// <o.28> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
|
||||
// <o.27> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
|
||||
// <o.26> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
|
||||
// <o.25> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
|
||||
// <o.21> DBG_CAN2_STOP <i> Debug CAN2 stopped when core is halted
|
||||
// <o.20> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
|
||||
// <o.19> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
|
||||
// <o.18> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
|
||||
// <o.17> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
|
||||
// <o.16> DBG_I2C2_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
|
||||
// <o.15> DBG_I2C1_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
|
||||
// <o.14> DBG_CAN1_STOP <i> Debug CAN1 stopped when Core is halted
|
||||
// <o.13> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
|
||||
// <o.12> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
|
||||
// <o.11> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
|
||||
// <o.10> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
|
||||
// <o.9> DBG_WWDG_STOP <i> Debug window watchdog stopped when core is halted
|
||||
// <o.8> DBG_IWDG_STOP <i> Debug independent watchdog stopped when core is halted
|
||||
// <o.2> DBG_STANDBY <i> Debug standby mode
|
||||
// <o.1> DBG_STOP <i> Debug stop mode
|
||||
// <o.0> DBG_SLEEP <i> Debug sleep mode
|
||||
// </h>
|
||||
DbgMCU_CR = 0x00000007;
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
Loading…
Reference in a new issue