84 uint32_t reg_addr = addr;
85 uint32_t reg_data = wdata;
87 asm volatile (
"sw %[da], 0(%[ad])" : : [da]
"r" (reg_data), [ad]
"r" (reg_addr));
101 uint32_t reg_addr = addr;
102 uint32_t reg_data = (uint32_t)wdata;
104 asm volatile (
"sh %[da], 0(%[ad])" : : [da]
"r" (reg_data), [ad]
"r" (reg_addr));
116 uint32_t reg_addr = addr;
117 uint32_t reg_data = (uint32_t)wdata;
119 asm volatile (
"sb %[da], 0(%[ad])" : : [da]
"r" (reg_data), [ad]
"r" (reg_addr));
133 uint32_t reg_addr = addr;
136 asm volatile (
"lw %[da], 0(%[ad])" : [da]
"=r" (reg_data) : [ad]
"r" (reg_addr));
152 uint32_t reg_addr = addr;
155 asm volatile (
"lhu %[da], 0(%[ad])" : [da]
"=r" (reg_data) : [ad]
"r" (reg_addr));
171 uint32_t reg_addr = addr;
174 asm volatile (
"lh %[da], 0(%[ad])" : [da]
"=r" (reg_data) : [ad]
"r" (reg_addr));
188 uint32_t reg_addr = addr;
191 asm volatile (
"lbu %[da], 0(%[ad])" : [da]
"=r" (reg_data) : [ad]
"r" (reg_addr));
205 uint32_t reg_addr = addr;
208 asm volatile (
"lb %[da], 0(%[ad])" : [da]
"=r" (reg_data) : [ad]
"r" (reg_addr));
224 asm volatile (
"csrr %[result], %[input_i]" : [result]
"=r" (csr_data) : [input_i]
"i" (csr_id));
238 uint32_t csr_data = data;
240 asm volatile (
"csrw %[input_i], %[input_j]" : : [input_i]
"i" (csr_id), [input_j]
"r" (csr_data));
252 uint32_t csr_data = mask;
254 asm volatile (
"csrs %[input_i], %[input_j]" : : [input_i]
"i" (csr_id), [input_j]
"r" (csr_data));
266 uint32_t csr_data = mask;
268 asm volatile (
"csrc %[input_i], %[input_j]" : : [input_i]
"i" (csr_id), [input_j]
"r" (csr_data));
280 asm volatile (
"wfi");
void neorv32_cpu_irq_disable(int irq_sel)
Definition neorv32_cpu.c:84
void __neorv32_crt0_after_main(int32_t return_code)
Definition main.c:151
void neorv32_cpu_store_unsigned_word(uint32_t addr, uint32_t wdata)
Definition neorv32_cpu.h:82
void neorv32_cpu_set_mcycle(uint64_t value)
Definition neorv32_cpu.c:125
void neorv32_cpu_csr_set(const int csr_id, uint32_t mask)
Definition neorv32_cpu.h:250
uint32_t neorv32_cpu_pmp_get_num_regions(void)
Definition neorv32_cpu.c:283
void neorv32_cpu_store_unsigned_half(uint32_t addr, uint16_t wdata)
Definition neorv32_cpu.h:99
int8_t neorv32_cpu_load_signed_byte(uint32_t addr)
Definition neorv32_cpu.h:203
uint16_t neorv32_cpu_load_unsigned_half(uint32_t addr)
Definition neorv32_cpu.h:150
uint64_t neorv32_cpu_get_instret(void)
Definition neorv32_cpu.c:146
uint32_t neorv32_cpu_load_unsigned_word(uint32_t addr)
Definition neorv32_cpu.h:131
void neorv32_cpu_set_minstret(uint64_t value)
Definition neorv32_cpu.c:175
uint32_t neorv32_cpu_hpm_get_num_counters(void)
Definition neorv32_cpu.c:427
void neorv32_cpu_sleep(void)
Definition neorv32_cpu.h:278
void neorv32_cpu_irq_enable(int irq_sel)
Definition neorv32_cpu.c:71
uint32_t neorv32_cpu_get_clk_from_prsc(int prsc)
Definition neorv32_cpu.c:250
int neorv32_cpu_pmp_configure_region(int index, uint32_t addr, uint8_t config)
Definition neorv32_cpu.c:370
void neorv32_cpu_delay_ms(uint32_t time_ms)
Definition neorv32_cpu.c:200
uint32_t neorv32_cpu_csr_read(const int csr_id)
Definition neorv32_cpu.h:220
void neorv32_cpu_csr_clr(const int csr_id, uint32_t mask)
Definition neorv32_cpu.h:264
uint64_t neorv32_cpu_get_cycle(void)
Definition neorv32_cpu.c:96
uint8_t neorv32_cpu_load_unsigned_byte(uint32_t addr)
Definition neorv32_cpu.h:186
void neorv32_cpu_goto_user_mode(void)
Definition neorv32_cpu.c:502
uint32_t neorv32_cpu_pmp_get_granularity(void)
Definition neorv32_cpu.c:328
uint32_t neorv32_cpu_hpm_get_size(void)
Definition neorv32_cpu.c:462
int16_t neorv32_cpu_load_signed_half(uint32_t addr)
Definition neorv32_cpu.h:169
void neorv32_cpu_store_unsigned_byte(uint32_t addr, uint8_t wdata)
Definition neorv32_cpu.h:114
void neorv32_cpu_csr_write(const int csr_id, uint32_t data)
Definition neorv32_cpu.h:236