-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
原子嵌入式LINUX驅動開發詳解與實戰(ARM LINUX驅動) 版權信息
- ISBN:9787302631996
- 條形碼:9787302631996 ; 978-7-302-63199-6
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
原子嵌入式LINUX驅動開發詳解與實戰(ARM LINUX驅動) 本書特色
全面解析基于ARM內核的嵌入式Linux驅動開發,通過豐富的實戰案例讓單片機開發者熟練掌握嵌入式Linux驅動開發。
原子嵌入式LINUX驅動開發詳解與實戰(ARM LINUX驅動) 內容簡介
隨著半導體技術和芯片技術的飛速發展,能運行嵌入式?Linux系統的?MPU?芯片價格也在不斷降低,ARM?架構?的芯片在手機、工業控制、物聯網、自動駕駛等領域得到了廣泛應用。以前大量使用?MCU?的地方也開始使用嵌入式?Linux地系鐵統刷。卡的閘機、汽車充電樁的操作面板、物聯網網關等都有嵌入式?Linux的身影,各企業對嵌入式?Linux開發?人才的需求也急劇增加。相比單片機開發,嵌入式?Linux開發難度要大很多。尤其是*重要的驅動開發,嵌入式?Linux內核采用面向對象思路設計,且已開發大量驅動框架,開發人員需要掌握這些驅動框架的使用,編寫出符合嵌?入式?Linux要求的驅動。?本書從*基本的點燈程序到網絡驅動的編寫,涵蓋了?Linux開發的三大驅動類型:字符設備驅動、塊設備驅動?和網絡設備驅動。本書的一大特色就是涵蓋了全設備樹開發,除了*開始的幾個為了講解嵌入式?Linux如何操作?芯片寄存器的例程沒有采用設備樹外,其他的例程都采用設備樹,基本涵蓋了嵌入式?Linux驅?動?開?發?中?的?常?用?外設。本書可作為廣大從事嵌入式開發、物聯網、工業控制開發等工程技術人員的學習和參考用書,也可作為高等學?校計算機、電子、自動化等專業嵌入式系統、微機接口、物聯網等課程的教材。
原子嵌入式LINUX驅動開發詳解與實戰(ARM LINUX驅動) 目錄
第1章字符設備驅動開發 1.1字符設備驅動簡介 1.2字符設備驅動開發步驟 1.2.1驅動模塊的加載和卸載 1.2.2字符設備注冊與注銷 1.2.3實現設備的具體操作函數 1.2.4添加LICENSE和作者信息 1.3Linux設備號 1.3.1設備號的組成 1.3.2設備號的分配 1.4chrdevbase字符設備驅動開發實驗 1.4.1實驗程序編寫 1.4.2編寫測試App 1.4.3編譯驅動程序和測試App 1.4.4運行測試 第2章嵌入式Linux LED燈驅動開發實驗 2.1Linux下LED燈驅動原理 2.1.1地址映射 2.1.2I/O內存訪問函數 2.2硬件原理圖分析 2.3實驗程序編寫 2.3.1LED燈驅動程序編寫 2.3.2編寫測試App 2.4運行測試 2.4.1編譯驅動程序和測試App 2.4.2運行測試 第3章新字符設備驅動實驗 3.1新字符設備驅動原理 3.1.1分配和釋放設備號 3.1.2新的字符設備注冊方法 3.2自動創建設備節點 3.2.1mdev機制 3.2.2創建和刪除類 3.2.3創建設備 3.2.4參考示例 3.3設置文件私有數據 3.4硬件原理圖分析 3.5實驗程序編寫 3.5.1LED燈驅動程序編寫 3.5.2編寫測試App 3.6運行測試 3.6.1編譯驅動程序和測試App 3.6.2運行測試
第4章Linux設備樹 4.1什么是設備樹 4.2DTS、DTB和DTC 4.3DTS語法 4.3.1.dtsi頭文件 4.3.2設備節點 4.3.3標準屬性 4.3.4根節點compatible屬性 4.3.5向節點追加或修改內容 4.4創建小型模板設備樹 4.5設備樹在系統中的體現 4.6特殊節點 4.6.1aliases子節點 4.6.2chosen子節點 4.7Linux內核解析DTB文件 4.8綁定信息文檔 4.9設備樹常用OF操作函數 4.9.1查找節點的OF函數 4.9.2查找父/子節點的OF函數 4.9.3提取屬性值的OF函數 4.9.4其他常用的OF函數 第5章設備樹下的LED燈驅動實驗 5.1設備樹LED驅動原理 5.2硬件原理圖分析 5.3實驗程序編寫 5.3.1修改設備樹文件 5.3.2LED燈驅動程序編寫 5.3.3編寫測試App 5.4運行測試 5.4.1編譯驅動程序和測試App 5.4.2運行測試 第6章pinctrl和gpio子系統實驗 6.1pinctrl子系統 6.1.1pinctrl子系統簡介 6.1.2I.MX6ULL的pinctrl子系統驅動 6.1.3設備樹中添加pinctrl節點模板 6.2gpio子系統 6.2.1gpio子系統簡介 6.2.2I.MX6ULL的gpio子系統驅動 6.2.3gpio子系統API函數 6.2.4設備樹中添加gpio節點模板 6.2.5與GPIO相關的OF函數 6.3硬件原理圖分析 6.4實驗程序編寫 6.4.1修改設備樹文件 6.4.2LED燈驅動程序編寫 6.4.3編寫測試App 6.5運行測試 6.5.1編譯驅動程序和測試App 6.5.2運行測試 第7章Linux蜂鳴器實驗 7.1蜂鳴器驅動原理 7.2硬件原理圖分析 7.3實驗程序編寫 7.3.1修改設備樹文件 7.3.2蜂鳴器驅動程序編寫 7.3.3編寫測試App 7.4運行測試 7.4.1編譯驅動程序和測試App 7.4.2運行測試 第8章Linux并發與競爭 8.1并發與競爭 8.2原子操作 8.2.1原子操作簡介 8.2.2原子整型數據操作API函數 8.2.3原子位操作API函數 8.3自旋鎖 8.3.1自旋鎖簡介 8.3.2自旋鎖API函數 8.3.3其他類型的鎖 8.3.4自旋鎖使用注意事項 8.4信號量 8.4.1信號量簡介 8.4.2信號量API函數 8.5互斥體 8.5.1互斥體簡介 8.5.2互斥體API函數 第9章Linux并發與競爭實驗 9.1原子操作實驗 9.1.1實驗程序編寫 9.1.2運行測試 9.2自旋鎖實驗 9.2.1實驗程序編寫 9.2.2運行測試 9.3信號量實驗 9.3.1實驗程序編寫 9.3.2運行測試 9.4互斥體實驗 9.4.1實驗程序編寫 9.4.2運行測試 第10章Linux按鍵輸入實驗 10.1Linux下按鍵驅動原理 10.2硬件原理圖分析 10.3實驗程序編寫 10.3.1修改設備樹文件 10.3.2按鍵驅動程序編寫 10.3.3編寫測試App 10.4運行測試 10.4.1編譯驅動程序和測試App 10.4.2運行測試 第11章Linux內核定時器實驗 11.1Linux時間管理和內核定時器簡介 11.1.1內核時間管理簡介 11.1.2內核定時器簡介 11.1.3Linux內核短延時函數 11.2硬件原理圖分析 11.3實驗程序編寫 11.3.1修改設備樹文件 11.3.2定時器驅動程序編寫 11.3.3編寫測試App 11.4運行測試 11.4.1編譯驅動程序和測試App 11.4.2運行測試 第12章Linux中斷實驗 12.1Linux中斷簡介 12.1.1Linux中斷API函數 12.1.2上半部與下半部 12.1.3設備樹中斷信息節點 12.1.4獲取中斷號 12.2硬件原理圖分析 12.3實驗程序編寫 12.3.1修改設備樹文件 12.3.2按鍵中斷驅動程序編寫 12.3.3編寫測試App 12.4運行測試 12.4.1編譯驅動程序和測試App 12.4.2運行測試 第13章Linux阻塞和非阻塞I/O實驗 13.1阻塞和非阻塞I/O 13.1.1阻塞和非阻塞簡介 13.1.2等待隊列 13.1.3輪詢 13.1.4Linux驅動下的poll操作函數 13.2阻塞I/O實驗 13.2.1硬件原理圖分析 13.2.2實驗程序編寫 13.2.3運行測試 13.3非阻塞I/O實驗 13.3.1硬件原理圖分析 13.3.2實驗程序編寫 13.3.3運行測試 第14章異步通知實驗 14.1異步通知 14.1.1異步通知簡介 14.1.2驅動中的信號處理 14.1.3應用程序對異步通知的處理 14.2硬件原理圖分析 14.3實驗程序編寫 14.3.1修改設備樹文件 14.3.2程序編寫 14.3.3編寫測試App 14.4運行測試 14.4.1編譯驅動程序和測試App 14.4.2運行測試 第15章platform設備驅動實驗 15.1Linux驅動的分離與分層 15.1.1驅動的分隔與分離 15.1.2驅動的分層 15.2platform平臺驅動模型簡介 15.2.1platform總線 15.2.2platform驅動 15.2.3platform設備 15.3硬件原理圖分析 15.4實驗程序編寫 15.4.1platform設備與驅動程序編寫 15.4.2編寫測試App 15.5運行測試 15.5.1編譯驅動程序和測試App 15.5.2運行測試 第16章設備樹下的platform驅動編寫 16.1設備樹下的platform驅動簡介 16.2硬件原理圖分析 16.3實驗程序編寫 16.3.1修改設備樹文件 16.3.2platform驅動程序編寫 16.3.3編寫測試App 16.4運行測試 16.4.1編譯驅動程序和測試App 16.4.2運行測試 第17章Linux自帶的LED燈驅動實驗 17.1Linux內核自帶LED燈驅動使能 17.2Linux內核自帶LED燈驅動簡介 17.2.1LED燈驅動框架分析 17.2.2module_platform_driver()函數簡介 17.2.3gpio_led_probe()函數簡介 17.3設備樹節點編寫 17.4運行測試 第18章Linux MISC驅動實驗 18.1MISC設備驅動簡介 18.2硬件原理圖分析 18.3實驗程序編寫 18.3.1修改設備樹 18.3.2beep驅動程序編寫 18.3.3編寫測試App 18.4運行測試 18.4.1編譯驅動程序和測試App 18.4.2運行測試 第19章Linux input子系統實驗 19.1input子系統 19.1.1input子系統簡介 19.1.2input驅動編寫流程 19.1.3input_event結構體 19.2硬件原理圖分析 19.3實驗程序編寫 19.3.1修改設備樹文件 19.3.2按鍵input驅動程序編寫 19.3.3編寫測試App 19.4運行測試 19.4.1編譯驅動程序和測試App 19.4.2運行測試 19.5Linux自帶按鍵驅動程序的使用 19.5.1自帶按鍵驅動程序源碼簡介 19.5.2自帶按鍵驅動程序的使用 第20章Linux PWM驅動實驗 20.1PWM驅動簡介 20.1.1設備樹下的PWM控制器節點 20.1.2PWM子系統 20.1.3PWM驅動源碼分析 20.2PWM驅動編寫 20.2.1修改設備樹 20.2.2使能PWM驅動 20.3PWM驅動測試 第21章Linux LCD驅動實驗 21.1Linux下LCD驅動簡介 21.1.1Framebuffer設備 21.1.2LCD驅動簡介 21.2硬件原理圖分析 21.3LCD驅動程序編寫 21.3.1修改設備樹 21.3.2LCD屏幕背光節點信息 21.4運行測試 21.4.1LCD屏幕基本測試 21.4.2設置LCD作為終端控制臺 21.4.3LCD背光調節 21.4.4LCD自動關閉解決方法 第22章Linux RTC驅動實驗 22.1Linux內核RTC驅動簡介 22.2I.MX6U內部RTC驅動分析 22.3RTC時間查看與設置 第23章Linux I2C驅動實驗 23.1Linux I2C驅動框架簡介 23.1.1I2C總線驅動 23.1.2I2C設備驅動 23.1.3I2C設備和驅動匹配過程 23.2I.MX6U的I2C適配器驅動分析 23.3I2C設備驅動編寫流程 23.3.1I2C設備信息描述 23.3.2I2C設備數據收發處理流程 23.4硬件原理圖分析 23.5實驗程序編寫 23.5.1修改設備樹 23.5.2AP3216C驅動編寫 23.5.3編寫測試App 23.6運行測試 23.6.1編譯驅動程序和測試App 23.6.2運行測試 第24章Linux SPI驅動實驗 24.1Linux下SPI驅動框架簡介 24.1.1SPI主機驅動 24.1.2SPI設備驅動 24.1.3SPI設備和驅動匹配過程 24.2I.MX6U SPI主機驅動分析 24.3SPI設備驅動編寫流程 24.3.1SPI設備信息描述 24.3.2SPI設備數據收發處理流程 24.4硬件原理圖分析 24.5實驗程序編寫 24.5.1修改設備樹 24.5.2編寫ICM20608驅動 24.5.3編寫測試App 24.6運行測試 24.6.1編譯驅動程序和測試App 24.6.2運行測試 第25章Linux RS232/485/GPS驅動實驗 25.1Linux下UART驅動框架 25.2I.MX6U UART驅動分析 25.3硬件原理圖分析 25.4RS232驅動編寫 25.5移植minicom 25.6RS232驅動測試 25.6.1RS232連接設置 25.6.2minicom設置 25.6.3RS232收發測試 25.7RS485測試 25.7.1RS485連接設置 25.7.2RS485收發測試 25.8GPS測試 25.8.1GPS連接設置 25.8.2GPS數據接收測試 第26章Linux 多點電容觸摸屏實驗 26.1Linux下電容觸摸屏驅動框架簡介 26.1.1多點觸摸協議詳解 26.1.2Type A觸摸點信息上報時序 26.1.3Type B觸摸點信息上報時序 26.1.4MT其他事件的使用 26.1.5多點觸摸使用的API函數 26.1.6多點電容觸摸屏驅動框架 26.2硬件原理圖分析 26.3實驗程序編寫 26.3.1修改設備樹 26.3.2編寫多點電容觸摸屏驅動 26.4運行測試 26.4.1編譯驅動程序 26.4.2運行測試 26.4.3將驅動添加到內核中 26.5tslib移植與使用 26.5.1tslib移植 26.5.2tslib測試 26.6使用內核自帶的驅動 第27章RGB轉HDMI實驗 27.1RGB轉HMDI簡介 27.2硬件原理圖分析 27.3實驗驅動編寫 27.3.1修改設備樹 27.3.2使能內核自帶的sii902x驅動 27.3.3修改sii902x驅動 27.4RGB轉HDMI測試 第28章Linux音頻驅動實驗 28.1音頻接口簡介 28.1.1為何需要音頻編解碼芯片 28.1.2WM8960簡介 28.1.3I2S總線接口 28.1.4I.MX6ULL SAI簡介 28.2硬件原理圖分析 28.3音頻驅動使能 28.3.1修改設備樹 28.3.2使能內核的WM8960驅動 28.4alsalib和alsautils移植 28.4.1alsalib移植 28.4.2alsautils移植 28.5聲卡設置與測試 28.5.1amixer的使用方法 28.5.2音樂播放測試 28.5.3MIC錄音測試 28.5.4Line_in錄音測試 28.6開機自動配置聲卡 28.7alsamixer簡介 第29章Linux CAN驅動實驗 29.1CAN協議簡介 29.1.1何為CAN 29.1.2CAN電氣屬性 29.1.3CAN協議 29.1.4CAN速率 29.1.5I.MX6ULL FlexCAN簡介 29.2硬件原理圖分析 29.3實驗程序編寫 29.3.1修改設備樹 29.3.2使能Linux內核自帶的FlexCAN驅動 29.4FlexCAN測試 29.4.1檢查CAN網卡設備是否存在 29.4.2移植iproute2 29.4.3移植canutils工具 29.4.4CAN通信測試 第30章Linux USB驅動實驗 30.1USB接口簡介 30.1.1什么是USB 30.1.2USB電氣特性 30.1.3USB拓撲結構 30.1.4什么是USB OTG 30.1.5I.MX6ULL USB接口簡介 30.2硬件原理圖分析 30.2.1USB HUB原理圖分析 30.2.2USB OTG原理圖分析 30.3USB協議簡介 30.3.1USB描述符 30.3.3USB數據包類型 30.3.4USB傳輸類型 30.3.5USB枚舉 30.4Linux內核自帶HOST實驗 30.4.1USB鼠標鍵盤測試 30.4.2U盤實驗 30.5Linux內核自帶USB OTG實驗 30.5.1修改設備樹 30.5.2OTG主機實驗 30.5.3OTG從機實驗 第31章regmap API實驗 31.1regmap API簡介 31.1.1什么是regmap 31.1.2regmap驅動框架 31.1.3regmap操作函數 31.1.4regmap_config掩碼設置 31.2實驗程序編寫 31.3運行測試 第32章Linux IIO驅動實驗 32.1IIO子系統簡介 32.1.1iio_dev 32.1.2iio_info 32.1.3iio_chan_spec 32.2IIO驅動框架創建 32.2.1基礎驅動框架建立 32.2.2IIO設備申請與初始化 32.3實驗程序編寫 32.3.1使能內核IIO相關配置 32.3.2ICM20608的IIO驅動框架搭建 32.3.3完善icm20608_read_raw()函數 32.3.4完善icm20608_write_raw()函數 32.4測試應用程序編寫 32.4.1Linux文件流讀取 32.4.2編寫測試App 32.4.3運行測試 第33章Linux ADC驅動實驗 33.1ADC簡介 33.2ADC驅動源碼簡介 33.2.1設備樹下的ADC節點 33.2.2ADC驅動源碼分析 33.3硬件原理圖分析 33.4ADC驅動編寫 33.4.1修改設備樹 33.4.2使能ADC驅動 33.4.3編寫測試App 33.5運行測試 33.5.1編譯驅動程序和測試App 33.5.2運行測試 第34章Linux 塊設備驅動實驗 34.1什么是塊設備 34.2塊設備驅動框架 34.2.1block_device結構體 34.2.2gendisk結構體 34.2.3block_device_operations結構體 34.2.4塊設備I/O請求過程 34.3使用請求隊列實驗 34.3.1實驗程序編寫 34.3.2運行測試 34.4不使用請求隊列實驗 34.4.1實驗程序編寫 34.4.2運行測試 第35章Linux 網絡驅動實驗 35.1嵌入式網絡簡介 35.1.1嵌入式下的網絡硬件接口 35.1.2MII/RMII接口 35.1.3MDIO接口 35.1.4RJ45接口 35.1.5I.MX6ULL ENET接口簡介 35.2PHY芯片詳解 35.2.1PHY基礎知識簡介 35.2.2LAN8720A詳解 35.3Linux內核網絡驅動框架 35.3.1net_device結構體 35.3.2net_device_ops結構體 35.3.3sk_buff結構體 35.3.4網絡NAPI處理機制 35.4I.MX6ULL網絡驅動簡介 35.4.1I.MX6ULL網絡外設設備樹 35.4.2I.MX6ULL網絡驅動源碼簡介 35.4.3fec_netdev_ops操作集 35.4.4Linux內核PHY子系統與MDIO總線簡介 35.5網絡驅動實驗測試 35.5.1LAN8720 PHY驅動測試 35.5.2通用PHY驅動測試 35.5.3DHCP功能配置 第36章Linux WiFi驅動實驗 36.1WiFi驅動添加與編譯 36.1.1向Linux內核添加WiFi驅動 36.1.2配置Linux內核 36.1.3編譯WiFi驅動 36.1.4驅動加載測試 36.2wireless tools工具移植與測試 36.2.1wireless tools移植 36.2.2wireless tools工具測試 36.3wpa_supplicant移植 36.3.1openssl移植 36.3.2libnl庫移植 36.3.3wpa_supplicant移植 36.4WiFi聯網測試 36.4.1RTL8188 USB WiFi聯網測試 36.4.2RTL8189 SDIO WiFi聯網測試 第37章Linux 4G通信實驗 37.14G網絡連接簡介 37.2高新興ME3630 4G模塊實驗 37.2.1ME3630 4G模塊簡介 37.2.2ME3630 4G模塊驅動修改 37.2.3ME3630 4G模塊ppp聯網測試 37.2.4ME3630 4G模塊ECM聯網測試 37.2.5ME3630 4G模塊GNSS定位測試 37.3EC20 4G模塊實驗 37.3.1EC20 4G模塊簡介 37.3.2EC20 4G模塊驅動修改 37.3.3quectelCM移植 37.3.4EC20上網測試
原子嵌入式LINUX驅動開發詳解與實戰(ARM LINUX驅動) 作者簡介
左忠凱,14年參加工作以來一直從事于嵌入式教育,以作者身份著有《FreeRTOS源碼詳解與應用開發》,參與編寫了正點原子大量的手把手教你STM32系列書籍,比如《精通STM32F4庫函數版》、《STM32F7原理與應用》等。同時錄制了大量的STM32相關教學視頻,廣受好評。18年開始負責公司Linux教育平臺的研發,編寫了1800多頁的Linux驅動開發教程,錄制了200多講Linux開發視頻,負責的I.MX6ULL開發板自從發布至今,銷量一直處于淘寶,Linux驅動開發相關視頻在各大平臺的點擊量超過30萬次。
- >
月亮虎
- >
二體千字文
- >
史學評論
- >
自卑與超越
- >
【精裝繪本】畫給孩子的中國神話
- >
李白與唐代文化
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
名家帶你讀魯迅:故事新編