add basic components files

This commit is contained in:
Arnaud Vergnet 2020-10-19 11:12:57 +02:00
parent 1113fd6594
commit f021d56c0c
32 changed files with 1052 additions and 1850 deletions

10
.gitignore vendored
View file

@ -1,14 +1,12 @@
/ /
*.o
*.d
*.crf
!/README.md !/README.md
!/Src/ !/Src/
!/Services/ !/Services/
!/MyDrivers/ !/MyDrivers/
!/LLDrivers/ !/LLDrivers/
!/MDK-ARM/startup_stm32f103xb.s /MDK-ARM/
!/MDK-ARM/startup_stm32f103xb.s
!/MDK-ARM/NUCLEO-F103RB/
!/MDK-ARM/RTE/
!/MDK-ARM/Project.uvoptx
!/MDK-ARM/Project.uvprojx
!/Inc !/Inc
!/.gitignore !/.gitignore

View file

@ -3,59 +3,56 @@
<pre> <pre>
<h1>µVision Build Log</h1> <h1>µVision Build Log</h1>
<h2>Tool Versions:</h2> <h2>Tool Versions:</h2>
IDE-Version: µVision V5.23.0.0 IDE-Version: µVision V5.31.0.0
Copyright (C) 2017 ARM Ltd and ARM Germany GmbH. All rights reserved. Copyright (C) 2020 ARM Ltd and ARM Germany GmbH. All rights reserved.
License Information: Thierry Thierry, INSA, LIC=---- License Information: Toyoste Biencuit, a, LIC=----
Tool Versions: Tool Versions:
Toolchain: MDK-Lite Version: 5.23 Toolchain: MDK-Lite Version: 5.31.0.0
Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin
C Compiler: Armcc.exe V5.06 update 4 (build 422) C Compiler: Armcc.exe V5.06 update 6 (build 750)
Assembler: Armasm.exe V5.06 update 4 (build 422) Assembler: Armasm.exe V5.06 update 6 (build 750)
Linker/Locator: ArmLink.exe V5.06 update 4 (build 422) Linker/Locator: ArmLink.exe V5.06 update 6 (build 750)
Library Manager: ArmAr.exe V5.06 update 4 (build 422) Library Manager: ArmAr.exe V5.06 update 6 (build 750)
Hex Converter: FromElf.exe V5.06 update 4 (build 422) Hex Converter: FromElf.exe V5.06 update 6 (build 750)
CPU DLL: SARMCM3.DLL V5.23 CPU DLL: SARMCM3.DLL V5.31.0.0
Dialog DLL: DARMSTM.DLL V1.68.0.0 Dialog DLL: DARMSTM.DLL V1.68.0.0
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V2.0.18.0 Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.7.0
Dialog DLL: TARMSTM.DLL V1.66.0.0 Dialog DLL: TARMSTM.DLL V1.66.0.0
<h2>Project:</h2> <h2>Project:</h2>
D:\Thierry\2019_2020\Periph\PrepaPeriph\ProjetsKEIL\Nouveau dossier\DerLL\ProjKEIL_Chrono_TIM_IT_LL\MDK-ARM\Project.uvprojx C:\users\vergnet\My Documents\INSA\4A\Info Mat\projet_voilier\MDK-ARM\Project.uvprojx
Project File Date: 09/20/2019 Project File Date: 10/19/2020
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'Simulateur' Build target 'Simulateur'
compiling Chrono.c...
compiling MyTimer.c...
compiling main.c...
compiling stm32f1xx_ll_rcc.c...
compiling stm32f1xx_ll_utils.c...
assembling startup_stm32f103xb.s...
compiling stm32f1xx_ll_tim.c...
compiling system_stm32f1xx.c...
linking... linking...
Program Size: Code=1456 RO-data=268 RW-data=28 ZI-data=1028 Program Size: Code=1464 RO-data=268 RW-data=28 ZI-data=1028
"NUCLEO-F103RB\NUCLEO-F103RB.axf" - 0 Error(s), 0 Warning(s). "NUCLEO-F103RB\NUCLEO-F103RB.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2> <h2>Software Packages used:</h2>
Package Vendor: ARM Package Vendor: ARM
http://www.keil.com/pack/ARM.CMSIS.5.0.1.pack http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack
ARM::CMSIS:CORE:5.0.1 ARM.CMSIS.5.7.0
CMSIS (Cortex Microcontroller Software Interface Standard) CMSIS (Cortex Microcontroller Software Interface Standard)
* Component: CORE Version: 5.0.1 * Component: CORE Version: 5.4.0
Package Vendor: Keil
http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.3.0.pack
Keil.STM32F1xx_DFP.2.3.0
STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
<h2>Collection of Component include folders:</h2> <h2>Collection of Component include folders:</h2>
.\RTE\_Simulateur .\RTE\_Simulateur
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\Include C:\ARM\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include
C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Device\Include C:\ARM\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.0.1 * Component: ARM::CMSIS:CORE:5.4.0
Build Time Elapsed: 00:00:04 Build Time Elapsed: 00:00:01
</pre> </pre>
</body> </body>
</html> </html>

View file

