https://github.com/riscv/riscv-newlib/blob/riscv-newlib-next/libgloss/riscv/crt0.S

freedom-e-sdk/freedom-metal/src/entry.S

The machine mode privileged spec defines how each CPU/HART starts execution. The MTVEC register defines the entry point on interrupts.

These are grouped into an startup.S assembler file, along with a basic reset handler to setup an environment that can execute compiled C code.

One possible layout is:

Address Code
0x000000 Reset Vector
0x000004 NMI Vector
0x000008 Undefined Region
…..
0x00007C
0x000080  
0x000080