This commit is contained in:
Robin Marin-Muller 2023-04-07 14:43:43 +02:00
parent e06f63afdb
commit 6142877aec
12 changed files with 202 additions and 105 deletions

View file

@ -1,5 +1,7 @@
{
"files.associations": {
"driver_uart.h": "c"
"driver_uart.h": "c",
"driver_imu.h": "c",
"myspi.h": "c"
}
}

View file

@ -70,6 +70,21 @@ void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint8_t channel, uint16
}
}
// Utiliser le TIM4
void MyTimer_ConfigureEncoder(MyTimer_Struct_TypeDef *Timer) {
Timer->Timer->PSC = 0; // Configurer le prescaler à 0 (pour diviser l'horloge de base de 72 MHz par 1)
Timer->Timer->ARR = 359; // Configurer la valeur maximale du compteur (pour éviter les problèmes de débordement)
Timer->Timer->CCMR1 |= TIM_CCMR1_CC1S_0;
Timer->Timer->CCMR1 |= TIM_CCMR1_CC2S_0;
Timer->Timer->CCER &= ~TIM_CCER_CC1P;
Timer->Timer->CCMR1 &= ~(TIM_CCMR1_IC1F_0 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_3);
Timer->Timer->CCER &= ~TIM_CCER_CC2P;
Timer->Timer->CCMR1 &= ~(TIM_CCMR1_IC2F_0 | TIM_CCMR1_IC2F_1 | TIM_CCMR1_IC2F_2 | TIM_CCMR1_IC2F_3);
Timer->Timer->SMCR |= TIM_SMCR_SMS_0 | TIM_SMCR_SMS_1;
}
void Bug (void)
{
while(1);

View file

@ -65,4 +65,6 @@ void MyTimer_PWM(TIM_TypeDef * Timer, char Channel);
*/
void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint8_t pwm_channel, uint16_t duty_cycle);
void MyTimer_ConfigureEncoder(MyTimer_Struct_TypeDef *Timer);
#endif

View file

