Hello,
after some hours extensive search, I want to share my findings.
I got very strange reset behaviours in a C++ project on an nRF5340 with nRF Connect SDK 2.1.0.
After stripping down the code, I reproduced the behaviour with the hello_world example. I changed it to C++ and added the function printTest2.
#include <zephyr/zephyr.h>
bool printTest2() {
printk("Test2\n");
}
int main(void)
{
for (;;) {
printk("Test1\n");
printTest2();
k_msleep(500);
}
return 0;
}
I know it should return a bool, but actually it does not return anything.
If the project is a pure C-project, it works without problems.
But if it is C++, the result is as follows:
�*** Booting Zephyr OS build v3.1.99-ncs1 ***
Test1
�*** Booting Zephyr OS build v3.1.99-ncs1 ***
Test1
�*** Booting Zephyr OS build v3.1.99-ncs1 ***
Test1
I would be very thankful if someone could give me an advice why leaving the return away leads to a hard fault.
Many thanks in advance.
Kind regards,
Christian