-
Describe the bug To Reproduce Expected behavior Desktop (please complete the following information):
Board (please complete the following information):
Attached sketch |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 4 replies
-
Full build log. notice the line In file included from c:\Users\Danial\Documents\Arduino\libraries\STM32duino_FreeRTOS\src\heap.c:25:
|
Beta Was this translation helpful? Give feedback.
-
This seems to be compiler problem. even after managing to use other types like std::string to get it working, adding more functions to the sketch reproduces the problem. it somehow disables the IRQ. |
Beta Was this translation helpful? Give feedback.
-
Simply remove STM32FreeRTOS include and it should work better. |
Beta Was this translation helpful? Give feedback.
-
@fpistm after hours of debugging and ARM register checking i finally found out that when I declare the Arduino_Core_STM32/cores/arduino/WString.cpp Line 167 in 586319c Some people say it's __libc_init_array or newlib nano doing this but I have no clue. I just remember that I used to get a warning about this
could this be related? manually setting basepri back to zero solves the problem. |
Beta Was this translation helpful? Give feedback.
@fpistm
I finally found the problem. It was really hard to debug and get to the source of it given Arduino's poor debugging resources. but as I guessed this is a library implementation issue. Others have experienced it as well
https://community.st.com/t5/stm32-mcus-products/basepri-setting-after-reset/td-p/589810
after hours of debugging and ARM register checking i finally found out that when I declare the
String someName
thebasepri
value is set to0x50
which should normally not happen. whether this is related to FreeRTOS or not is another story but i found out after declaring the String, at system startup thebasepri
value is changed to a non-zero value at this lineArduino_Core_STM3…