@ -17,6 +17,7 @@ Section Cross References
driver_timer.o(.ARM.exidx.text.MyTimer_Start) refers to driver_timer.o(.text.MyTimer_Start) for [Anonymous Symbol]
driver_timer.o(.ARM.exidx.text.MyTimer_Stop) refers to driver_timer.o(.text.MyTimer_Stop) for [Anonymous Symbol]
driver_timer.o(.ARM.exidx.text.MyTimer_ConfigurePWM) refers to driver_timer.o(.text.MyTimer_ConfigurePWM) for [Anonymous Symbol]
driver_timer.o(.ARM.exidx.text.MyTimer_ConfigureEncoder) refers to driver_timer.o(.text.MyTimer_ConfigureEncoder) for [Anonymous Symbol]
driver_timer.o(.ARM.exidx.text.Bug) refers to driver_timer.o(.text.Bug) for [Anonymous Symbol]
driver_timer.o(.text.MyTimer_ActiveIT) refers to driver_timer.o(.data.TIM2_fx) for TIM2_fx
driver_timer.o(.text.MyTimer_ActiveIT) refers to driver_timer.o(.data.TIM4_fx) for TIM4_fx
@ -216,6 +217,8 @@ Removing Unused input sections from the image.
Removing driver_timer.o(.ARM.exidx.text.MyTimer_Stop), (8 bytes).
Removing driver_timer.o(.text.MyTimer_ConfigurePWM), (166 bytes).
Removing driver_timer.o(.ARM.exidx.text.MyTimer_ConfigurePWM), (8 bytes).
Removing driver_timer.o(.text.MyTimer_ConfigureEncoder), (70 bytes).
Removing driver_timer.o(.ARM.exidx.text.MyTimer_ConfigureEncoder), (8 bytes).
Removing driver_timer.o(.ARM.exidx.text.Bug), (8 bytes).
Removing driver_timer.o(.text.MyTimer_ActiveIT), (150 bytes).
Removing driver_timer.o(.ARM.exidx.text.MyTimer_ActiveIT), (8 bytes).
@ -256,7 +259,7 @@ Removing Unused input sections from the image.
Removing myspi.o(.revsh_text), (4 bytes).
Removing myspi.o(.rrx_text), (6 bytes).
62 unused section(s) (total 1403 bytes) removed from the image.
64 unused section(s) (total 1481 bytes) removed from the image.
==============================================================================
@ -598,109 +601,109 @@ Memory Map of the image
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000ec Data RO 111 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000008 Code RO 153 * !!!main c_w.l(__main.o)
0x080000f4 0x080000f4 0x00000034 Code RO 318 !!!scatter c_w.l(__scatter.o)
0x08000128 0x08000128 0x0000001a Code RO 320 !!handler_copy c_w.l(__scatter_copy.o)
0x08000000 0x08000000 0x000000ec Data RO 113 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000008 Code RO 155 * !!!main c_w.l(__main.o)
0x080000f4 0x080000f4 0x00000034 Code RO 320 !!!scatter c_w.l(__scatter.o)
0x08000128 0x08000128 0x0000001a Code RO 322 !!handler_copy c_w.l(__scatter_copy.o)
0x08000142 0x08000142 0x00000002 PAD
0x08000144 0x08000144 0x0000001c Code RO 322 !!handler_zi c_w.l(__scatter_zi.o)
0x08000160 0x08000160 0x00000002 Code RO 180 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o)
0x08000162 0x08000162 0x00000000 Code RO 187 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 189 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 191 .ARM.Collect$$libinit$$00000006 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 194 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 196 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 198 .ARM.Collect$$libinit$$00000010 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 201 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 203 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 205 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 207 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 209 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 211 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 213 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 215 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 217 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 219 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 221 .ARM.Collect$$libinit$$00000027 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 225 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 227 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 229 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 231 .ARM.Collect$$libinit$$00000034 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000002 Code RO 232 .ARM.Collect$$libinit$$00000035 c_w.l(libinit2.o)
0x08000164 0x08000164 0x00000002 Code RO 254 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o)
0x08000166 0x08000166 0x00000000 Code RO 269 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 271 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 274 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 277 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 279 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 282 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000002 Code RO 283 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o)
0x08000168 0x08000168 0x00000000 Code RO 155 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o)
0x08000168 0x08000168 0x00000000 Code RO 157 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o)
0x08000168 0x08000168 0x00000006 Code RO 169 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o)
0x0800016e 0x0800016e 0x00000000 Code RO 159 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o)
0x0800016e 0x0800016e 0x00000004 Code RO 160 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000000 Code RO 162 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000008 Code RO 163 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o)
0x0800017a 0x0800017a 0x00000002 Code RO 184 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o)
0x0800017c 0x0800017c 0x00000000 Code RO 234 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o)
0x0800017c 0x0800017c 0x00000004 Code RO 235 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o)
0x08000180 0x08000180 0x00000006 Code RO 236 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o)
0x08000144 0x08000144 0x0000001c Code RO 324 !!handler_zi c_w.l(__scatter_zi.o)
0x08000160 0x08000160 0x00000002 Code RO 182 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o)
0x08000162 0x08000162 0x00000000 Code RO 189 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 191 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 193 .ARM.Collect$$libinit$$00000006 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 196 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 198 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 200 .ARM.Collect$$libinit$$00000010 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 203 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 205 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 207 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 209 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 211 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 213 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 215 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 217 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 219 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 221 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 223 .ARM.Collect$$libinit$$00000027 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 227 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 229 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 231 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 233 .ARM.Collect$$libinit$$00000034 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000002 Code RO 234 .ARM.Collect$$libinit$$00000035 c_w.l(libinit2.o)
0x08000164 0x08000164 0x00000002 Code RO 256 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o)
0x08000166 0x08000166 0x00000000 Code RO 271 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 273 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 276 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 279 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 281 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 284 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000002 Code RO 285 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o)
0x08000168 0x08000168 0x00000000 Code RO 157 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o)
0x08000168 0x08000168 0x00000000 Code RO 159 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o)
0x08000168 0x08000168 0x00000006 Code RO 171 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o)
0x0800016e 0x0800016e 0x00000000 Code RO 161 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o)
0x0800016e 0x0800016e 0x00000004 Code RO 162 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000000 Code RO 164 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000008 Code RO 165 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o)
0x0800017a 0x0800017a 0x00000002 Code RO 186 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o)
0x0800017c 0x0800017c 0x00000000 Code RO 236 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o)
0x0800017c 0x0800017c 0x00000004 Code RO 237 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o)
0x08000180 0x08000180 0x00000006 Code RO 238 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o)
0x08000186 0x08000186 0x00000002 PAD
0x08000188 0x08000188 0x00000040 Code RO 112 * .text startup_stm32f10x_md.o
0x080001c8 0x080001c8 0x00000006 Code RO 151 .text c_w.l(heapauxi.o)
0x080001ce 0x080001ce 0x0000004a Code RO 171 .text c_w.l(sys_stackheap_outer.o)
0x08000218 0x08000218 0x00000012 Code RO 173 .text c_w.l(exit.o)
0x08000188 0x08000188 0x00000040 Code RO 114 * .text startup_stm32f10x_md.o
0x080001c8 0x080001c8 0x00000006 Code RO 153 .text c_w.l(heapauxi.o)
0x080001ce 0x080001ce 0x0000004a Code RO 173 .text c_w.l(sys_stackheap_outer.o)
0x08000218 0x08000218 0x00000012 Code RO 175 .text c_w.l(exit.o)
0x0800022a 0x0800022a 0x00000002 PAD
0x0800022c 0x0800022c 0x00000008 Code RO 181 .text c_w.l(libspace.o)
0x08000234 0x08000234 0x0000000c Code RO 244 .text c_w.l(sys_exit.o)
0x08000240 0x08000240 0x00000002 Code RO 259 .text c_w.l(use_no_semi.o)
0x08000242 0x08000242 0x00000000 Code RO 261 .text c_w.l(indicate_semi.o)
0x0800022c 0x0800022c 0x00000008 Code RO 183 .text c_w.l(libspace.o)
0x08000234 0x08000234 0x0000000c Code RO 246 .text c_w.l(sys_exit.o)
0x08000240 0x08000240 0x00000002 Code RO 261 .text c_w.l(use_no_semi.o)
0x08000242 0x08000242 0x00000000 Code RO 263 .text c_w.l(indicate_semi.o)
0x08000242 0x08000242 0x00000002 PAD
0x08000244 0x08000244 0x0000001c Code RO 82 .text.ADC1_2_IRQHandler driver_adc.o
0x08000260 0x08000260 0x00000002 Code RO 37 .text.Bug driver_timer.o
0x08000244 0x08000244 0x0000001c Code RO 84 .text.ADC1_2_IRQHandler driver_adc.o
0x08000260 0x08000260 0x00000002 Code RO 39 .text.Bug driver_timer.o
0x08000262 0x08000262 0x00000002 PAD
0x08000264 0x08000264 0x00000110 Code RO 119 .text.SystemInit system_stm32f10x.o
0x08000374 0x08000374 0x0000001a Code RO 41 .text.TIM2_IRQHandler driver_timer.o
0x08000264 0x08000264 0x00000110 Code RO 121 .text.SystemInit system_stm32f10x.o
0x08000374 0x08000374 0x0000001a Code RO 43 .text.TIM2_IRQHandler driver_timer.o
0x0800038e 0x0800038e 0x00000002 PAD
0x08000390 0x08000390 0x0000001c Code RO 43 .text.TIM3_IRQHandler driver_timer.o
0x080003ac 0x080003ac 0x0000001c Code RO 45 .text.TIM4_IRQHandler driver_timer.o
0x080003c8 0x080003c8 0x0000000e Code RO 64 .text.USART3_IRQHandler driver_uart.o
0x08000390 0x08000390 0x0000001c Code RO 45 .text.TIM3_IRQHandler driver_timer.o
0x080003ac 0x080003ac 0x0000001c Code RO 47 .text.TIM4_IRQHandler driver_timer.o
0x080003c8 0x080003c8 0x0000000e Code RO 66 .text.USART3_IRQHandler driver_uart.o
0x080003d6 0x080003d6 0x00000002 PAD
0x080003d8 0x080003d8 0x0000004e Code RO 95 .text.driver_IMU_init driver_imu.o
0x080003d8 0x080003d8 0x0000004e Code RO 97 .text.driver_IMU_init driver_imu.o
0x08000426 0x08000426 0x00000002 PAD
0x08000428 0x08000428 0x00000030 Code RO 97 .text.driver_IMU_read driver_imu.o
0x08000458 0x08000458 0x00000012 Code RO 78 .text.driver_adc_1_launch_read driver_adc.o
0x08000428 0x08000428 0x00000030 Code RO 99 .text.driver_IMU_read driver_imu.o
0x08000458 0x08000458 0x00000012 Code RO 80 .text.driver_adc_1_launch_read driver_adc.o
0x0800046a 0x0800046a 0x00000002 PAD
0x0800046c 0x0800046c 0x00000002 Code RO 74 .text.erreur driver_adc.o
0x0800046c 0x0800046c 0x00000002 Code RO 76 .text.erreur driver_adc.o
0x0800046e 0x0800046e 0x00000002 PAD
0x08000470 0x08000470 0x0000001c Code RO 2 .text.main main.o
0x0800048c 0x0800048c 0x00000030 Code RO 135 i.MySPI_Clear_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x080004bc 0x080004bc 0x000001f4 Code RO 136 i.MySPI_Init Lib_Com_Periph_2022.lib(myspi.o)
0x080006b0 0x080006b0 0x00000054 Code RO 137 i.MySPI_Read Lib_Com_Periph_2022.lib(myspi.o)
0x08000704 0x08000704 0x00000050 Code RO 138 i.MySPI_Send Lib_Com_Periph_2022.lib(myspi.o)
0x08000754 0x08000754 0x0000002c Code RO 139 i.MySPI_Set_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x08000780 0x08000780 0x00000020 Data RO 317 Region$$Table anon$$obj.o
0x0800048c 0x0800048c 0x00000030 Code RO 137 i.MySPI_Clear_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x080004bc 0x080004bc 0x000001f4 Code RO 138 i.MySPI_Init Lib_Com_Periph_2022.lib(myspi.o)
0x080006b0 0x080006b0 0x00000054 Code RO 139 i.MySPI_Read Lib_Com_Periph_2022.lib(myspi.o)
0x08000704 0x08000704 0x00000050 Code RO 140 i.MySPI_Send Lib_Com_Periph_2022.lib(myspi.o)
0x08000754 0x08000754 0x0000002c Code RO 141 i.MySPI_Set_NSS Lib_Com_Periph_2022.lib(myspi.o)
0x08000780 0x08000780 0x00000020 Data RO 319 Region$$Table anon$$obj.o
Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x080007a0, Size: 0x00000014, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080007a0 0x00000004 Data RW 140 .data Lib_Com_Periph_2022.lib(myspi.o)
0x20000004 0x080007a4 0x00000004 Data RW 84 .data.ADC1_2_fx driver_adc.o
0x20000008 0x080007a8 0x00000004 Data RW 47 .data.TIM2_fx driver_timer.o
0x2000000c 0x080007ac 0x00000004 Data RW 48 .data.TIM3_fx driver_timer.o
0x20000010 0x080007b0 0x00000004 Data RW 49 .data.TIM4_fx driver_timer.o
0x20000000 0x080007a0 0x00000004 Data RW 142 .data Lib_Com_Periph_2022.lib(myspi.o)
0x20000004 0x080007a4 0x00000004 Data RW 86 .data.ADC1_2_fx driver_adc.o
0x20000008 0x080007a8 0x00000004 Data RW 49 .data.TIM2_fx driver_timer.o
0x2000000c 0x080007ac 0x00000004 Data RW 50 .data.TIM3_fx driver_timer.o
0x20000010 0x080007b0 0x00000004 Data RW 51 .data.TIM4_fx driver_timer.o
Execution Region ER_ZI (Exec base: 0x20000018, Load base: 0x080007b4, Size: 0x00000660, Max: 0xffffffff, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000018 - 0x00000060 Zero RW 182 .bss c_w.l(libspace.o)
0x20000078 - 0x00000200 Zero RW 110 HEAP startup_stm32f10x_md.o
0x20000278 - 0x00000400 Zero RW 109 STACK startup_stm32f10x_md.o
0x20000018 - 0x00000060 Zero RW 184 .bss c_w.l(libspace.o)
0x20000078 - 0x00000200 Zero RW 112 HEAP startup_stm32f10x_md.o
0x20000278 - 0x00000400 Zero RW 111 STACK startup_stm32f10x_md.o
==============================================================================
@ -712,14 +715,14 @@ Image component sizes
48 0 0 4 0 4525 driver_adc.o
126 0 0 0 0 2309 driver_imu.o
84 0 0 12 0 6810 driver_timer.o
84 0 0 12 0 6988 driver_timer.o
14 0 0 0 0 2250 driver_uart.o
28 0 0 0 0 1165 main.o
64 26 236 0 1536 864 startup_stm32f10x_md.o
272 0 0 0 0 2813 system_stm32f10x.o
----------------------------------------------------------------------
648 26 268 16 1536 20736 Object Totals
648 26 268 16 1536 20914 Object Totals
0 0 32 0 0 0 (incl. Generated)
12 0 0 0 0 0 (incl. Padding)
@ -770,8 +773,8 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
1684 122 268 20 1632 21304 Grand Totals
1684 122 268 20 1632 21304 ELF Image Totals
1684 122 268 20 1632 21482 Grand Totals
1684 122 268 20 1632 21482 ELF Image Totals
1684 122 268 20 0 0 ROM Totals
==============================================================================

Binary file not shown.

View file

@ -28,16 +28,78 @@ Project File Date: 04/07/2023
*** Using Compiler 'V6.19', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'sim'
assembling startup_stm32f10x_md.s...
src/main.c(16): error: unknown type name 'Encoder'
Encoder->Timer = TIM4;
^
src/main.c(16): error: expected identifier or '('
Encoder->Timer = TIM4;
^
src/main.c(17): error: expected parameter declarator
MyTimer_Base_Init(&Encoder);
^
src/main.c(17): error: expected ')'
src/main.c(17): note: to match this '('
MyTimer_Base_Init(&Encoder);
^
src/main.c(17): warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a previous declaration [-Wdeprecated-non-prototype]
MyTimer_Base_Init(&Encoder);
^
../driver\Driver_Timer.h(20): note: conflicting prototype is here
void MyTimer_Base_Init(MyTimer_Struct_TypeDef * Timer);
^
src/main.c(17): error: conflicting types for 'MyTimer_Base_Init'
MyTimer_Base_Init(&Encoder);
^
../driver\Driver_Timer.h(20): note: previous declaration is here
void MyTimer_Base_Init(MyTimer_Struct_TypeDef * Timer);
^
src/main.c(18): error: expected parameter declarator
MyTimer_ConfigureEncoder(&Encoder);
^
src/main.c(18): error: expected ')'
src/main.c(18): note: to match this '('
MyTimer_ConfigureEncoder(&Encoder);
^
src/main.c(18): warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a previous declaration [-Wdeprecated-non-prototype]
MyTimer_ConfigureEncoder(&Encoder);
^
../driver\Driver_Timer.h(68): note: conflicting prototype is here
void MyTimer_ConfigureEncoder(MyTimer_Struct_TypeDef *Timer);
^
src/main.c(18): error: conflicting types for 'MyTimer_ConfigureEncoder'
MyTimer_ConfigureEncoder(&Encoder);
^
../driver\Driver_Timer.h(68): note: previous declaration is here
void MyTimer_ConfigureEncoder(MyTimer_Struct_TypeDef *Timer);
^
src/main.c(19): error: expected parameter declarator
MyTimer_Start(&Encoder);
^
src/main.c(19): error: expected ')'
src/main.c(19): note: to match this '('
MyTimer_Start(&Encoder);
^
src/main.c(19): warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a previous declaration [-Wdeprecated-non-prototype]
MyTimer_Start(&Encoder);
^
../driver\Driver_Timer.h(29): note: conflicting prototype is here
void MyTimer_Start(MyTimer_Struct_TypeDef * Timer);
^
src/main.c(19): error: conflicting types for 'MyTimer_Start'
MyTimer_Start(&Encoder);
^
../driver\Driver_Timer.h(29): note: previous declaration is here
void MyTimer_Start(MyTimer_Struct_TypeDef * Timer);
^
3 warnings and 11 errors generated.
compiling main.c...
compiling Driver_ADC.c...
compiling Driver_UART.c...
compiling Driver_IMU.c...
compiling Driver_GPIO.c...
compiling main.c...
compiling Driver_ADC.c...
compiling Driver_Timer.c...
compiling system_stm32f10x.c...
linking...
Program Size: Code=1684 RO-data=268 RW-data=20 ZI-data=1632
".\Objects\projet-voilier.axf" - 0 Error(s), 0 Warning(s).
".\Objects\projet-voilier.axf" - 11 Error(s), 3 Warning(s).
<h2>Software Packages used:</h2>
@ -68,7 +130,8 @@ Package Vendor: Keil
Source file: Device/Source/system_stm32f10x.c
Source file: Device/Source/ARM/STM32F1xx_OPT.s
Source file: Device/Source/ARM/startup_stm32f10x_md.s
Build Time Elapsed: 00:00:00
Target not created.
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

View file

@ -3,7 +3,7 @@
<title>Static Call Graph - [.\Objects\projet-voilier.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\projet-voilier.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Fri Apr 7 14:26:52 2023
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Fri Apr 7 14:37:03 2023
<BR><P>
<H3>Maximum Stack Usage = 24 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>

View file

@ -1,6 +1,6 @@
Dependencies for Project 'projet-voilier', Target 'sim': (DO NOT MODIFY !)
CompilerVersion: 6190000::V6.19::ARMCLANG
F (.\src\main.c)(0x64300B3D)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/main.o -MD)
F (.\src\main.c)(0x64300F40)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/main.o -MD)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -10,7 +10,7 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (..\driver\Driver_GPIO.h)(0x64300B3D)
I (..\driver\Driver_Timer.h)(0x64300B3B)
I (..\driver\Driver_Timer.h)(0x64300E6B)
I (..\driver\Driver_UART.h)(0x642C85A4)
I (..\driver\Driver_ADC.h)(0x64300B06)
I (..\driver\MySPI.h)(0x64300B06)
@ -27,8 +27,8 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
F (..\driver\Driver_GPIO.h)(0x64300B3D)()
F (..\driver\Driver_Timer.c)(0x64300B3B)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_timer.o -MD)
I (..\driver\Driver_Timer.h)(0x64300B3B)
F (..\driver\Driver_Timer.c)(0x64300E52)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_timer.o -MD)
I (..\driver\Driver_Timer.h)(0x64300E6B)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)
I (RTE\_sim\RTE_Components.h)(0x6421A260)
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\core_cm3.h)(0x626FAD4E)
@ -38,7 +38,7 @@ I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cms
I (C:\Users\robin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include\cmsis_armclang.h)(0x626FAD4E)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\system_stm32f10x.h)(0x61ADDBCE)
I (C:\Keil_v5\ARM\ARMCLANG\include\stdio.h)(0x6388AB78)
F (..\driver\Driver_Timer.h)(0x64300B3B)()
F (..\driver\Driver_Timer.h)(0x64300E6B)()
F (..\driver\Driver_UART.c)(0x64300B0F)(-xc -std=c90 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__EVAL -gdwarf-4 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../driver -I ./src -I./RTE/Device/STM32F103RB -I./RTE/_sim -IC:/Users/robin/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/robin/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -o ./objects/driver_uart.o -MD)
I (..\driver\Driver_UART.h)(0x642C85A4)
I (C:\Users\robin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include\stm32f10x.h)(0x61ADDBCE)

File diff suppressed because one or more lines are too long

View file

@ -6,6 +6,18 @@
#include "Driver_ADC.h"
#include "MySPI.h"
#include "Driver_IMU.h"
MyGPIO_Struct_TypeDef TI1;
MyGPIO_Struct_TypeDef TI2;
MyTimer_Struct_TypeDef Encoder;
Encoder->Timer = TIM4;
MyTimer_Base_Init(&Encoder);
MyTimer_ConfigureEncoder(&Encoder);
MyTimer_Start(&Encoder);
int main() {
//Pour le Driver_IMU
char DATAX0 = 0x32;