Первоисточник: мhttps://github.com/riscv/riscv-isa-manual
Конкретно про системный таймер https://riscv.github.io/riscv-isa-manua ... ivileged// в разделе 3.2.1. Machine Timer (mtime and mtimecmp) Registers
По системному таймеру в К1921ВГ015 внес для себя, что он запускается автоматом после сброса на системной частоте.
Прерывание от "будильника" системного таймера разрешается в регистре mie установкой бита MTIE регистра mie (см. "3.1.9. Machine Interrupt (mip and mie) Registers"), соответственно если прерывание вызвано сработкой "будильника" системного таймера, то в поле "Exception Code" регистра mcause (см. "3.1.15. Machine Cause (mcause) Register") будет значение 0x07 "Machine timer interrupt". Также ожидающее обработки прерывание от системного таймера светится в регистре MIP в виде флага MTIP. Так что например для реализации счётчика миллисекунд надо в прерывании от системного таймера переставлять ему "будильник".
В основном более-менее в ядрах RISC-V все одинаковое, нюансы в реализации. Например где-то надо этот системный таймер отдельно включать и системная частота на него идёт через настраиваемый предделитель (например, как в КК1948ВК018/К1948ВК015).
