Esempio n. 1
0
static int cmd_pb2led(int argc, char *argv[])
{
	if(argc > 1)
	{
		my_errno = TOO_MANY_ARGUMENTS;
		return 1;
	}
	int rfd1 = svc_open("/btn/sw1",'r');
	if(rfd1 < 0)
	{
		return 1;
	}
	
	int rfd2 = svc_open("/btn/sw2",'r');
	if(rfd2 < 0)
	{
		return 1;
	}
	int wfd1 = svc_open("/led/orange",'w');
	if(wfd1 < 0)
	{
		return 1;
	}
	int wfd2 = svc_open("/led/yellow",'w');
	if(wfd2 < 0)
	{
		return 1;
	}
	while(1)
	{
		char buff[2];
		svc_read(rfd1,&buff[0]);
		svc_read(rfd2,&buff[1]);
		if(buff[0] == '1' && buff[1] == '1')
		{
			svc_close(rfd1);
			svc_close(rfd2);
			svc_close(wfd1);
			svc_close(wfd2);
			return 0;
		}
		svc_write(wfd1,buff[0]);
		svc_write(wfd2,buff[1]);
	}
	return 1;
}
Esempio n. 2
0
void demoProc2(int argc,char *argv[])
{
	char tempstr[1024];
	int fd1 = svc_open("/btn/sw1",'r');
	int fd2 = svc_open("/btn/sw2",'r');
	while(1)
	{
		char buff1,buff2;
		int bytesread1 = svc_read(fd1,&buff1);
		int bytesread2 = svc_read(fd2,&buff2);
		if(bytesread2 == 1 && buff2 == '1')
		{
			sprintf(tempstr,"Switch2 Pressed\r\n");uprintf(tempstr);
			delay(delayCount);
		}
		else if(bytesread1 == 1 && buff1 == '1')
		{
			break;
		}
	}
}
Esempio n. 3
0
void demoProc1(int argc,char *argv[])
{
	int wfd = svc_open("/lcd",'w');
	if(wfd > 0)
	{
		char buff;
		while((buff = ugetc()) != CHAR_EOF)
		{
			svc_write(wfd,buff);
		}
		svc_close(wfd);
	}
}
Esempio n. 4
0
static int cmd_touch2led(int argc, char *argv[])
{
	if(argc > 1)
	{
		my_errno = TOO_MANY_ARGUMENTS;
		return 1;
	}
	int rfd[4];
	int wfd[4];
	rfd[0] = svc_open("/tsr/orange",'r');
	rfd[1] = svc_open("/tsr/yellow",'r');
	rfd[2] = svc_open("/tsr/blue",'r');
	rfd[3] = svc_open("/tsr/green",'r');
	
	wfd[0] = svc_open("/led/orange",'w');
	wfd[1] = svc_open("/led/yellow",'w');
	wfd[2] = svc_open("/led/blue",'w');
	wfd[3] = svc_open("/led/green",'w');
	while(1)
	{
		char buff[4];
		svc_read(rfd[0],&buff[0]);
		svc_read(rfd[1],&buff[1]);
		svc_read(rfd[2],&buff[2]);
		svc_read(rfd[3],&buff[3]);
		if(buff[0] == '1' && buff[1] == '1' && buff[2] == '1' && buff[3] == '1')
		{
			svc_close(rfd[0]);svc_close(rfd[1]);
			svc_close(rfd[2]);svc_close(rfd[3]);
			svc_close(wfd[0]);svc_close(wfd[1]);
			svc_close(wfd[2]);svc_close(wfd[3]);
			return 0;
		}
		svc_write(wfd[0],buff[0]);
		svc_write(wfd[1],buff[1]);
		svc_write(wfd[2],buff[2]);
		svc_write(wfd[3],buff[3]);
	}
	return 1;
}
Esempio n. 5
0
static int cmd_ser2lcd(int argc, char *argv[])
{
	if(argc > 1)
	{
		my_errno = TOO_MANY_ARGUMENTS;
		return 1;
	}
	int wfd = svc_open("/lcd",'w');
	if(wfd > 0)
	{
		char buff;
		while((buff = ugetc()) != CHAR_EOF)
		{
			svc_write(wfd,buff);
		}
		svc_close(wfd);
		return 0;
	}
	return 1;
}
Esempio n. 6
0
void demoProc3(int argc,char *argv[])
{
	char ledState = getLedState();
	svc_pdbDemo(1);
	int fd = svc_open("/tsr/orange",'r');
	while(1)
	{
		char buff;
		svc_read(fd,&buff);
		if(buff == '1')
		{
			break;
		}
		if(ledState != getLedState())
		{
			ledState = getLedState();
			svc_pdbDemo(1);
		}
	}
	svc_close(fd);
}
Esempio n. 7
0
static int cmd_fopen(int argc, char *argv[])
{
	char tempstr[1024];
	if(argc > 3)
	{
		my_errno = TOO_MANY_ARGUMENTS;
		return 1;
	}
	if(argc < 3 )
	{
		my_errno = TOO_FEW_ARGUMENTS;
		return 1;
	}
	int fd = svc_open(argv[1],argv[2][0]);
	if(fd >= 0)
	{
		sprintf(tempstr,"%s opened on file descriptor = %d\r\n",argv[1],fd);uprintf(tempstr);
		return 0;
	}
	sprintf(tempstr,"could not open %s\r\n",argv[1]);uprintf(tempstr);
	return 1;
}
Esempio n. 8
0
static int cmd_therm2ser(int argc, char *argv[])
{
	if(argc > 1)
	{
		my_errno = TOO_MANY_ARGUMENTS;
		return 1;
	}
	int rfd = svc_open("/ttr",'r');
	if(rfd > 0)
	{
		char buff;int val;
		val = svc_read(rfd,&buff);
		while(!sw1In())
		{
			char temp[8];
			sprintf(temp,"%d\r\n",val);
			uprintf(temp);
			val = svc_read(rfd,&buff);
		}
		svc_close(rfd);
		return 0;
	}
	return 1;
}
Esempio n. 9
0
static int fnL42801894(struct OSImageScript *imgScript,
        void **bootAddrBuf,
        void **var6)
{
    int fdesc = 0;
    int imgNo;
    int fileSize = 0;
    void *loadAddr;

    wlibc_uprintf("load kernel start\n");
    for(imgNo = 0; imgNo < imgScript->segmentSectionCount; ++imgNo) {
        if(imgNo != 1) {
            loadAddr = imgScript->images[imgNo].baseAddr;
        } else { 
            loadAddr = svc_alloc(65536);
        }
        if(loadAddr == 0) {
            wlibc_uprintf("img file %s base addres is NULL\n", loadAddr);
            return -1;
        }
        fdesc = svc_open(imgScript->images[imgNo].name, "rb");
        if(fdesc == 0) {
            wlibc_uprintf("open img file %s failed\n",
                    imgScript->images[imgNo].name);
            goto fail;
        }
        fileSize = svc_filesize(fdesc);
        if( fileSize > imgScript->images[imgNo].maxSize ) {
            wlibc_uprintf(
                "the img file %s length %d is larger than img max size %d\n",
                imgScript->images[imgNo].name, fileSize,
                imgScript->images[imgNo].maxSize);
            goto fail;

        }
        svc_read(loadAddr, 1, fileSize, fdesc);
        svc_close(fdesc);
        imgScript->images[imgNo].fileLen = fileSize;
        if(imgNo == 1) {
            do_boot_linux(imgScript->images[1].baseAddr, loadAddr, fileSize);
            svc_free(loadAddr);
        }
        loadAddr = 0;
        fdesc = 0;
        fileSize = 0;
    }
    loadAddr = imgScript->baseAddr;
    if(loadAddr == 0) {
        wlibc_uprintf("no script could be filed\n");
    } else { 
        /* 0x42F00000 - c:\script.bin contents */
        memcpy(loadAddr, (const void*)0x42F00000, imgScript->maxSize);
        imgScript->param776 = imgScript->maxSize;
    }
    *bootAddrBuf = imgScript->images[0].baseAddr;
    *var6 = imgScript->images[1].baseAddr;
    wlibc_uprintf("load kernel successed\n");
    return 0;

fail:
    if(fdesc != 0) {
        svc_close(fdesc);
    }
    wlibc_uprintf("load kernel failed\n");
    return -1;
}
Esempio n. 10
0
File: utils.c Progetto: atikinn/EOS
int 
eopen(const char *path) {
	return svc_open(path);
}