@ -1,4 +1,4 @@
Component: ARM Compiler 5.06 update 4 (build 422) Tool: armlink [4d35d2] Component: ARM Compiler 5.06 update 6 (build 750) Tool: armlink [4d35ed]
============================================================================== ==============================================================================
@ -9,35 +9,35 @@ Section Cross References
main.o(i.main) refers to main.o(i.SystemClock_Config) for SystemClock_Config main.o(i.main) refers to main.o(i.SystemClock_Config) for SystemClock_Config
main.o(i.main) refers to chrono.o(i.Chrono_Conf) for Chrono_Conf main.o(i.main) refers to chrono.o(i.Chrono_Conf) for Chrono_Conf
main.o(i.main) refers to chrono.o(i.Chrono_Start) for Chrono_Start main.o(i.main) refers to chrono.o(i.Chrono_Start) for Chrono_Start
chrono.o(i.Chrono_Conf) refers to mytimer.o(i.MyTimer_Conf) for MyTimer_Conf chrono.o(i.Chrono_Conf) refers to timer.o(i.MyTimer_Conf) for MyTimer_Conf
chrono.o(i.Chrono_Conf) refers to mytimer.o(i.MyTimer_IT_Conf) for MyTimer_IT_Conf chrono.o(i.Chrono_Conf) refers to timer.o(i.MyTimer_IT_Conf) for MyTimer_IT_Conf
chrono.o(i.Chrono_Conf) refers to mytimer.o(i.MyTimer_IT_Enable) for MyTimer_IT_Enable chrono.o(i.Chrono_Conf) refers to timer.o(i.MyTimer_IT_Enable) for MyTimer_IT_Enable
chrono.o(i.Chrono_Conf) refers to chrono.o(.data) for Chrono_Time chrono.o(i.Chrono_Conf) refers to chrono.o(.data) for Chrono_Time
chrono.o(i.Chrono_Conf) refers to chrono.o(i.Chrono_Task_10ms) for Chrono_Task_10ms chrono.o(i.Chrono_Conf) refers to chrono.o(i.Chrono_Task_10ms) for Chrono_Task_10ms
chrono.o(i.Chrono_Read) refers to chrono.o(.data) for Chrono_Time chrono.o(i.Chrono_Read) refers to chrono.o(.data) for Chrono_Time
chrono.o(i.Chrono_Reset) refers to mytimer.o(i.MyTimer_Stop) for MyTimer_Stop chrono.o(i.Chrono_Reset) refers to timer.o(i.MyTimer_Stop) for MyTimer_Stop
chrono.o(i.Chrono_Reset) refers to chrono.o(.data) for Chrono_Timer chrono.o(i.Chrono_Reset) refers to chrono.o(.data) for Chrono_Timer
chrono.o(i.Chrono_Start) refers to mytimer.o(i.MyTimer_Start) for MyTimer_Start chrono.o(i.Chrono_Start) refers to timer.o(i.MyTimer_Start) for MyTimer_Start
chrono.o(i.Chrono_Start) refers to chrono.o(.data) for Chrono_Timer chrono.o(i.Chrono_Start) refers to chrono.o(.data) for Chrono_Timer
chrono.o(i.Chrono_Stop) refers to mytimer.o(i.MyTimer_Stop) for MyTimer_Stop chrono.o(i.Chrono_Stop) refers to timer.o(i.MyTimer_Stop) for MyTimer_Stop
chrono.o(i.Chrono_Stop) refers to chrono.o(.data) for Chrono_Timer chrono.o(i.Chrono_Stop) refers to chrono.o(.data) for Chrono_Timer
chrono.o(i.Chrono_Task_10ms) refers to chrono.o(.data) for Chrono_Time chrono.o(i.Chrono_Task_10ms) refers to chrono.o(.data) for Chrono_Time
mytimer.o(i.MyTimer_Conf) refers to mytimer.o(i.LL_APB1_GRP1_EnableClock) for LL_APB1_GRP1_EnableClock timer.o(i.MyTimer_Conf) refers to timer.o(i.LL_APB1_GRP1_EnableClock) for LL_APB1_GRP1_EnableClock
mytimer.o(i.MyTimer_Conf) refers to stm32f1xx_ll_tim.o(i.LL_TIM_Init) for LL_TIM_Init timer.o(i.MyTimer_Conf) refers to stm32f1xx_ll_tim.o(i.LL_TIM_Init) for LL_TIM_Init
mytimer.o(i.MyTimer_Conf) refers to mytimer.o(i.LL_TIM_DisableIT_UPDATE) for LL_TIM_DisableIT_UPDATE timer.o(i.MyTimer_Conf) refers to timer.o(i.LL_TIM_DisableIT_UPDATE) for LL_TIM_DisableIT_UPDATE
mytimer.o(i.MyTimer_Conf) refers to mytimer.o(i.LL_TIM_DisableCounter) for LL_TIM_DisableCounter timer.o(i.MyTimer_Conf) refers to timer.o(i.LL_TIM_DisableCounter) for LL_TIM_DisableCounter
mytimer.o(i.MyTimer_IT_Conf) refers to mytimer.o(i.LL_TIM_DisableIT_UPDATE) for LL_TIM_DisableIT_UPDATE timer.o(i.MyTimer_IT_Conf) refers to timer.o(i.LL_TIM_DisableIT_UPDATE) for LL_TIM_DisableIT_UPDATE
mytimer.o(i.MyTimer_IT_Conf) refers to mytimer.o(.data) for Ptr_ItFct_TIM1 timer.o(i.MyTimer_IT_Conf) refers to timer.o(.data) for Ptr_ItFct_TIM1
mytimer.o(i.MyTimer_IT_Disable) refers to mytimer.o(i.LL_TIM_DisableIT_UPDATE) for LL_TIM_DisableIT_UPDATE timer.o(i.MyTimer_IT_Disable) refers to timer.o(i.LL_TIM_DisableIT_UPDATE) for LL_TIM_DisableIT_UPDATE
mytimer.o(i.MyTimer_Stop) refers to mytimer.o(i.LL_TIM_DisableCounter) for LL_TIM_DisableCounter timer.o(i.MyTimer_Stop) refers to timer.o(i.LL_TIM_DisableCounter) for LL_TIM_DisableCounter
mytimer.o(i.TIM1_UP_IRQHandler) refers to mytimer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE timer.o(i.TIM1_UP_IRQHandler) refers to timer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE
mytimer.o(i.TIM1_UP_IRQHandler) refers to mytimer.o(.data) for Ptr_ItFct_TIM1 timer.o(i.TIM1_UP_IRQHandler) refers to timer.o(.data) for Ptr_ItFct_TIM1
mytimer.o(i.TIM2_IRQHandler) refers to mytimer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE timer.o(i.TIM2_IRQHandler) refers to timer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE
mytimer.o(i.TIM2_IRQHandler) refers to mytimer.o(.data) for Ptr_ItFct_TIM2 timer.o(i.TIM2_IRQHandler) refers to timer.o(.data) for Ptr_ItFct_TIM2
mytimer.o(i.TIM3_IRQHandler) refers to mytimer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE timer.o(i.TIM3_IRQHandler) refers to timer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE
mytimer.o(i.TIM3_IRQHandler) refers to mytimer.o(.data) for Ptr_ItFct_TIM3 timer.o(i.TIM3_IRQHandler) refers to timer.o(.data) for Ptr_ItFct_TIM3
mytimer.o(i.TIM4_IRQHandler) refers to mytimer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE timer.o(i.TIM4_IRQHandler) refers to timer.o(i.LL_TIM_ClearFlag_UPDATE) for LL_TIM_ClearFlag_UPDATE
mytimer.o(i.TIM4_IRQHandler) refers to mytimer.o(.data) for Ptr_ItFct_TIM4 timer.o(i.TIM4_IRQHandler) refers to timer.o(.data) for Ptr_ItFct_TIM4
stm32f1xx_ll_rcc.o(i.LL_RCC_DeInit) refers to stm32f1xx_ll_rcc.o(i.LL_RCC_PLL_IsReady) for LL_RCC_PLL_IsReady stm32f1xx_ll_rcc.o(i.LL_RCC_DeInit) refers to stm32f1xx_ll_rcc.o(i.LL_RCC_PLL_IsReady) for LL_RCC_PLL_IsReady
stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq) refers to main.o(i.assert_failed) for assert_failed stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq) refers to main.o(i.assert_failed) for assert_failed
stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetSystemClockFreq) for RCC_GetSystemClockFreq stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetSystemClockFreq) for RCC_GetSystemClockFreq
@ -103,10 +103,10 @@ Section Cross References
system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.constdata) for AHBPrescTable system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.constdata) for AHBPrescTable
startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(STACK) for __initial_sp startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(STACK) for __initial_sp
startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(.text) for Reset_Handler startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(.text) for Reset_Handler
startup_stm32f103xb.o(RESET) refers to mytimer.o(i.TIM1_UP_IRQHandler) for TIM1_UP_IRQHandler startup_stm32f103xb.o(RESET) refers to timer.o(i.TIM1_UP_IRQHandler) for TIM1_UP_IRQHandler
startup_stm32f103xb.o(RESET) refers to mytimer.o(i.TIM2_IRQHandler) for TIM2_IRQHandler startup_stm32f103xb.o(RESET) refers to timer.o(i.TIM2_IRQHandler) for TIM2_IRQHandler
startup_stm32f103xb.o(RESET) refers to mytimer.o(i.TIM3_IRQHandler) for TIM3_IRQHandler startup_stm32f103xb.o(RESET) refers to timer.o(i.TIM3_IRQHandler) for TIM3_IRQHandler
startup_stm32f103xb.o(RESET) refers to mytimer.o(i.TIM4_IRQHandler) for TIM4_IRQHandler startup_stm32f103xb.o(RESET) refers to timer.o(i.TIM4_IRQHandler) for TIM4_IRQHandler
startup_stm32f103xb.o(.text) refers to system_stm32f1xx.o(i.SystemInit) for SystemInit startup_stm32f103xb.o(.text) refers to system_stm32f1xx.o(i.SystemInit) for SystemInit
startup_stm32f103xb.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main startup_stm32f103xb.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main
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 entry10a.o(.ARM.Collect$$$$0000000D) for __rt_final_cpp
@ -139,12 +139,12 @@ Removing Unused input sections from the image.
Removing chrono.o(i.Chrono_Read), (8 bytes). Removing chrono.o(i.Chrono_Read), (8 bytes).
Removing chrono.o(i.Chrono_Reset), (32 bytes). Removing chrono.o(i.Chrono_Reset), (32 bytes).
Removing chrono.o(i.Chrono_Stop), (16 bytes). Removing chrono.o(i.Chrono_Stop), (16 bytes).
Removing mytimer.o(.rev16_text), (4 bytes). Removing timer.o(.rev16_text), (4 bytes).
Removing mytimer.o(.revsh_text), (4 bytes). Removing timer.o(.revsh_text), (4 bytes).
Removing mytimer.o(.rrx_text), (6 bytes). Removing timer.o(.rrx_text), (6 bytes).
Removing mytimer.o(i.MyTimer_IT_Disable), (12 bytes). Removing timer.o(i.MyTimer_IT_Disable), (12 bytes).
Removing mytimer.o(i.MyTimer_Stop), (12 bytes). Removing timer.o(i.MyTimer_Stop), (12 bytes).
Removing mytimer.o(.constdata), (35 bytes). Removing timer.o(.constdata), (35 bytes).
Removing stm32f1xx_ll_rcc.o(.rev16_text), (4 bytes). Removing stm32f1xx_ll_rcc.o(.rev16_text), (4 bytes).
Removing stm32f1xx_ll_rcc.o(.revsh_text), (4 bytes). Removing stm32f1xx_ll_rcc.o(.revsh_text), (4 bytes).
Removing stm32f1xx_ll_rcc.o(.rrx_text), (6 bytes). Removing stm32f1xx_ll_rcc.o(.rrx_text), (6 bytes).
@ -218,30 +218,44 @@ Image Symbol Table
../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE ../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE
../Src/system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE ../Src/system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.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 entry11b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
..\LLDrivers\src\stm32f1xx_ll_rcc.c 0x00000000 Number 0 stm32f1xx_ll_rcc.o ABSOLUTE ..\LLDrivers\src\stm32f1xx_ll_rcc.c 0x00000000 Number 0 stm32f1xx_ll_rcc.o ABSOLUTE
..\LLDrivers\src\stm32f1xx_ll_tim.c 0x00000000 Number 0 stm32f1xx_ll_tim.o ABSOLUTE ..\LLDrivers\src\stm32f1xx_ll_tim.c 0x00000000 Number 0 stm32f1xx_ll_tim.o ABSOLUTE
..\LLDrivers\src\stm32f1xx_ll_utils.c 0x00000000 Number 0 stm32f1xx_ll_utils.o ABSOLUTE ..\LLDrivers\src\stm32f1xx_ll_utils.c 0x00000000 Number 0 stm32f1xx_ll_utils.o ABSOLUTE
..\MyDrivers\MyTimer.c 0x00000000 Number 0 mytimer.o ABSOLUTE ..\MyDrivers\ADC.c 0x00000000 Number 0 adc.o ABSOLUTE
..\MyDrivers\GPIO.c 0x00000000 Number 0 gpio.o ABSOLUTE
..\MyDrivers\Timer.c 0x00000000 Number 0 timer.o ABSOLUTE
..\MyDrivers\USART.c 0x00000000 Number 0 usart.o ABSOLUTE
..\Services\Accelerometer.c 0x00000000 Number 0 accelerometer.o ABSOLUTE
..\Services\Chrono.c 0x00000000 Number 0 chrono.o ABSOLUTE ..\Services\Chrono.c 0x00000000 Number 0 chrono.o ABSOLUTE
..\Services\DCMotor.c 0x00000000 Number 0 dcmotor.o ABSOLUTE
..\Services\IncrementalEncoder.c 0x00000000 Number 0 incrementalencoder.o ABSOLUTE
..\Services\RFEmitter.c 0x00000000 Number 0 rfemitter.o ABSOLUTE
..\Services\RFReceiver.c 0x00000000 Number 0 rfreceiver.o ABSOLUTE
..\Services\ServoMotor.c 0x00000000 Number 0 servomotor.o ABSOLUTE
..\Services\Voltage.c 0x00000000 Number 0 voltage.o ABSOLUTE
..\Src\Display.c 0x00000000 Number 0 display.o ABSOLUTE
..\Src\Orientation.c 0x00000000 Number 0 orientation.o ABSOLUTE
..\Src\Roll.c 0x00000000 Number 0 roll.o ABSOLUTE
..\Src\Sail.c 0x00000000 Number 0 sail.o ABSOLUTE
..\Src\main.c 0x00000000 Number 0 main.o ABSOLUTE ..\Src\main.c 0x00000000 Number 0 main.o ABSOLUTE
..\Src\system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE ..\Src\system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE
..\\LLDrivers\\src\\stm32f1xx_ll_rcc.c 0x00000000 Number 0 stm32f1xx_ll_rcc.o ABSOLUTE ..\\LLDrivers\\src\\stm32f1xx_ll_rcc.c 0x00000000 Number 0 stm32f1xx_ll_rcc.o ABSOLUTE
..\\LLDrivers\\src\\stm32f1xx_ll_tim.c 0x00000000 Number 0 stm32f1xx_ll_tim.o ABSOLUTE ..\\LLDrivers\\src\\stm32f1xx_ll_tim.c 0x00000000 Number 0 stm32f1xx_ll_tim.o ABSOLUTE
..\\LLDrivers\\src\\stm32f1xx_ll_utils.c 0x00000000 Number 0 stm32f1xx_ll_utils.o ABSOLUTE ..\\LLDrivers\\src\\stm32f1xx_ll_utils.c 0x00000000 Number 0 stm32f1xx_ll_utils.o ABSOLUTE
..\\MyDrivers\\MyTimer.c 0x00000000 Number 0 mytimer.o ABSOLUTE ..\\MyDrivers\\Timer.c 0x00000000 Number 0 timer.o ABSOLUTE
..\\Services\\Chrono.c 0x00000000 Number 0 chrono.o ABSOLUTE ..\\Services\\Chrono.c 0x00000000 Number 0 chrono.o ABSOLUTE
dc.s 0x00000000 Number 0 dc.o ABSOLUTE dc.s 0x00000000 Number 0 dc.o ABSOLUTE
handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE
@ -263,36 +277,36 @@ Image Symbol Table
i.Chrono_Conf 0x08000148 Section 0 chrono.o(i.Chrono_Conf) i.Chrono_Conf 0x08000148 Section 0 chrono.o(i.Chrono_Conf)
i.Chrono_Start 0x0800018c Section 0 chrono.o(i.Chrono_Start) i.Chrono_Start 0x0800018c Section 0 chrono.o(i.Chrono_Start)
i.Chrono_Task_10ms 0x0800019c Section 0 chrono.o(i.Chrono_Task_10ms) i.Chrono_Task_10ms 0x0800019c Section 0 chrono.o(i.Chrono_Task_10ms)
i.LL_APB1_GRP1_EnableClock 0x080001e4 Section 0 mytimer.o(i.LL_APB1_GRP1_EnableClock) i.LL_APB1_GRP1_EnableClock 0x080001e4 Section 0 timer.o(i.LL_APB1_GRP1_EnableClock)
LL_APB1_GRP1_EnableClock 0x080001e5 Thumb Code 24 mytimer.o(i.LL_APB1_GRP1_EnableClock) LL_APB1_GRP1_EnableClock 0x080001e5 Thumb Code 24 timer.o(i.LL_APB1_GRP1_EnableClock)
i.LL_Init1msTick 0x08000200 Section 0 stm32f1xx_ll_utils.o(i.LL_Init1msTick) i.LL_Init1msTick 0x08000200 Section 0 stm32f1xx_ll_utils.o(i.LL_Init1msTick)
i.LL_SetSystemCoreClock 0x0800021c Section 0 stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock) i.LL_SetSystemCoreClock 0x0800021c Section 0 stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock)
i.LL_TIM_ClearFlag_UPDATE 0x08000228 Section 0 mytimer.o(i.LL_TIM_ClearFlag_UPDATE) i.LL_TIM_ClearFlag_UPDATE 0x08000228 Section 0 timer.o(i.LL_TIM_ClearFlag_UPDATE)
LL_TIM_ClearFlag_UPDATE 0x08000229 Thumb Code 8 mytimer.o(i.LL_TIM_ClearFlag_UPDATE) LL_TIM_ClearFlag_UPDATE 0x08000229 Thumb Code 8 timer.o(i.LL_TIM_ClearFlag_UPDATE)
i.LL_TIM_DisableCounter 0x08000230 Section 0 mytimer.o(i.LL_TIM_DisableCounter) i.LL_TIM_DisableCounter 0x08000230 Section 0 timer.o(i.LL_TIM_DisableCounter)
LL_TIM_DisableCounter 0x08000231 Thumb Code 10 mytimer.o(i.LL_TIM_DisableCounter) LL_TIM_DisableCounter 0x08000231 Thumb Code 10 timer.o(i.LL_TIM_DisableCounter)
i.LL_TIM_DisableIT_UPDATE 0x0800023a Section 0 mytimer.o(i.LL_TIM_DisableIT_UPDATE) i.LL_TIM_DisableIT_UPDATE 0x0800023a Section 0 timer.o(i.LL_TIM_DisableIT_UPDATE)
LL_TIM_DisableIT_UPDATE 0x0800023b Thumb Code 10 mytimer.o(i.LL_TIM_DisableIT_UPDATE) LL_TIM_DisableIT_UPDATE 0x0800023b Thumb Code 10 timer.o(i.LL_TIM_DisableIT_UPDATE)
i.LL_TIM_Init 0x08000244 Section 0 stm32f1xx_ll_tim.o(i.LL_TIM_Init) i.LL_TIM_Init 0x08000244 Section 0 stm32f1xx_ll_tim.o(i.LL_TIM_Init)
i.MyTimer_Conf 0x08000358 Section 0 mytimer.o(i.MyTimer_Conf) i.MyTimer_Conf 0x08000358 Section 0 timer.o(i.MyTimer_Conf)
i.MyTimer_IT_Conf 0x080003dc Section 0 mytimer.o(i.MyTimer_IT_Conf) i.MyTimer_IT_Conf 0x080003dc Section 0 timer.o(i.MyTimer_IT_Conf)
i.MyTimer_IT_Enable 0x0800049c Section 0 mytimer.o(i.MyTimer_IT_Enable) i.MyTimer_IT_Enable 0x080004a4 Section 0 timer.o(i.MyTimer_IT_Enable)
i.MyTimer_Start 0x080004aa Section 0 mytimer.o(i.MyTimer_Start) i.MyTimer_Start 0x080004b2 Section 0 timer.o(i.MyTimer_Start)
i.SystemClock_Config 0x080004b8 Section 0 main.o(i.SystemClock_Config) i.SystemClock_Config 0x080004c0 Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x080005a8 Section 0 system_stm32f1xx.o(i.SystemInit) i.SystemInit 0x080005b0 Section 0 system_stm32f1xx.o(i.SystemInit)
i.TIM1_UP_IRQHandler 0x08000600 Section 0 mytimer.o(i.TIM1_UP_IRQHandler) i.TIM1_UP_IRQHandler 0x08000608 Section 0 timer.o(i.TIM1_UP_IRQHandler)
i.TIM2_IRQHandler 0x08000618 Section 0 mytimer.o(i.TIM2_IRQHandler) i.TIM2_IRQHandler 0x08000620 Section 0 timer.o(i.TIM2_IRQHandler)
i.TIM3_IRQHandler 0x08000630 Section 0 mytimer.o(i.TIM3_IRQHandler) i.TIM3_IRQHandler 0x08000638 Section 0 timer.o(i.TIM3_IRQHandler)
i.TIM4_IRQHandler 0x08000648 Section 0 mytimer.o(i.TIM4_IRQHandler) i.TIM4_IRQHandler 0x08000650 Section 0 timer.o(i.TIM4_IRQHandler)
i.__scatterload_copy 0x08000660 Section 14 handlers.o(i.__scatterload_copy) i.__scatterload_copy 0x08000668 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x0800066e Section 2 handlers.o(i.__scatterload_null) i.__scatterload_null 0x08000676 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08000670 Section 14 handlers.o(i.__scatterload_zeroinit) i.__scatterload_zeroinit 0x08000678 Section 14 handlers.o(i.__scatterload_zeroinit)
i.assert_failed 0x0800067e Section 0 main.o(i.assert_failed) i.assert_failed 0x08000686 Section 0 main.o(i.assert_failed)
i.main 0x08000684 Section 0 main.o(i.main) i.main 0x0800068c Section 0 main.o(i.main)
.data 0x20000000 Section 8 chrono.o(.data) .data 0x20000000 Section 8 chrono.o(.data)
Chrono_Time 0x20000000 Data 3 chrono.o(.data) Chrono_Time 0x20000000 Data 3 chrono.o(.data)
Chrono_Timer 0x20000004 Data 4 chrono.o(.data) Chrono_Timer 0x20000004 Data 4 chrono.o(.data)
.data 0x20000008 Section 16 mytimer.o(.data) .data 0x20000008 Section 16 timer.o(.data)
.data 0x20000018 Section 4 system_stm32f1xx.o(.data) .data 0x20000018 Section 4 system_stm32f1xx.o(.data)
STACK 0x20000020 Section 1024 startup_stm32f103xb.o(STACK) STACK 0x20000020 Section 1024 startup_stm32f103xb.o(STACK)
@ -376,27 +390,27 @@ Image Symbol Table
LL_Init1msTick 0x08000201 Thumb Code 28 stm32f1xx_ll_utils.o(i.LL_Init1msTick) LL_Init1msTick 0x08000201 Thumb Code 28 stm32f1xx_ll_utils.o(i.LL_Init1msTick)
LL_SetSystemCoreClock 0x0800021d Thumb Code 6 stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock) LL_SetSystemCoreClock 0x0800021d Thumb Code 6 stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock)
LL_TIM_Init 0x08000245 Thumb Code 228 stm32f1xx_ll_tim.o(i.LL_TIM_Init) LL_TIM_Init 0x08000245 Thumb Code 228 stm32f1xx_ll_tim.o(i.LL_TIM_Init)
MyTimer_Conf 0x08000359 Thumb Code 118 mytimer.o(i.MyTimer_Conf) MyTimer_Conf 0x08000359 Thumb Code 118 timer.o(i.MyTimer_Conf)
MyTimer_IT_Conf 0x080003dd Thumb Code 158 mytimer.o(i.MyTimer_IT_Conf) MyTimer_IT_Conf 0x080003dd Thumb Code 166 timer.o(i.MyTimer_IT_Conf)
MyTimer_IT_Enable 0x0800049d Thumb Code 14 mytimer.o(i.MyTimer_IT_Enable) MyTimer_IT_Enable 0x080004a5 Thumb Code 14 timer.o(i.MyTimer_IT_Enable)
MyTimer_Start 0x080004ab Thumb Code 14 mytimer.o(i.MyTimer_Start) MyTimer_Start 0x080004b3 Thumb Code 14 timer.o(i.MyTimer_Start)
SystemClock_Config 0x080004b9 Thumb Code 226 main.o(i.SystemClock_Config) SystemClock_Config 0x080004c1 Thumb Code 226 main.o(i.SystemClock_Config)
SystemInit 0x080005a9 Thumb Code 70 system_stm32f1xx.o(i.SystemInit) SystemInit 0x080005b1 Thumb Code 70 system_stm32f1xx.o(i.SystemInit)
TIM1_UP_IRQHandler 0x08000601 Thumb Code 16 mytimer.o(i.TIM1_UP_IRQHandler) TIM1_UP_IRQHandler 0x08000609 Thumb Code 16 timer.o(i.TIM1_UP_IRQHandler)
TIM2_IRQHandler 0x08000619 Thumb Code 18 mytimer.o(i.TIM2_IRQHandler) TIM2_IRQHandler 0x08000621 Thumb Code 18 timer.o(i.TIM2_IRQHandler)
TIM3_IRQHandler 0x08000631 Thumb Code 16 mytimer.o(i.TIM3_IRQHandler) TIM3_IRQHandler 0x08000639 Thumb Code 16 timer.o(i.TIM3_IRQHandler)
TIM4_IRQHandler 0x08000649 Thumb Code 16 mytimer.o(i.TIM4_IRQHandler) TIM4_IRQHandler 0x08000651 Thumb Code 16 timer.o(i.TIM4_IRQHandler)
__scatterload_copy 0x08000661 Thumb Code 14 handlers.o(i.__scatterload_copy) __scatterload_copy 0x08000669 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x0800066f Thumb Code 2 handlers.o(i.__scatterload_null) __scatterload_null 0x08000677 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08000671 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) __scatterload_zeroinit 0x08000679 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
assert_failed 0x0800067f Thumb Code 4 main.o(i.assert_failed) assert_failed 0x08000687 Thumb Code 4 main.o(i.assert_failed)
main 0x08000685 Thumb Code 18 main.o(i.main) main 0x0800068d Thumb Code 18 main.o(i.main)
Region$$Table$$Base 0x0800069c Number 0 anon$$obj.o(Region$$Table) Region$$Table$$Base 0x080006a4 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080006bc Number 0 anon$$obj.o(Region$$Table) Region$$Table$$Limit 0x080006c4 Number 0 anon$$obj.o(Region$$Table)
Ptr_ItFct_TIM1 0x20000008 Data 4 mytimer.o(.data) Ptr_ItFct_TIM1 0x20000008 Data 4 timer.o(.data)
Ptr_ItFct_TIM2 0x2000000c Data 4 mytimer.o(.data) Ptr_ItFct_TIM2 0x2000000c Data 4 timer.o(.data)
Ptr_ItFct_TIM3 0x20000010 Data 4 mytimer.o(.data) Ptr_ItFct_TIM3 0x20000010 Data 4 timer.o(.data)
Ptr_ItFct_TIM4 0x20000014 Data 4 mytimer.o(.data) Ptr_ItFct_TIM4 0x20000014 Data 4 timer.o(.data)
SystemCoreClock 0x20000018 Data 4 system_stm32f1xx.o(.data) SystemCoreClock 0x20000018 Data 4 system_stm32f1xx.o(.data)
__initial_sp 0x20000420 Data 0 startup_stm32f103xb.o(STACK) __initial_sp 0x20000420 Data 0 startup_stm32f103xb.o(STACK)
@ -408,62 +422,62 @@ Memory Map of the image
Image Entry point : 0x080000ed Image Entry point : 0x080000ed
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000006d8, Max: 0x00020000, ABSOLUTE) Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000006e0, Max: 0x00020000, ABSOLUTE)
Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x000006bc, Max: 0x00020000, ABSOLUTE) Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000006c4, Max: 0x00020000, ABSOLUTE)
Base Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x000000ec Data RO 624 RESET startup_stm32f103xb.o 0x08000000 0x08000000 0x000000ec Data RO 753 RESET startup_stm32f103xb.o
0x080000ec 0x00000000 Code RO 629 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) 0x080000ec 0x080000ec 0x00000000 Code RO 758 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x080000ec 0x00000004 Code RO 632 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) 0x080000ec 0x080000ec 0x00000004 Code RO 761 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x080000f0 0x00000004 Code RO 635 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) 0x080000f0 0x080000f0 0x00000004 Code RO 764 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x080000f4 0x00000000 Code RO 637 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) 0x080000f4 0x080000f4 0x00000000 Code RO 766 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x080000f4 0x00000000 Code RO 639 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) 0x080000f4 0x080000f4 0x00000000 Code RO 768 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x080000f4 0x00000008 Code RO 640 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) 0x080000f4 0x080000f4 0x00000008 Code RO 769 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x080000fc 0x00000000 Code RO 642 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) 0x080000fc 0x080000fc 0x00000000 Code RO 771 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
0x080000fc 0x00000000 Code RO 644 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) 0x080000fc 0x080000fc 0x00000000 Code RO 773 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
0x080000fc 0x00000004 Code RO 633 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) 0x080000fc 0x080000fc 0x00000004 Code RO 762 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000100 0x00000024 Code RO 625 .text startup_stm32f103xb.o 0x08000100 0x08000100 0x00000024 Code RO 754 .text startup_stm32f103xb.o
0x08000124 0x00000024 Code RO 646 .text mc_w.l(init.o) 0x08000124 0x08000124 0x00000024 Code RO 775 .text mc_w.l(init.o)
0x08000148 0x00000044 Code RO 78 i.Chrono_Conf chrono.o 0x08000148 0x08000148 0x00000044 Code RO 117 i.Chrono_Conf chrono.o
0x0800018c 0x00000010 Code RO 81 i.Chrono_Start chrono.o 0x0800018c 0x0800018c 0x00000010 Code RO 120 i.Chrono_Start chrono.o
0x0800019c 0x00000048 Code RO 83 i.Chrono_Task_10ms chrono.o 0x0800019c 0x0800019c 0x00000048 Code RO 122 i.Chrono_Task_10ms chrono.o
0x080001e4 0x0000001c Code RO 137 i.LL_APB1_GRP1_EnableClock mytimer.o 0x080001e4 0x080001e4 0x0000001c Code RO 239 i.LL_APB1_GRP1_EnableClock timer.o
0x08000200 0x0000001c Code RO 332 i.LL_Init1msTick stm32f1xx_ll_utils.o 0x08000200 0x08000200 0x0000001c Code RO 461 i.LL_Init1msTick stm32f1xx_ll_utils.o
0x0800021c 0x0000000c Code RO 339 i.LL_SetSystemCoreClock stm32f1xx_ll_utils.o 0x0800021c 0x0800021c 0x0000000c Code RO 468 i.LL_SetSystemCoreClock stm32f1xx_ll_utils.o
0x08000228 0x00000008 Code RO 138 i.LL_TIM_ClearFlag_UPDATE mytimer.o 0x08000228 0x08000228 0x00000008 Code RO 240 i.LL_TIM_ClearFlag_UPDATE timer.o
0x08000230 0x0000000a Code RO 139 i.LL_TIM_DisableCounter mytimer.o 0x08000230 0x08000230 0x0000000a Code RO 241 i.LL_TIM_DisableCounter timer.o
0x0800023a 0x0000000a Code RO 140 i.LL_TIM_DisableIT_UPDATE mytimer.o 0x0800023a 0x0800023a 0x0000000a Code RO 242 i.LL_TIM_DisableIT_UPDATE timer.o
0x08000244 0x00000114 Code RO 444 i.LL_TIM_Init stm32f1xx_ll_tim.o 0x08000244 0x08000244 0x00000114 Code RO 573 i.LL_TIM_Init stm32f1xx_ll_tim.o
0x08000358 0x00000084 Code RO 141 i.MyTimer_Conf mytimer.o 0x08000358 0x08000358 0x00000084 Code RO 243 i.MyTimer_Conf timer.o
0x080003dc 0x000000c0 Code RO 142 i.MyTimer_IT_Conf mytimer.o 0x080003dc 0x080003dc 0x000000c8 Code RO 244 i.MyTimer_IT_Conf timer.o
0x0800049c 0x0000000e Code RO 144 i.MyTimer_IT_Enable mytimer.o 0x080004a4 0x080004a4 0x0000000e Code RO 246 i.MyTimer_IT_Enable timer.o
0x080004aa 0x0000000e Code RO 145 i.MyTimer_Start mytimer.o 0x080004b2 0x080004b2 0x0000000e Code RO 247 i.MyTimer_Start timer.o
0x080004b8 0x000000f0 Code RO 4 i.SystemClock_Config main.o 0x080004c0 0x080004c0 0x000000f0 Code RO 4 i.SystemClock_Config main.o
0x080005a8 0x00000058 Code RO 589 i.SystemInit system_stm32f1xx.o 0x080005b0 0x080005b0 0x00000058 Code RO 718 i.SystemInit system_stm32f1xx.o
0x08000600 0x00000018 Code RO 147 i.TIM1_UP_IRQHandler mytimer.o 0x08000608 0x08000608 0x00000018 Code RO 249 i.TIM1_UP_IRQHandler timer.o
0x08000618 0x00000018 Code RO 148 i.TIM2_IRQHandler mytimer.o 0x08000620 0x08000620 0x00000018 Code RO 250 i.TIM2_IRQHandler timer.o
0x08000630 0x00000018 Code RO 149 i.TIM3_IRQHandler mytimer.o 0x08000638 0x08000638 0x00000018 Code RO 251 i.TIM3_IRQHandler timer.o
0x08000648 0x00000018 Code RO 150 i.TIM4_IRQHandler mytimer.o 0x08000650 0x08000650 0x00000018 Code RO 252 i.TIM4_IRQHandler timer.o
0x08000660 0x0000000e Code RO 650 i.__scatterload_copy mc_w.l(handlers.o) 0x08000668 0x08000668 0x0000000e Code RO 779 i.__scatterload_copy mc_w.l(handlers.o)
0x0800066e 0x00000002 Code RO 651 i.__scatterload_null mc_w.l(handlers.o) 0x08000676 0x08000676 0x00000002 Code RO 780 i.__scatterload_null mc_w.l(handlers.o)
0x08000670 0x0000000e Code RO 652 i.__scatterload_zeroinit mc_w.l(handlers.o) 0x08000678 0x08000678 0x0000000e Code RO 781 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x0800067e 0x00000004 Code RO 5 i.assert_failed main.o 0x08000686 0x08000686 0x00000004 Code RO 5 i.assert_failed main.o
0x08000682 0x00000002 PAD 0x0800068a 0x0800068a 0x00000002 PAD
0x08000684 0x00000018 Code RO 6 i.main main.o 0x0800068c 0x0800068c 0x00000018 Code RO 6 i.main main.o
0x0800069c 0x00000020 Data RO 648 Region$$Table anon$$obj.o 0x080006a4 0x080006a4 0x00000020 Data RO 777 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Base: 0x20000000, Size: 0x00000420, Max: 0x00005000, ABSOLUTE) Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080006c4, Size: 0x00000420, Max: 0x00005000, ABSOLUTE)
Base Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x00000008 Data RW 84 .data chrono.o 0x20000000 0x080006c4 0x00000008 Data RW 123 .data chrono.o
0x20000008 0x00000010 Data RW 152 .data mytimer.o 0x20000008 0x080006cc 0x00000010 Data RW 254 .data timer.o
0x20000018 0x00000004 Data RW 591 .data system_stm32f1xx.o 0x20000018 0x080006dc 0x00000004 Data RW 720 .data system_stm32f1xx.o
0x2000001c 0x00000004 PAD 0x2000001c 0x080006e0 0x00000004 PAD
0x20000020 0x00000400 Zero RW 622 STACK startup_stm32f103xb.o 0x20000020 - 0x00000400 Zero RW 751 STACK startup_stm32f103xb.o
============================================================================== ==============================================================================
@ -473,16 +487,16 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name Code (inc. data) RO Data RW Data ZI Data Debug Object Name
156 22 0 8 0 2192 chrono.o 156 22 0 8 0 2000 chrono.o
268 20 0 0 0 357020 main.o 268 20 0 0 0 356672 main.o
504 82 0 16 0 59517 mytimer.o 36 8 236 0 1024 780 startup_stm32f103xb.o
36 8 236 0 1024 820 startup_stm32f103xb.o 276 48 0 0 0 28994 stm32f1xx_ll_tim.o
276 48 0 0 0 29110 stm32f1xx_ll_tim.o 40 6 0 0 0 2105 stm32f1xx_ll_utils.o
40 6 0 0 0 2213 stm32f1xx_ll_utils.o 88 18 0 4 0 1171 system_stm32f1xx.o
88 18 0 4 0 1287 system_stm32f1xx.o 512 82 0 16 0 59169 timer.o
---------------------------------------------------------------------- ----------------------------------------------------------------------
1370 204 268 28 1028 452159 Object Totals 1378 204 268 28 1028 450891 Object Totals
0 0 32 0 0 0 (incl. Generated) 0 0 32 0 0 0 (incl. Generated)
2 0 0 0 4 0 (incl. Padding) 2 0 0 0 4 0 (incl. Padding)
@ -521,15 +535,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Code (inc. data) RO Data RW Data ZI Data Debug
1456 220 268 28 1028 451339 Grand Totals 1464 220 268 28 1028 450071 Grand Totals
1456 220 268 28 1028 451339 ELF Image Totals 1464 220 268 28 1028 450071 ELF Image Totals
1456 220 268 28 0 0 ROM Totals 1464 220 268 28 0 0 ROM Totals
============================================================================== ==============================================================================
Total RO Size (Code + RO Data) 1724 ( 1.68kB) Total RO Size (Code + RO Data) 1732 ( 1.69kB)
Total RW Size (RW Data + ZI Data) 1056 ( 1.03kB) Total RW Size (RW Data + ZI Data) 1056 ( 1.03kB)
Total ROM Size (Code + RO Data + RW Data) 1752 ( 1.71kB) Total ROM Size (Code + RO Data + RW Data) 1760 ( 1.72kB)
============================================================================== ==============================================================================

