Giovanni wrote:Those things are out of my visibility, can't really help with that.
My generic advice is to remove everything then re-introduce things one at time.
Giovanni
Thanks anyway. I'll try to keep this updated
Moderator: RoccoMarco
Giovanni wrote:Those things are out of my visibility, can't really help with that.
My generic advice is to remove everything then re-introduce things one at time.
Giovanni
rew wrote:If you need the "EXTIv1 driver", (or not) you seem to be using and STM32xxxx CPU. These are "cortex-M" arm-variants. These do not have the original ARM instruction set, but only the thumb instruction set.tsm wrote:- I'm compilling an extra file chibios/os/hal/ports/STM32/LLD/EXTIv1
- I had -mthumb mode enabled. I've restored this which entailed removing -mthumb and adding -mno-thumb-interwork -DTHUMB_NO_INTERWORKING. But still the same behaviour
So... I would expect that you NEED the -mthumb option to the compiler.
Code: Select all
// C++ headers.
#include <cstdio>
#include <ch.h>
#include <hal.h>
#include <SerialPort.hpp>
SerialPort p1 = SerialPort(&SD1);
int
main()
{
// Initialize subsystems.
halInit();
chSysInit();
palClearLine(LED_1);
palClearLine(LED_2);
palClearLine(LED_3);
while (!chThdShouldTerminateX())
{
chThdSleepMilliseconds(1000);
palToggleLine(LED_1);
palToggleLine(LED_2);
palToggleLine(LED_3);
}
}Code: Select all
// chtrace.c @ line 143
void _trace_isr_leave(const char *isr) {
if ((ch.dbg.trace_buffer.suspended & CH_DBG_TRACE_MASK_ISR) == 0U) {
port_lock_from_isr();
ch.dbg.trace_buffer.ptr->type = CH_TRACE_TYPE_ISR_LEAVE;
ch.dbg.trace_buffer.ptr->state = 0U;
ch.dbg.trace_buffer.ptr->u.isr.name = isr;
trace_next();
port_unlock_from_isr();
}
}