Files
my-os-project2/user/diagdummy/serial.c

50 lines
881 B
C

#include <stdint.h>
#include <stddef.h>
#include <ulib.h>
#define SENDB 0
#define SENDREADY 1
#define RECVB 2
#define RECVREADY 3
#define LOCK 4
#define UNLOCK 5
void diagdummy_srpr(void) {
char *str = "Hello world\n";
if (argslen() >= 2) {
str = args()[1];
}
Dev_t serialdev;
dev_gethandle(&serialdev, "serialdev");
char *s = str;
while (*s) {
while(!dev_cmd(&serialdev, SENDREADY, NULL, 0));
dev_cmd(&serialdev, SENDB, s, 1);
s++;
}
}
void diagdummy_srpr2(void) {
if (argslen() < 2) {
return;
}
char *str = args()[1];
Dev_t serialdev;
dev_gethandle(&serialdev, "serialdev");
while(dev_cmd(&serialdev, LOCK, NULL, 0) != E_OK);
for (;;) {
while (!dev_cmd(&serialdev, SENDREADY, NULL, 0));
dev_cmd(&serialdev, SENDB, str, 1);
schedsleep(500);
}
dev_cmd(&serialdev, UNLOCK, NULL, 0);
}