View file

@ -7,6 +7,7 @@ LR_IROM1 0x08000000 0x00020000 { ; load region size_region
*.o (RESET, +First) *.o (RESET, +First)
*(InRoot$$Sections) *(InRoot$$Sections)
.ANY (+RO) .ANY (+RO)
.ANY (+XO)
} }
RW_IRAM1 0x20000000 0x00005000 { ; RW data RW_IRAM1 0x20000000 0x00005000 { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)

Binary file not shown.

Binary file not shown.

View file

@ -101,6 +101,8 @@
<sRunDeb>0</sRunDeb> <sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime> <sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>5</nTsel> <nTsel>5</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
@ -230,8 +232,13 @@
<pszMrule></pszMrule> <pszMrule></pszMrule>
<pSingCmds></pSingCmds> <pSingCmds></pSingCmds>
<pMultCmds></pMultCmds> <pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog> <EnableLog>0</EnableLog>
<Protocol>2</Protocol> <Protocol>2</Protocol>
<DbgClock>10000000</DbgClock> <DbgClock>10000000</DbgClock>
@ -319,6 +326,8 @@
<sRunDeb>0</sRunDeb> <sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime> <sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>5</nTsel> <nTsel>5</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
@ -425,8 +434,13 @@
<pszMrule></pszMrule> <pszMrule></pszMrule>
<pSingCmds></pSingCmds> <pSingCmds></pSingCmds>
<pMultCmds></pMultCmds> <pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog> <EnableLog>0</EnableLog>
<Protocol>2</Protocol> <Protocol>2</Protocol>
<DbgClock>10000000</DbgClock> <DbgClock>10000000</DbgClock>
@ -452,6 +466,54 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Src\Display.c</PathWithFileName>
<FilenameWithoutPath>Display.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Src\Orientation.c</PathWithFileName>
<FilenameWithoutPath>Orientation.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Src\Roll.c</PathWithFileName>
<FilenameWithoutPath>Roll.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Src\Sail.c</PathWithFileName>
<FilenameWithoutPath>Sail.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@ -462,7 +524,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>2</FileNumber> <FileNumber>6</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -472,6 +534,90 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\Accelerometer.c</PathWithFileName>
<FilenameWithoutPath>Accelerometer.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\DCMotor.c</PathWithFileName>
<FilenameWithoutPath>DCMotor.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\IncrementalEncoder.c</PathWithFileName>
<FilenameWithoutPath>IncrementalEncoder.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\RFEmitter.c</PathWithFileName>
<FilenameWithoutPath>RFEmitter.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\RFReceiver.c</PathWithFileName>
<FilenameWithoutPath>RFReceiver.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\ServoMotor.c</PathWithFileName>
<FilenameWithoutPath>ServoMotor.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\Voltage.c</PathWithFileName>
<FilenameWithoutPath>Voltage.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@ -482,13 +628,49 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>3</FileNumber> <FileNumber>14</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\MyDrivers\MyTimer.c</PathWithFileName> <PathWithFileName>..\MyDrivers\Timer.c</PathWithFileName>
<FilenameWithoutPath>MyTimer.c</FilenameWithoutPath> <FilenameWithoutPath>Timer.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\MyDrivers\ADC.c</PathWithFileName>
<FilenameWithoutPath>ADC.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\MyDrivers\GPIO.c</PathWithFileName>
<FilenameWithoutPath>GPIO.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\MyDrivers\USART.c</PathWithFileName>
<FilenameWithoutPath>USART.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
@ -502,7 +684,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>4</FileNumber> <FileNumber>18</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -514,7 +696,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>5</FileNumber> <FileNumber>19</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -526,7 +708,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>6</FileNumber> <FileNumber>20</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -546,7 +728,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>7</FileNumber> <FileNumber>21</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -566,7 +748,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>8</FileNumber> <FileNumber>22</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -586,7 +768,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>9</FileNumber> <FileNumber>23</FileNumber>
<FileType>2</FileType> <FileType>2</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

View file

@ -11,11 +11,12 @@
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060422::V5.06 update 4 (build 422)::ARMCC</pCCUsed> <pCCUsed>5060422::V5.06 update 4 (build 422)::ARMCC</pCCUsed>
<uAC6>8</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F103RB</Device> <Device>STM32F103RB</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.2.0</PackID> <PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL> <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu> <Cpu>IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
@ -183,6 +184,8 @@
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP> <RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@ -323,6 +326,7 @@
<uThumb>0</uThumb> <uThumb>0</uThumb>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<uC99>0</uC99> <uC99>0</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO> <useXO>0</useXO>
<v6Lang>1</v6Lang> <v6Lang>1</v6Lang>
<v6LangP>1</v6LangP> <v6LangP>1</v6LangP>
@ -348,7 +352,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<uClangAs>0</uClangAs> <ClangAsOpt>4</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -384,6 +388,26 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>../Src/main.c</FilePath> <FilePath>../Src/main.c</FilePath>
</File> </File>
<File>
<FileName>Display.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Display.c</FilePath>
</File>
<File>
<FileName>Orientation.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Orientation.c</FilePath>
</File>
<File>
<FileName>Roll.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Roll.c</FilePath>
</File>
<File>
<FileName>Sail.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Sail.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
@ -394,15 +418,65 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\Services\Chrono.c</FilePath> <FilePath>..\Services\Chrono.c</FilePath>
</File> </File>
<File>
<FileName>Accelerometer.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\Accelerometer.c</FilePath>
</File>
<File>
<FileName>DCMotor.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\DCMotor.c</FilePath>
</File>
<File>
<FileName>IncrementalEncoder.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\IncrementalEncoder.c</FilePath>
</File>
<File>
<FileName>RFEmitter.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\RFEmitter.c</FilePath>
</File>
<File>
<FileName>RFReceiver.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\RFReceiver.c</FilePath>
</File>
<File>
<FileName>ServoMotor.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\ServoMotor.c</FilePath>
</File>
<File>
<FileName>Voltage.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\Voltage.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
<GroupName>MyDrivers</GroupName> <GroupName>MyDrivers</GroupName>
<Files> <Files>
<File> <File>
<FileName>MyTimer.c</FileName> <FileName>Timer.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\MyDrivers\MyTimer.c</FilePath> <FilePath>..\MyDrivers\Timer.c</FilePath>
</File>
<File>
<FileName>ADC.c</FileName>
<FileType>1</FileType>
<FilePath>..\MyDrivers\ADC.c</FilePath>
</File>
<File>
<FileName>GPIO.c</FileName>
<FileType>1</FileType>
<FilePath>..\MyDrivers\GPIO.c</FilePath>
</File>
<File>
<FileName>USART.c</FileName>
<FileType>1</FileType>
<FilePath>..\MyDrivers\USART.c</FilePath>
</File> </File>
</Files> </Files>
</Group> </Group>
@ -465,12 +539,13 @@
<TargetName>Simulateur</TargetName> <TargetName>Simulateur</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060422::V5.06 update 4 (build 422)::ARMCC</pCCUsed> <pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
<uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F103RB</Device> <Device>STM32F103RB</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.2.0</PackID> <PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL> <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu> <Cpu>IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
@ -638,6 +713,8 @@
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP> <RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@ -778,6 +855,7 @@
<uThumb>0</uThumb> <uThumb>0</uThumb>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<uC99>0</uC99> <uC99>0</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO> <useXO>0</useXO>
<v6Lang>1</v6Lang> <v6Lang>1</v6Lang>
<v6LangP>1</v6LangP> <v6LangP>1</v6LangP>
@ -803,7 +881,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<uClangAs>0</uClangAs> <ClangAsOpt>4</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -839,6 +917,26 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>../Src/main.c</FilePath> <FilePath>../Src/main.c</FilePath>
</File> </File>
<File>
<FileName>Display.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Display.c</FilePath>
</File>
<File>
<FileName>Orientation.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Orientation.c</FilePath>
</File>
<File>
<FileName>Roll.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Roll.c</FilePath>
</File>
<File>
<FileName>Sail.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\Sail.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
@ -849,15 +947,65 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\Services\Chrono.c</FilePath> <FilePath>..\Services\Chrono.c</FilePath>
</File> </File>
<File>
<FileName>Accelerometer.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\Accelerometer.c</FilePath>
</File>
<File>
<FileName>DCMotor.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\DCMotor.c</FilePath>
</File>
<File>
<FileName>IncrementalEncoder.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\IncrementalEncoder.c</FilePath>
</File>
<File>
<FileName>RFEmitter.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\RFEmitter.c</FilePath>
</File>
<File>
<FileName>RFReceiver.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\RFReceiver.c</FilePath>
</File>
<File>
<FileName>ServoMotor.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\ServoMotor.c</FilePath>
</File>
<File>
<FileName>Voltage.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\Voltage.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
<GroupName>MyDrivers</GroupName> <GroupName>MyDrivers</GroupName>
<Files> <Files>
<File> <File>
<FileName>MyTimer.c</FileName> <FileName>Timer.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\MyDrivers\MyTimer.c</FilePath> <FilePath>..\MyDrivers\Timer.c</FilePath>
</File>
<File>
<FileName>ADC.c</FileName>
<FileType>1</FileType>
<FilePath>..\MyDrivers\ADC.c</FilePath>
</File>
<File>
<FileName>GPIO.c</FileName>
<FileType>1</FileType>
<FilePath>..\MyDrivers\GPIO.c</FilePath>
</File>
<File>
<FileName>USART.c</FileName>
<FileType>1</FileType>
<FilePath>..\MyDrivers\USART.c</FilePath>
</File> </File>
</Files> </Files>
</Group> </Group>
@ -932,4 +1080,19 @@
<files/> <files/>
</RTE> </RTE>
<LayerInfo>
<Layers>
<Layer>
<LayName>&lt;Project Info&gt;</LayName>
<LayDesc></LayDesc>
<LayUrl></LayUrl>
<LayKeys></LayKeys>
<LayCat></LayCat>
<LayLic></LayLic>
<LayTarg>0</LayTarg>
<LayPrjMark>1</LayPrjMark>
</Layer>
</Layers>
</LayerInfo>
</Project> </Project>

View file

@ -1,70 +1,4 @@
// RIEN A MODIFIER // #ifndef ADC_H
#define ADC_H
#ifndef MY_TIMER_H
#define MY_TIMER_H
/*
Driver pour Timer 1 à 4 du STM32F103RB
*/
#include "stm32f103xb.h"
/**
* @brief Active l'horloge et règle l'ARR et le PSC du timer visé
* @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* int Arr : valeur à placer dans ARR
* int Psc : valeur à placer dans PSC
* @retval None
*/
void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc);
/**
* @brief Démarre le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Start(TIM_TypeDef * Timer);
/**
* @brief Arrêt le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Stop(TIM_TypeDef * Timer);
/**
* @brief Configure le Timer considéré en interruption sur débordement.
* @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable )
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
* int Prio : priorité associée à l'interruption
* @retval None
*/
void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio);
/**
* @brief Autorise les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Enable(TIM_TypeDef * Timer);
/**
* @brief Interdit les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Disable(TIM_TypeDef * Timer);
#endif #endif

View file

@ -1,70 +1,4 @@
// RIEN A MODIFIER // #ifndef GPIO_H
#define GPIO_H
#ifndef MY_TIMER_H
#define MY_TIMER_H
/*
Driver pour Timer 1 à 4 du STM32F103RB
*/
#include "stm32f103xb.h"
/**
* @brief Active l'horloge et règle l'ARR et le PSC du timer visé
* @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* int Arr : valeur à placer dans ARR
* int Psc : valeur à placer dans PSC
* @retval None
*/
void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc);
/**
* @brief Démarre le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Start(TIM_TypeDef * Timer);
/**
* @brief Arrêt le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Stop(TIM_TypeDef * Timer);
/**
* @brief Configure le Timer considéré en interruption sur débordement.
* @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable )
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
* int Prio : priorité associée à l'interruption
* @retval None
*/
void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio);
/**
* @brief Autorise les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Enable(TIM_TypeDef * Timer);
/**
* @brief Interdit les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Disable(TIM_TypeDef * Timer);
#endif #endif

View file

@ -1,182 +0,0 @@
// TOUT A FAIRE !! //
/*
indispensable pour pouvoir adresser les registres des périphériques.
Rem : OBLIGATION d'utiliser les définitions utiles contenues dans ce fichier (ex : TIM_CR1_CEN, RCC_APB1ENR_TIM2EN ...)
pour une meilleure lisibilité du code.
Pour les masques, utiliser également les définitions proposée
Rappel : pour mettre à 1 , reg = reg | Mask (ou Mask est le représente le ou les bits à positionner à 1)
pour mettre à 0 , reg = reg&~ Mask (ou Mask est le représente le ou les bits à positionner à 0)
*/
#include "MyTimer.h"
#include "stm32f1xx_ll_bus.h" // Pour l'activation des horloges
#include "stm32f1xx_ll_tim.h"
// variable pointeur de fonction permettant de mémoriser le callback à appeler depuis
// le handler d'IT
void (*Ptr_ItFct_TIM1)(void);
void (*Ptr_ItFct_TIM2)(void);
void (*Ptr_ItFct_TIM3)(void);
void (*Ptr_ItFct_TIM4)(void);
/**
* @brief Active l'horloge et règle l'ARR et le PSC du timer visé
* @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* int Arr : valeur à placer dans ARR
* int Psc : valeur à placer dans PSC
* @retval None
*/
void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc)
{
LL_TIM_InitTypeDef My_LL_Tim_Init_Struct;
// Validation horloge locale
if (Timer==TIM1) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1);
else if (Timer==TIM2) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2);
else if (Timer==TIM3) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3);
else LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4);
// chargement structure Arr, Psc, Up Count
My_LL_Tim_Init_Struct.Autoreload=Arr;
My_LL_Tim_Init_Struct.Prescaler=Psc;
My_LL_Tim_Init_Struct.ClockDivision=LL_TIM_CLOCKDIVISION_DIV1;
My_LL_Tim_Init_Struct.CounterMode=LL_TIM_COUNTERMODE_UP;
My_LL_Tim_Init_Struct.RepetitionCounter=0;
LL_TIM_Init(Timer,&My_LL_Tim_Init_Struct);
// Blocage IT
LL_TIM_DisableIT_UPDATE(Timer);
// Blocage Timer
LL_TIM_DisableCounter(Timer);
}
/**
* @brief Démarre le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Start(TIM_TypeDef * Timer)
{
LL_TIM_EnableCounter(Timer);
}
/**
* @brief Arrêt le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Stop(TIM_TypeDef * Timer)
{
LL_TIM_DisableCounter(Timer);
}
/**
* @brief Configure le Timer considéré en interruption sur débordement.
* @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable )
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
* int Prio : priorité associée à l'interruption
* @retval None
*/
void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio)
{
// affectation de la fonction
if (Timer==TIM1) Ptr_ItFct_TIM1=IT_function;
else if (Timer==TIM2) Ptr_ItFct_TIM2=IT_function;
else if (Timer==TIM3) Ptr_ItFct_TIM3=IT_function;
else Ptr_ItFct_TIM4=IT_function;
// Blocage IT (il faudra la débloquer voir fct suivante)
LL_TIM_DisableIT_UPDATE(Timer);
// validation du canal NVIC
IRQn_Type TIM_irq;
if (Timer==TIM1) TIM_irq=TIM1_UP_IRQn;
else if (Timer==TIM2) TIM_irq=TIM2_IRQn;
else if (Timer==TIM3) TIM_irq=TIM3_IRQn;
else TIM_irq=TIM4_IRQn;
NVIC_SetPriority(TIM_irq, Prio);
NVIC_EnableIRQ(TIM_irq);
}
/**
* @brief Autorise les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Enable(TIM_TypeDef * Timer)
{
LL_TIM_EnableIT_UPDATE(Timer);
}
/**
* @brief Interdit les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Disable(TIM_TypeDef * Timer)
{
LL_TIM_DisableIT_UPDATE(Timer);
}
/*
============ LES INTERRUPTIONS =================================
*/
void TIM1_UP_IRQHandler(void)
{
// rabaisser le flag d'IT
LL_TIM_ClearFlag_UPDATE(TIM1);
(*Ptr_ItFct_TIM1)();
}
void TIM2_IRQHandler(void)
{
// rabaisser le flag d'IT
LL_TIM_ClearFlag_UPDATE(TIM2);
(*Ptr_ItFct_TIM2)();
}
void TIM3_IRQHandler(void)
{
// rabaisser le flag d'IT
LL_TIM_ClearFlag_UPDATE(TIM3);
(*Ptr_ItFct_TIM3)();
}
void TIM4_IRQHandler(void)
{
// rabaisser le flag d'IT
LL_TIM_ClearFlag_UPDATE(TIM4);
(*Ptr_ItFct_TIM4)();
}

