zephyr: ehl_crb: samples/subsys/shell/shell_module does not work
samples/subsys/shell/shell_module on EHL does not work at all.
HW dbg shows it went to the fatal exception handling path.
I disabled all the thread related options in the prj.conf:
CONFIG_PRINTK=y
CONFIG_SHELL=y
CONFIG_LOG=y
CONFIG_INIT_STACKS=y
#CONFIG_THREAD_STACK_INFO=y
CONFIG_KERNEL_SHELL=y
#CONFIG_THREAD_MONITOR=y
CONFIG_BOOT_BANNER=n
#CONFIG_THREAD_NAME=y
CONFIG_DEVICE_SHELL=y
CONFIG_POSIX_CLOCK=y
CONFIG_DATE_SHELL=y
#CONFIG_THREAD_RUNTIME_STATS=y
And it worked again. So one of this option is broken on EHL.
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 28 (8 by maintainers)
Commits related to this issue
- sample: subsys: shell: shell_module: add config for timing at boot Use of CONFIG_THREAD_RUNTIME_STATS was added to this sample, but caused issue because the call to z_thread_mark_switched_in() is usi... — committed to jenmwms/zephyr by jenmwms 3 years ago
- sample: subsys: shell: shell_module: add config for timing at boot Use of CONFIG_THREAD_RUNTIME_STATS was added to this sample, but caused issue because the call to z_thread_mark_switched_in() is usi... — committed to zephyrproject-rtos/zephyr by jenmwms 3 years ago
Does it still fail if you stub out 100% of the function? That is, replace it with
void z_thread_mark_switched_in(void) {}? It’s not impossible this is a stack setup problem that is blowing up due to the simple function call and not anything to do with the content of the function.If that works, try commenting out individual lines of that function one by one (looking at it, it’s an #ifdef hell, so many may not actually be compiled, but whatever). Eventually you should get to one line that causes the failure. Then we dig down farther. (e.g. if it’s the SYS_PORT_TRACING_FUNC macro, we know to look in the tracing layer, if it’s k_cycle_get_32() then maybe the timer driver isn’t initialized yet, etc…)