diff --git a/env/iss/bsp_write.c b/env/iss/bsp_write.c index a10f78e..b6c6d6d 100644 --- a/env/iss/bsp_write.c +++ b/env/iss/bsp_write.c @@ -5,12 +5,32 @@ #include #include +#include + +extern volatile uint32_t tohost; + ssize_t _bsp_write(int fd, const void *ptr, size_t len) { - const uint8_t *current = (const uint8_t *)ptr; + + // char string[] = "hello world in bsp_write"; + // uint32_t payload_1[4] = {64, 0, (uintptr_t)string, strlen(string)}; + // tohost = (uint32_t)payload_1; + + // const uint32_t *current = (const uint32_t *)ptr; + if (isatty(fd)) { - for (size_t jj = 0; jj < len; jj++) { - *((uint32_t *)0xFFFF0000) = current[jj]; - } + // uint32_t payload[4] = {64, 0, (uint32_t)((uint32_t *)ptr), len}; + // tohost = (uint32_t)payload; + + uint64_t payload[4] = {64, 0, (uintptr_t)((uint32_t *)ptr), len}; + tohost = (uint32_t)payload; + + /* + // accoring to my understading this part is used fot uart wrrite for later + for (size_t jj = 0; jj < len; jj++) { + *((uint32_t *)0xFFFF0000) = current[jj]; + } + */ + return len; }