View file

@ -1,70 +0,0 @@
// RIEN A MODIFIER //
#ifndef MY_TIMER_H
#define MY_TIMER_H
/*
Driver pour Timer 1 à 4 du STM32F103RB
*/
#include "stm32f103xb.h"
/**
* @brief Active l'horloge et règle l'ARR et le PSC du timer visé
* @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* int Arr : valeur à placer dans ARR
* int Psc : valeur à placer dans PSC
* @retval None
*/
void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc);
/**
* @brief Démarre le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Start(TIM_TypeDef * Timer);
/**
* @brief Arrêt le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Stop(TIM_TypeDef * Timer);
/**
* @brief Configure le Timer considéré en interruption sur débordement.
* @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable )
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
* int Prio : priorité associée à l'interruption
* @retval None
*/
void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio);
/**
* @brief Autorise les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Enable(TIM_TypeDef * Timer);
/**
* @brief Interdit les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Disable(TIM_TypeDef * Timer);
#endif

View file

@ -1,7 +1,7 @@
// RIEN A MODIFIER // // RIEN A MODIFIER //
#ifndef MY_TIMER_H #ifndef TIMER_H
#define MY_TIMER_H #define TIMER_H
/* /*
Driver pour Timer 1 à 4 du STM32F103RB Driver pour Timer 1 à 4 du STM32F103RB

View file

@ -1,70 +1,5 @@
// RIEN A MODIFIER // #ifndef USART_H
#define USART_H
#ifndef MY_TIMER_H
#define MY_TIMER_H
/*
Driver pour Timer 1 à 4 du STM32F103RB
*/
#include "stm32f103xb.h"
/**
* @brief Active l'horloge et règle l'ARR et le PSC du timer visé
* @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* int Arr : valeur à placer dans ARR
* int Psc : valeur à placer dans PSC
* @retval None
*/
void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc);
/**
* @brief Démarre le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Start(TIM_TypeDef * Timer);
/**
* @brief Arrêt le timer considéré
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_Stop(TIM_TypeDef * Timer);
/**
* @brief Configure le Timer considéré en interruption sur débordement.
* @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable )
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
* int Prio : priorité associée à l'interruption
* @retval None
*/
void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio);
/**
* @brief Autorise les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Enable(TIM_TypeDef * Timer);
/**
* @brief Interdit les interruptions
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyTimer_IT_Disable(TIM_TypeDef * Timer);
#endif #endif

View file

@ -1,107 +1,4 @@
// RIEN A MODIFIER // #ifndef ACCELEROMETER_H
#define ACCELEROMETER_H
#ifndef CHRONO_H
#define CHRONO_H
/*
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
Utilise un timer au choix (TIMER1 à TIMER4).
Utilise la lib MyTimers.h /.c
*/
#include "stm32f103xb.h"
/* =====================================================================================
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
=======================================================================================*/
#define PinStart LL_GPIO_PIN_8
#define PinStop LL_GPIO_PIN_6
// à compléter pour la pin reset du chronometre
#define PinLED LL_GPIO_PIN_10
#define GPIO_Pin GPIOC
#define GPIO_LED GPIOC
/**
* @brief polle les 3 entrées et gènère les actions à faire
* @note Fct à lancer en tâche de fond (non bloquante)
* @param None
* @retval None
*/
void Chrono_Background(void);
//=======================================================================================//
// Type de donnée utilisé dans le module
typedef struct {
char Hund;
char Sec;
char Min;
} Time;
/**
* @brief Configure le chronomètre.
* @note A lancer avant toute autre fonction.
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void Chrono_Conf(TIM_TypeDef * Timer);
/**
* @brief Démarre le chronomètre.
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
* @param Aucun
* @retval Aucun
*/
void Chrono_Start(void);
/**
* @brief Arrête le chronomètre.
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Stop(void);
/**
* @brief Remet le chronomètre à 0
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Reset(void);
/**
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
* @note
* @param Aucun
* @retval adresse de la variable Time
*/
Time * Chrono_Read(void);
#endif #endif

