14#ifndef NEORV32_SEMIHOSTING_H
15#define NEORV32_SEMIHOSTING_H
58enum SEMIHOST_OPEN_MODE_enum {
59 SEMIHOSTING_OPEN_R = 0,
60 SEMIHOSTING_OPEN_RB = 1,
61 SEMIHOSTING_OPEN_R_PLUS = 2,
62 SEMIHOSTING_OPEN_RB_PLUS = 3,
63 SEMIHOSTING_OPEN_W = 4,
64 SEMIHOSTING_OPEN_WB = 5,
65 SEMIHOSTING_OPEN_W_PLUS = 6,
66 SEMIHOSTING_OPEN_WB_PLUS = 7,
67 SEMIHOSTING_OPEN_A = 8,
68 SEMIHOSTING_OPEN_AB = 9,
69 SEMIHOSTING_OPEN_A_PLUS = 10,
70 SEMIHOSTING_OPEN_AB_PLUS = 11
104 register int value
asm (
"a0") =
id;
105 register void* data
asm (
"a1") = arg;
110 " slli x0, x0, 0x1f \n"
112 " srai x0, x0, 0x07 \n"
114 :
"=r" (value) :
"0" (value),
"r" (data) :
"memory"
int neorv32_semihosting_istty(int file)
Definition neorv32_semihosting.c:119
int neorv32_semihosting_open(char *path, int mode)
Definition neorv32_semihosting.c:56
void neorv32_semihosting_puts(const char *pnt)
Definition neorv32_semihosting.c:32
int neorv32_semihosting_flen(int file)
Definition neorv32_semihosting.c:147
void neorv32_semihosting_putc(char c)
Definition neorv32_semihosting.c:22
SEMIHOSTING_SYS_enum
Definition neorv32_semihosting.h:26
@ SEMIHOSTING_SYS_TICKFREQ
Definition neorv32_semihosting.h:48
@ SEMIHOSTING_SYS_TMPNAME
Definition neorv32_semihosting.h:37
@ SEMIHOSTING_SYS_EXCEPTION
Definition neorv32_semihosting.h:46
@ SEMIHOSTING_SYS_WRITE
Definition neorv32_semihosting.h:31
@ SEMIHOSTING_SYS_FLEN
Definition neorv32_semihosting.h:36
@ SEMIHOSTING_SYS_GET_CMDLINE
Definition neorv32_semihosting.h:44
@ SEMIHOSTING_SYS_ELLAPSED
Definition neorv32_semihosting.h:47
@ SEMIHOSTING_SYS_REMOVE
Definition neorv32_semihosting.h:38
@ SEMIHOSTING_SYS_SEEK
Definition neorv32_semihosting.h:35
@ SEMIHOSTING_SYS_TIME
Definition neorv32_semihosting.h:41
@ SEMIHOSTING_SYS_CLOCK
Definition neorv32_semihosting.h:40
@ SEMIHOSTING_SYS_WRITEC
Definition neorv32_semihosting.h:29
@ SEMIHOSTING_SYS_ERRNO
Definition neorv32_semihosting.h:43
@ SEMIHOSTING_SYS_ISTTY
Definition neorv32_semihosting.h:34
@ SEMIHOSTING_SYS_HEAPINFO
Definition neorv32_semihosting.h:45
@ SEMIHOSTING_SYS_WRITE0
Definition neorv32_semihosting.h:30
@ SEMIHOSTING_SYS_READ
Definition neorv32_semihosting.h:32
@ SEMIHOSTING_SYS_SYSTEM
Definition neorv32_semihosting.h:42
@ SEMIHOSTING_SYS_CLOSE
Definition neorv32_semihosting.h:28
@ SEMIHOSTING_SYS_READC
Definition neorv32_semihosting.h:33
@ SEMIHOSTING_SYS_OPEN
Definition neorv32_semihosting.h:27
@ SEMIHOSTING_SYS_RENAME
Definition neorv32_semihosting.h:39
int neorv32_semihosting_time(void)
Definition neorv32_semihosting.c:159
int neorv32_semihosting_system(char *cmd)
Definition neorv32_semihosting.c:172
int neorv32_semihosting_close(int file)
Definition neorv32_semihosting.c:71
int neorv32_semihosting_read(int file, char *buffer, int len)
Definition neorv32_semihosting.c:103
int neorv32_semihosting_seek(int file, int pos)
Definition neorv32_semihosting.c:133
int neorv32_semihosting_write(int file, char *buffer, int len)
Definition neorv32_semihosting.c:86
char neorv32_semihosting_getc(void)
Definition neorv32_semihosting.c:44
int neorv32_semihosting_req(int id, void *arg)
Definition neorv32_semihosting.h:102