ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2010年12月8日 星期三

serial programming

這一篇
設定 /dev/ttymxc2 (UART3) 為 38400,然後每隔 1 sec 送一個固定的 packet 出去.. #include <stdio.h> #include <termios.h> #include <fcntl.h> void setparameter(void) { int tty; struct termios tio; tty = open("/dev/ttymxc2",O_RDWR | O_NOCTTY | O_NONBLOCK); tcgetattr(tty,&tio); tio.c_cflag = B38400 | CS8 | CLOCAL | CREAD; tcflush(tty,TCIFLUSH); tcsetattr(tty,TCSANOW,&tio); close(tty); } int main(int argc,char *argv[]) { FILE *fd; int i; printf("ttymxc2 bomb\n"); setparameter(); int data[]={0x24,0x06,0x03,0x00,0x0d,0x0a}; fd = fopen("/dev/ttymxc2","w"); // fd = stdin; if(!fd){ printf("open /dev/ttymxc2 failed!!\n"); return 1; } data[3]=data[0]^data[1]^data[2]; data[3] &= 0xFF; while(1){ for(i=0;i<6;i++) fputc(data[i],fd); sleep(1); fprintf(stdout,"%02X %02X %02X %02X %02X %02X\n",data[0],data[1],data[2],data[3],data[4],data[5]); } fclose(fd); return 0; }
然後只要在 init.rc 加上 +# MCU sending service ttymxc2bomb /system/bin/ttymxc2bomb console 就會自動跑起來。
加上 "console" ,就會 把 stdout 放到 console,所以可以看到 message。

--- 麻煩是用 service 啟動的 東西,,,kill 掉後又會自己起來 >_<
--- 好像加一行 oneshot 就可以

沒有留言:

標籤

網誌存檔