View file

@ -9,7 +9,7 @@ Utilise la lib MyTimers.h /.c
#include "Chrono.h" #include "Chrono.h"
#include "MyTimer.h" #include "Timer.h"
// variable privée de type Time qui mémorise la durée mesurée // variable privée de type Time qui mémorise la durée mesurée
static Time Chrono_Time; // rem : static rend la visibilité de la variable Chrono_Time limitée à ce fichier static Time Chrono_Time; // rem : static rend la visibilité de la variable Chrono_Time limitée à ce fichier

View file

@ -1,107 +1,5 @@
// RIEN A MODIFIER // #ifndef DCMOTOR_H
#define DCMOTOR_H
#ifndef CHRONO_H
#define CHRONO_H
/*
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
Utilise un timer au choix (TIMER1 à TIMER4).
Utilise la lib MyTimers.h /.c
*/
#include "stm32f103xb.h"
/* =====================================================================================
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
=======================================================================================*/
#define PinStart LL_GPIO_PIN_8
#define PinStop LL_GPIO_PIN_6
// à compléter pour la pin reset du chronometre
#define PinLED LL_GPIO_PIN_10
#define GPIO_Pin GPIOC
#define GPIO_LED GPIOC
/**
* @brief polle les 3 entrées et gènère les actions à faire
* @note Fct à lancer en tâche de fond (non bloquante)
* @param None
* @retval None
*/
void Chrono_Background(void);
//=======================================================================================//
// Type de donnée utilisé dans le module
typedef struct {
char Hund;
char Sec;
char Min;
} Time;
/**
* @brief Configure le chronomètre.
* @note A lancer avant toute autre fonction.
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void Chrono_Conf(TIM_TypeDef * Timer);
/**
* @brief Démarre le chronomètre.
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
* @param Aucun
* @retval Aucun
*/
void Chrono_Start(void);
/**
* @brief Arrête le chronomètre.
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Stop(void);
/**
* @brief Remet le chronomètre à 0
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Reset(void);
/**
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
* @note
* @param Aucun
* @retval adresse de la variable Time
*/
Time * Chrono_Read(void);
#endif #endif

