· 國內領先的嵌入式培訓機構華清遠見出品
· 作者具有多年從業經驗,真正從企業用人需求出發
· 歷經市場考驗,第三次修訂改版
· 書中配有大量微課,詳細講解重點難點
本書重點介紹嵌入式Linux應用開發的基本概念和核心理論。全書分為10 章,包括嵌嵌入式系統基礎、嵌入式Linux C語言程序開發工具、嵌入式Linux C語言基礎、嵌入式Linux開發環境的搭建、嵌入式Linux文件I/O編程、嵌入式Linux多任務編程、嵌入式Linux網絡編程、嵌入式Linux設備驅動編程、Qt圖形編程和綜合案例——倉庫信息處理系統。本書在講解中給出了翔實的實例,并在部分章節后詳細設計并分析了實驗內容。
本書可作為高等院校計算機類、電子類、電氣類、控制類專業高年級本科生、研究生學習嵌入式Linux應用開發的教材,也可供希望轉入嵌入式領域的科研和工程技術人員參考使用。
嵌入式Linux C語言應用開發教程 移動學習版 第2版章節:
第1章 嵌入式系統基礎
1.1 嵌入式系統概述
1.1.1 嵌入式系統的基本概念
1.1.2 嵌入式系統的體系結構
1.1.3 幾種常用的嵌入式操作系統
1.1.4 嵌入式系統發展趨勢
1.2 ARM處理器硬件開發平臺
1.2.1 嵌入式處理器簡介
1.2.2 ARM處理器簡介
1.2.3 Exynos4412處理器簡介
1.3 嵌入式軟件開發流程
1.3.1 嵌入式系統開發概述
1.3.2 嵌入式軟件開發概述
1.4 實驗內容:使用SD-CARD 燒寫EMMC
小結
思考與練習
第2章 嵌入式Linux C語言程序開發工具
2.1 嵌入式Linux下C語言概述
2.2 編輯器vim
2.2.1 vim的基本模式
2.2.2 vim的基本操作
2.3 編譯器gcc
2.3.1 gcc的簡介
2.3.2 gcc的編譯流程
2.3.3 gcc的常用編譯選項
2.4 調試器gdb
2.4.1 gdb的使用流程
2.4.2 gdb的基本命令
2.4.3 gdbserver的遠程調試
2.5 make工程管理器
2.5.1 makefile的基本結構
2.5.2 makefile的變量
2.5.3 makefile的規則
2.5.4 make管理器的使用
2.6 實驗內容
2.6.1 vim使用練習
2.6.2 用gdb調試程序的bug
2.6.3 編寫包含多文件的makefile
小結
思考與練習
第3章 嵌入式Linux C語言基礎
3.1 預處理
3.1.1 預定義
3.1.2 文件包含
3.1.3 條件編譯
3.2 C語言中的內存分配
3.2.1 C語言程序所含內存分類
3.2.2 堆和棧的區別
3.3 程序的可移植性考慮
3.3.1 字長和數據類型
3.3.2 數據對齊
3.3.3 字節順序
3.4 C和匯編的接口
3.4.1 內嵌匯編的語法
3.4.2 編譯器優化
3.4.3 C語言關鍵字volatile
3.5 ARM Linux內核常見數據結構
3.5.1 鏈表
3.5.2 樹、二叉樹、平衡樹
3.5.3 哈希表
小結
思考與練習
第4章 嵌入式Linux開發環境的搭建
4.1 構建嵌入式Linux開發環境
4.1.1 嵌入式交叉編譯環境搭建
4.1.2 主機交叉開發環境配置
4.2 Bootloader
4.2.1 Bootloader的種類
4.2.2 U-Boot編譯與使用
4.2.3 U-Boot移植
4.3 Linux內核與移植
4.3.1 Linux內核結構
4.3.2 Linux內核配置與編譯
4.3.3 Linux設備樹文件
4.3.4 Linux內核移植
4.4 嵌入式文件系統構建
小結
思考與練習
第5章 嵌入式Linux文件I/O編程
5.1 Linux系統調用及用戶編程接口
5.1.1 系統調用
5.1.2 用戶編程接口
5.1.3 系統命令
5.2 Linux文件I/O系統概述
5.2.1 虛擬文件系統
5.2.2 通用文件模型
5.2.3 Linux中文件及文件描述符
5.3 底層文件I/O操作
5.3.1 基本文件操作
5.3.2 文件鎖
5.3.3 多路復用
5.4 標準I/O編程
5.4.1 基本操作
5.4.2 其他操作
5.4.3 目錄操作
5.5 實驗內容
小結
思考與練習
第6章 嵌入式Linux多任務編程
6.1 Linux下多任務概述
6.1.1 任務
6.1.2 進程
6.1.3 線程
6.2 進程控制編程
6.2.1 進程編程基礎
6.2.2 Linux守護進程
6.3 進程間通信
6.3.1 Linux下進程間通信概述
6.3.2 管道通信
6.3.3 信號通信
6.3.4 信號量
6.3.5 共享內存
6.3.6 消息隊列
6.4 多線程編程
6.4.1 線程基本編程
6.4.2 線程之間的同步與互斥
6.4.3線程屬性
6.4.4 線程私有數據
6.5 實驗內容
6.5.1 編寫多進程程序
6.5.2 編寫守護進程
6.5.3 有名管道通信實驗
6.5.4 共享內存實驗
6.5.5 線程池實驗
小結
思考與練習
第7章 嵌入式Linux網絡編程
7.1 TCP/IP概述
7.1.1 TCP/IP的分層模型
7.1.2 TCP/IP分層模型特點
7.1.3 TCP/IP核心協議
7.2 網絡編程基本知識
7.2.1 套接字概述
7.2.2 地址及順序處理
7.2.3 套接字編程
7.2.4 編程實例
7.3 網絡高級編程
7.3.1 非阻塞和異步I/O
7.3.2 使用多路復用
7.4 實驗內容:NTP的客戶端實現
小結
思考與練習
第8章 嵌入式Linux設備驅動編程
8.1 設備驅動編程基礎
8.1.1 Linux設備驅動概述
8.1.2 Linux內核模塊編程
8.2 字符設備驅動編程
8.2.1 字符設備驅動編寫流程
8.2.2 重要數據結構
8.2.3 設備驅動程序主要組成
8.2.4 字符設備驅動程序框架
8.3 基于設備樹的字符驅動程序實例
8.4 GPIO驅動程序實例
8.4.1 GPIO工作原理
8.4.2 GPIO驅動程序
8.5 按鍵驅動程序實例
8.5.1 中斷編程
8.5.2 按鍵工作原理
8.5.3 按鍵驅動程序
8.5.4 中斷信息的編寫
小結
思考與練習
第9章 Qt圖形編程
9.1 嵌入式GUI簡介
9.1.1 Qt/Embedded
9.1.2 其他嵌入式圖形用戶界面開發環境
9.2 Qt/Embedded開發入門
9.2.1 Qt/Embedded介紹
9.2.2 Qt/Embedded信號和插槽機制
9.2.3 搭建Qt/Embedded-5.8.0開發環境
9.2.4 Qt/Embedded窗口部件
9.2.5 Qt/Embedded圖形界面編程
9.2.6 Qt/Embedded對話框設計
9.3 實驗內容:使用Qt編寫 “Hello,World”程序
小結
思考與練習
第10章 綜合實例——倉庫信息處理系統
10.1 倉庫信息處理系統概述
10.1.1 系統組成
10.1.2 前端數據中心(Cortex-A9)
10.1.3 顯示中心
10.2 基本數據結構
10.3 功能實現
10.3.1 數據接收模塊
10.3.2 數據處理模塊
10.3.3 共享內存刷新模塊
10.3.4 顯示中心
10.3.5 線程相關
小結
思考與練習
參考文獻