a50c433012
Complete revamp of the exception entry code, including syscall handling. Proper syscall frame exception trigger. Many correctness fixes, hacks removal, etc. etc. I tried to make this into several commits, but this stuff is all inter-related and a pain to split. The diffstat summary: 14 files changed, 250 insertions(+), 802 deletions(-) Binary size (before): text data bss dec hex filename 1104 0 0 1104 450 isr.S.obj 64 0 0 64 40 userspace.S.obj Binary size (after): text data bss dec hex filename 600 0 0 600 258 isr.S.obj 36 0 0 36 24 userspace.S.obj Run of samples/userspace/syscall_perf (before): *** Booting Zephyr OS build zephyr-v3.0.0-325-g3748accae018 *** Main Thread started; qemu_riscv32 Supervisor thread started User thread started Supervisor thread(0x80010048): 384 cycles 509 instructions User thread(0x80010140): 77312 cycles 77437 instructions Run of samples/userspace/syscall_perf (after): *** Booting Zephyr OS build zephyr-v3.0.0-326-g4c877a2753b3 *** Main Thread started; qemu_riscv32 Supervisor thread started User thread started Supervisor thread(0x80010048): 384 cycles 509 instructions User thread(0x80010138): 7040 cycles 7165 instructions Yes, that's more than a 10x speed-up! Signed-off-by: Nicolas Pitre <npitre@baylibre.com> |
||
---|---|---|
.. | ||
adp_xc7k_ae350 | ||
beaglev_starlight_jh7100 | ||
esp32c3_devkitm | ||
gd32vf103c_starter | ||
gd32vf103v_eval | ||
hifive1 | ||
hifive1_revb | ||
hifive_unleashed | ||
hifive_unmatched | ||
it8xxx2_evb | ||
litex_vexriscv | ||
longan_nano | ||
m2gl025_miv | ||
neorv32 | ||
qemu_riscv32 | ||
qemu_riscv64 | ||
rv32m1_vega | ||
tlsr9518adk80d | ||
index.rst |