View file

@ -1,107 +1,4 @@
// RIEN A MODIFIER // #ifndef INC_ENCODER_H
#define INC_ENCODER_H
#ifndef CHRONO_H
#define CHRONO_H
/*
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
Utilise un timer au choix (TIMER1 à TIMER4).
Utilise la lib MyTimers.h /.c
*/
#include "stm32f103xb.h"
/* =====================================================================================
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
=======================================================================================*/
#define PinStart LL_GPIO_PIN_8
#define PinStop LL_GPIO_PIN_6
// à compléter pour la pin reset du chronometre
#define PinLED LL_GPIO_PIN_10
#define GPIO_Pin GPIOC
#define GPIO_LED GPIOC
/**
* @brief polle les 3 entrées et gènère les actions à faire
* @note Fct à lancer en tâche de fond (non bloquante)
* @param None
* @retval None
*/
void Chrono_Background(void);
//=======================================================================================//
// Type de donnée utilisé dans le module
typedef struct {
char Hund;
char Sec;
char Min;
} Time;
/**
* @brief Configure le chronomètre.
* @note A lancer avant toute autre fonction.
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void Chrono_Conf(TIM_TypeDef * Timer);
/**
* @brief Démarre le chronomètre.
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
* @param Aucun
* @retval Aucun
*/
void Chrono_Start(void);
/**
* @brief Arrête le chronomètre.
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Stop(void);
/**
* @brief Remet le chronomètre à 0
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Reset(void);
/**
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
* @note
* @param Aucun
* @retval adresse de la variable Time
*/
Time * Chrono_Read(void);
#endif #endif

