Hi Tommy
Thanks for the speedy help. Any suggestion for the following:
$ gcc -g -Wall -Wextra misa.c && ./a.out
Illegal instruction
where:
$ cat misa.c
#include <stdint.h>
#include <stdio.h>
#if __riscv_xlen==32
typedef uint32_t uint_xlen_t;
#elif __riscv_xlen==64
typedef uint64_t uint_xlen_t;
#else
#error "Unknown XLEN"
#endif
#if !defined(__riscv_zicsr)
#error "-march must include zicsr to access CSRs"
#endif
static inline uint_xlen_t csr_read_misa(void) {
uint_xlen_t value;
__asm__ volatile ("csrr %0, misa"
: "=r" (value) /* output : register */
: /* input : none */
: /* clobbers: none */);
return value;
}
int main()
{
uint_xlen_t misa = csr_read_misa() ;
printf("%lu\n", misa );
}
Thanks again
--
Mathieu