Remote query for structure layout

Tim Newsome tim@sifive.com
Wed Mar 31 14:06:19 GMT 2021


On Tue, Mar 30, 2021 at 8:27 PM David Blaikie <dblaikie@gmail.com> wrote:

> (guess a side question: How's this different from other systems? I
> don't know how other/more common systems handle registers during
> signals)


Other systems have this same problem.
https://sourceforge.net/p/openocd/code/ci/master/tree/src/rtos/FreeRTOS.c
around line 440 has some heuristics.
For ARM, it assumes there are FPU registers on the stack "if (cpacr &
0x00F00000)".
For Cortex-M, it checks whether there are FPU registers on the stack by
reading something else off the stack.

The problem is worse on RISC-V because the architecture is intended to be
extensible. E.g. for pulpino additional registers are saved on the stack,
defined in
https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/95433d02848af0d274648ae4cdd846f6eff76dde/portable/GCC/RISC-V/chip_specific_extensions/Pulpino_Vega_RV32M1RM/freertos_risc_v_chip_specific_extensions.h#L76

Tim


More information about the Gdb mailing list