設定 /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 就可以
沒有留言:
張貼留言