Re: chSysHalt (reason=0x8001918 "SV#8")
Posted: Fri Mar 29, 2019 12:01 pm
OK, let me know. SV#8 would be something related to IRQs anyway.
Giovanni
Giovanni
ChibiOS Web Boards
https://forum.chibios.org/
Code: Select all
bt
#0 chSysHalt (reason=0x8001918 "SV#8") at ./lib/chibios/os/rt/src/chsys.c:213
#1 _dbg_check_enter_isr () at ./lib/chibios/os/rt/src/chdebug.c:204
#2 0x080013f0 in VectorB0 () at ./lib/chibios/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c:255
#3 <signal handler called>
#4 0x55555554 in ?? ()
Code: Select all
int main(void)
{
// System initialization
halInit();
chSysInit();
// App initialization
mainInit();
while (true)
{
palToggleLine(LINE_ONBOARD_LED);
chThdSleepMilliseconds(100);
}
}
Code: Select all
(gdb) start
Temporary breakpoint 12 at 0x8000840: file ./lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_lld.c, line 135.
Starting program: /Users/terciofilho/Code/f1template/out/TEMPLATE.elf
Breakpoint 5, main () at ./src/main.c:30
30 halInit();
(gdb) c
Continuing.
Breakpoint 1, _dbg_check_lock () at ./lib/chibios/os/rt/src/chdebug.c:150
150 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt != (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 2, _dbg_check_unlock () at ./lib/chibios/os/rt/src/chdebug.c:163
163 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt <= (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 1, _dbg_check_lock () at ./lib/chibios/os/rt/src/chdebug.c:150
150 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt != (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 2, _dbg_check_unlock () at ./lib/chibios/os/rt/src/chdebug.c:163
163 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt <= (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 1, _dbg_check_lock () at ./lib/chibios/os/rt/src/chdebug.c:150
150 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt != (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 2, _dbg_check_unlock () at ./lib/chibios/os/rt/src/chdebug.c:163
163 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt <= (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 1, _dbg_check_lock () at ./lib/chibios/os/rt/src/chdebug.c:150
150 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt != (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 2, _dbg_check_unlock () at ./lib/chibios/os/rt/src/chdebug.c:163
163 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt <= (cnt_t)0)) {
(gdb) c
Continuing.
Breakpoint 1, _dbg_check_lock () at ./lib/chibios/os/rt/src/chdebug.c:150
150 if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt != (cnt_t)0)) {
(gdb) bt
#0 _dbg_check_lock () at ./lib/chibios/os/rt/src/chdebug.c:150
#1 0x08000dc6 in chSysLock () at ./lib/chibios/os/rt/src/chthreads.c:651
#2 chThdSleep (time=120) at ./lib/chibios/os/rt/src/chthreads.c:653
#3 main () at ./src/main.c:40
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
chSysHalt (reason=0x8001918 "SV#8") at ./lib/chibios/os/rt/src/chsys.c:213
213 }
(gdb)
Code: Select all
static THD_WORKING_AREA(waThread1, 128);
static __attribute__((noreturn)) THD_FUNCTION(Thread1, arg)
{
(void)arg;
chRegSetThreadName("blinker");
while (true)
{
palToggleLine(LINE_ONBOARD_LED);
chThdSleepMilliseconds(100);
}
}
int main(void)
{
// System initialization
halInit();
chSysInit();
// App initialization
mainInit();
chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
while (true)
{
chThdSleepMilliseconds(100);
}
}
Code: Select all
chSysHalt (reason=0x8001ab4 "SV#4") at ./lib/chibios/os/rt/src/chsys.c:213
(gdb) bt
#0 chSysHalt (reason=0x8001ab4 "SV#4") at ./lib/chibios/os/rt/src/chsys.c:213
#1 _dbg_check_lock () at ./lib/chibios/os/rt/src/chdebug.c:151
#2 0x08000994 in chSysLock () at ./lib/chibios/os/rt/src/chthreads.c:651
#3 chThdSleep (time=200) at ./lib/chibios/os/rt/src/chthreads.c:653
#4 Thread1 (arg=<optimized out>) at ./src/main.c:35
#5 0x0800025e in _port_thread_start () at ./lib/chibios/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S:119