原创 網卡驅動設計---架構分析加回環網卡驅動設計(網卡驅動上)

網卡驅動架構分析: 1. Linux網絡子系統 2. 重要數據結構 總結一下三個重要的數據結構:     2.1. net_device     2.2. net_device_ops     2.3. sk_buff 3.

原创 串口驅動程序設計詳解---串口打開、發送、接收(下)

上一篇博客分析了串口驅動初始化部分,下面逐步分析串口驅動中的打開串口,數據發送和接收! 初始化主要工作流程: 先來分析串口打開操作流程,還是先上圖: 這裏分析還是離不開上篇博客中的兩張重要的圖: 串口操作重要的數據結構: 由上

原创 串口驅動程序設計詳解---串口初始化(上)

TTY驅動程序架構: 1. TTY概念解析     1.1 /dev/ttySCA0     1.2 /dev/tty1-n     1.3 /dev/console       在linux系統中,終端是一類字符型設備,它包括多種類型,

原创 CJSON源碼研究筆記

斷斷續續的CJSON源碼看了也有一段時間了,研究一番還是收穫頗多!很適合有一點C基礎的想繼續提高練手的開源源碼!cJson.c代碼只有700多行,官網上下的,代碼風格個人感覺不是很方便閱讀,如果全部展開的話代碼估計至少不在1100行之下。

原创 Linux按鍵驅動程序設計詳解---從簡單到不簡單

混雜設備驅動模型: 1. 混雜設備描述         在Linux系統中,存在一類字符設備,它們擁有相同的主設備號(10),單次設備號不同,我們稱這類設備爲混            雜設備(miscdevice).所有的混雜設備形成一個

原创 Linux SPI驅動設計

1. SPI總線結構 SPI串行外設接口,是一種高速的,全雙工,同步的通信總線。採用主從模式架構,支持多個slave,一般僅支持單Master SPI接口共有4根信號線,分別是: 設備選擇線(SS)、時鐘線(SCK)、串行輸出數據線(MO

原创 關於C語言結構體偏移的一點思考

前言 相信大家在c語言程序開發的過程一定都使用過結構體,那麼不知你對結構體中成員變量偏移這塊是如何理解的?本文將和大家一起分享下,本人最近關於c語言中結構體偏移的一些思考和總結。 另外這篇博文還可以幫你更好的理解這個問題c語言中兩種

原创 總線設備驅動模型

總線驅動設備模型: 1. 總線設備驅動模型概述         隨着技術的不斷進步,系統的拓撲結構也越來越複雜,對熱插拔,跨平臺移植性的要求也越來越高,2.4內核已經難以滿足這些需求,爲適應這宗形勢的需求,從linux2.6內核開始提供了

原创 在一個字符串中找到第一個只出現一次的字符

題目:在一個字符串中找到第一個只出現一次的字符。如輸入abaccdeff,則輸出b。 分析:這道題是2006年google的一道筆試題。       看到這道題時,最直觀的想法是從頭開始掃描這個字符串中的每個字符。當訪問到某字符時拿這個字

原创 塊設備驅動架構分析

1. 塊設備概念:塊設備是指只能以塊爲單位進行訪問的設備,塊的大小一般是512個字節的整數倍。常見的塊設備包括硬件,SD卡,光盤等。</span> 上邊是通過一個編寫好的塊設備驅動,然後安裝塊設備驅動以及一些相關操作來體會塊設備驅動

原创 應用程序運行***buffer overflow detected*** terminated Aborted異常退出問題

今天運行程序,改了一段代碼!然後每次一運行程序就異常退出,打印如下信息: *** buffer overflow detected ***: ./shm_costomer terminated Aborted 根據單詞的意思是緩存越界的問

原创 網卡驅動程序設計---網絡子系統深入分析以及DM9000網卡驅動實現

網絡子系統: 比如網絡編程裏面通過socket創建好了一個文件操作符,然後對其進行write操作,這個write對應的入口其實是一個socket_file_ops結構對應的函數操作集: 可以看到write對應的入口函數是sock_aio

原创 select、poll、epoll之間的區別總結(轉)

  select,poll,epoll都是IO多路複用的機制。I/O多路複用就通過一種機制,可以監視多個描述符,一旦某個描述符就緒(一般是讀就緒或者寫就緒),能夠通知程序進行相應的讀寫操作。但select,poll,epoll本質上都是

原创 Linux I2C驅動

I2C總線介紹: 1. I2C硬件結構     1.1 I2C電氣特性         I2C總線是由PHILIPS公司開發的兩線式串行總線,用於連接微控制器及其外圍設備。     I2C總線只有兩根雙向信號線。         SDA

原创 二叉通用樹C語言實現---雙親孩子法

還是國嵌之前數據結構和算法視頻裏面唐老師的代碼,最近刷二叉樹的相關題目,整好拿來用用,先貼源代碼,順便複習一下,老師的代碼真的很棒!後邊藉助老師之前的鏈表以及棧的實現,非遞歸實現二叉樹的前序遍歷、中序遍歷、後續遍歷、以及層次遍歷-全部用棧