注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)原子嵌入式Linux驅(qū)動(dòng)開發(fā)詳解

原子嵌入式Linux驅(qū)動(dòng)開發(fā)詳解

原子嵌入式Linux驅(qū)動(dòng)開發(fā)詳解

定 價(jià):¥169.00

作 者: 左忠凱
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302613824 出版時(shí)間: 2022-08-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  嵌入式 Linux涉及的知識點(diǎn)很多,對初學(xué)者的基礎(chǔ)要求高,在知識儲備的廣度和深度上都對學(xué)習(xí)者提出了很高的要求。大多數(shù)轉(zhuǎn)型嵌入式 Linux開發(fā)的朋友都是以前從事單片機(jī)開發(fā)工作的工程師,因此如何從單片機(jī)開發(fā)工程師轉(zhuǎn)型為嵌入式 Linux開發(fā)工程師,這個(gè)過程非常重要。單片機(jī) 工 程 師 大 多 數(shù) 都 是 在 Windows環(huán) 境 下 工 作,使 用 集 成 IDE 編 寫 并 編 譯 代 碼,然 后 在 IDE 上 通 過DownLoad按鈕一鍵下載代碼到單片機(jī)中。至于集成IDE是怎么組織源文件,又是怎么編譯的并不清楚。本書就以單片機(jī)工程最熟悉的“裸機(jī)”開發(fā)為例,講解如何在 Ubuntu下搭建開發(fā)環(huán)境,如何使用 VScode編寫程序,如何使用 make工具編譯源碼。通過這些操作,大家就可以對集成式IDE與開源開發(fā)環(huán)境有很清晰的認(rèn)識。當(dāng)掌握了開發(fā)方式以后,剩下的就是通過大量的裸機(jī)案例來加深對I.MX6ULL 這顆芯片的認(rèn)識,了解各個(gè)外設(shè)的應(yīng)用,為后面學(xué)習(xí)嵌入式Linux驅(qū)動(dòng)開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。本書后半部分詳細(xì)講解了如何移植uboot、Linux內(nèi)核、根文件系統(tǒng),最終在開發(fā)板上搭建出一個(gè)基礎(chǔ)的嵌入式 Linux系統(tǒng),后續(xù)的嵌入式 Linux驅(qū)動(dòng)開發(fā)就在這個(gè)小系統(tǒng)上進(jìn)行。本書可作為廣大從事嵌入式開發(fā)、MCU 開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)等工程技術(shù)人員的學(xué)習(xí)和參考用書,也可作為高等院校計(jì)算機(jī)、電子、自動(dòng)化等專業(yè)嵌入式系統(tǒng)、微機(jī)接口、物聯(lián)網(wǎng)、單片機(jī)等課程的教材。

作者簡介

  左忠凱,14年參加工作以來一直從事于嵌入式教育,以第一作者身份著有《FreeRTOS源碼詳解與應(yīng)用開發(fā)》,參與編寫了正點(diǎn)原子大量的手把手教你STM32系列書籍,比如《精通STM32F4庫函數(shù)版》、《STM32F7原理與應(yīng)用》等。同時(shí)錄制了大量的STM32相關(guān)教學(xué)視頻,廣受好評。18年開始負(fù)責(zé)公司Linux教育平臺的研發(fā),編寫了1800多頁的Linux驅(qū)動(dòng)開發(fā)教程,錄制了200多講Linux開發(fā)視頻,負(fù)責(zé)的I.MX6ULL開發(fā)板自從發(fā)布至今,銷量一直處于淘寶第一,Linux驅(qū)動(dòng)開發(fā)相關(guān)視頻在各大平臺的點(diǎn)擊量超過30萬次。

