原创 Android手機“核心科技”---Vibrator(馬達)驅動分析

前言 我的博客已經斷更很久了,因爲疫情的原因沒能開學,也無法去公司報道實習,在家十分的頹廢,學習的時間零零散散,更是沒有什麼時間來寫博客的@@(鐵廢物)。最近疫情好轉,自己也來深圳這邊某知名IC廠商(同樣也讓人喊YES的那個)實習

原创 Linux驅動開發(十二):MISC雜項設備驅動

簡介 雜項設備驅動,就是最簡單的字符設備驅動,通常嵌套在platform總線驅動中實現複雜的驅動 主設備號都爲10,不同的設備使用不同的從設備號 MISC設備驅動用於解決字符設備驅動不斷增加設備號緊張的問題 MISC設備會自動創建

原创 Linux驅動開發(十三):阻塞與非阻塞IO——等待隊列

阻塞與非阻塞IO 阻塞式IO在請求資源時如果不能獲取到設備資源,會將應用程序掛起,知道資源可以被獲取 非阻塞式IO則會輪詢等待知道設備資源可以使用或者直接放棄 使用非阻塞訪問從設備讀取數據,當設備不可用或數據位準備好時會立即返

原创 Linux驅動開發(十):設備樹下的platform平臺設備驅動

這裏寫自定義目錄標題簡介關於platform驅動框架bus、driver、device驅動的分層platform驅動模型platform總線platform驅動platform設備引入設備樹後的變化實驗代碼與分析實驗代碼代碼分析總

原创 Linux驅動開發(十四):阻塞與非阻塞IO——輪詢操作

非阻塞IO 非阻塞式IO則會輪詢等待知道設備資源可以使用或者直接放棄 如果用戶以非阻塞方式訪問設備 提供輪詢的處理方式 可以通過select、epoll、poll函數來查詢設備是否可以操作 到應用程序調用以上三個函數 驅動中的p

原创 Linux驅動開發(十八):I2C驅動

簡介 I2C是我們在單片機開發時時常會用到的通訊接口,用來與一些字符型設備進行通信,比如:陀螺儀、溫度傳感器等等,同樣的在Linux下I2C驅動也是十分重要的。有了操作系統的加持,我們不用像在32上那樣去軟件實現IIC協議,更多的

原创 十種常用排序算法總結

前言 常用的有十種排序算法,包含了插入、選擇、交換、分治、線性五種類別,本篇博客將對這十種排序算法做一個總結,並附帶C++代碼 總體表格 分別來看 插入排序 在要排序的一組數中,假定前n-1個數已經排好序,現在將第n個數插到前面

原创 Linux驅動開發(十六):INPUT子系統

簡介 輸入設備是典型的字符驅動,其工作原理一般是在按鍵、觸摸等動作發生時在底層產生一箇中斷(或者驅動通過Timer定時查詢),然後CPU通過SPI、I2C或外部存儲器總線讀取鍵值、座標等數據,並將它們放到一個緩衝區,字符設備驅動管

原创 Linux設備樹相關操作

Linux設備樹相關操作以及驅動開發流程簡介相關文件組成和介紹dts和bingings設備樹文件之間的關係官方文檔設備樹dts的基本構造節點和根節點屬性在設備樹上添加節點設備樹在系統中的體現特殊子節點內核如何識別設備樹匹配方式內核

原创 Linux驅動開發(十七):LCD驅動(Framebuffer子系統)

Framebuffer設備 在裸機開發LCD的時候要初始化eLCDIF控制器,重點是LCD屏幕width、height、hspw、hbp、hfp、vspw、vbp、vfp Linux中的應用程序最終通過操作LCD的顯存來實現在LC

原创 Linux驅動開發(十五):異步通知

簡介 前面使用阻塞和非阻塞的方式來讀取驅動中的按鍵值都是應用程序主動讀取的,對於非阻塞的方式還需要應用程序通過poll函數不斷的輪詢 Linux內核提供了異步通知這個機制來實現驅動程序主動向應用程序發出通知,報告自己可以訪問,然後

原创 Linux驅動開發(十一):pinctrl子系統和GPIO子系統

pinctrl子系統和GPIO子系統簡介pinctrl子系統概況屬性恩智浦IMX6三星4412調用pinctrl配置流程GPIO子系統概括系統框圖與pinctrl比較關係總結 簡介 配置寄存器來控制IO的方式太過於原始,Linux

原创 WSL+VScode快速搭建Linux下C/C++開發環境

背景 自己最近開始了複習數據結構以及刷題,因爲不太喜歡Windows下IDE解決所有問題的方式,而且想要再練習練習Makefile的編寫以及GDB調試所以需要搭建一個Linux環境來進行代碼的編譯運行,擺在我面前有三種方案: L

原创 2019年終總結與2020年展望

前言 轉眼間一年就過去了,又是拖到了1.15號才寫年終總結,已經期末考試結束回到了家了,可以好好回顧一下2019年,然後對2020做一些規劃和展望 2019 總結 收穫 我前半年曾經一直爲了電賽廢寢忘食的準備,爲了得獎整夜整夜的泡

原创 Linux嵌入式工程師養成手冊-----目錄

本篇博客是爲了讓大家更加便捷去查找某一篇博客的內容 前言 Linux嵌入式工程師養成手冊-----前言 基礎 C語言 《C和指針》學習筆記(一)第一章~第六章 《C和指針》學習筆記(二)第七~第十章 《C和指針》學習筆記(三)第十