diff options
| author | Damien George <damien@micropython.org> | 2024-08-09 13:54:14 +1000 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2024-08-28 11:52:08 +1000 |
| commit | 70a6791b09f9fad55b99e5996433888cee0a7a64 (patch) | |
| tree | b5de0b886ead821f6743c178cb3634f1c610eb9e /shared/runtime/semihosting_arm.c | |
| parent | 9f9c283ef48950487bb566e9717819e8a2a29ac6 (diff) | |
shared/runtime/semihosting_arm: Add mp_semihosting_rx_chars.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'shared/runtime/semihosting_arm.c')
| -rw-r--r-- | shared/runtime/semihosting_arm.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/shared/runtime/semihosting_arm.c b/shared/runtime/semihosting_arm.c index 5cfaaa3c6..d44124faa 100644 --- a/shared/runtime/semihosting_arm.c +++ b/shared/runtime/semihosting_arm.c @@ -34,6 +34,7 @@ #define SYS_OPEN 0x01 #define SYS_WRITEC 0x03 #define SYS_WRITE 0x05 +#define SYS_READ 0x06 #define SYS_READC 0x07 // Constants: @@ -91,6 +92,20 @@ int mp_semihosting_rx_char() { return mp_semihosting_call(SYS_READC, NULL); } +// Returns 0 on success. +int mp_semihosting_rx_chars(char *str, size_t len) { + struct { + uint32_t fd; + const char *str; + uint32_t len; + } args = { + .fd = mp_semihosting_stdout, + .str = str, + .len = len, + }; + return mp_semihosting_call(SYS_READ, &args); +} + static void mp_semihosting_tx_char(char c) { mp_semihosting_call(SYS_WRITEC, &c); } |
