原子嵌入式Linux驅動開發詳解與實戰:ARM Linux驅動(簡體書)
商品資訊
ISBN13:9787302631996
出版社:清華大學出版社(大陸)
作者:左忠凱
出版日:2023/05/15
裝訂/頁數:平裝/755頁
規格:24cm*17cm (高/寬)
版次:一版
商品簡介
隨著半導體技術和芯片技術的飛速發展,能運行嵌入式 Linux系統的 MPU 芯片價格也在不斷降低,ARM 架構 的芯片在手機、工業控制、物聯網、自動駕駛等領域得到了廣泛應用。以前大量使用 MCU 的地方也開始使用嵌入式 Linux地系鐵統刷。卡的閘機、汽車充電樁的操作面板、物聯網網關等都有嵌入式 Linux的身影,各企業對嵌入式 Linux開發 人才的需求也急劇增加。相比單片機開發,嵌入式 Linux開發難度要大很多。尤其是重要的驅動開發,嵌入式 Linux內核採用面向物件思路設計,且已開發大量驅動框架,開發人員需要掌握這些驅動框架的使用,編寫出符合嵌 入式 Linux要求的驅動。 本書從基本的點燈程序到網絡驅動的編寫,涵蓋了 Linux開發的三大驅動類型:字符設備驅動、塊設備驅動 和網絡設備驅動。本書的一大特色就是涵蓋了全設備樹開發,除了開始的幾個為了講解嵌入式 Linux如何操作 芯片寄存器的例程沒有採用設備樹外,其他的例程都採用設備樹,基本涵蓋了嵌入式 Linux驅 動 開 發 中 的 常 用 外設。本書可作為廣大從事嵌入式開發、物聯網、工業控制開發等工程技術人員的學習和參考用書,也可作為高等學 校計算機、電子、自動化等專業嵌入式系統、微機接口、物聯網等課程的教材。
作者簡介
左忠凱,14年參加工作以來一直從事於嵌入式教育,以作者身份著有《FreeRTOS源碼詳解與應用開發》,參與編寫了正點原子大量的手把手教你STM32系列書籍,比如《精通STM32F4庫函數版》、《STM32F7原理與應用》等。同時錄制了大量的STM32相關教學視頻,廣受好評。18年開始負責公司Linux教育平臺的研發,編寫了1800多頁的Linux驅動開發教程,錄制了200多講Linux開發視頻,負責的I.MX6ULL開發板自從發布至今,銷量一直處於淘寶,Linux驅動開發相關視頻在各大平臺的點擊量超過30萬次。
名人/編輯推薦
全面解析基於ARM內核的嵌入式Linux驅動開發,通過豐富的實戰案例讓單片機開發者熟練掌握嵌入式Linux驅動開發。
序
本書和清華大學出版社已出版的《原子嵌入式 Linux驅動開發詳解》是一套書籍,在《原子嵌入式 Linux驅動開發詳解》這本書的前3篇中,詳細講解了ARM裸機開發、Uboot、Linux內核和根文件系統的移植,為我們學習嵌入式Linux驅動開發打下了堅實的基礎。本書是第四篇——ARM Linux驅動開發篇,專門講解嵌入式Linux驅動開發,涵蓋了Linux開發的三大驅動類型: 字符設備驅動、塊設備驅動、網絡設備驅動。本書使用的Linux內核版本為4.1.15,其支持設備樹(Device tree),所以本篇所有例程均採用設備樹開發。
嵌入式Linux學習的難點在於:
(1) 基礎要求高
嵌入式Linux對於學習者的基礎要求比較高,需要從事過或學習過32位ARM單片機的開發。掌握32位微控制器架構的基礎知識,了解32位微控制器的寄存器操作方法,掌握常用的通信協議,比如串口、I2C、SPI、RGB屏幕、SAI、網絡等。零基礎學習嵌入式Linux驅動開發難度很大,筆者不建議直接上手。就跟我們上學一樣: 小學—初中—高中—大學,是一個循序漸進的過程。不可能小學、初中都不上,等到了年齡以後直接上高中,一次性把小學、初中和高中的知識全學了,這個難度是很大的。
(2) 驅動框架多
嵌入式Linux為了兼容眾多的芯片,開發了大量的驅動框架,我們要根據這些驅動框架來編寫驅動。比如一個簡單的LED燈驅動程序,單片機用十幾行代碼就可以實現,但是在嵌入式Linux環境下可能就要幾十行了。而且不同的外設,驅動框架不同,如I2C、SPI、按鍵輸入等。嵌入式Linux驅動學習的一大內容就是學習掌握大量的驅動框架。
(3) C語言基礎要求高
嵌入式Linux內核採用C語言開發,在內核中充斥著大量的C語言高級用法,像指針、結構體這種都是很常見的。C語言基礎薄弱的同學上手難度也很大,所以要加強和鞏固C語言的基礎知識。
(4) 設備樹開發方式
嵌入式Linux內核早就採用設備樹進行驅動開發了,和單片機直接編寫C文件開發驅動相比,設備樹的引入無疑又增加了學習難度,畢竟要多學習一門技術。設備樹貫穿於整個嵌入式Linux驅動開發始終,是必須熟練掌握的技術。
本書採用循序漸進、由淺入深的方式進行章節編排,先是字符設備,再是塊設備,後是網絡設備。
(1) 字符設備驅動
字符設備是Linux驅動開發中雜、多的一類設備,小到LED點燈,大到USB、音頻都屬於字符設備驅動。在實際的工作中,大部分工作都是處理字符設備驅動。本書首先從一個虛擬的字符設備驅動開始,講解字符設備基礎驅動框架的使用。然後再慢慢引入設備樹、GPIO、輸入輸出子系統、I2C、SPI等其他框架。
(2) 塊設備驅動
採用內存模擬一個物理存儲設備的方式,重點講解塊設備框架的使用,編寫一個採用內存模擬的塊設備驅動。
(3) 網絡設備驅動
在實際的項目開發中,網絡設備驅動也是很重要的一點,比如我們更換網絡PHY以後如何調試網絡驅動。本書花了大量篇幅來詳細講解嵌入式Linux的網絡設備開發流程,從PHY芯片到網絡驅動架構,尤其是PHY芯片的講解。因為在真正做項目的時候,打交道的就是PHY芯片,主控端的驅動是不需要修改的,我們要做的就是驅動起來所選擇的PHY芯片,讓網絡正常工作。
(4) 全設備樹開發方式
基本上所有的例程都採用設備樹的開發方式,從基本的GPIO到網絡驅動。每個例程都有詳細的設備樹講解,真正讓讀者深入掌握設備樹原理。
嵌入式Linux的驅動開發學習是需要不斷練習的,尤其是相比單片機開發,引入了很多複雜的知識體系。比如搭建驅動框架和設備樹,很多初學者遍學習的感覺就是稀裡糊塗的,這是因為練習得少,對這些新知識還不熟悉,這是很正常的。筆者在學習嵌入式Linux驅動開發的時候,學習了好幾遍才有感覺。這裡可以教大家一個方法,先用一個開發板跟著教程學習一遍,比如使用正點原子的I.MX6UL開發板。當學完了以後,再換另外一個型號的開發板,比如STM32MP157、RV1126等,將自己學過的東西在新的開發板上實踐,這樣就能鞏固好已有的知識。
後,祝願大家學習順利。
作者2023年5月
目次
第四篇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上網測試
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。