Running cpp code on NUCLEO144 STM32F767ZI using ChibiOS 19
Posted: Mon Feb 24, 2020 1:06 pm
Hello,
I am trying to port a piece of cpp code from ChibiOS18.2.1 to 19.1.3 using NUCLEO144 STM32F767ZI and run into problems. After spending a whole day trying different approaches I have narrow down problem to a simple blinker code where a blinker thread class is defined and then is started inside the main function.
I have created two projects: for ver.18 and ver.19 (both attached). The main.cpp is the same in both of them and configuration files are taken from demos/STM32/RT-STM32F767ZI-NUCLEO144. Makefiles differs only to respect differences in building process between two versions of OS. The version for 18 works as expected while for 19 hangs during initialization. I tried another board, Discovery F407, and there was no problem. I have used gcc 6.3.1 but also tried the recent 9.2.1 with no positive effects.
I had also problem during linking of ver. 19 which was related to missing _exit, _kill and _getpid. Adding __attribute__((used)) in the definition of the functions inside syscalls_cpp.cpp fixed the problem. The ver. 18 didn't needed such action.
At this moment I have run out of options (appart from sticking to version 18.2.1) and I would really appreciate any hint what I could try to do.
Thanks in advance,
Jurek
I am trying to port a piece of cpp code from ChibiOS18.2.1 to 19.1.3 using NUCLEO144 STM32F767ZI and run into problems. After spending a whole day trying different approaches I have narrow down problem to a simple blinker code where a blinker thread class is defined and then is started inside the main function.
I have created two projects: for ver.18 and ver.19 (both attached). The main.cpp is the same in both of them and configuration files are taken from demos/STM32/RT-STM32F767ZI-NUCLEO144. Makefiles differs only to respect differences in building process between two versions of OS. The version for 18 works as expected while for 19 hangs during initialization. I tried another board, Discovery F407, and there was no problem. I have used gcc 6.3.1 but also tried the recent 9.2.1 with no positive effects.
I had also problem during linking of ver. 19 which was related to missing _exit, _kill and _getpid. Adding __attribute__((used)) in the definition of the functions inside syscalls_cpp.cpp fixed the problem. The ver. 18 didn't needed such action.
At this moment I have run out of options (appart from sticking to version 18.2.1) and I would really appreciate any hint what I could try to do.
Thanks in advance,
Jurek