Linux驅動開發_幀緩沖設備驅動與LCD應用編程
練習:

1. ?將等待隊列、poll函數驅動、異步IO驅動寫一次。
2. ?poll函數支持多路復用: 將按鍵驅動拆分成4個驅動,在應用層使用一個poll函數同時監控4個按鍵驅動,并讀出按鍵值。 類似的函數: select、epoll
只要涉及到輸入基本都會使用: socket網絡編程、鼠標驅動、鍵盤驅動、觸摸屏驅動……..
任務1: 幀緩沖結構(FrameBuffer框架)
幀緩沖--->顯卡驅動框架---->LCD屏。
? ?幀緩沖驅動框架圖:
幀緩沖框架傳輸數據方式:
LCD屏控制最重要的函數: 畫點函數。形參: (x、y、顏色)
幀緩沖驅動框架里與應用傳遞數據使用了內存映射: mmap()。
STM32里的屏幕:
1. ?LCD屏驅動芯片采用NT35310驅動芯片
2. ?屏幕的尺寸: 3.5寸
3. ?分辨率: 320*480
4. ?時序: 8080時序。 常用的時序: 6800時序、RGB時序。
5. ?在STM32分為(小、中、大),在大容量里有FSMC控制器。
FSMC控制器: 靜態內存控制器,原本是用來控制外部SRAM芯片。
由于部SRAM芯片使用也是8080時序,才可以操作LCD屏。
幀緩沖驅動框架編寫框架:
在應用mmap函數將驅動的DMA緩沖區地址映射到進程空間之后,如何控制LCD呢?
需要封裝一個畫點函數。
任務2: 編寫一個幀緩沖驅動(框架)
任務3: 分析開發板自帶的LCD驅動(三星公司編寫)
三星公司編寫文件: s3c_xxxx開頭。
當前4412開發板的LCD驅動是使用平臺設備編寫。
什么是平臺設備總線? 是現在內核里編寫驅動通用框架。
平臺設備分為設備端和驅動端。
練習:
1. ?理解一下幀緩沖驅動框架的原理。
2. ?編寫一個簡單的幀緩沖測試框架,編寫應用層測試一下。
3. ?學習一下基本LCD屏應用編程: 如何封裝畫點函數、顯示一個ASCII碼字符串或者中文字符串。
4. ?調用中文字庫,實現基本中文顯示。
5. ?顯示一張BMP圖片。
擴展練習: 小說閱讀器。 可以打開一個指定txt文件,將文件里的文本顯示在屏幕上,按鍵翻頁。
項目: 數碼相框。
1. ?打開指定的目錄: 存放BMP圖片的目錄。
2. ?通過按鍵控制LCD屏翻頁顯示(上一張和下一張)。
3. ?在顯示屏上顯示圖片的信息:
LCD幀緩沖框架代碼編寫:
#include
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。