嵌入式Linux接口開發技術 ( 簡體 字) |
作者:鄧寬 等 | 類別:1. -> 作業系統 -> Linux 2. -> 電腦組織與體系結構 -> 嵌入式系統 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 54487 詢問書籍請說出此書號!【有庫存】 NT售價: 395 元 |
出版日:5/1/2021 |
頁數:244 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121410376 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:寫作背景
由于Linux具有開源、資源占用少等特點,在服務器、智能終端和嵌入式系統中大有用武之地。與傳統PC程序的開發不同,嵌入式系統的開發涉及軟件和硬件兩個方面,是一個協同工作的過程。目前,在嵌入式系統的硬件和軟件中,應用比較廣泛的是ARM體系結構的微處理器和Linux系統。本書是基于ARM體系結構的微處理器和Linux編寫的。
在進行嵌入式Linux C開發時,需要開發者熟練掌握C語言、電子電路分析、通信協議以及驅動程序開發等知識。在多年的科研和教學過程中,作者發現:
(1)部分學生對常用電子儀器設備的使用方法掌握得不熟練。
(2)部分學生在學習器件接口的原理后,僅僅停留在理論學習的階段,面對實際的器件卻無從下手,無法將理論和實踐聯系起來,不具備解決實際問題的能力。
(3)部分學生沒有掌握良好的編程技巧和程序分層設計的思想,導致程序的可讀性和可移植性較差。
(4)目前市面上一些嵌入式開發板的外設不豐富,不利于學生進行實踐。
面對上述問題,本書從嵌入式系統的開發基礎入手,詳細介紹了GPIO接口、PWM、UART串口、I2C總線和SPI總線的原理以及實現方法,并以此為基礎介紹了常用外設的使用方法。本書通過理論敘述和編程實踐相結合的方式,幫助讀者深入理解嵌入式系統常用接口的原理和開發。另外,本書結合具體的實例,詳細介紹了示波器和邏輯分析儀的使用方法,可幫助讀者掌握這些電子儀器設備的使用方法。
本書專門設計了配套的嵌入式開發板,該開發板包含豐富的外設,可幫助讀者掌握相關的知識。另外,本書配套的嵌入式開發板保留了通用協議的接口,可進一步擴展外設。本書提供了書中所有實例的代碼,代碼分為bsp、driver和application三層,分別對應通信協議代碼、外設驅動代碼和應用程序代碼。這種分層的代碼結構,不僅可讀性高,易于讀者理解,在更換嵌入式開發板或開發環境時,還具有很高的移植性。
內容框架
本書從Linux的開發基礎講起,詳細介紹了嵌入式Linux接口開發技術。第1∼3章是Linux的入門知識;第4章介紹了本書所用的嵌入式開發板,包括安裝系統、調試方法等;第5∼8章介紹了各種接口的開發,在介紹接口通信協議的基礎上給出了簡單的編程實例;第9章介紹了嵌入式系統的綜合設計,通過一個完整的案例開發,幫助讀者學習和掌握嵌入式系統的開發方法。
讀者對象
本書主要介紹嵌入式Linux接口開發技術,讀者應當具備C語言和電子電路的基礎知識。本書主要面向嵌入式Linux設備驅動程序、應用程序的開發工程師,以及ARM嵌入式系統的設計工程師。
勘誤和支持
由于作者的水平有限,書中難免會有錯誤或不足之處,懇請讀者批評指正。作者將本書配套的源代碼、電路圖、模塊使用手冊等資料上傳到了GitHub。歡迎讀者在GitHub提交Issues留言,與作者溝通。
致謝
本書既是江蘇省高等教育教改研究立項課題(2019JSJG622)和南京市級高等教育人才培養創新基地項目建設成果,也是作者所在單位與南京優奈特信息科技有限公司(蘇嵌教育)開展校企合作人才培養的成果。在本書的編寫過程中,董振華、黃苗玉、田晨林、朱連杰、毛汝勇、吳振、徐棟、孔祥宇等老師和學生給予了熱情支持,并提出了很多寶貴意見;本書的出版得到了電子工業出版社的大力支持,在此表示衷心的感謝。
作 者
2021年2月 |
內容簡介:本書主要介紹嵌入式Linux接口開發技術,首先介紹Linux的基礎知識、嵌入式Linux C的開發基礎和Linux系統的文件操作,然后在此基礎上詳細介紹嵌入式系統常用接口的編程,最后通過一個完整的案例開發來介紹嵌入式系統的綜合設計。對于每種接口,本書先介紹其原理,然后通過典型的外設來介紹嵌入式Linux的接口編程。在編程過程中采用示波器和邏輯分析儀來進行驗證,通過形象化的手段來提高讀者的動手能力,加深讀者對本書知識點的理解。 |
目錄:第1章 Linux基礎 (1)
1.1 Linux簡介 (1)
1.1.1 Linux的發展 (1)
1.1.2 常見的Linux發行版 (1)
1.1.3 Linux系統的下載 (2)
1.2 在虛擬機上安裝Linux系統 (3)
1.2.1 什么是虛擬機 (3)
1.2.2 VMware Workstation虛擬機的配置 (3)
1.2.3 安裝Linux系統 (7)
1.2.4 使用Ubuntu系統的注意事項 (10)
1.3 Linux的文件系統 (14)
1.4 Linux系統的常用命令 (16)
1.4.1 系統命令 (16)
1.4.2 文本文件編輯命令 (19)
1.4.3 工作目錄命令 (20)
1.4.4 打包壓縮與搜索命令 (23)
1.4.5 命令在Linux系統中的執行 (25)
1.5 鏈接方式 (26)
1.5.1 軟鏈接和硬鏈接 (26)
1.5.2 ln命令 (26)
1.6 輸入/輸出重定向、管道符與環境變量 (27)
1.6.1 輸入/輸出重定向 (27)
1.6.2 管道符 (29)
1.6.3 重要的環境變量 (29)
1.7 Vim編輯器與Shell腳本命令 (30)
1.7.1 Vim編輯器 (30)
1.7.2 Shell腳本命令 (32)
1.8 用戶身份與文件權限 (35)
1.8.1 passwd命令 (35)
1.8.2 文件權限 (36)
1.8.3 chmod命令 (37)
1.8.4 su命令與sudo命令 (37)
練習題1 (38)
第2章 嵌入式Linux C開發基礎 (41)
2.1 C語言概述 (41)
2.2 嵌入式Linux C開發工具 (41)
2.3 嵌入式編譯器gcc (42)
2.3.1 初識gcc編譯器 (43)
2.3.2 gcc命令的常用選項及編譯過程 (43)
2.3.3 庫的使用 (45)
2.4 構建工具 (47)
2.4.1 Makefile文件 (47)
2.4.2 Makefile文件的特性 (49)
練習題2 (52)
第3章 Linux系統的文件操作 (55)
3.1 Linux系統的文件類型 (55)
3.2 Linux系統的文件描述符 (56)
3.3 不帶緩存的文件I/O操作涉及的函數 (56)
3.3.1 creat函數 (57)
3.3.2 open函數 (58)
3.3.3 read函數 (61)
3.3.4 write函數 (61)
3.3.5 lseek函數 (61)
3.3.6 close函數 (62)
3.3.7 經典范例:文件復制 (62)
3.4 帶緩存的文件I/O操作涉及的函數 (64)
3.4.1 標準I/O庫中的緩存類型 (64)
3.4.2 fopen函數 (66)
3.4.3 fclose函數 (67)
3.4.4 fwrite函數 (67)
3.4.5 fread函數 (68)
3.4.6 fseek函數 (69)
3.4.7 fgetc、getc和getchar函數 (70)
3.4.8 fputc、putc和putchar函數 (72)
3.4.9 字符串讀取函數fgets與gets (74)
3.5 格式化輸入/輸出函數 (76)
3.5.1 格式化輸入函數:scanf、fscanf和sscanf (76)
3.5.2 格式化輸出函數:printf、fprintf和sprintf (78)
練習題3 (81)
第4章 嵌入式開發板 (83)
4.1 嵌入式開發板簡介 (83)
4.1.1 嵌入式開發板的核心板 (85)
4.1.2 嵌入式開發板的底板 (87)
4.2 嵌入式Linux系統的安裝和嵌入式開發板的初步使用 (92)
4.2.1 在嵌入式開發板中安裝嵌入式Linux系統 (92)
4.2.2 嵌入式開發板的初步使用 (93)
4.2.3 文件傳輸 (98)
4.3 編譯方式 (100)
練習題4 (102)
第5章 嵌入式Linux接口編程:GPIO和PWM (103)
5.1 示波器的基本用法 (103)
5.1.1 示波器簡介 (103)
5.1.2 示波器的觸發方式和觸發條件 (107)
5.1.3 示波器的運算功能 (109)
5.2 GPIO編程 (110)
5.2.1 bsp_gpio接口函數簡介 (112)
5.2.2 GPIO的輸入和輸出 (114)
5.2.3 通過示波器三種觸發方式觀察電壓信號波形 (116)
5.3 PWM編程 (118)
5.3.1 PWM原理 (118)
5.3.2 bsp_pwm接口函數簡介 (119)
5.3.3 通過軟件PWM控制LED的亮滅 (120)
5.3.4 通過硬件PWM控制蜂鳴器的聲音 (121)
5.3.5 軟件PWM和硬件PWM的對比 (123)
練習題5 (125)
第6章 嵌入式Linux接口編程:UART (127)
6.1 串行通信協議的基礎 (127)
6.1.1 串行通信協議的數據格式 (127)
6.1.2 串行通信協議的電氣規則和電路連接方式 (129)
6.2 UART接口信號的波形分析 (130)
6.2.1 UART接口信號的生成 (130)
6.2.2 通過示波器捕獲UART接口信號的波形 (131)
6.2.3 通過邏輯分析儀捕獲UART接口信號的波形 (133)
6.3 UART編程 (137)
6.3.1 嵌入式Linux的UART接口函數 (137)
6.3.2 串口測試程序 (138)
6.4 藍牙模塊的原理與編程 (141)
6.4.1 藍牙模塊的原理 (141)
6.4.2 藍牙模塊的接口函數 (141)
6.4.3 藍牙模塊的編程 (145)
6.5 485型溫濕度傳感器的原理與編程 (148)
6.5.1 RS-485接口的通信原理 (149)
6.5.2 485型溫濕度傳感器簡介 (151)
6.5.3 485型溫濕度傳感器接口函數 (152)
6.5.4 485型溫濕度傳感器的編程 (155)
練習題6 (157)
第7章 嵌入式Linux接口編程:I2C (159)
7.1 I2C總線協議的基礎 (159)
7.1.1 I2C總線的物理層特點 (160)
7.1.2 I2C總線的通信時序 (160)
7.2 I2C總線的接口函數 (163)
7.3 通過邏輯分析儀測試I2C總線協議 (167)
7.4 ADC和DAC的原理與編程 (169)
7.4.1 PCF8591芯片的基礎知識 (170)
7.4.2 PCF8591芯片的接口函數 (172)
7.4.3 PCF8591芯片的編程 (173)
7.5 E2PROM的原理與編程 (175)
7.5.1 AT24C02芯片的基礎知識 (176)
7.5.2 AT24C02芯片的接口函數 (178)
7.5.3 AT24C02芯片的編程 (179)
7.6 OLED顯示屏的原理與編程 (181)
7.6.1 OLED顯示屏的原理 (181)
7.6.2 OLED顯示屏的接口函數 (183)
7.6.3 OLED顯示屏的編程 (187)
練習題7 (190)
第8章 嵌入式Linux接口編程:SPI (193)
8.1 SPI總線協議的基礎 (193)
8.1.1 SPI總線的接口定義 (193)
8.1.2 單從機模式 (194)
8.1.3 多從機模式 (194)
8.1.4 SPI總線的起始信號和停止信號 (194)
8.1.5 SPI總線的數據有效性 (194)
8.1.6 SPI總線的通信模式 (195)
8.2 SPI總線的接口函數 (196)
8.3 通過邏輯分析儀測試SPI總線的信號波形 (199)
8.4 三軸加速度傳感器的原理與編程 (201)
8.4.1 ADXL345芯片的工作原理 (202)
8.4.2 ADXL345芯片的接口函數 (206)
8.4.3 ADXL345芯片的編程 (210)
8.5 UART、I2C和SPI的對比 (213)
練習題8 (213)
第9章 嵌入式系統的綜合設計 (215)
9.1 嵌入式系統開發流程 (215)
9.2 基于RS-485的分布式溫濕度監控和報警系統 (216)
9.2.1 項目論證和需求 (216)
9.2.2 系統的總體設計 (216)
9.2.3 系統硬件的設計 (217)
9.2.4 系統通信協議的設計 (218)
9.2.5 系統軟件的設計 (220)
9.2.6 系統的測試和調試 (228)
附錄A 底板電路圖 (231)
參考文獻 (233) |
序: |