View file

@ -1,107 +1,4 @@
// RIEN A MODIFIER // #ifndef RFEMITTER_H
#define RFEMITTER_H
#ifndef CHRONO_H
#define CHRONO_H
/*
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
Utilise un timer au choix (TIMER1 à TIMER4).
Utilise la lib MyTimers.h /.c
*/
#include "stm32f103xb.h"
/* =====================================================================================
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
=======================================================================================*/
#define PinStart LL_GPIO_PIN_8
#define PinStop LL_GPIO_PIN_6
// à compléter pour la pin reset du chronometre
#define PinLED LL_GPIO_PIN_10
#define GPIO_Pin GPIOC
#define GPIO_LED GPIOC
/**
* @brief polle les 3 entrées et gènère les actions à faire
* @note Fct à lancer en tâche de fond (non bloquante)
* @param None
* @retval None
*/
void Chrono_Background(void);
//=======================================================================================//
// Type de donnée utilisé dans le module
typedef struct {
char Hund;
char Sec;
char Min;
} Time;
/**
* @brief Configure le chronomètre.
* @note A lancer avant toute autre fonction.
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void Chrono_Conf(TIM_TypeDef * Timer);
/**
* @brief Démarre le chronomètre.
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
* @param Aucun
* @retval Aucun
*/
void Chrono_Start(void);
/**
* @brief Arrête le chronomètre.
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Stop(void);
/**
* @brief Remet le chronomètre à 0
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Reset(void);
/**
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
* @note
* @param Aucun
* @retval adresse de la variable Time
*/
Time * Chrono_Read(void);
#endif #endif

