1. 程式人生 > >linux裝置驅動,tty串列埠程式設計 如何檢視linux下串列埠是否可用?串列埠名稱等

linux裝置驅動,tty串列埠程式設計 如何檢視linux下串列埠是否可用?串列埠名稱等

如何檢視linux下串列埠是否可用?串列埠名稱等?

檢視串列埠是否可用,可以對串列埠傳送資料比如對com1口,echo lyjie126 > /dev/ttyS0
檢視串列埠名稱使用 ls -l /dev/ttyS* 一般情況下串列埠的名稱全部在dev下面,如果你沒有外插串列埠卡的話預設是dev下的ttyS* ,一般ttyS0對應com1,ttyS1對應com2,當然也不一定是必然的;
檢視串列埠驅動:cat /proc/tty/drivers/serial
檢視串列埠裝置:dmesg | grep ttyS*
追問     我新查了一個擴充套件串列埠卡,但是不能用,不知道為什麼!!!
回答     首先看下說明書,驅動安裝好後正常是什麼裝置號?然後安裝驅動,驅動如果安裝成功一般就會有裝置號了就可以用了。
追問     使用dmesg | grep ttyS* 是可以看見新增串列埠的,分別是ttyS5和ttyS6,中斷號都是20,按照說明安裝驅動了也,什麼是裝置號?
回答     那就是 ttyS5 ttyS6,這個2個裝置號就是對應的串列埠裝置號

 本人在TQ210開發板上親自測試串列埠裝置名稱如下:

Start Qt4 PDA

Please press Enter to activate this console.
[[email protected] /]# ls -l /dev/ttyS*
crw-rw----    1 root     root      204,  64 Mar 21 23:46 /dev/ttySAC0
crw-rw----    1 root     root      204,  65 Mar 21 23:46 /dev/ttySAC1
crw-rw----    1 root     root      204,  66 Mar 21 23:46 /dev/ttySAC2
crw-rw----    1 root     root      204,  67 Mar 21 23:46 /dev/ttySAC3
[

[email protected] /]#

ARM和linux虛擬機器串列埠通訊,ARM端打不開串列埠裝置。

linux下串列埠的裝置檔名ttyS*是如何定義的?

2.6.14 核心移植說明文件

4. make

然後一切 OK 2.6 核心的編譯就是這麼簡單。你可以在linux-2.6.14/arch/arm/boot/目錄下看到我們需要的zImage檔案。這就是經過壓縮的核心映象檔案,把它下載到目標板上的flash 中即可執行。由於2410 已經作為 2.6 核心的標準板來支援,所以上面編譯的這個核心不用什麼修改即可執行,在串列埠可以看到核心的啟動資訊。主要是啟動引數的問題:

2.6核心中,2410 的串列埠由原來的 ttyS0變為ttySAC0(聽說其它的板還是保持不變,具體沒有研究)。有關核心啟動引數的設定以後會逐步提到。

移植linux2.6核心後燒寫時的問題  

移植linux2.6.29.4進友善mini2440開發板

XC2440開發板上已經含有S3C2440的3個串列埠驅動,我們只要知道各個串列埠的裝置名稱就可以了,

204  s3c2410_serial ,204是串列埠的主裝置號。s3c2410_serial是裝置名稱, 在 dev目錄下 ls 一下 就可以發現 ptyd0               s3c2410_serial0     ttysa
ptyd1               s3c2410_serial1     ttysb
ptyd2               s3c2410_serial2     ttysc s3c2410_serial0,s3c2410_serial1,s3c2410_serial2 分別是串列埠1、2、3的裝置名稱 下面是測試原始碼,開啟串列埠1、2,程式執行後,串列埠1的波特率變為9600,這時候你的串列埠 終端就沒有反應了(串列埠1波特率預設115200),把終端軟體串列埠1 波特率改為9600後, 連線終端,回車一下,然後輸入幾個‘1’後,畫面如上圖。 這時用telnet工具登陸開發板,執行ps 檢視現有執行的程式,找到tty [[email protected] /root]# ps
PID   USER     TIME   COMMAND
    1 root       0:04 init
    2 root       0:00 [kthreadd]
    3 root       0:00 [ksoftirqd/0]
    5 root       0:00 [kworker/u:0]
    6 root       0:00 [khelper]
    7 root       0:00 [kworker/u:1]
   10 root       0:00 [netns]
  236 root       0:00 [sync_supers]
  238 root       0:00 [bdi-default]
  240 root       0:00 [kblockd]
  249 root       0:00 [khubd]
  252 root       0:00 [kseriod]
  258 root       0:00 [kmmcd]
  347 root       0:00 [rpciod]
  349 root       0:00 [kworker/0:1]
  355 root       0:00 [kswapd0]
  356 root       0:00 [aio]
  357 root       0:00 [nfsiod]
  358 root       0:00 [crypto]
  901 root       0:00 [mtdblock0]
  906 root       0:00 [mtdblock1]
  911 root       0:00 [mtdblock2]
  916 root       0:00 [mtdblock3]
 1028 root       0:00 [usbhid_resumer]
 1049 root       0:00 [yaffs-bg-1]
 1060 root       0:00 vsftpd /etc/vsftpd.conf
 1065 root       0:00 -/bin/sh
 1067 root       0:00 /usr/sbin/telnetd -l /bin/login
 1070 root       0:18 /usr/local/qtopia/bin/qpe -qws
 1071 root       0:00 boa
 1072 root       0:00 [kworker/0:2]
 1085 root       0:02 /usr/local/qtopia/bin/quicklauncher
 1086 root       0:00 /usr/local/qtopia/bin/qss
 1089 root       0:02 /usr/local/qtopia/bin/quicklauncher
 1098 root       0:00 [flush-31:3]
 1100 root       0:00 ./tty
 1101 root       0:00 -ash
 1104 root       0:00 ps
