英創公司的EM9X60系列工控主板(包括 EM9160、EM9360、EM9460、EM9660等)均具有7路物理串口。在Linux系統中,6路串口作為應用串口,剩下的1路作為調試串口。一般情況下調試串口被系統內核所占用,用來顯示內核輸出信息以及console控制終端。這樣的配置可滿足大多數應用對串口的需求。
在一些特殊的應用中,需要的串口數超過6路,這時可把缺省作為調試的串口,經過一定的設置,轉換為應用串口,其設備名稱為“/dev/ttyS0”。在實際操作中,往往是直接通過應用程序來實現這樣的轉換,具體的代碼如下:
利用函數ioctl( fd, TIOCCONS)來重新定義 console終端,應用程序使用完畢后,還可將終端恢復,該部分程序代碼已經修改測試好。
重定向控制臺終端console至tty1:
int fd;
printf('Close cnsole\n');
fd = open('/dev/tty1',O_RDONLY); // 改變console
ioctl( fd, TIOCCONS );
close( fd );
恢復控制臺終端console至缺省設置:
fd = open('/dev/tty0',O_RDONLY); // 恢復console
ioctl( fd,TIOCCONS );
close( fd );
printf('change console back: ttyS0\n');
在使用調試口應用時,需要注意的是啟動程序必須按照終端模式進行啟動,而不能用execlp函數族的方式,因此我們調整了EM9X60系列板卡啟動管理程序在運行模式下的策略,應用程序需要按照腳本的方式進行啟動,啟動的方法就是客戶編輯一個名為user.sh的腳本文件,并將該文件復制到EM9X60系列板卡的/mnt/nandflash,user.sh的內容如:
#!/bin/sh
cd /mnt/nandflash/
/mnt/nandflash/step2_serialtest
這樣在板卡將會自動運行step2_serilatest應用程序。
-
Linux
+關注
關注
87文章
11314瀏覽量
209784 -
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35419
發布評論請先 登錄
相關推薦
評論