圖書目錄

 
第一篇Ubuntu操作系統(tǒng)入門
(掃描封底“本書資源”二維碼獲?。?br />第二篇裸機(jī)開發(fā)
第1章開發(fā)環(huán)境搭建
1.1Ubuntu和Windows文件互傳
1.2Ubuntu下NFS和SSH服務(wù)開啟
1.2.1NFS服務(wù)開啟
1.2.2SSH服務(wù)開啟
1.3Ubuntu交叉編譯工具鏈安裝
1.3.1交叉編譯器安裝
1.3.2安裝相關(guān)庫
1.3.3交叉編譯器驗(yàn)證
1.4Visual Studio Code軟件的安裝和使用
1.4.1Visual Studio Code軟件的安裝
1.4.2Visual Studio Code插件的安裝
1.4.3Visual Studio Code新建工程
1.5CH340串口驅(qū)動(dòng)安裝
1.6MobaXterm軟件安裝和使用
1.6.1MobaXterm軟件安裝
1.6.2MobaXterm軟件使用
第2章CortexA7 MPCore架構(gòu)
2.1CortexA7 MPCore簡介
2.2CortexA處理器運(yùn)行模型
2.3CortexA寄存器組
2.3.1通用寄存器
2.3.2程序狀態(tài)寄存器
第3章ARM匯編基礎(chǔ)
3.1GNU匯編語法
3.2CortexA7常用匯編指令
3.2.1處理器內(nèi)部數(shù)據(jù)傳輸指令
3.2.2存儲器訪問指令
3.2.3壓棧和出棧指令
3.2.4跳轉(zhuǎn)指令
3.2.5算術(shù)運(yùn)算指令
3.2.6邏輯運(yùn)算指令
 
 
 
第4章匯編LED燈實(shí)驗(yàn)
4.1I.MX6U GPIO詳解
4.1.1STM32 GPIO回顧
4.1.2I.MX6ULL I/O命名
4.1.3I.MX6ULL I/O復(fù)用
4.1.4I.MX6ULL I/O配置
4.1.5I.MX6ULL GPIO配置
4.1.6I.MX6ULL GPIO時(shí)鐘使能
4.2硬件原理分析
4.3實(shí)驗(yàn)程序編寫
4.4編譯、下載和驗(yàn)證
4.4.1編譯代碼
4.4.2創(chuàng)建Makefile文件
4.4.3代碼燒寫
4.4.4代碼驗(yàn)證
第5章I.MX6U啟動(dòng)方式詳解
5.1啟動(dòng)方式選擇
5.1.1串行下載
5.1.2內(nèi)部BOOT模式
5.2BOOT ROM初始化內(nèi)容
5.3啟動(dòng)設(shè)備
5.4鏡像燒寫
5.4.1IVT和Boot Data
5.4.2DCD數(shù)據(jù)
第6章C語言版LED燈實(shí)驗(yàn)
6.1C語言版LED燈簡介
6.2硬件原理分析
6.3實(shí)驗(yàn)程序編寫
6.3.1匯編部分實(shí)驗(yàn)程序編寫
6.3.2C語言部分實(shí)驗(yàn)程序編寫
6.4編譯、下載和驗(yàn)證
6.4.1編寫Makefile
6.4.2鏈接腳本
6.4.3修改Makefile
6.4.4下載和驗(yàn)證
第7章模仿STM32驅(qū)動(dòng)開發(fā)格式實(shí)驗(yàn)
7.1模仿STM32寄存器定義
7.1.1STM32寄存器定義簡介
7.1.2I.MX6ULL寄存器定義
7.2硬件原理分析
7.3實(shí)驗(yàn)程序編寫
7.4編譯、下載和驗(yàn)證
7.4.1編寫Makefile和鏈接腳本
7.4.2編譯和下載
第8章官方SDK移植實(shí)驗(yàn)
8.1官方SDK移植簡介
8.2硬件原理分析
8.3實(shí)驗(yàn)程序編寫
8.3.1SDK文件移植
8.3.2創(chuàng)建cc.h文件
8.3.3編寫實(shí)驗(yàn)代碼
8.4編譯、下載和驗(yàn)證
8.4.1編寫Makefile和鏈接腳本
8.4.2編譯和下載
第9章BSP工程管理實(shí)驗(yàn)
9.1BSP工程管理簡介
9.2硬件原理分析
9.3實(shí)驗(yàn)程序編寫
9.3.1創(chuàng)建imx6ul.h文件
9.3.2編寫led驅(qū)動(dòng)代碼
9.3.3編寫時(shí)鐘驅(qū)動(dòng)代碼
9.3.4編寫延時(shí)驅(qū)動(dòng)代碼
9.3.5修改main.c文件
9.4編譯、下載和驗(yàn)證
9.4.1編寫Makefile和鏈接腳本
9.4.2編譯和下載
第10章蜂鳴器實(shí)驗(yàn)
10.1有源蜂鳴器簡介
10.2硬件原理分析
10.3實(shí)驗(yàn)程序編寫
10.4編譯、下載和驗(yàn)證
10.4.1編寫Makefile和鏈接腳本
10.4.2編譯和下載
第11章按鍵輸入實(shí)驗(yàn)
11.1按鍵輸入簡介
11.2硬件原理分析
11.3實(shí)驗(yàn)程序編寫
11.4編譯、下載和驗(yàn)證
11.4.1編寫Makefile和鏈接腳本
11.4.2編譯和下載
第12章主頻和時(shí)鐘配置實(shí)驗(yàn)
12.1I.MX6ULL時(shí)鐘系統(tǒng)詳解
12.1.1系統(tǒng)時(shí)鐘來源
12.1.27路PLL時(shí)鐘源
12.1.3時(shí)鐘樹簡介
12.1.4內(nèi)核時(shí)鐘設(shè)置
12.1.5PFD時(shí)鐘設(shè)置
12.1.6AHB、IPG和PERCLK根時(shí)鐘設(shè)置
12.2硬件原理分析
12.3實(shí)驗(yàn)程序編寫
12.4編譯、下載和驗(yàn)證
12.4.1編寫Makefile和鏈接腳本
12.4.2編譯和下載
第13章GPIO中斷實(shí)驗(yàn)
13.1CortexA7中斷系統(tǒng)詳解
13.1.1STM32中斷系統(tǒng)回顧
13.1.2CortexA7中斷系統(tǒng)簡介
13.1.3GIC控制器簡介
13.1.4CP15協(xié)處理器
13.1.5中斷使能
13.1.6中斷優(yōu)先級設(shè)置
13.2硬件原理分析
13.3實(shí)驗(yàn)程序編寫
13.3.1移植SDK包中斷相關(guān)文件
13.3.2重新編寫start.s文件
13.3.3通用中斷驅(qū)動(dòng)文件編寫
13.3.4修改GPIO驅(qū)動(dòng)文件
13.3.5按鍵中斷驅(qū)動(dòng)文件編寫
13.3.6編寫main.c文件
13.4編譯、下載和驗(yàn)證
13.4.1編寫Makefile和鏈接腳本
13.4.2編譯和下載
第14章EPIT定時(shí)器實(shí)驗(yàn)
14.1EPIT定時(shí)器簡介
14.2硬件原理分析
14.3實(shí)驗(yàn)程序編寫
14.4編譯、下載和驗(yàn)證
14.4.1編寫Makefile和鏈接腳本
14.4.2編譯和下載
第15章定時(shí)器按鍵消抖實(shí)驗(yàn)
15.1定時(shí)器按鍵消抖簡介
15.2硬件原理分析
15.3實(shí)驗(yàn)程序編寫
15.4編譯、下載和驗(yàn)證
15.4.1編寫Makefile和鏈接腳本
15.4.2編譯和下載
第16章高精度延時(shí)實(shí)驗(yàn)
16.1高精度延時(shí)簡介
16.1.1GPT定時(shí)器簡介
16.1.2定時(shí)器實(shí)現(xiàn)高精度延時(shí)原理
16.2硬件原理分析
16.3實(shí)驗(yàn)程序編寫
16.4編譯、下載和驗(yàn)證
16.4.1編寫Makefile和鏈接腳本
16.4.2編譯和下載
第17章UART串口通信實(shí)驗(yàn)
17.1I.MX6ULL串口通信簡介
17.1.1UART簡介
17.1.2I.MX6ULL UART簡介
17.2硬件原理分析
17.3實(shí)驗(yàn)程序編寫
17.4編譯、下載和驗(yàn)證
17.4.1編寫Makefile和鏈接腳本
17.4.2編譯和下載
第18章串口格式化函數(shù)移植實(shí)驗(yàn)
18.1串口格式化函數(shù)移植簡介
18.2硬件原理分析
18.3實(shí)驗(yàn)程序編寫
18.4編譯、下載和驗(yàn)證
18.4.1編寫Makefile和鏈接腳本
18.4.2編譯和下載
第19章DDR3實(shí)驗(yàn)
19.1DDR3內(nèi)存簡介
19.1.1何為RAM和ROM
19.1.2SRAM簡介
19.1.3SDRAM簡介
19.1.4DDR簡介
19.2DDR3關(guān)鍵時(shí)間參數(shù)
19.3I.MX6ULL MMDC控制器簡介
19.3.1MMDC控制器
19.3.2MMDC控制器信號引腳
19.3.3MMDC控制器時(shí)鐘源
19.4ALPHA開發(fā)板DDR3L原理圖
19.5DDR3L初始化與測試
19.5.1ddr_stress_tester簡介
19.5.2DDR3L驅(qū)動(dòng)配置
19.5.3DDR3L校準(zhǔn)
19.5.4DDR3L超頻測試
19.5.5DDR3L驅(qū)動(dòng)總結(jié)
第20章RGB LCD顯示實(shí)驗(yàn)
20.1LCD和eLCDIF簡介
20.1.1LCD簡介
20.1.2eLCDIF接口簡介
20.2硬件原理分析
20.3實(shí)驗(yàn)程序編寫
20.4編譯、下載和驗(yàn)證
20.4.1編寫Makefile和鏈接腳本
20.4.2編譯和下載
第21章RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)
21.1I.MX6ULL RTC實(shí)時(shí)時(shí)鐘簡介
21.2硬件原理分析
21.3實(shí)驗(yàn)程序編寫
21.3.1修改文件MCIMX6Y2.h
21.3.2編寫實(shí)驗(yàn)程序
21.4編譯、下載和驗(yàn)證
21.4.1編寫Makefile和鏈接腳本
21.4.2編譯和下載
第22章I2C實(shí)驗(yàn)
22.1I2C和AP3216C簡介
22.1.1I2C簡介
22.1.2I.MX6ULL I2C簡介
22.1.3AP3216C簡介
22.2硬件原理分析
22.3實(shí)驗(yàn)程序編寫
22.4編譯、下載和驗(yàn)證
22.4.1編寫Makefile和鏈接腳本
22.4.2編譯和下載
第23章SPI實(shí)驗(yàn)
23.1SPI & ICM20608簡介
23.1.1SPI簡介
23.1.2I.MX6ULL ECSPI簡介
23.1.3ICM20608簡介
23.2硬件原理分析
23.3實(shí)驗(yàn)程序編寫
23.4編譯、下載和驗(yàn)證
23.4.1編寫Makefile和鏈接腳本
23.4.2編譯和下載
第24章多點(diǎn)電容觸摸屏實(shí)驗(yàn)
24.1多點(diǎn)電容觸摸屏簡介
24.2硬件原理分析
24.3實(shí)驗(yàn)程序編寫
24.4編譯、下載和驗(yàn)證
24.4.1編寫Makefile和鏈接腳本
24.4.2編譯和下載
第25章LCD背光調(diào)節(jié)實(shí)驗(yàn)
25.1LCD背光調(diào)節(jié)簡介
25.2硬件原理分析
25.3實(shí)驗(yàn)程序編寫
25.4編譯、下載和驗(yàn)證
25.4.1編寫Makefile和鏈接腳本
25.4.2編譯和下載
第26章ADC實(shí)驗(yàn)
26.1ADC簡介
26.1.1什么是ADC
26.1.2I.MX6ULL ADC簡介
26.2硬件原理分析
26.3實(shí)驗(yàn)程序編寫
26.4編譯、下載和驗(yàn)證
26.4.1編寫Makefile和鏈接腳本
26.4.2編譯和下載
第三篇系統(tǒng)移植
第27章UBoot使用實(shí)驗(yàn)
27.1UBoot簡介
27.2UBoot初次編譯
27.3UBoot燒寫與啟動(dòng)
27.4UBoot命令使用
27.4.1信息查詢命令
27.4.2環(huán)境變量操作命令
27.4.3內(nèi)存操作命令
27.4.4網(wǎng)絡(luò)操作命令
27.4.5EMMC和SD卡操作命令
27.4.6FAT格式文件系統(tǒng)操作命令
27.4.7EXT格式文件系統(tǒng)操作命令
27.4.8NAND操作命令
27.4.9BOOT操作命令
27.4.10其他常用命令
第28章UBoot頂層Makefile詳解
28.1UBoot工程目錄分析
28.2VSCode工程創(chuàng)建
28.3UBoot頂層Makefile分析
28.3.1版本號
28.3.2MAKEFLAGS變量
28.3.3命令輸出
28.3.4靜默輸出
28.3.5設(shè)置編譯結(jié)果輸出目錄
28.3.6代碼檢查
28.3.7模塊編譯
28.3.8獲取主機(jī)架構(gòu)和系統(tǒng)
28.3.9設(shè)置目標(biāo)架構(gòu)、交叉編譯器和配置文件
28.3.10調(diào)用scripts/Kbuild.include
28.3.11交叉編譯工具變量設(shè)置
28.3.12導(dǎo)出其他變量
28.3.13make xxx_defconfig過程
28.3.14Makefile.build腳本分析
28.3.15make過程
第29章UBoot啟動(dòng)流程詳解
29.1鏈接腳本uboot.lds詳解
29.2UBoot啟動(dòng)流程解析
29.2.1reset函數(shù)源碼詳解
29.2.2lowlevel_init函數(shù)詳解
29.2.3s_init函數(shù)詳解
29.2.4_main函數(shù)詳解
29.2.5board_init_f函數(shù)詳解
29.2.6relocate_code函數(shù)詳解
29.2.7relocate_vectors函數(shù)詳解
29.2.8board_init_r函數(shù)詳解
29.2.9run_main_loop函數(shù)詳解
29.2.10cli_loop函數(shù)詳解
29.2.11cmd_process函數(shù)詳解
29.3bootz啟動(dòng)Linux內(nèi)核過程
29.3.1images全局變量
29.3.2do_bootz函數(shù)
29.3.3bootz_start函數(shù)
29.3.4do_bootm_states函數(shù)
29.3.5bootm_os_get_boot_func函數(shù)
29.3.6do_bootm_linux函數(shù)
第30章UBoot移植
30.1NXP官方開發(fā)板uboot編譯測試
30.1.1查找NXP官方的開發(fā)板默認(rèn)配置文件
30.1.2編譯NXP官方開發(fā)板對應(yīng)的uboot
30.1.3燒寫驗(yàn)證與驅(qū)動(dòng)測試
30.2在UBoot中添加自己的開發(fā)板
30.2.1添加開發(fā)板默認(rèn)配置文件
30.2.2添加開發(fā)板對應(yīng)的頭文件
30.2.3添加開發(fā)板對應(yīng)的板級文件夾
30.2.4修改UBoot圖形界面配置文件
30.2.5使用新添加的板子配置編譯uboot
30.2.6LCD驅(qū)動(dòng)修改
30.2.7網(wǎng)絡(luò)驅(qū)動(dòng)修改
30.2.8其他需要修改的地方
30.3bootcmd和bootargs環(huán)境變量
30.3.1環(huán)境變量bootcmd
30.3.2環(huán)境變量bootargs
30.4uboot啟動(dòng)Linux測試
30.4.1從EMMC啟動(dòng)Linux系統(tǒng)
30.4.2從網(wǎng)絡(luò)啟動(dòng)Linux系統(tǒng)
第31章UBoot圖形化配置及其原理
31.1UBoot圖形化配置體驗(yàn)
31.2menuconfig圖形化配置原理
31.2.1make menuconfig過程分析
31.2.2Kconfig語法簡介
31.3添加自定義菜單
第32章Linux內(nèi)核頂層Makefile詳解
32.1Linux內(nèi)核獲取
32.2Linux內(nèi)核初次編譯
32.3Linux工程目錄分析
32.4VSCode工程創(chuàng)建
32.5頂層Makefile詳解
32.5.1make xxx_defconfig過程
32.5.2Makefile.build腳本分析
32.5.3make過程
32.5.4builtin.o文件編譯生成過程
32.5.5make zImage過程
第33章Linux內(nèi)核啟動(dòng)流程
33.1鏈接腳本vmlinux.lds
33.2Linux內(nèi)核啟動(dòng)流程分析
33.2.1Linux內(nèi)核入口stext
33.2.2__mmap_switched函數(shù)
33.2.3start_kernel函數(shù)
33.2.4rest_init函數(shù)
33.2.5init進(jìn)程
第34章Linux內(nèi)核移植
34.1創(chuàng)建VSCode工程
34.2NXP官方開發(fā)板Linux內(nèi)核編譯
34.2.1修改頂層Makefile
34.2.2配置并編譯Linux內(nèi)核
34.2.3Linux內(nèi)核啟動(dòng)測試
34.2.4根文件系統(tǒng)缺失錯(cuò)誤
34.3在Linux中添加自己的開發(fā)板
34.3.1添加開發(fā)板默認(rèn)配置文件
34.3.2添加開發(fā)板對應(yīng)的設(shè)備樹文件
34.3.3編譯測試
34.4CPU主頻和網(wǎng)絡(luò)驅(qū)動(dòng)修改
34.4.1CPU主頻修改
34.4.2使能8線EMMC驅(qū)動(dòng)
34.4.3修改網(wǎng)絡(luò)驅(qū)動(dòng)
34.4.4保存修改后的圖形化配置文件
第35章根文件系統(tǒng)構(gòu)建
35.1根文件系統(tǒng)簡介
35.2BusyBox構(gòu)建根文件系統(tǒng)
35.2.1BusyBox簡介
35.2.2編譯BusyBox構(gòu)建根文件系統(tǒng)
35.2.3向根文件系統(tǒng)添加lib庫
35.2.4創(chuàng)建其他文件夾
35.3根文件系統(tǒng)初步測試
35.4完善根文件系統(tǒng)
35.4.1創(chuàng)建/etc/init.d/rcS文件
35.4.2創(chuàng)建/etc/fstab文件
35.4.3創(chuàng)建/etc/inittab文件
35.5根文件系統(tǒng)其他功能測試
35.5.1軟件運(yùn)行測試
35.5.2中文字符測試
35.5.3開機(jī)自啟動(dòng)測試
35.5.4外網(wǎng)連接測試
第36章系統(tǒng)燒寫
36.1MfgTool工具簡介
36.2MfgTool工作原理簡介
36.2.1燒寫方式
36.2.2系統(tǒng)燒寫原理
36.3燒寫NXP官方系統(tǒng)
36.4燒寫自制的系統(tǒng)
36.4.1系統(tǒng)燒寫
36.4.2網(wǎng)絡(luò)開機(jī)自啟動(dòng)設(shè)置
36.5改造自己的燒寫工具
36.5.1改造MfgTool
36.5.2燒寫測試
36.5.3解決Linux內(nèi)核啟動(dòng)失敗
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號