[[email protected] /root]# kill 1100 執行 kill 1100 後tty測試程式就被終止了,這時串列埠終端就可以用了,回車一下 Terminated
          [@XC2440 pub]#
Please press Enter to activate this console. Processing /etc/profile...
Done
[[email protected] /]#
[[email protected] /]#

相關推薦

linux裝置驅動tty串列程式設計 如何檢視linux串列是否可用串列名稱

如何檢視linux下串列埠是否可用?串列埠名稱等? 檢視串列埠是否可用,可以對串列埠傳送資料比如對com1口,echo lyjie126 > /dev/ttyS0 檢視串列埠名稱使用 ls -l /dev/ttyS* 一般情況下串列埠的名稱全部在dev下面,如果你沒

Linux裝置驅動你應該明白這幾個問題

 想要深入理解linux裝置驅動,你必須明確以下幾個問題: · 應用程式、庫、核心、驅動程式的關係 · 裝置型別 · 裝置檔案、主裝置號與從裝置號 · 驅動程式與應用程式的區別 · 使用者態與核心態 · Linux驅動程式功能 一、應用程式、庫、核心、驅動程式的關係 1) 

Linux裝置驅動開發詳解 第3版 (即 Linux裝置驅動開發詳解 基於最新的Linux 4 0核心 )進展同步更

                本博實時更新《Linux裝置驅動開發詳解(第3版)》的最新進展。 目前已經完成稿件。 2015

linux裝置驅動開發詳解》筆記——15 linux i2c驅動

  結合實際程式碼和書中描述,可能跟書上有一定出入。本文後續晶片相關程式碼參考ZYNQ。 15.1 總體結構   如下圖,i2c驅動分為如下幾個重要模組 核心層core,完成i2c匯流排、裝置、驅動模型,對使用者提供sys檔案系統訪問支援;為i2c內部adpter等提供註冊介面。  adpter,介面卡,實

關於召回《Linux裝置驅動開發詳解-基於最新的Linux 4.0核心》的通知

問題描述關於《Linux裝置驅動開發詳解:基於最新的Linux 4.0核心》一書1.華章分社在沒

《連載 | 物聯網框架ServerSuperIO教程》-4.如開發一套裝置驅動同時支援串列和網路通訊。附:將來支援Windows 10 IOT

注:ServerSuperIO有可能被移植到Windows 10 IOT上,那麼將來有可能開發一套裝置驅動,可以支行在服務端、嵌入式裝置中,將形成完整的解決方案。       現在已經除錯通過部分程式碼,還得需要一段時間,一般都是晚上幹,時間也有限。如下圖: 目       錄

linux裝置驅動開發》基於最新的linux 4.0核心-----筆記

第二章 Linux 的核心結構及構建 ---->這一章是自己總結的 1、核心結構(主要是下面這幾個部分) 系統呼叫介面<–>System call interface 程序管理<------>Process manag

淺談裝置驅動的作用與本質有無作業系統Linux裝置驅動的區別

  一、驅動的作用 任何一個計算機系統的執行都是系統中軟硬體協作的結果,沒有硬體的軟體是空中樓閣,而沒有軟體的硬體則只是一堆廢鐵。硬體是底層基礎,是所有軟體得以執行的平臺,程式碼最終會落實為硬體上的組合邏輯與時序邏輯;軟體則實現了具體應用,它按照各種不同的業務需求而設計,滿足了使用

