亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 17505 | 回復: 11
打印 上一主題 下一主題

請問:如何在arm中自由切換調試串口成為普通串口 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-03-03 17:03 |只看該作者 |倒序瀏覽
由于任務的需要,以及串口的限制,想動態(tài)的切換調試串口成為普通串口,并且切換回來,網(wǎng)上看了一個用ioctl的,但是不是很成功,大家又沒有好的辦法(或者思路)?謝謝

論壇徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵節(jié)徽章
日期:2015-03-06 15:50:392015亞冠之大阪鋼巴
日期:2015-06-12 16:01:352015年中國系統(tǒng)架構師大會
日期:2015-06-29 16:11:2815-16賽季CBA聯(lián)賽之四川
日期:2018-12-17 14:10:21
2 [報告]
發(fā)表于 2009-03-03 17:13 |只看該作者
樓主想做什么?
能否用gpio模擬一個呢?

論壇徽章:
0
3 [報告]
發(fā)表于 2009-03-03 19:44 |只看該作者
GPIO全部用完了,我這個是一個比較龐大的系統(tǒng),使用了PCI總線和3個芯片協(xié)作,因此資源消耗很大了!

論壇徽章:
0
4 [報告]
發(fā)表于 2009-03-03 19:45 |只看該作者
我用了一下setconsole命令,結果我的調試串口不知道被我搞到哪里去了

論壇徽章:
0
5 [報告]
發(fā)表于 2009-03-03 22:55 |只看該作者
建議樓主看一下LDD關于調試那章,說了可以進行輸出重定向。
好像是通過ioctl 的命令,具體文檔好想是/driver/char/tty

論壇徽章:
0
6 [報告]
發(fā)表于 2009-03-04 09:33 |只看該作者
我在shell中使用了他說的那個setconsole命令,但是也許是我使用的不對,總是不行,或者控制臺不知道被我定位到什么地方了!
Usage: setconsole [-r|--reset] [DEVICE]
這個是他提示的做法!根據(jù)這個試驗了很久,但是總是不成功阿

論壇徽章:
0
7 [報告]
發(fā)表于 2009-03-04 17:01 |只看該作者
和我們的需求一樣,我們是如果用戶想把串口作為console的話,那么在系統(tǒng)啟動的時候,輸入回車來開啟console,否則就作為普通的串口用。

1,  在內核驅動里,不要將串口初始化為console, 如我的:
uclinux-l200v40/linux-2.4.x/drivers/char/tty_io.c
// #ifdef CONFIG_SERIAL_WINBOND_CONSOLE
#if 0
        winbond_console_init();
#endif
或者在make menuconfig的時候配置,不要將ttyS0設置為console;

2, 在內核啟動,進入busybox時,在/etc/inittab中不要設置串口登錄:
# Activate watchdog and logging
#ttyS0::respawn:/sbin/getty -L ttyS0 115200 linux

3, 設置啟動腳本/etc/init.d/S02Cmd.sh
#!/bin/sh

/usr/sbin/cmd -D 3
exit 0

其中/usr/sbin/cmd為我們從串口接收數(shù)據(jù)的C程序,這個程序在啟動時監(jiān)聽串口,在1s內,如用戶按了回車鍵,那么就作console,這個可以使用下面的方法來實現(xiàn); 否則就做普通串口用了。

在cmd這個程序中,如果接收到回車鍵,可以使用system()執(zhí)行腳本:/usr/sbin/cmd_getty.sh 來重新啟用console,內容如下:
#!/bin/sh
/sbin/getty -L ttyS0 115200 linux &
exit 0

如果使用ssh登錄上去,想開啟console,也可以直接使用下面命令來開啟:
/sbin/getty -L ttyS0 115200 linux &

如果有更好的方法,可以交流!

論壇徽章:
0
8 [報告]
發(fā)表于 2009-03-05 13:57 |只看該作者
謝謝,dglwx,我從網(wǎng)上學習了一個方法。目前串口和終端都可以同時收到到數(shù)據(jù),同時在終端中如果輸入CTRL+C程序可以推出,哈哈,很好玩!

void CloseConsole(void)
{
int fp,err;
unsigned char buff[20];
unsigned char send_buff[20];
struct termios options;
printf("change1\n";
fp = open("/dev/console",O_RDONLY); // 改變console
ioctl(fp,TIOCCONS);
close(fp);


fp = open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY|O_NONBLOCK); //打開串口0讀寫
if(fp == -1) exit(0);
tcgetattr(fp,&options);
cfsetispeed(&options,B115200);
cfsetospeed(&options,B115200);
options.c_cflag |= (CLOCAL|CREAD);
tcsetattr(fp,TCSANOW,&options);
    write(fp,"hello world!\n12",15);

while(1)
{
sleep(11);

while(err=ReadComPort(fp,buff,20)/*read(fp,buff,1)*/>0)
{
        WriteComPort(fp, send_buff, ;
  }
}
close(fp);                       //關閉串口0

fp = open("/dev/console",O_RDONLY);  //恢復console 到串口0
ioctl(fp,TIOCCONS);
close(fp);
printf("change2\n";
}

論壇徽章:
0
9 [報告]
發(fā)表于 2009-10-12 09:31 |只看該作者
請問能否使調試信息不在普通串口中輸出

論壇徽章:
0
10 [報告]
發(fā)表于 2012-10-31 11:13 |只看該作者
朋友,你好,現(xiàn)在我做的項目也需要這個功能,能不能給我分享一下怎么做呢?謝謝了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP