Re: Linux UART console 疑問諮詢

197 views
Skip to first unread message

joseph chen

unread,
Oct 15, 2016, 3:27:32 AM10/15/16
to IT_Project, e-learning


tzuchun IT <tzu...@ittraining.com.tw> 於 2016年10月13日 下午2:13 寫道:
==================艾鍗科技有限公司 ittraining.elearn.com.tw
課程名稱:Linux系統程式設計
討論板:課程討論板
張貼者:STU06681(陳志偉 )
張貼時間:2016-10-03 14:35:12
文章標題:Linux UART console 疑問諮詢

老師你好,

先前有上過Linux驅動程式設計

目前手邊有embedded device(ARM chip), 在開機時候透過console可以看到 bootloader開機到file system的console log

在整個連貫上有一些想不通的地方, 有一些問題想要請教老師


1. 
- device 在一是開機就有console log, 是不是需要做一些額外在kernel 做的事情呢? 
  想不太明白如何辦到一開機就開始印開機log在console上?
- 先前學到console 是一種UART device, 所以device是不是一開機在bootloader就必需進行config platform device, 
  以及註冊device driver ? 
- 在bootloadr 不是沒有 struct termios, 是如何做到的呢 ?
- 如果在bootloader 配置完platform device, 這樣 kernel 是不是還要再進行配置一次呢 ?

 通常 UART console 在bootloader就已先寫好driver好驅動它. 只要有人對硬體暫存器設定正確就是會動的, 這部份和Linux Driver的沒有任何關係.
 platform device, struct termios, 註冊device driver, 這些詞都是指在Linux作業系統下如何撰寫驅動程式的架構與方法

 2.

記得之前課程提到device 需要device driver, 這樣Linux 才知道如何透過host controller控制device, 請問
- system 需要具備 UART console device driver? 是否不需要知道UART device chip型號 ? 
- 在接console時候有進行probe() 行為嗎 ? 任何以Platform driver的方式來撰寫, 都會有probe()

   Linux會用自己的程式架構再重新再撰寫UART (Serial Driver), 並以此這個架構作為其他上層driver 的底層, 如Line protocol driver, terminal driver。
  任何裝置控制方法與細節, 都必須有其晶片型號與資料手冊(DataSheet). 


3. 
- 請問課程中有提到透過 tera term 進行serial port setup, 請問這個行為是不是設定在PC而以呢? 
- 我看到手邊embedded device 有以下log, 是不是 for file system 的配置 ?
 Kernel command line: console=ttyS1,57600n8 BootImage=1 root=/dev/mtdblock5 rootfstype=squashfs,jffs2

   通訊一定是兩端, 所以通訊參數必然是雙方都要設定相同
   root=/dev/mtdblock5 rootfstype=squashfs,jffs2 --> 這個是針對Root filesystem 的配置說明

4.
- 請問一下在User space寫一個小程式, 透過printf印字,只指定給stdout, 是不是預設是透過 /dev/ttyS1 將string傳遞給kernel, 再透過uart device driver 傳遞給 console?
  serial port 底下下command 是否也是如此 ?

     是的
   - 請問printf 這個行為, 是印在螢幕上,是不是原理是將string透過console送到PC端, 再由PC端的driver解析出來, 判斷是否印在螢幕上呢 ?

   PC端有一個"終端機"程式(terminal i/o)連結到console driver 去讀出UART資料, 然後輸出終端機。

- 老師如果要trace printf行為應該從哪幾個檔案或者介紹看起呢?

5. 請問目前現在在手邊有console線, 但是是將 RS232 轉成UART的 4 pin, 請問一般這種線內部是將 9 pin 拉出4 pin 使用而已呢, 還是內部也需要再透過 IC轉換訊號呢 ? 

 如果你是要轉成USB, 內部還有一個晶片做UART to USB (如 ch340, pl2303, ft232r 等)

   RS232 TX,RX <==>USB  D+/D- 

 

Thanks.




--
陳義方 Joseph Chen 
艾鍗學院
Tel:02-2316-7731
Fax:02-2316-7735
E- mail: jos...@ittraining.com.tw
Website:http://www.ittraining.com.tw
Address:100 台北市中正區重慶南路一段143號4樓 
Reply all
Reply to author
Forward
0 new messages