14 Linux裝置驅動基礎程式設計

Linux裝置驅動基礎程式設計 核心功能模組:程序排程,記憶體管理(mmu,分配程序記憶體),檔案系統管理(如:支援的檔案系統格式),裝置驅動(硬體驅動由核心來統一管理),網路協議棧。 模組機制: 靜態載入:把驅動模組編進核心,在核心啟動時自動載入。 動態載入:把驅動模

Linux裝置模型之tty驅動架構分析

------------------------------------------ 本文系本站原創,歡迎轉載!轉載請註明出處:http://ericxiao.cublog.cn/------------------------------------------一:前言Tty這個名稱源於電傳打位元組的簡稱。

kobjectKsetbus_type >>Linux裝置驅動程式

狀態不錯,快要元旦了,這是我計劃開始的第一年;時間過的真快啊! 也是逃離舒適圈的一年,不能在日復一日的無聊工作沉浸下去,要明白自己今生適合做哪些事情,而不是隨波逐流; 文章目錄 [0x100]內容概述 [0x110] 核心的裝置管理特性

IO記憶體 與 IO >>Linux 裝置驅動程式

啥時候要是寫程式碼的時候像玩遊戲一樣開心就好了,我覺得那一天應該不會遙遠,要做一個快樂的小二逼 哈哈哈; 懂得越多責任就越重大,喜歡責任重大,那就要讓自己一天天的變強大。 如是說就得每天早上給自己一杯自己造的“雞血”喝,熱乎乎的比別人給的容易喝下去;不是嗎? 文章

Linux裝置模型之tty&&uart驅動架構分析

五: uart_add_one_port()操作 在前面提到.在對uart裝置檔案過程中.會將操作轉換到對應的port上,這個port跟uart_driver是怎麼關聯起來的呢?這就是uart_add_ont_port()的主要工作了. 顧名思義,這個函式是在uart_driver增加一個port.程式碼如

linux裝置驅動中重要的3個數據結構 &&Linux裝置驅動模型幾個基本資料結構模型:kobjectksetsubsystem

大多數基本的驅動操作涉及到核心的3個重要資料結構:file_operations,file 和inode。 我們已經擁有一些裝置號,但是如何將其與驅動操作連在一起呢?file_operations結構就是這個橋樑,這個結構體定義在<Linux/fs.h>中,它是

linux裝置驅動uevent詳解高通平臺battery上報電量例項

本文以高通平臺上的android系統為參照展開探討。1,uevent是什麼呢? uevent是一種linux裝置模型中的一個組成部分。kset中包含的uevent_ops結構體擁有uevent的操作函式。 uevent可以在裝置發生變化時主動通知應用層。是對普通先註冊裝置後

linux 裝置驅動程式設計

驅動 目 錄驅動    Linux系統支援三種類型的硬體裝置:字元裝置、塊設<script type="text/javascript"><!--google_ad_client = "pub-2299987709779770";goo

linux裝置驅動開發學習--記憶體和IO訪問

一 I/O 埠 1. 讀寫位元組埠(8 位寬) unsigned inb(unsigned port); void outb(unsigned char byte, unsigned port); 2. 讀寫字埠(16 位寬) unsigned inw(unsigne

linux裝置驅動模型 - regmap

1. regmap介紹 regmap主要是為了方便操作暫存器而設計的,它將所有模組的暫存器(包括soc上模組的暫存器和外圍裝置的暫存器等) 抽象出來,用一套統一介面來操作暫存器 比如,如果要操作i2c裝置的暫存器,那麼就要呼叫i2c_transfer介面,要操作spi裝置的暫存

linux裝置驅動模型 - device/bus/driver

在linux驅動模型中,為了便於管理各種裝置,我們把不同裝置分別掛在他們對應的總線上,裝置對應的驅動程式也在總線上找,這樣就提出了deivce-bus-driver的模型,硬體上有許多裝置匯流排,那麼我們就在裝置模型上抽象出bus概念,相應的device就代表裝置,driver表示驅動,

linux裝置驅動模型 - sys/kobject

1. sysfs 1.1 sysfs檔案系統註冊 在系統啟動時會註冊sysfs檔案系統 (fs/sysfs/mount.c) int __init sysfs_init(void) { int err; sysfs_root = kernfs_creat