stm32

ARM Cortex-M3 boot from RAM initial state

爱⌒轻易说出口 提交于 2021-01-21 05:56:51
问题 I have two ARM Cortex-M3 chips: STMF103C8T6 and STM32F103VET6 . When set to boot from RAM, initial state of STMF103C8T6 PC register is 0x20000108 ; 0x200001e0 for STM32F103VET6 . I am unable to find and information about these addresses in the datasheets. Why are they booted this way and where I can find some information about it? Edit: To clarify. When chip set to boot from flash, PC register points to the location of the Reset Handler. This address is provided in the reset vector table at

Stm32 printf float variable

独自空忆成欢 提交于 2020-12-03 07:39:59
问题 I want to log out from stm32f405 via usart. In my syscall.c file i realize function to print via usart: int _write(int file, char *ptr, int len) { int todo; for (todo = 0; todo < len; todo++) { usart_send_char( *ptr++ ); } return len; } Function usart_send_char( *ptr++ ); work as expected. But when i call: printf("%s, %d, %3.2f\r\n", "asd", 777, 13.2 ); I get: asd, 777, 0.00 The float variable not printed correctly. Makefile: PROCESSOR = -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4

Stm32 printf float variable

百般思念 提交于 2020-12-03 07:36:06
问题 I want to log out from stm32f405 via usart. In my syscall.c file i realize function to print via usart: int _write(int file, char *ptr, int len) { int todo; for (todo = 0; todo < len; todo++) { usart_send_char( *ptr++ ); } return len; } Function usart_send_char( *ptr++ ); work as expected. But when i call: printf("%s, %d, %3.2f\r\n", "asd", 777, 13.2 ); I get: asd, 777, 0.00 The float variable not printed correctly. Makefile: PROCESSOR = -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4

Stm32 printf float variable

这一生的挚爱 提交于 2020-12-03 07:35:20
问题 I want to log out from stm32f405 via usart. In my syscall.c file i realize function to print via usart: int _write(int file, char *ptr, int len) { int todo; for (todo = 0; todo < len; todo++) { usart_send_char( *ptr++ ); } return len; } Function usart_send_char( *ptr++ ); work as expected. But when i call: printf("%s, %d, %3.2f\r\n", "asd", 777, 13.2 ); I get: asd, 777, 0.00 The float variable not printed correctly. Makefile: PROCESSOR = -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4

Disabling the STM32 IWDG during debugging

拥有回忆 提交于 2020-11-30 12:55:53
问题 I have a ChibiOS 3.x program on a STM32F4 microcontroller where I use the IWDG watchdog to reset the MCU on errors like this: int main() { iwdgInit(); iwdgStart(&IWDGD, &wd_cfg); while(true) { // ... do stuff } } If I now attach my debugger and, at any point, stop the program (manually or via a breakpoint), the microcontroller will reset after the timeout defined by the watchdog configuration (and therefore cause issues in my debugging process) How can I disable this behaviour, i.e. how can I

Disabling the STM32 IWDG during debugging

白昼怎懂夜的黑 提交于 2020-11-30 12:54:26
问题 I have a ChibiOS 3.x program on a STM32F4 microcontroller where I use the IWDG watchdog to reset the MCU on errors like this: int main() { iwdgInit(); iwdgStart(&IWDGD, &wd_cfg); while(true) { // ... do stuff } } If I now attach my debugger and, at any point, stop the program (manually or via a breakpoint), the microcontroller will reset after the timeout defined by the watchdog configuration (and therefore cause issues in my debugging process) How can I disable this behaviour, i.e. how can I

Disabling the STM32 IWDG during debugging

不想你离开。 提交于 2020-11-30 12:52:26
问题 I have a ChibiOS 3.x program on a STM32F4 microcontroller where I use the IWDG watchdog to reset the MCU on errors like this: int main() { iwdgInit(); iwdgStart(&IWDGD, &wd_cfg); while(true) { // ... do stuff } } If I now attach my debugger and, at any point, stop the program (manually or via a breakpoint), the microcontroller will reset after the timeout defined by the watchdog configuration (and therefore cause issues in my debugging process) How can I disable this behaviour, i.e. how can I