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
[
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 核心的標準板來支援,所以上面編譯的這個核心不用什麼修改即可執行,在串列埠可以看到核心的啟動資訊。主要是啟動引數的問題:在
移植linux2.6核心後燒寫時的問題
移植linux2.6.29.4進友善mini2440開發板
XC2440開發板上已經含有S3C2440的3個串列埠驅動,我們只要知道各個串列埠的裝置名稱就可以了,
204 s3c2410_serial ,204是串列埠的主裝置號。s3c2410_serial是裝置名稱, 在 dev目錄下 ls 一下 就可以發現 ptyd0 s3c2410_serial0 ttysaptyd1 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這個名稱源於電傳打位元組的簡稱。
kobject,Kset,bus_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裝置驅動模型幾個基本資料結構模型:kobject,kset,subsystem
大多數基本的驅動操作涉及到核心的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