View file

@ -1,107 +1,4 @@
// RIEN A MODIFIER // #ifndef RFRECEIVER_H
#define RFRECEIVER_H
#ifndef CHRONO_H
#define CHRONO_H
/*
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
Utilise un timer au choix (TIMER1 à TIMER4).
Utilise la lib MyTimers.h /.c
*/
#include "stm32f103xb.h"
/* =====================================================================================
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
=======================================================================================*/
#define PinStart LL_GPIO_PIN_8
#define PinStop LL_GPIO_PIN_6
// à compléter pour la pin reset du chronometre
#define PinLED LL_GPIO_PIN_10
#define GPIO_Pin GPIOC
#define GPIO_LED GPIOC
/**
* @brief polle les 3 entrées et gènère les actions à faire
* @note Fct à lancer en tâche de fond (non bloquante)
* @param None
* @retval None
*/
void Chrono_Background(void);
//=======================================================================================//
// Type de donnée utilisé dans le module
typedef struct {
char Hund;
char Sec;
char Min;
} Time;
/**
* @brief Configure le chronomètre.
* @note A lancer avant toute autre fonction.
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void Chrono_Conf(TIM_TypeDef * Timer);
/**
* @brief Démarre le chronomètre.
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
* @param Aucun
* @retval Aucun
*/
void Chrono_Start(void);
/**
* @brief Arrête le chronomètre.
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Stop(void);
/**
* @brief Remet le chronomètre à 0
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Reset(void);
/**
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
* @note
* @param Aucun
* @retval adresse de la variable Time
*/
Time * Chrono_Read(void);
#endif #endif

View file

@ -1,107 +1,4 @@
// RIEN A MODIFIER // #ifndef SERVO_MOTOR_H
#define SERVO_MOTOR_H
#ifndef CHRONO_H
#define CHRONO_H
/*
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
Utilise un timer au choix (TIMER1 à TIMER4).
Utilise la lib MyTimers.h /.c
*/
#include "stm32f103xb.h"
/* =====================================================================================
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
=======================================================================================*/
#define PinStart LL_GPIO_PIN_8
#define PinStop LL_GPIO_PIN_6
// à compléter pour la pin reset du chronometre
#define PinLED LL_GPIO_PIN_10
#define GPIO_Pin GPIOC
#define GPIO_LED GPIOC
/**
* @brief polle les 3 entrées et gènère les actions à faire
* @note Fct à lancer en tâche de fond (non bloquante)
* @param None
* @retval None
*/
void Chrono_Background(void);
//=======================================================================================//
// Type de donnée utilisé dans le module
typedef struct {
char Hund;
char Sec;
char Min;
} Time;
/**
* @brief Configure le chronomètre.
* @note A lancer avant toute autre fonction.
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void Chrono_Conf(TIM_TypeDef * Timer);
/**
* @brief Démarre le chronomètre.
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
* @param Aucun
* @retval Aucun
*/
void Chrono_Start(void);
/**
* @brief Arrête le chronomètre.
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Stop(void);
/**
* @brief Remet le chronomètre à 0
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Reset(void);
/**
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
* @note
* @param Aucun
* @retval adresse de la variable Time
*/
Time * Chrono_Read(void);
#endif #endif

View file

@ -1,107 +1,4 @@
// RIEN A MODIFIER // #ifndef VOLTAGE_H
#define VOLTAGE_H
#ifndef CHRONO_H
#define CHRONO_H
/*
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
Utilise un timer au choix (TIMER1 à TIMER4).
Utilise la lib MyTimers.h /.c
*/
#include "stm32f103xb.h"
/* =====================================================================================
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
=======================================================================================*/
#define PinStart LL_GPIO_PIN_8
#define PinStop LL_GPIO_PIN_6
// à compléter pour la pin reset du chronometre
#define PinLED LL_GPIO_PIN_10
#define GPIO_Pin GPIOC
#define GPIO_LED GPIOC
/**
* @brief polle les 3 entrées et gènère les actions à faire
* @note Fct à lancer en tâche de fond (non bloquante)
* @param None
* @retval None
*/
void Chrono_Background(void);
//=======================================================================================//
// Type de donnée utilisé dans le module
typedef struct {
char Hund;
char Sec;
char Min;
} Time;
/**
* @brief Configure le chronomètre.
* @note A lancer avant toute autre fonction.
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void Chrono_Conf(TIM_TypeDef * Timer);
/**
* @brief Démarre le chronomètre.
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
* @param Aucun
* @retval Aucun
*/
void Chrono_Start(void);
/**
* @brief Arrête le chronomètre.
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Stop(void);
/**
* @brief Remet le chronomètre à 0
* @note
* @param Aucun
* @retval Aucun
*/
void Chrono_Reset(void);
/**
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
* @note
* @param Aucun
* @retval adresse de la variable Time
*/
Time * Chrono_Read(void);
#endif #endif

View file

View file

@ -0,0 +1,4 @@
#ifndef DISPLAY_H
#define DISPLAY_H
#endif

View file

@ -0,0 +1,4 @@
#ifndef ORIENTATION_H
#define ORIENTATION_H
#endif

View file

@ -0,0 +1,4 @@
#ifndef ROLL_H
#define ROLL_H
#endif

View file

@ -0,0 +1,4 @@
#ifndef SAIL_H
#define SAIL_H
#endif