Linux 嵌入式系統開發從小白到大牛
內容描述
《Linux嵌入式系統開發從小白到大牛》的宗旨是讓讀者緊跟書中內容的安排順序並結合具體案例進行學習,
*終可以獨立編寫個人的嵌入式Linux系統。
全書共16章,在章節安排上本著由易到難、深入淺出的原則,具體內容如下。
第1~3章主要介紹Linux嵌入式開發的基礎知識;
第4、5章分別從硬件角度和軟件角度分析嵌入式Linux學習的相關工具;
第6~9章是本書的重點,分別對Makefile 、U-boot、內核和根文件系統進行了詳細介紹。
第10~12章介紹了Linux的驅動開發,是本書的難點內容,
也是嵌入式Linux 系統工程師必須掌握的內容。
第13~16章結合當下物聯網、車聯網等熱門技術領域知識,
完成了4個綜合項目案例。
《Linux嵌入式系統開發從小白到大牛》適合廣大從事嵌入式Linux系統開發的技術人員、
嵌入式Linux系統開發愛好者以及大中專院校相關專業的學生閱讀,
相關培訓院校及高校教師亦可將本書作為教材或參考書。
目錄大綱
前言
第1章Linux嵌入式系統入門
1.1小白也要懂——嵌入式系統的應用和發展
1.2嵌入式系統與嵌入式操作系統
1.2.1什麼是嵌入式系統
1.2.2什麼是嵌入式操作系統
1.3嵌入式系統的分類與特點
1.3.1嵌入式系統的分類
1.3.2嵌入式系統的特點
1.4嵌入式操作系統架構
1.5Linux系統版本
1.5.1Linux系統分類
1.5.2Ubuntu操作系統的版本
1.6【案例實戰】Linux系統環境搭建
1.6.1虛擬機安裝Ubuntu操作系統
1.6.2樹莓派安裝Ubuntu操作系統
1.7要點鞏固
1.8技術大牛訪談——嵌入式系統的一般開發流程
第2章Linux操作系統基礎知識
2.1小白也要懂——操作系統的功能
2.2Linux操作系統基本命令
2.2.1Linux操作系統權限管理
2.2.2Linux常用基本命令
2.3Linux操作系統下的vi和vim編輯器
2.3.1vi的基本操作
2.3.2vim的基本操作
2.4鏈接文件
2.5跨平台的文件傳輸協議
2.5.1什麼是FTP
2.5.2虛擬機Linux系統啟用FTP服務
2.6【案例實戰】Hello World!兩種編程方式
2.7要點鞏固
2.8技術大牛訪談——Linux操作系統架構
第3章Linux嵌入式系統下編程
3.1小白也要懂——C語言的發展過程
3.2Linux系統下C語言的編程基礎
3.2.1記住標識符
3.2.2C語言中的數據
3.2.3運算符和表達式
3.2.4C語言的三種基本結構
3.3Linux系統下C語言的進階編程
3.3.1C語言的數組
3.3.2C語言的指針
3.3.3C語言的函數
3.3.4C語言的構造數據類型
3.4Linux系統下C語言的高階編程
3.4.1C語言的文件操作
3.4.2C語言的隊列操作
3.4.3C語言的鍊錶操作
3.4.4C語言的排序算法
3.5【案例實戰】學生成績信息管理系統
3.6要點鞏固
3.7技術大牛訪談——GNU C和標準C的差異
第4章Linux嵌入式硬件系統
4.1小白也要懂——微處理器字節序列存儲的大小端模式
4.2嵌入式微處理器的系統架構
4.2.1馮·諾依曼計算機系統
4.2.2指令系統
4.2.3微處理器的內核架構
4.3嵌入式硬件系統的基本組成部分
4.3.1時鐘系統
4.3.2中斷系統
4.3.3總線
4.3.4存儲系統
4.3.5嵌入式微處理器片上外部設備
4.4【案例實戰】微處理器的兩種編程方式
4.4.1微處理器裸機系統的GPIO操作
4.4.2微處理器移植Linux系統的GPIO操作
4.5要點鞏固
4.6技術大牛訪談——嵌入式系統微處理器選型方案
第5章Linux嵌入系統之交叉編譯
5.1小白也要懂——gcc編譯器的工作流程
5.2Linux下gcc編譯器的使用方法
5.3gdb調試工具的使用方法
5.4什麼是交叉編譯
5.5構建交叉編譯工具鏈
5.6【案例實戰】交叉編譯工具鏈的下載與安裝
5.7要點鞏固
5.8技術大牛訪談——編譯器和解釋器的區別
第6章Makefile的基礎知識
6.1小白也要懂——make命令的執行過程
6.2Makefile語法基礎
6.3Makefile一般書寫格式
6.4Makefile變量的引用與賦值
6.5Makefile模式規則與自動變量
6.6Makefile偽目標
6.7Makefile條件判斷
6.8【案例實戰】編寫自己的Makefile文件
6.9要點鞏固
6.10技術大牛訪談——Makefile 函數的使用
第7章Linux嵌入系統之U-boot
7.1小白也要懂——Bootloader與U-boot的區別
7.2U-boot概述
7.2.1選擇正確的U-boot版本
7.2.2查看U-boot目錄結構
7.3關於 U-boot的源代碼編譯與GUI界面
7.3.1編譯 U-boot
7.3.2U-boot的GUI界面
7.4U-boot的Makefile代碼分析
7.5U-boot啟動流程
7.5.1U-boot啟動階段1
7.5.2U-boot啟動階段2
7.6【案例實戰】IMX6ULL開發板移植U-boot
7.7要點鞏固
7.8技術大牛訪談——U-boot在實際項目中的作用
第8章Linux嵌入式系統之內核
8.1小白也要懂——關於Linux體系結構和內核結構
8.2Linux內核的子系統
8.2.1虛擬文件系統
8.2.2進程管理子系統
8.2.3進程通信子系統
8.2.4內存管理子系統
8.2.5設備驅動子系統
8.3Linux內核的配置和編譯
8.3.1選擇正確的Linux內核
8.3.2編譯Linux內核
8.3.3查看Linux內核的目錄結構
8.3.4Linux內核的GUI界面
8.3.5Linux內核的鏡像與Makefile
8.4Linux內核的啟動過程
8.5【案例實戰】IMX6ULL移植Linux內核
8.6要點鞏固
8.7技術大牛訪談——淺析init進程
第9章構建嵌入式Linux根文件系統
9.1小白也要懂——Linux系統中的文件系統
9.2根文件系統概述
9.3Busybox安裝與編譯過程
9.3.1Busybox簡介
9.3.2Busybox的安裝與配置
9.3.3Busybox的編譯
9.4構建根文件系統
9.4.1需要的庫文件
9.4.2添加其他的文件操作
9.4.3優化根文件系統
9.5【案例實戰】根文件系統的移植測試
9.6要點鞏固
9.7技術大牛訪談——其他根文件系統的構建工具
第10章Linux嵌入式系統之設備驅動
10.1小白也要懂——設備驅動分類
10.2字符設備驅動的理論基礎
10.2.1字符設備驅動的一般流程
10.2.2設備號
10.3編寫字符設備驅動程序
10.3.1舊版本字符設備驅動程序
10.3.2新版本字符設備驅動程序
10.3.3字符設備驅動程序的通用操作
10.4【案例實戰】字符設備驅動的移植測試
10.5要點鞏固
10.6技術大牛訪談——塊設備驅動概述
第11章Linux嵌入式系統之設備樹
11.1小白也要懂——設備樹的基礎知識
11.2設備樹的基礎語法
11.2.1設備樹節點
11.2.2節點屬性
11.2.3設備樹常用的操作函數
11.3基於設備樹的pinctrl和gpio子系統
11.3.1pinctrl 子系統
11.3.2gpio子系統
11.4基於設備樹的platform設備驅動
11.4.1platform驅動模型
11.4.2設備樹下platform 驅動的編寫
11.5【案例實戰】基於設備樹的platform設備驅動移植
11.6要點鞏固
11.7技術大牛訪談——設備驅動的分層和分離思想
第12章Linux嵌入式系統之驅動技術
12.1小白也要懂——Linux系統下驅動程序框架概述
12.1.1驅動程序與系統的接口
12.1.2驅動程序加載到內核的流程
12.2Linux異常處理——中斷處理
12.2.1中斷API函數功能
12.2.2Linux內核中斷機制
12.3Linux並發與競爭
12.3.1原子操作
12.3.2自旋鎖
12.3.3信號量
12.3.4互斥體
12.4Linux阻塞和非阻塞IO
12.4.1阻塞IO策略的實現——等待隊列
12.4.2非阻塞IO策略的實現——輪詢
12.5【案例實戰】按鍵中斷實驗
12.6要點鞏固
12.7技術大牛訪談——file_operations結構體代碼分析
第13章自動控制系統應用實例——自動澆灌系統
13.1小白也要懂——自動澆灌系統項目背景介紹
13.2自動澆灌系統的功能設計
13.3自動澆灌系統的硬件設計與實現
13.4自動澆灌系統的軟件設計與實現
13.4.1驅動程序
13.4.2應用程序的編寫
13.5自動澆灌系統的聯合調試
13.6要點鞏固
13.7技術大牛訪談——自動化控制系統的組成部分
第14章物聯網應用實例——智能快遞櫃系統
14.1小白也要懂——智能快遞櫃系統項目背景
14.2智能快遞櫃系統的功能設計
14.3智能快遞櫃系統的硬件設計與實現
14.4智能快遞櫃系統的軟件設計與實現
14.5智能快遞櫃系統的聯合調試
14.6要點鞏固
14.7技術大牛訪談——Linux嵌入式開發板串口驅動框架
第15章車聯網應用實例——車身控制系統
15.1小白也要懂——車身控制系統項目背景
15.2車身控制系統的功能設計
15.3車身控制系統的硬件設計與實現
15.4車身控制系統的軟件設計與實現
15.5車身控制系統的聯合調試
15.6要點鞏固
15.7技術大牛訪談——Linux系統下的CAN驅動框架
第16章人工智能應用實例——語音識別控制系統
16.1小白也要懂——語音識別技術
16.2語音識別控制系統的功能設計
16.3語音識別控制系統的硬件設計與實現
16.4語音識別控制系統的軟件設計與實現
16.5【案例實戰】語音識別控制系統的聯合調試
16.6要點鞏固
16.7技術大牛訪談——ReSpeaker 2Mics Pi HAT驅動環境的安裝